Share

Open Dynamics Engine

File Release Notes and Changelog

Release Name: 0.8

Notes:
The Open Dynamics Engine (ODE), Copyright (C) 2001-2006 Russell L. Smith.
-------------------------------------------------------------------------

ODE is a free, industrial quality library for simulating articulated
rigid body dynamics - for example ground vehicles, legged creatures,
and moving objects in VR environments. It is fast, flexible, robust
and platform independent, with advanced joints, contact with friction,
and built-in collision detection.

This library is free software; you can redistribute it and/or
modify it under the terms of EITHER:
  (1) The GNU Lesser General Public License as published by the Free
      Software Foundation; either version 2.1 of the License, or (at
      your option) any later version. The text of the GNU Lesser
      General Public License is included with this library in the
      file LICENSE.TXT.
  (2) The BSD-style license that is included with this library in
      the file LICENSE-BSD.TXT.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files
LICENSE.TXT and LICENSE-BSD.TXT for more details.

 * Installation instructions are in the INSTALL file

 * The ODE web pages are at http://ode.org/

 * An online manual is at http://opende.sf.net/wiki/index.php/Manual

 * API documentation is in the file ode/docs/index.html, or you
   can view it on the web at http://opende.sf.net/docs/index.html


Changes: Make building tests optional. SF patch 1650563 lib64 fixes, SF patch 1646598 added test_jointPR (sf patch 1654464) Warn against using double precision with gimpact Updated versions in configure.in, added step to release script Fixed CR/LF issue in release script Make it score on linux+opcode Fixed illegal goto: crossed data init, and removed ctrl M's Added patch [ 1626242 ] Small optimization for quickstep. The patch goes into details of the two optimisations, as usual this is a pending patch in case there are problems. Added patch [ 1626292 ] Update PR joint functions. A number of updates and fixes for Joint PR. Added patch from #1589443 to add Joint PR output to export-dif.cpp Applied patch [ 1589439 ] Remove an unused function Added changes from patch #1583115 by Tuan Kuranes. Performance in test_heightfield, especially for meshes is a superb improvement! Fix for build error when using a manually generated project (i.e. dumping in all of the files) and premake to generate config.h with the --no-trimesh option. This was due to "#define dTRIMESH_OPCODE 1" still being present in 'collision_trimesh_internal.h'. Also it now ignores '--with-gimpact' if --no-trimesh is used as they are mutually exclusive. Enhanced the platform identification to detect Xbox 360, PS3 and PSP correctly. This is simply to provide a slightly nicer 'out-of-the-box' experience for console developers. NOTE: These platforms still remain unsupported and may not build correctly, however this shouldn't now be because of a '#error' directive. Bump up version nr properly. We forgot to do this for 0.7 Applied patch #1615274 - New dBodyGetWorld function which returns the world id for a body, or zero if the body is not in any world. Applied SF patch 1610170 by Christoph Added matrix.h to .net bindings Completing joint feedback patch - more optimized version Added an assert (from patch 1557801) for a very common composite mass problem encountered by new users - centre of mass must be at the body origin. (Use dMassTranslate( mass, -mass->c ) to correct it). Note that at some point in the future, ODE will support offset masses, until that time it'll save a lot of people time if it asserts about it (and hopefully may spur on development of offset masses!) Raised the maximum contact points from 8 to 64 to allow the complex bunny model to be repelled from the plane correctly. Patch #1590910, fix for ray-triangle collision. Changed dSINGLE / dDOUBLE to be safer. You will now get an error with both #defined and the one case where dSINGLE needed to be defined as != 0 to work has been changed to match all the other #ifdef dSINGLE. Fix for memory leak of static memory allocated in the OPCODE collider. Applications must ensure to call dCloseODE before running memory leak checking functions. Fixed a memory leak in heightfield.cpp Updated project files for gimpact support Applied Tuan Kuranes' performance patch #1583115. Removed 'space' accelerator for pause - this was used by some of the tests. CTRL+P still works Unified instantaneous and averaging velocity systems for auto-disabling bodies, to reduce overheads in the default case to near that of the classic auto-disabling system. With the added scope of allowing a larger sample set if required. Fixed a little bug in the averaging auto-disable system where the z component wasn't being scaled properly and the y component was being scaled twice. Also optimised slightly for single sample case with a view to unifying with the classic auto-disable system. Integrated Christoph Beyer's average based sampling system for body disabling. The current tests are not great examples for this new feature, but I have added it to the two I know about the most. Removed unused local vector 'p' from PRGetInfo2. Silences warning in VS2003. drawstuff: The single-step option now auto-pauses if required, also added a new keyboard accelerator so that <space> toggles pause. Removed all of the signed / unsigned warnings presented by the VS2003 compiler. Also applied patch #1589452 by Remi Ricard. Integration of patch [ 1566410 ] Rename JointRP to JointPR. Another big chunk of the Ode.NET binding Added a good portion of the API to Ode.NET Applied patch 1586738: don't freeze objects mid-air Added missing premake files (whoops) Cleaned up .NET bindings; getting ready for another round Use dMassSetTrimesh for 'm' option. Use dWorldStepFast1 to make collision bug with GIMPACT (see bug report #1587911) easier to reproduce. Applied patch 1587462 from SourceForge to implement dGeomTriMeshGetTriangleCount, dGeomTriMeshGetTriangle and dGeomTriMeshGetPoint. Fixes test_moving_trimesh Replacement cyl/sph collider by Christoph Beyer improved cyl/sphere test Added GIMPACT support to autotools Don't put guard over trimesh func Added cylinder support now that it's almost fully implemented. Renamed Joint RP to Joint PR - as per patch 1566410. Note that the supplied patch files did not merge properly due to the extend of the subsequent patches, so these changes we made by hand. Apologies if anything was missed. Patch to fix zero length normal which occurs at certain contact angles. By Francisco Leon. Added dMassSetTrimesh implemented by Gero Mueller, based on a paper by Brian Mirtich. Used in test_moving_trimesh for reference. Fix unix build Replacement cyl/plane collider by Christoph Beyer Initial merge of GIMPACT trimesh collision system Improved contact pts for cyl lying with cap on plane handle cases where discs are completely behind plane Fixed cyl/plane bug that occured when plane is not at origin Added fix by Jon Watte for denormals Add assert to check if bug report 1192390 makes sense. Fix include path. Fixes Bug 1572419 fix double precision build, remove ctrl-M noise Flags dUSE_MALLOC_FOR_ALLOCA as experimental in premake scripts Fixed silly CYGWIN macro Convex-Convex somewhat works, sometimes returns less than optimal contact points Added support for dUSE_MALLOC_FOR_ALLOCA to premake build Some work on Convex objects code, Added convex collision detection test. Added more functions to Ode.Net binding Fixed a typo in INSTALL.txt Deprecated Visual Studio 6 cyl/plane fix Fixed two bugs in plane/cyl collision test Updated visual studio build scripts to create drawstuff.dll for .net binding Merged .NET binding to trunk Option to rotate cylinder with geom-offset Fix for bug #1554391 found by chris88. UseFlags member variable would be deleted as garbage pointer if dxTriMeshData was deleted immediately after creation. Fixed code to compile without OPCODE if dTRIMESH_ENABLED is off. It is now possible to completely remove OPCODE / TriMesh support by removing the OPCODE folder from the project, and from the disk. Removed all of the single/double precision warnings in test_plane2d.cpp Fix for dTRIMESH_ENABLED support to allow "#define dTRIMESH_ENABLED 0" to disable trimesh operation correctly. NOTE: "#define dTRIMESH_ENABLED" is no longer supported, you must use "#define dTRIMESH_ENABLED 1" to use trimeshes, as per the default config file. Relaxed testing tol for dSINGLE Feature Request [ 1526353 ] - Make 'last transform' a member of the trimesh geom, not trimesh data - to support instancing. New functions: dGeomTriMeshSetLastTransform and dGeomTriMeshGetLastTransform work very similar to before and require minimal user code changes. Added update for recent big changes. [ 1553605 ] New Rotoide - Prismatic Joint [ 1553613 ] Patch to enable the selection of the test in test_joint [ 1553537 ] Optimize when dGYROSCOPIC is not used, by Remi Ricard Patch #[ 1477849 ] Add fct getUniversalAngles by Remi Ricard Applied patch #1553508 "Remove unused variables" by Remi Ricard Fixed a couple of trivial warnings. The composite-body has been overhauled by Geoff Carlton: Support for geom offsets added. The geom transform code has been fixed (centre of mass was off)