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)