summaryrefslogtreecommitdiff
path: root/libs/ode-0.16.1/CHANGELOG.txt
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2022-10-01 20:59:36 -0500
committersanine <sanine.not@pm.me>2022-10-01 20:59:36 -0500
commitc5fc66ee58f2c60f2d226868bb1cf5b91badaf53 (patch)
tree277dd280daf10bf77013236b8edfa5f88708c7e0 /libs/ode-0.16.1/CHANGELOG.txt
parent1cf9cc3408af7008451f9133fb95af66a9697d15 (diff)
add ode
Diffstat (limited to 'libs/ode-0.16.1/CHANGELOG.txt')
-rw-r--r--libs/ode-0.16.1/CHANGELOG.txt1285
1 files changed, 1285 insertions, 0 deletions
diff --git a/libs/ode-0.16.1/CHANGELOG.txt b/libs/ode-0.16.1/CHANGELOG.txt
new file mode 100644
index 0000000..0f0678d
--- /dev/null
+++ b/libs/ode-0.16.1/CHANGELOG.txt
@@ -0,0 +1,1285 @@
+ODE CHANGELOG
+-------------
+
+the rules for this file:
+ * entries are sorted newest-first.
+ * summarize sets of changes - dont reproduce every CVS log comment here.
+ * don't ever delete anything.
+ * keep the format consistent (79 char width, M/D/Y date format).
+
+------------------------------------------------------------------------------
+11/12/2018 Oleh Derevenko
+ * The commentary from 11/05/2018 was wrong. The constraints were not
+ reset to their natural order and remained randomized.
+ The other thing that was missing was full contraint reorder without
+ separation into independent and dependent ones. The algorithm doesn't
+ converge without it well.
+
+11/10/2018 Oleh Derevenko
+ * An incorrect optimization to Jacobian Copy building code from #1938
+ that resulted in corrupt data in multi-threaded execution mode was
+ fixed.
+
+11/05/2018 Oleh Derevenko
+ * An unintended change from commit #1898 has been reverted.
+ The QuickStep used to solve with randomized constraint order
+ each 8th iteration. The other iterations, the constraints
+ were reset to their natural order, as generated, with the dependent
+ constraints gathered in reverse order at end (the reverse order is
+ somehow important). With the commit #1898 the constraints were
+ randomly reordered each 8th iteration but then remained
+ in that randomized order and only were re-randomized on subsequent
+ multiples of 8.
+
+10/09/2017 Markus Rickert
+ * CMake support for project file generation has been added.
+
+06/14/2017 Oleh Derevenko
+ * dxHashSpace::collide() has been changed to fault host program
+ if scene gets too large and causes integer overflow.
+
+06/06/2017 Oleh Derevenko
+ * Memory and pointer size integer type use has been changed so that
+ internal typedefs are used instead of "_t" suffixed types.
+
+05/09/2017 Oleh Derevenko
+ * Introduction of cooperative algorithms API.
+ L*D*LT cooperative factorization and linear equation system
+ cooperative solving have been implemented.
+ * AtomicReadReorderBarrier, AtomicStore, AtomicStorePointer functions
+ have been added and some atomic function implementations have been
+ improved in OU.
+
+02/20/2017 Oleh Derevenko
+ * Project generation options have been changed to have built-in
+ multithreaded threading implementation enabled by default.
+
+02/19/2017 Oleh Derevenko
+ * dWorldStep threaded implementation has been extended to the final
+ steps of constraint force applications and body position updates
+ after the LCP solving. Note that body callbacks (if set) may be
+ called from multiple threads if threaded execution is enabled.
+ * OU atomicord32 type has been fixed to be unsigned on all supported
+ platforms.
+
+01/09/2017 Oleh Derevenko
+ * dGeomTriMeshDataPreprocess2() public function has been added to
+ replace dGeomTriMeshDataPreprocess(). Face angles pre-computation
+ for triangle meshes has been implemented.
+
+11/13/2016 Oleh Derevenko
+ * dGeomTriMeshDataGetBuff and dGeomTriMeshDataSetBuff have been marked
+ deprecated and their functionality implemented via
+ dGeomTriMeshDataGet and dGeomTriMeshDataSet. Extra function variant
+ dGeomTriMeshDataGet2() has been added to allow returning data size.
+
+11/07/2016 Oleh Derevenko
+ * The implementation of OPCODE TriMesh data pre-processing
+ (dGeomTriMeshDataPreprocess()) has been optimized to only contain
+ a sort and a single pass over edges (used to be a sort and O(N^2)).
+
+10/29/2016 Oleh Derevenko
+ * dGeomTriMeshDataPreprocess() public function has been changed to
+ return a boolean status (it can fail in low memory conditions).
+
+07/10/2016 Oleh Derevenko
+ * The correct handling of dJOINT_REVERSE mode for AngularMotor Joint
+ implemented (issue #37).
+
+06/29/2016 Oleh Derevenko
+ * A bug fixed with HashSpace calling big boxes collision twice
+ (both straight and reverse geometries order) since revision #1831.
+
+06/03/2016 Oleh Derevenko
+ * dJointSetHinge2Axes public function has been added and
+ dJointSetHinge2Axis1/2 have been marked deprecated due to being
+ unsafe.
+
+05/13/2016 Oleh Derevenko
+ * ICE Container class allocation strategy fixed to avoid reserving
+ excess memory with large collections.
+
+05/10/2016 Oleh Derevenko
+ * dSafeNormalize3 and dSafeNormalize4 functions changed to leave the
+ parameter intact instead of replacing it with the X-axis unit in case
+ of fault.
+
+04/12/2016 Oleh Derevenko
+ * A function to create a self-threaded threading implementation object
+ has been moved back to public headers as there could be a use for it
+ while running several worlds in parallel threads.
+
+01/09/2016 Oleh Derevenko
+ * Hinge2 joint corected to avoid faulting asserts when the axes get
+ temporarily invalid during assignments (suggested by David Mansolino)
+
+01/03/2016 Oleh Derevenko
+ * An invalid memory access fixed in dxSAPSpace::BoxPruning() in case
+ if there were NaN values in AABBs to be sorted.
+
+12/25/2015 Oleh Derevenko
+ * Unexpected joint mode assignment (instead of comparison) fixed within
+ an dUASSERT in dJointSetTransmissionAxis2() of transmission joint
+
+11/28/2015 Oleh Derevenko
+ * Convex-Trimesh collider added (libccd+GIMPACT only)(by Piotr Piastucki)
+ * dCreateConvex() and dGeomSetConvex() public APIs changed to expect
+ their parameter arrays as const pointers
+
+11/01/2015 Oleh Derevenko
+ * OPCODE mesh colliders' input coordinates have been offset to
+ mesh-relative frames to decrease potential computational errors
+ (suggested by luckytrashsc2@g***l.com)
+
+08/05/2015 Oleh Derevenko
+ * Implemented change to return highest depth contacts subset for GIMPACT
+ in cases if contacts count exceeds requested maximum (as suggested in
+ the issue #36 by Piotr Piastucki)
+
+11/17/2014 Daniel K. O.
+ * Added support for using libccd from the system (if found via
+ pkg-config)
+
+11/10/2014 Oleh Derevenko
+ * Floating point division by zero in capsule-ray collision routine
+ in case if the ray axis was parallel the cylinder and the ray started
+ from within it fixed (issue #26)
+
+11/08/2014 Oleh Derevenko
+ * Threading support has been extended to complete implementation
+ of QuickStep
+
+10/29/2014 Daniel K. O.
+ * Added dJointSetDBallDistance
+
+10/19/2014 Oleh Derevenko
+ * Built-in threading implementation compilation fixed for OSX
+ (clock_gettime() is missing from the system - reported by Bram)
+
+08/10/2014 Oleh Derevenko
+ * Declarations of dWorld[Get/Set]AutoDisableLinearAverageThreshold and
+ dWorld[Get/Set]AutoDisableAngularAverageThreshold have been removed
+ from public headers (were orphaned since rev.1052)
+
+07/16/2014 Oleh Derevenko
+ * Two fixes by Francesco Cat applied (fixes for mistakes made during
+ code style improvements in the past)
+
+02/27/14 Daniel K. O.
+ * Added dODE_VERSION macro to public headers (issue #24).
+
+02/11/14 Daniel K. O.
+ * Added dJointGetHinge2Angle2 (issue #12).
+
+02/07/14 Daniel K. O.
+ * Added dWorldSetData/dWorldGetData (issue #21).
+
+01/31/14 Daniel K. O.
+ * Applied patch #185: Stable, implicit gyroscopic forces.
+
+01/27/14 Daniel K. O.
+ * Fixed cylinder AABB computation.
+
+01/25/14 Daniel K. O.
+ * Removed ALLOCA calls from dHashSpace; it should not depend
+ on stack size limits anymore.
+
+12/06/13 Daniel K. O.
+ * Applied patch #181: fix some bugs in AMotor joint.
+ * Applied patch #186: fix some bugs in PU joint.
+ * Applied patch #182: Transmission joint.
+ * Applied patch #184: implement rolling friction for contacts.
+
+08/08/13 Oleh Derevenko
+ * Joint feedback forces application fixed in QuickStep implementation
+ (was broken since revision #1919 in old repository (#1927 in new one))
+
+08/04/13 Oleh Derevenko
+ * Bugfix #89 by Luc applied (dJointAddSliderForce() adds a zero force
+ when the parent body is NULL)
+
+05/18/13 Oleh Derevenko
+ * OU library has been included in ODE at revision #46 instead of
+ being used as an external link due to difficulties using external
+ references with new protocol used for storage at SF.
+
+03/03/13 Oleh Derevenko
+ * Fixed issue with "findex==-1" constraints being intermixed with
+ "findex!=-1" ones during constraints random reordering in QuickStep.
+
+02/03/13 Oleh Derevenko
+ * [u]int[8/16/32] renamed to contain "d" prefix so that global namespace
+ was not polluted with these names unconditionally.
+ If your project depended on these types other than just for passing
+ parameters to ODE calls, add similar typedefs for yourself in some
+ of your project's global headers.
+
+01/02/13 Oleh Derevenko
+ * Applied patch #183 by Joseph Cooper (complementary matrix
+ calculation fix).
+
+12/28/12 Oleh Derevenko
+ * A bug with heightfield data assigned to a wrong field in
+ dGeomHeightfieldSetHeightfieldData fixed (bug report #88 by Luc).
+
+12/18/12 Oleh Derevenko
+ * Fixed issue with some kinds of joints (Ball, DBall, DHinge, Fixed)
+ might overwrite world ERP value with their custom ERP during
+ getInfo2() call and that inappropriate value would then be passed
+ to subsequent joints in solver instead of world ERP.
+
+12/01/12 Oleh Derevenko
+ * Fixed issues reported in patches #151 and #22 (collisions with
+ SAPSpace and QuadTreeSpace might not work because geometries list
+ was misused in them).
+ * Applied patch #160 "IsPointInPolygon in convex.cpp returns wrong
+ results" (by Janis Rucis)
+
+11/25/12 Oleh Derevenko
+ * Configuration option --disable-threading-intf added
+ (--no-threading-intf for Windows/Premake). This allows disabling
+ threading interface support (external implementations may not be
+ assigned) but eliminates dependency on OU and use of atomics in
+ steppers.
+
+11/05/12 Oleh Derevenko
+ * Fixed zero comparisons in OPCODE to use relative error instead of
+ absolute epsilon value (found by Bill Sellers)
+
+06/08/12 Daniel K. O.
+ * Removed the need for defining dSINGLE/dDOUBLE; this is stored now in
+ the generated ode/precision.h header.
+ * Some code cleanup to get rid of GCC warnings.
+
+05/30/12 Daniel K. O.
+ * Made drawstuff draw shadows for lines.
+ * Fixed dhinge's last constraint to properly handle rotations.
+
+05/03/12 Daniel K. O.
+ * Added two new joints: Double Ball and Double Hinge.
+
+04/22/12 Daniel K. O.
+ * Fixed plane2d joint: uninitialized variables (reported by Dimitris
+ Papavasiliou)
+
+04/14/12 Oleh Derevenko
+ * Assertion checking macros moved into library private headers.
+
+04/13/12 Daniel K. O.
+ * Applied patch from bug #3431829 - better handling of capsule-box with
+ deep penetrations.
+ * Fixed zero-mu issues: now either mu or mu2 can be set to zero.
+
+03/17/12 Oleh Derevenko
+ * Threaded execution support interface added. Optional built-in threading
+ implementation added.
+ Internal threading implementation is excluded by default and to be used,
+ it must be enabled with configure/premake.
+ At present, if threading interface is assigned to a world, island
+ selection and stepping is performed in multiple threads (one thread per
+ island).
+
+03/12/12 Oleh Derevenko
+ * PURE_INLINE macro renamed to ODE_PURE_INLINE and definition of
+ dNextAfter()/dCopySign() corrected to avoid creating conflicts with
+ other libraries.
+
+02/03/12 Oleh Derevenko
+ * Assertion checking macros moved from common.h to error.h
+
+12/18/11 Oleh Derevenko
+ * dIVERIFY macro added (same as dIASSERT in debug mode but evaluates its
+ expression in release mode) to be used to assert variable value
+ which is not used further in text while avoiding compiler warning.
+ * dICHECK macro added (same as dIASSERT but evaluates its expression and
+ raises assertion fault regardless of compilation mode) to be used to
+ generate a fault in cases when error is very unlikely but must be
+ handled and handling is very troublesome (e.g. failure to lock a mutex
+ due to lack of resources).
+
+12/07/11 Oleh Derevenko
+ * Partially fixed size_t to integer conversion warnings
+ * Fixed type signedness and added casts to size_t wherever necessary
+ in Step/QuickStep
+
+11/04/11 Daniel K. O.
+ * Applied patch #3429454 - fix compilation on some platforms.
+
+10/28/11 Daniel K. O.
+ * Fixed a box-capsule bug: more reasonable normal for deep penetrations
+ (contributed by Georg Martius.)
+
+10/27/11 Daniel K. O.
+ * Disabled merging of contacts for trimesh-sphere by default.
+ * Added new demo: demo_tracks.
+
+10/17/11 Daniel K. O.
+ * Added python bindings, contributed by Gideon Klompje.
+ * Updated some build scripts.
+ * Changed spheres distribution in demo_space_stress.
+
+05/17/11 Oleh Derevenko
+ * A typo in step.cpp fixed (assignment operator in a conditional
+ instead of comparison) (reported by Bram Stolk)
+
+01/29/11 Oleh Derevenko
+ * Heightfield zone boundaries calculation code fixed to also consider
+ whole next cell after the AABB if the AABB ends exactly at the cell
+ boundary.
+
+01/23/11 Daniel K. O.
+ * Applied patch from Daniel Fiser, add libccd collider for
+ box-cylinder.
+
+01/20/11 Daniel K. O.
+ * Applied patch from Daniel Fiser, fix infinite loop in libccd caused
+ by numerical problems.
+
+01/06/11 Daniel K. O.
+ * Applied patch from Daniel Fiser, efficient libccd tests when using
+ CONTACTS_UNIMPORTANT.
+
+12/17/10 Daniel K. O.
+ * Applied patches from Daniel Fiser for new colliders based on libccd.
+
+11/08/10 Daniel K. O.
+ * Applied patches from Daniel Fiser to incorporate libccd for
+ Cylinder-Cylinder collision tests.
+
+08/21/10 Oleh Derevenko
+ * Fix applied to dxReallocateTemporayWorldProcessContext() to remove typo
+ which caused segmentation fault (by Kyle McKay).
+ dTestSolveLCP() fixed to avoid exceeding allocated memory pool
+ (by Kyle McKay).
+
+07/19/10 Oleh Derevenko
+ * Patch applied (#3030783) to fix drawstuff dimensions being ignored
+ in OSX GLUT port (by Danny Price).
+
+ Daniel K. O.
+ * Applied patch #2991622: dGeomGetRelPointPos, dGeomGetPosRelPoint,
+ dGeomVectorToWorld, and dGeomVectorFromWorld.
+
+07/16/10 Daniel K. O.
+ * Fixed bug #2937076: don't try to build demos if drawstuff is disabled.
+
+05/02/10 Oleh Derevenko
+ * Missing extern "C" wrapper has been added to include/ode/export-dif.h
+ (reported by Danny Price). The change affects dWorldExportDIF() public
+ function.
+
+05/02/10 Oleh Derevenko
+ * Patch applied (#2995450) to generate up to four contacts for box-
+ plane collision test (by alexdu) and fix contact depths.
+
+05/02/10 Oleh Derevenko
+ * dGeomLowLevelControl function added with ability to change/query OPCODE
+ trimesh-sphere contact merging behavior at runtime.
+
+02/18/10 Daniel K. O.
+ * Fixed bug affecting disabled joints and dWorldStep.
+
+01/16/10 Oleh Derevenko
+ * Patch applied (#2931174) to make demos work for recent MacOS.
+ * Patch applied (#2931177) to fix the demos' framerate on X11.
+
+12/20/09 Oleh Derevenko
+ * QuadTreeSpace implementation corrected to avoid object-block relation
+ ambiguity due to numeric errors.
+
+12/04/09 Oleh Derevenko
+ * odecpp classes changed to be inheritable and easily expandable
+
+11/29/09 Oleh Derevenko
+ * Improvement for trimesh-plane collision (also used in trimesh-heightfield)
+ to exclude mesh vertices that have already generated contacts from further
+ examination and contact generation in other triangles (suggested by LR).
+
+10/25/09 Oleh Derevenko
+ * Macros changed to static inline functions in odemath.h and related files.
+ Some code duplication has been eliminated across the files.
+
+ * Fixed handling of --disable-asserts and --enable-double-precision
+ (absence of --enable-double-precision) in configure script. The script
+ was not appending compiler defines correctly.
+
+ * dWorldStep implementation changed to remove allocation on stack.
+ dUSE_MALLOC_FOR_ALLOCA define has been removed as well as corresponding
+ configuration parameter. Also dMemoryFlag public variable has been removed.
+ (look for presence of ODE_EXT_malloc_not_alloca configuration string if
+ your application is dependent on that variable).
+
+09/05/09 Oleh Derevenko
+ * dWorldStepFast1 API removed along with dWorld[Get/Set]AutoEnableDepthSF1
+
+08/29/09 Oleh Derevenko
+ * Fixed uninitialized floating point array used in computations.
+
+08/12/09 Oleh Derevenko
+ * A typo fixed in dGeomCopyOffsetRotation() (final_posr was used instead
+ of offset_posr). Reported by Tilmann.
+
+08/11/09 Daniel K. O.
+ * Made sure neither dSINGLE or dDOUBLE is defined by default; the user
+ should always explicitly specify the precision.
+
+06/27/09 Oleh Derevenko
+ * New functions have been added:
+ - dWorldUseSharedWorkingMemory
+ - dWorldCleanupWorkingMemory
+ - dWorldSetStepMemoryReservationPolicy
+ - dWorldSetStepMemoryManager
+
+06/25/09 Remi Ricard (papaDoc)
+ * Add limit to the to the second axis of the universal joint
+ for the pu joint.
+
+06/14/09 Oleh Derevenko
+ * dWorldQuickStep re-implemented to avoid memory allocation on stack.
+ Also several optimizations have been made to decrease memory
+ requirements and optimize algorithm implementation of dWorldQuickStep.
+ dWorldStep still remains with old memory allocation however new APIs
+ mentioned below are fully functional for it.
+ Both dWorldStep and dWorldQuickStep have been changed to return boolean
+ success status.
+
+ * dInitODE2() changed to automatically call
+ AllocateODEDataForThread(dAllocateFlagBasicData) after library
+ initialization as this is a required initialization minimum that
+ must always be performed anyway.
+
+06/05/09 Daniel K. O.
+ * Removed aliasing issues from OPCODE/Ice, plus some other warnings.
+ Now it builds on gcc 4.3.2 with '-Wall -Werror -O3".
+
+05/30/09 Oleh Derevenko
+ * A minor memory usage optimization for QuickStep.
+
+05/24/09 Daniel K. O.
+ * Made the new trimesh collider the default.
+ * Added a "-texturepath" option to drawstuff.
+
+05/18/09 Oleh Derevenko
+ * Heightfield rotation fixed to avoid NaNs while rotating infinite
+ MIN/MAX heights.
+
+05/03/09 Oleh Derevenko
+ * Incorrect parameter order fixed on contact merging in Sphere-Trimesh
+ collisions. The bug resulted in merged contact remaining with normal
+ of first contact found. Thanks to Dimitris Papavasiliou for reporting.
+
+04/23/09 Daniel K. O.
+ * Fixed bug #2685170: use the C99 __func__ instead of __FUNCTION__ when
+ a C99 implementation is available.
+
+04/07/09 Remi Ricard (papaDoc)
+ * Remove unused code in demo_joints.cpp, reported by Tilmann.
+
+04/07/09 Remi Ricard (papaDoc)
+ * Fix bug in collision categories in demo_jointPU, reported by Tilmann
+
+03/14/09 Oleh Derevenko
+ * A possibility to initialize/close ODE multiple times recursively has
+ been added.
+ Also, now a call to dSpaceSetManualCleanup() is required for each
+ space right after creation if ODE has been initialized in thread data
+ manual cleanup mode.
+
+03/07/09 Oleh Derevenko
+ * Thread local data has been cleaned up from OPCODE and OdeTls as it is
+ not used (OPC_SweepAndPrune.* and OPC_BoxPruning.* have been removed
+ - rebuilding project files is necessary).
+
+02/07/09 Daniel K. O.
+ * New house of cards demo, which stresses the friction handling stability.
+
+01/29/09 Remi Ricard (papaDoc)
+ * Fix bug: Fix problem when attaching no body to a joint. Before calling
+ setRelativeValues a check is made for bodies.
+ * Add unittest
+
+01/28/09 Daniel K. O.
+ * Applied patch #2538046: Heightfield AABB bounds patch.
+
+01/23/09 Remi Ricard (papaDoc)
+ * Add new function dJointSetUniversalAxis1Offset and dJointSetUniversalAxis2Offset
+ * Add unittest for those funcitons.
+
+01/23/09 Remi Ricard (papaDoc)
+ * Fix problem with dJointGetUniversalAngle2 when the joint is attached to
+ only a body 2. The sign was inverted.
+ * Add unit test to verify for this problem
+
+01/21/09 Remi Ricard (papaDoc)
+ * Fix bug reported by Tilman: dxJointPU::getInfo1 was setting twice the
+ limit of limot1 to zero and not limot2
+
+01/17/09 Daniel K. O.
+ * Fixed a bug in dSpaceCollide2: if both geoms are not in spaces they would
+ not have valid AABBs.
+
+12/20/08 Daniel K. O.
+ * New functions: dJointEnable, dJointDisable, dJointIsEnabled
+ (patch #2454764).
+
+12/19/08 Daniel K. O.
+ * Removed inline asm statements that break builds on 64-bit VC++.
+
+12/09/08 Daniel K. O.
+ * Applied patch #2381592, which adds support for Kinematic Bodies.
+
+12/06/08 Oleh Derevenko
+
+ * Applied a patch by Martijn Buijs to make GIMPACT trimesh-ray collisions to
+ be consistent with those in OPCODE.
+ * Swapped geometries returned in contacts for OPCODE Trimesh-Plane collisions
+ as they were returned in unnatural order being different from that in GIMPACT
+ * Applied a patch by Martijn Buijs to make side1, side2 fields of contact
+ structure be always initialized, either with -1 for non-trmesh geometries
+ or with triangle index for trimeshes. These fields were only assigned for
+ trimesh-trimesh collisions before.
+ * dGeomTriMeshSetTriMergeCallback/dGeomTriMeshGetTriMergeCallback API added
+ to set/get user defined callback procedure for trimeshes that would be
+ invoked when contacts are merged to let user code accumulate attributes of
+ original contact triangles and generate a fake index by which it would
+ later be able to determine those attributes. If the callback is not
+ assigned (the default) -1 is generated as triangle index for merged
+ contacts (there was an index of first of merged triangles before!!!).
+ The callback is currently used within OPCODE trimesh-sphere and OPCODE
+ new trimesh-trimesh collisions.
+
+11/20/08 Remi Ricard (papaDoc)
+ * Fix problem with dJointGetPUPosition and
+ dJointGetPUPositionRate when the joint is attached to only
+ a body 2. The sign was inverted.
+ * Fix bug: When a pu joint had only one body attached to position 2,
+ dJointAttach(jId, 0, bId). The body was not push in the right direction to
+ move back between the limits.
+ * Add unit test to check the above problem
+ * Add the function void dJointSetPUAnchorOffset
+ * Make the function void dJointSetPUAnchorDelta deprecated
+
+11/19/08 Remi Ricard (papaDoc)
+ * Fix bug: When a pr joint had only one body attached to position 2,
+ dJointAttach(jId, 0, bId). The body was not push in the right direction to
+ move back between the limits.
+ * Add unit test to check the above problem
+
+11/19/08 Remi Ricard (papaDoc)
+ * Fix problem with dJointGetPRPosition and
+ dJointGetPRPositionRate when the joint is attached to only
+ a body 2. The sign was inverted.
+ * Add unit test to check the above problem
+ * Increase the tolerance to remove failure in unit test
+ * Remove compilation warning in unit test with the use of REAL()
+
+11/18/08 Remi Ricard (papaDoc)
+ * Fix bug: When a piston joint had only one body attached to position 2,
+ dJointAttach(jId, 0, bId). The body was not push in the right direction to
+ move back between the limits.
+ * Add more functionality to demo_piston.cpp
+ * Run astyle on modified files.
+
+11/18/08 Remi Ricard (papaDoc)
+ * Fix bug: When a slider joint had only one body attached to position 2,
+ dJointAttach(jId, 0, bId). The body was not push in the right direction to
+ move back between the limits.
+
+10/29/08 Oleh Derevenko
+
+ * Premake scripts changed to only include chosen collision library
+ sources in project on Windows. --all-collis-libs premake option
+ added to allow inclusion of all collision library sources into the
+ project
+
+10/15/08 Remi Ricard (papaDoc)
+ * Applying patch #2158425 64-bit GIMPACT provided by Mark
+ William. This patch enable GIMPACT to works on 64-bit machine.
+
+10/15/08 Remi Ricard (papaDoc)
+ * Add function dJointGetPRAngle and dJointGetPRAngleRate
+
+10/15/08 Remi Ricard (papaDoc)
+ * Enable the motor on the rotoide part of the PR joint
+
+10/15/08 Remi Ricard (papaDoc)
+ * Add unit test to check if using directly a joint
+ or using after setting with default values is the same.
+ * Add function setRelativeValues called in dJointAttach for
+ all joints.
+
+10/10/08 Remi Ricard (papaDoc)
+ * Fix bug in dJointGetPUAxis2. The axis was not multiplied with the
+ the rotation matrix of the good body.
+ * Fix bug if there is only one body on the PU joint the axis returned
+ was not the right one.
+ * Add unit test to verify previous bug.
+
+10/03/08 Rodrigo Hernandez (Kwizatz)
+ * Added Blender script to create ODE convex geoms under tools.
+
+10/01/08 Rodrigo Hernandez (Kwizatz)
+ * Convex-Convex collision detection code is finally stable.
+
+08/31/08 Daniel K. O.
+ * Applied patch 2080674: Improved dBodySetRotation; now exact rotation
+ matrices are preserved until the next simulation step.
+
+08/07/08 Daniel K. O.
+ * Fixed strict aliasing issue that was breaking the new trimesh collider.
+
+07/24/08 Daniel K. O.
+ * New functions: dBodyGetGyroscopicMode and dBodySetGyroscopicMode
+ (patch #2019242).
+
+07/15/08 Remi Ricard (papaDoc)
+ * Add a new define ODE_API_DEPRECATED to mark function as deprecated
+ when necessary.
+
+07/14/08 Remi Ricard (papaDoc)
+ * Finish adding patch 1336066: Joint feedback in quickstep by jsinecky
+ * demo_boxstack.cpp can now print joint feedback
+
+07/11/08 Daniel K. O.
+ * Bumped version for 0.10.1
+ * Added proper usage of libtool's version info.
+
+07/10/08 Remi Ricard (papaDoc)
+ * Add new function dJointSetPistonAnchorOffset
+ * Add unittest for the piston joint
+ * Fix problem with dJointGetPistonPosition and
+ dJointGetPistonPositionRate when the joint is attached to only
+ a body 2. The sign was inverted.
+
+07/09/08 Remi Ricard (papaDoc)
+ * Optimize function Multiply1_12q1 in quickstep
+ Patch proposed by Riemer v.d. Zee and modified by Patrick Baggett
+
+07/08/08 Remi Ricard (papaDoc)
+ * Update the slider joint to have the same behavior as the other joint
+ when there is only a body2 attached to it.
+ * Update documentation for the slider joint.
+ * Remove warning by using REAL()
+ * Add new unittest for dJointGetSliderPositionRate
+
+07/08/08 Remi Ricard (papaDoc)
+ * Update unittest for the slider.
+ * Rename the new function dJointSetHingeAxisDelta to
+ dJointSetHingeAxisOffset. This remove will remove confusion with
+ the old function dJointSetHingeAnchorDelta
+ * Update documentation for the Hinge unittest
+ * Remove warning by using REAL()
+
+07/07/08 Daniel K. O.
+ * Max Correcting Vel doesn't affect bounciness, as before.
+
+07/03/08 Remi Ricard (papaDoc)
+ * Add new function dJointSetHingeAxisDelta
+ * Add unittest for this new function
+
+06/17/08 Remi Ricard (papaDoc)
+
+ * Move the computation of the Relative Rotation for the slider joint
+ into a function.
+ * Add unittest for to check qrel
+
+06/17/08 Remi Ricard (papaDoc)
+
+ * Remove unused variables.
+ * Remove a conversion warning between unsigned int and int
+
+06/17/08 Remi Ricard (papaDoc)
+
+ * Move the function hingeComputeRelativeRotation as a member of
+ the hinge structure/class.
+
+06/17/08 Remi Ricard (papaDoc)
+
+ * Move the computation of the Relative Rotation for the fixed joint
+ into a function.
+
+06/16/08 Remi Ricard (papaDoc)
+
+ * Add testunit for the dxJointFixed
+
+06/04/08 Daniel K. O.
+
+ * Moved joints to ode/src/joints, converted them to true virtual
+ methods.
+
+06/02/08 Daniel K. O.
+
+ * Added an Auto<T> template to step.cpp to handle memory deallocation.
+
+05/09/08 Daniel K. O.
+
+ * Applied patch #1335202: Contact Joint Motion (with some corrections),
+ and added demo_motion.
+
+05/01/08 Oleh Derevenko
+
+ * Memory leak in GIMPACT fixed (reported by Derek)
+
+04/28/08 Oleh Derevenko
+
+ * Added possibility to collide a space of lower sublevel as a geometry
+ against another space of a higher level with dSpaceCollide2.
+ dSpaceSetSublevel/dSpaceGetSublevel are used for sublevel assignment/
+ retrieval.
+
+04/27/08 Oleh Derevenko
+
+ * Fixed incorrect memory copying which could lead to memory corruption
+ in GIMPACT (luckily, in unused code)
+ * Fixed possible memory read beyond the end of allocated buffer along
+ with unnecessary extra memory copying in GIMPACT.
+ * Fixed buffer reserve being incorrectly reset to zero for bitsets
+ what resulted in unnecessary memory reallocations in GIMPACT.
+ * Implemented support for ability to run collision detection from
+ multiple threads for separate spaces.
+
+04/14/08 Oleh Derevenko
+
+ * Fixed possible memory corruption in new trimesh-trimesh collider
+ in case if two degenerated triangles are checked against each other.
+
+04/12/08 Oleh Derevenko
+
+ * Fixed sporadic assertion failure on vector normalization caused
+ by small triangles degenerating into segments during space
+ transformations.
+
+03/28/08 Remi
+
+ * Fix a bug in dJointXXXGetInfo. The value in limot.limit was not
+ always updated. (Ex: If hi and lo limit were changed).
+
+03/27/08 Remi
+
+ * Added a new Joint: Prismatic Universal (patch #1828454).
+
+ Daniel K. O.
+
+ * Fixed bug #1841309: collide2() method buggy.
+
+03/18/08 Rodrigo
+
+ * New function: dVector4Copy.
+
+03/14/08 david
+
+ * Added stub calls for trimesh functions.
+ * Applied patch #1914232: dGetConfiguration.
+ * Applied patch #1655333: Optimize the function dNormalize3.
+ * New function: dSetColliderOverride.
+ * New function: dCheckConfiguration.
+
+ Daniel K. O.
+
+ * Disabled building shared library by default with autotools.
+
+03/13/08 david
+
+ * New function: dJointGetNumBodies (patch #1901550).
+ * New function: dSpaceGetClass (patch #1901637).
+ * Applied patch #1901649: Add missing function in the export
+
+03/12/08 Rodrigo
+
+ * Fixed drawstuff build issues on OSX.
+
+01/12/08 Daniel K. O.
+
+ * Fixed a typedef bug in configure.in.
+ * Added dCylinder to the C++ wrappers.
+ * Applied patch 1851394: support for GIMPACT with double precision,
+ dCollide fix.
+ * Moved bunny geometry to bunny_geom.h.
+
+12/11/07 Daniel K. O.
+
+ * Added damping and MaxAngularVel() functions.
+ * Const-correctness: added const qualifier to some dWorldGet and dBodyGet
+ functions.
+ * Updated the odecpp.h header.
+
+12/07/07 Daniel K. O.
+
+ * Removed most of the compiler warnings from Drawstuff, ODE and
+ OPCODE
+ * Upgraded automake requirement to 1.10, and change some Makefile.am
+
+12/06/07 Rodrigo
+
+ * Modified autotools to use libtool for
+ library generation and administration
+ * Removed release and debug flags for configure.in
+ CPPFLAGS, CFLAGS, CXXFLAGS should be set by the
+ user to their liking, respecting autotools policies.
+
+11/30/07 Daniel K. O.
+ * Applied patch 1813079 (moved callback)
+ * Replaced moveAndRotateBody by dxStepBody in stepfast.cpp
+
+11/10/07 david
+
+ * Added 'Sweep and Prune' collision space.
+ * New Piston joint type with demo, by Remi Ricard
+ * Added build option to use 16-bit indices for OPCODE trimesh
+
+11/03/06 david
+
+ * Integrated Christoph Beyer's average based sampling system for body
+ disabling.
+
+10/26/06 Francisco Leon
+
+ * Totally refactored trimesh collision system.
+ Using GIMPACT instead of OPCODE. Now works correctly, and faster.
+ Visit http://gimpact.sourceforge.net.
+
+ * Finally, test_moving_trimesh.exe works nicely.
+
+ * Fixed autodisable system. Now is possible to set bigger sleeping
+ threshold values and objects won't be sleeping on the air. They will
+ rest on the floor properly.
+
+ * dInitODE function added.
+
+ * Is Obligatory to call dInitODE() at the beginning for initialize ODE,
+ and calling dCloseODE() when the program ends.
+
+09/20/06 bram
+
+ * Fixed two bugs in cyl/plane collision test.
+
+09/13/06 Remi
+
+ * New Rotoide - Prismatic joint type
+ * dJointGetUniversalAngles for efficient angle retrieval.
+
+08/09/06 david
+
+ * Integrated plane2d joint type which constrains bodies to z == 0.
+
+07/06/06 david
+
+ * Added heightfield primitive collision code. Simple test available in
+ ode/test/test_heightfield
+
+04/03/06 rodrigo
+
+ * Added Convex primitive collision code,
+ currently only convex-sphere and convex-plane work
+
+04/01/06 bram
+
+ * Added program to test trimesh vs sphere: ode/test/test_basket
+
+03/20/06 jason379
+
+ * Added new autogenerated Visual Studio projects, with Premake scripts
+
+03/17/06 bram
+
+ * Added plane/cyl intersection test
+ * Renamed CCylinder to Capsule
+
+02/04/06 gcarlton
+
+ * Added support for geom offsets.
+
+10/26/05 rodrigo
+
+ * Removed LIBTOOL from autotools since it was not really required.
+ * Added a target to build ODE as a shared library, this shared
+ library gets build alongside the static one, no flags required.
+
+10/24/05 tfautre
+
+ (Backported patches from STABLE branch, applied by Adam)
+
+ * dRandInt changed for a non-double all-int version.
+ * mics minor fixes and improvements.
+
+04/05/05 tfautre
+
+ * Fixed segmentation fault with OPCODE on 64 bits systems.
+
+03/31/05 tfautre
+
+ * Fixed timer.cpp compiler error on x86-64 using GCC.
+
+03/29/05 colin
+
+ * Added trimesh preprocessing to mark unneeded edges and verts. Also
+ added support for preprocessed info to the ccylinder-trimesh
+ collider.
+
+12/07/04 adam
+
+ * Important AMotors bugfix
+
+09/22/04 jeff
+
+ * Assorted small bugfixes and tweaks for
+ trimesh_{box,ccylinder,trimesh} collisions
+
+09/21/04 jeff
+
+ * added functions to joint.cpp to allow joint attachment to moving
+ geoms.
+
+ * added malloc-based memory allocation in step.cpp & lcp.cpp (turned
+ on with a #define switch in common.h)
+
+05/29/04 russ
+
+ * added joint feedback to the QuickStep solver
+
+05/18/04 russ
+
+ * added warm starting to the QuickStep solver
+
+05/18/04 russ
+
+ * added the QuickStep solver
+
+ * added contact parameter functions.
+
+05/05/04 adam
+
+ * use dRandInt instead of rand() in stepfast.
+
+04/21/04 russ
+
+ * added auto-disable support from Aras Pranckevicius (with
+ modifications by russ). this useful feature can speed up
+ simulation significantly in some cases.
+
+ * various internal tidyups.
+
+04/20/04 russ
+
+ * changed the meaning of the 'index' argument to dJointGetBody():
+ it was the only remaining API function that does not respect
+ dJOINT_REVERSE (spotted by Matthew D. Hancher).
+
+ * updated the C++ headers: fixed two minor bugs and added
+ support for dQuadTreeSpace, dRay, and the dGeom::getSpace() method
+ (from Matthew D. Hancher).
+
+04/18/04 russ
+
+ * changed the way that the dInfinity constant is implemented: now it
+ is #defined to be one of: FLT_MAX, DBL_MAX, HUGE_VAL, HUGE_VALF, or
+ a large numeric constant. previously it was a variable that was
+ exported from the library. this simplifies the configuration and
+ build process quite a bit, especially in the case of DLLs.
+
+ * removed the old, deprecated collision system (geom.cpp,space.cpp,
+ geom.h,space.h,odecpp_old_collision.h). the ODE_OLD_COLLISION
+ configuration setting no longer has any meaning.
+
+ * removed support for dGeomGroups, which have been deprecated for
+ a while and are equivalent to 'spaces' anyway.
+
+04/13/04 russ
+
+ * bug fix in dMassSetCappedCylinder(), from Matthew D. Hancher.
+
+04/08/04 russ
+
+ * added trimesh-CCylinder capability, from Vadim Macagon
+ <vadim_mcagon@hotmail.com>.
+
+04/04/04 adam
+
+ * yet another rewrite of triangle-box collision code, this
+ time based on code donated by Croteam, ported by asko@jetti.org
+ and tweaked by Erwin.
+
+04/04/04 adam
+
+ * merged trimesh-trimesh collision code by
+ Jeffrey Smith <jeffreys@Softimage.com>.
+
+ * changed it to not break the trimesh interface, fix
+ some GCC compilation problems, bring it up to date with
+ ODE changes from 2003-11-15 -> 2004-04-04.
+
+ * add ability to drop meshes on meshes in test_moving_trimesh,
+ not as good as it could be but it's illustrative.
+
+01/16/04 adam
+
+ * implement a bunch of ultra-simple TriMesh functions that were
+ in the headers but not in the code -- patch by
+ Vadim Macagon <vadim_mcagon@hotmail.com>
+
+ * disable temporal coherence on trimeshes by default, since
+ it has scaleability issues that don't make it a general clear win.
+
+12/01/03 adam
+
+ * implement dxHashSpace::collide2(), not particularly efficiently.
+
+11/14/03 adam
+
+ * applied several Trimesh fixes and improvements from
+ Aras Pranckevicius <nearaz@interamotion.com>
+
+10/22/03 adam
+
+ * apply Nguyen Binh's work for removing many dSetZero() calls
+ and some other extraneous initializations.
+
+07/29/03 martin
+
+ * added dJointAdd*Torque/Force().
+
+07/10/03 russ
+
+ * added the StepFast code, by David Whittaker.
+
+07/02/03 martin
+
+ * added dMassSet*Total().
+
+07/01/03 martin
+
+ * added joint limits and motors to universal joints.
+
+ * reversed the polarity of the dJOINT_REVERSE flag.
+
+06/30/03 russ
+
+ * added the TriMesh geom class and the quad tree space to the ODE
+ core. both of these were developed by Erwin de Vries. added OPCODE
+ to the ODE distribution, this is required by TriMesh.
+
+06/23/03 martin
+
+ * added dGeomSetQuaternion() and dGeomGetQuaternion()
+
+ * added dJointGet*Anchor2()
+
+05/07/03 russ
+
+ * added dGeomGetSpace().
+
+02/05/03 russ
+
+ * added dMassSetCylinder().
+
+12/07/02 russ
+
+ * added dAreConnectedExcluding().
+
+11/30/02 russ
+
+ * added the ray geom class.
+
+ * added the dGeomXXXPointDepth() functions.
+
+ * added a collision test infrastructure, and some more tests.
+
+11/24/02 russ
+
+ * added support for multiple box-box contacts.
+
+11/10/02 russ
+
+ * added new collision system. select between the old/new system by
+ setting the ODE_OLD_COLLISION variable in config/user-settings.
+
+10/28/02 russ
+
+ * fixed two problems in the LCP code to improve the reliability of
+ the dContactApprox1 contact mode.
+
+ * added a FAQ question about rolling bodies getting stuck when they
+ hit multiple geoms.
+
+09/08/02 russ
+
+ * added dClosestLineSegmentPoints().
+ * implemented dCollideCB().
+
+08/28/02 russ
+
+ * added dJointSetFeedback() and dJointGetFeedback().
+
+08/05/02 russ
+
+ * added dGeomTransformSetInfo() and dGeomTransformGetInfo().
+
+07/13/02 russ
+
+ * added dBodySetForce(), dBodySetTorque(), dWorldImpulseToForce(),
+ dBodyGetPosRelPoint(), dBodyGetPosRelPoint(), dBodyVectorToWorld(),
+ dBodyVectorFromWorld().
+
+ * added dBodyGetPointVel() (thanks to Colin Reed).
+
+ * added a new C++ interface (from Martin C. Martin, with modifications
+ by russ). the old C++ interface is now in odecpp_old.h.
+
+06/25/02 russ
+
+ * added an additional BSD-style licensing option for ODE.
+
+06/23/02 russ
+
+ * added dCloseODE(), contributed by Nate Waddoups and David McClurg.
+
+05/16/02 russ
+
+ * added dSpaceQuery(), contributed by Nate Waddoups.
+
+04/07/02 russ
+
+ * added a section to the documentation for universal joints.
+ this includes a picture of the joint.
+
+04/05/02 russ
+
+ * added a universal joint class (generously contributed by
+ Martin C. Martin). it doesn't (yet) have a motor or joint limits,
+ but it does come with tests.
+
+03/11/02 russ
+
+ * makefile changes to accomodate OSs with command line length
+ limitations (thanks to Norman Lin).
+
+01/06/02 russ
+
+ * added the dBodySetGravityMode() and dBodyGetGravityMode()
+ functions, which change the dxBodyNoGravity body flag.
+
+ * added support for building a DLL with MSVC - there is now a
+ msvc-dll target. thanks to Norman Lin for doing this.
+
+12/28/01 russ
+
+ * added the dParamCFM joint parameter.
+
+12/24/01 russ
+
+ * reworked the build system to make it more cross-platform.
+ there is now a single top-level makefile and a configurator.c
+ program. see the INSTALL file for details.
+
+12/04/01 russ
+
+ * the "angular motor" joint has been completed, and a new section
+ has been added to the documentation.
+
+11/26/01 russ
+
+ * added a new joint type: "angular motor". using this joint is a good
+ way to get ball-joint motors and limits. this is work in progress -
+ it has not been fully implemented or tested yet.
+
+11/22/01 russ
+
+ * replaced the mmap()-based joint group stack (stack.cpp) with a
+ malloc()-based arena stack (obstack.cpp). this will be more
+ portable and should not impact performance.
+
+11/12/01 russ
+
+ * changed the meaning of the 'flags' parameter to dCollide() and
+ related functions: now the size of the contact buffer is kept in
+ the lower 16 bits. this change will be backward compatible.
+
+ * added dBodyGetFiniteRotationMode() and dBodyGetFiniteRotationAxis().
+
+ * added dBodyAddForceAtRelPos() function.
+
+11/11/01 russ
+
+ * added the ability to manually enable and disable bodies.
+ see dBodyEnable(), dBodyDisable(), dBodyIsEnabled().
+
+ * fixed a potential bug: when a world is destroyed that contains
+ joints in joint groups, those joints are marked as "deactivated" in
+ the joint group, so when the joint group is destroyed they can be
+ ignored.
+
+ * the test_boxstack demo has new options to enable and disable bodies.
+
+ * new configuration parameter in config.h: dEFFICIENT_SIZE.
+
+11/11/01 russ
+
+ * started the change log for ODE. changes older than today were added
+ to this file by inspecting the CVS logs.
+
+11/05/01 russ
+
+ * added REAL() constructions for floating point numbers, to prevent
+ many warnings when compiling under VC++.
+
+11/03/01 russ
+
+ * added geometry transform class, documented composite objects.
+
+ * added collision rule: no contacts if both geoms on the same body.
+ this is not the best rule, may have to remove this in the future.
+
+ * new dMassAdd() function.
+
+ * capped cylinder to capped cylinder collision function.
+
+10/31/01 russ
+
+ * increase CFM in some demos to make them more robust.
+
+10/29/01 russ
+
+ * added new accessor functions.
+
+10/19/01 russ
+
+ * added the dJOINT_TWOBODIES flag to the joint, that says it can not
+ be attached to just one body.
+
+10/12/01 russ
+
+ * fixed a collision bug in dCollide() that was causing memory
+ corruption when multiple contacts were being returned.
+
+10/11/01 russ
+
+ * joints can now return m=0 to be "inactive". added a "null" joint
+ to test this.
+
+10/09/01 russ
+
+ * in the LCP solver, try to fail gracefully when s <= 0.
+
+ * dAABBTestFn() API change.
+
+10/08/01 russ
+
+ * fixed a contact swapping bug in dCollide().
+
+10/07/01 russ
+
+ * added capped cylinder geometry object.
+
+09/30/01 russ
+
+ * the test_buggy demo now uses geometry groups.
+
+ * added a dAABBTestFn field in the geometry classes.
+
+09/29/01 russ
+
+ * added geometry groups.
+
+09/20/01 russ
+
+ * added finite rotation stuff.