Cosmetic: Changelog updated for previous commit
[ode.git] / CHANGELOG.txt
blobfa1ff7d673f689c036d9e4414488fe4548c49777
1 ODE CHANGELOG
2 -------------
4 the rules for this file:
5   * entries are sorted newest-first.
6   * summarize sets of changes - dont reproduce every CVS log comment here.
7   * don't ever delete anything.
8   * keep the format consistent (79 char width, M/D/Y date format).
10 ------------------------------------------------------------------------------
11 12/06/08 Oleh Derevenko
13        * Applied a patch by Martijn Buijs to make GIMPACT trimesh-ray collisions to
14          be consistent with those in OPCODE.
16 11/20/08 Remi Ricard (papaDoc)
17        * Fix problem with dJointGetPUPosition and
18          dJointGetPUPositionRate when the joint is attached to only
19          a body 2. The sign was inverted.
20        * Fix bug: When a pu joint had only one body attached to position 2,
21          dJointAttach(jId, 0, bId). The body was not push in the right direction to
22          move back between the limits.
23        * Add unit test to check the above problem
24        * Add the function void dJointSetPUAnchorOffset
25        * Make the function void dJointSetPUAnchorDelta deprecated
27 11/19/08 Remi Ricard (papaDoc)
28        * Fix bug: When a pr joint had only one body attached to position 2,
29          dJointAttach(jId, 0, bId). The body was not push in the right direction to
30          move back between the limits.
31        * Add unit test to check the above problem
33 11/19/08 Remi Ricard (papaDoc)
34         * Fix problem with dJointGetPRPosition and
35           dJointGetPRPositionRate when the joint is attached to only
36           a body 2. The sign was inverted.
37         * Add unit test to check the above problem
38         * Increase the tolerance to remove failure in unit test
39         * Remove compilation warning in unit test with the use of REAL()
41 11/18/08 Remi Ricard (papaDoc)
42        * Fix bug: When a piston joint had only one body attached to position 2,
43          dJointAttach(jId, 0, bId). The body was not push in the right direction to
44          move back between the limits.
45        * Add more functionality to demo_piston.cpp
46        * Run astyle on modified files.
48 11/18/08 Remi Ricard (papaDoc)
49         * Fix bug: When a slider joint had only one body attached to position 2,
50          dJointAttach(jId, 0, bId). The body was not push in the right direction to
51          move back between the limits.
53 10/29/08 Oleh_Derevenko
55         * Premake scripts changed to only include chosen collision library
56           sources in project on Windows. --all-collis-libs premake option 
57           added to allow inclusion of all collision library sources into the 
58           project
60 10/15/08 Remi Ricard (papaDoc)
61         * Applying patch #2158425 64-bit GIMPACT provided by Mark
62           William. This patch enable GIMPACT to works on 64-bit machine.
64 10/15/08 Remi Ricard (papaDoc)
65         * Add function dJointGetPRAngle and dJointGetPRAngleRate
67 10/15/08 Remi Ricard (papaDoc)
68         * Enable the motor on the rotoide part of the PR joint
70 10/15/08 Remi Ricard (papaDoc)
71         * Add unit test to check if using directly a joint
72           or using after setting with default values is the same.
73         * Add function setRelativeValues called in dJointAttach for
74           all joints.
76 10/10/08 Remi Ricard (papaDoc)
77         * Fix bug in dJointGetPUAxis2. The axis was not multiplied with the
78           the rotation matrix of the good body.
79         * Fix bug if there is only one body on the PU joint the axis returned
80           was not the right one.
81         * Add unit test to verify previous bug.
83 10/03/08 Rodrigo Hernandez (Kwizatz)
84         * Added Blender script to create ODE convex geoms under tools.
86 10/01/08 Rodrigo Hernandez (Kwizatz)
87         * Convex-Convex collision detection code is finally stable.
89 08/31/08 Daniel K. O.
90         * Applied patch 2080674: Improved dBodySetRotation; now exact rotation
91           matrices are preserved until the next simulation step.
93 08/07/08 Daniel K. O.
94         * Fixed strict aliasing issue that was breaking the new trimesh collider.
96 07/24/08 Daniel K. O.
97         * New functions: dBodyGetGyroscopicMode and dBodySetGyroscopicMode
98           (patch #2019242).
100 07/15/08  Remi Ricard (papaDoc)
101         * Add a new define ODE_API_DEPRECATED to mark function as deprecated
102           when necessary.
104 07/14/08 Remi Ricard (papaDoc)
105         * Finish adding patch 1336066: Joint feedback in quickstep by jsinecky
106         * demo_boxstack.cpp can now print joint feedback
108 07/11/08 Daniel K. O.
109         * Bumped version for 0.10.1
110         * Added proper usage of libtool's version info.
112 07/10/08 Remi Ricard (papaDoc)
113         * Add new function dJointSetPistonAnchorOffset
114         * Add unittest for the piston joint
115         * Fix problem with dJointGetPistonPosition and 
116           dJointGetPistonPositionRate when the joint is attached to only
117           a body 2. The sign was inverted.
119 07/09/08 Remi Ricard (papaDoc)
120         * Optimize function Multiply1_12q1 in quickstep
121           Patch proposed by Riemer v.d. Zee and modified by Patrick Baggett
123 07/08/08 Remi Ricard (papaDoc)
124         * Update the slider joint to have the same behavior as the other joint
125           when there is only a body2 attached to it.
126         * Update documentation for the slider joint.
127         * Remove warning by using REAL()
128         * Add new unittest for dJointGetSliderPositionRate
130 07/08/08 Remi Ricard (papaDoc)
131         * Update unittest for the slider.
132         * Rename the new function dJointSetHingeAxisDelta to 
133           dJointSetHingeAxisOffset. This remove will remove confusion with 
134           the old function dJointSetHingeAnchorDelta
135         * Update documentation for the Hinge unittest
136         * Remove warning by using REAL()
138 07/07/08 Daniel K. O.
139         * Max Correcting Vel doesn't affect bounciness, as before.
141 07/03/08 Remi Ricard (papaDoc)
142         * Add new function dJointSetHingeAxisDelta
143         * Add unittest for this new function
145 06/17/08 Remi Ricard (papaDoc)
147         *  Move the computation of the Relative Rotation for the slider joint
148            into a function.
149         * Add unittest for to check qrel 
151 06/17/08 Remi Ricard (papaDoc)
153        * Remove unused variables. 
154        * Remove a conversion warning between unsigned int and int
155         
156 06/17/08 Remi Ricard (papaDoc)
158         * Move the function hingeComputeRelativeRotation as a member of 
159           the hinge structure/class.
161 06/17/08 Remi Ricard (papaDoc)
163         *  Move the computation of the Relative Rotation for the fixed joint
164            into a function.
166 06/16/08 Remi Ricard (papaDoc)
168         * Add testunit for the dxJointFixed
170 06/04/08 Daniel K. O.
172         * Moved joints to ode/src/joints, converted them to true virtual
173           methods.
175 06/02/08 Daniel K. O.
177         * Added an Auto<T> template to step.cpp to handle memory deallocation.
179 05/09/08 Daniel K. O.
181         * Applied patch #1335202: Contact Joint Motion (with some corrections),
182           and added demo_motion.
184 05/01/08 Oleh_Derevenko
186         * Memory leak in GIMPACT fixed (reported by Derek)
188 04/28/08 Oleh_Derevenko
190         * Added possibility to collide a space of lower sublevel as a geometry
191           against another space of a higher level with dSpaceCollide2.
192           dSpaceSetSublevel/dSpaceGetSublevel are used for sublevel assignment/
193           retrieval.
195 04/27/08 Oleh_Derevenko
197         * Fixed incorrect memory copying which could lead to memory corruption
198           in GIMPACT (luckily, in unused code)
199         * Fixed possible memory read beyond the end of allocated buffer along
200           with unnecessary extra memory copying in GIMPACT.
201         * Fixed buffer reserve being incorrectly reset to zero for bitsets 
202           what resulted in unnecessary memory reallocations in GIMPACT.
203         * Implemented support for ability to run collision detection from
204           multiple threads for separate spaces.
205            
206 04/14/08 Oleh_Derevenko
208         * Fixed possible memory corruption in new trimesh-trimesh collider
209           in case if two degenerated triangles are checked against each other.
211 04/12/08 Oleh_Derevenko
213         * Fixed sporadic assertion failure on vector normalization caused
214           by small triangles degenerating into segments during space 
215           transformations.
217 03/28/08 Remi
219         * Fix a bug in dJointXXXGetInfo. The value in limot.limit was not
220           always updated. (Ex: If hi and lo limit were changed). 
222 03/27/08 Remi
224         * Added a new Joint: Prismatic Universal (patch #1828454).
226          Daniel K. O.
228         * Fixed bug #1841309: collide2() method buggy.
230 03/18/08 Rodrigo
232         * New function: dVector4Copy.
234 03/14/08 david
236         * Added stub calls for trimesh functions.
237         * Applied patch #1914232: dGetConfiguration.
238         * Applied patch #1655333: Optimize the function dNormalize3.
239         * New function: dSetColliderOverride.
240         * New function: dCheckConfiguration.
241         
242          Daniel K. O.
244         * Disabled building shared library by default with autotools.
246 03/13/08 david
248         * New function: dJointGetNumBodies (patch #1901550).
249         * New function: dSpaceGetClass (patch #1901637).
250         * Applied patch #1901649: Add missing function in the export
252 03/12/08 Rodrigo
254         * Fixed drawstuff build issues on OSX.
256 01/12/08 Daniel K. O.
258         * Fixed a typedef bug in configure.in.
259         * Added dCylinder to the C++ wrappers.
260         * Applied patch 1851394: support for GIMPACT with double precision,
261           dCollide fix.
262         * Moved bunny geometry to bunny_geom.h.
264 12/11/07 Daniel K. O.
266         * Added damping and MaxAngularVel() functions.
267         * Const-correctness: added const qualifier to some dWorldGet and dBodyGet
268           functions.
269         * Updated the odecpp.h header.
271 12/07/07 Daniel K. O.
273         * Removed most of the compiler warnings from Drawstuff, ODE and
274           OPCODE
275         * Upgraded automake requirement to 1.10, and change some Makefile.am
277 12/06/07 Rodrigo
279         * Modified autotools to use libtool for
280           library generation and administration
281         * Removed release and debug flags for configure.in
282           CPPFLAGS, CFLAGS, CXXFLAGS should be set by the
283           user to their liking, respecting autotools policies.
285 11/30/07 Daniel K. O.
286         * Applied patch 1813079 (moved callback)
287         * Replaced moveAndRotateBody by dxStepBody in stepfast.cpp
289 11/10/07 david
291         * Added 'Sweep and Prune' collision space.
292         * New Piston joint type with demo, by Remi Ricard
293         * Added build option to use 16-bit indices for OPCODE trimesh
295 11/03/06 david
297         * Integrated Christoph Beyer's average based sampling system for body
298           disabling.
300 10/26/06 Francisco Leon
302         * Totally refactored trimesh collision system.
303           Using GIMPACT instead of OPCODE. Now works correctly, and faster.
304           Visit http://gimpact.sourceforge.net.
305           
306         * Finally, test_moving_trimesh.exe works nicely.   
307           
308         * Fixed autodisable system. Now is possible to set bigger sleeping 
309           threshold values and objects won't be sleeping on the air. They will
310           rest on the floor properly.
311                   
312         * dInitODE function added.
313         
314         * Is Obligatory to call dInitODE() at the beginning for initialize ODE,
315           and calling dCloseODE() when the program ends.
317 09/20/06 bram
319         * Fixed two bugs in cyl/plane collision test.
321 09/13/06 Remi
323         * New Rotoide - Prismatic joint type
324         * dJointGetUniversalAngles for efficient angle retrieval.
326 08/09/06 david
328         * Integrated plane2d joint type which constrains bodies to z == 0.
330 07/06/06 david
332         * Added heightfield primitive collision code. Simple test available in
333           ode/test/test_heightfield
335 04/03/06 rodrigo
337         * Added Convex primitive collision code,
338           currently only convex-sphere and convex-plane work
340 04/01/06 bram
342         * Added program to test trimesh vs sphere: ode/test/test_basket
344 03/20/06 jason379
346         * Added new autogenerated Visual Studio projects, with Premake scripts
348 03/17/06 bram
350         * Added plane/cyl intersection test
351         * Renamed CCylinder to Capsule
352         
353 02/04/06 gcarlton
355         * Added support for geom offsets.
357 10/26/05 rodrigo
359         * Removed LIBTOOL from autotools since it was not really required.
360         * Added a target to build ODE as a shared library, this shared
361           library gets build alongside the static one, no flags required.
363 10/24/05 tfautre
365         (Backported patches from STABLE branch, applied by Adam)
366         
367         * dRandInt changed for a non-double all-int version.
368         * mics minor fixes and improvements.
370 04/05/05 tfautre
372         * Fixed segmentation fault with OPCODE on 64 bits systems.
374 03/31/05 tfautre
376         * Fixed timer.cpp compiler error on x86-64 using GCC.
378 03/29/05 colin
380         * Added trimesh preprocessing to mark unneeded edges and verts.  Also
381           added support for preprocessed info to the ccylinder-trimesh
382           collider.
384 12/07/04 adam
386         * Important AMotors bugfix
388 09/22/04 jeff
390         * Assorted small bugfixes and tweaks for
391           trimesh_{box,ccylinder,trimesh} collisions
393 09/21/04 jeff
395         * added functions to joint.cpp to allow joint attachment to moving
396           geoms.
398         * added malloc-based memory allocation in step.cpp & lcp.cpp (turned
399           on with a #define switch in common.h)
400         
401 05/29/04 russ
403         * added joint feedback to the QuickStep solver
405 05/18/04 russ
407         * added warm starting to the QuickStep solver
409 05/18/04 russ
411         * added the QuickStep solver
412         
413         * added contact parameter functions.
415 05/05/04 adam
417         * use dRandInt instead of rand() in stepfast.
419 04/21/04 russ
421         * added auto-disable support from Aras Pranckevicius (with
422           modifications by russ). this useful feature can speed up
423           simulation significantly in some cases.
424         
425         * various internal tidyups.
427 04/20/04 russ
429         * changed the meaning of the 'index' argument to dJointGetBody():
430           it was the only remaining API function that does not respect
431           dJOINT_REVERSE (spotted by Matthew D. Hancher).
432         
433         * updated the C++ headers: fixed two minor bugs and added
434           support for dQuadTreeSpace, dRay, and the dGeom::getSpace() method
435           (from Matthew D. Hancher).
437 04/18/04 russ
439         * changed the way that the dInfinity constant is implemented: now it
440           is #defined to be one of: FLT_MAX, DBL_MAX, HUGE_VAL, HUGE_VALF, or
441           a large numeric constant. previously it was a variable that was
442           exported from the library. this simplifies the configuration and
443           build process quite a bit, especially in the case of DLLs.
444         
445         * removed the old, deprecated collision system (geom.cpp,space.cpp,
446           geom.h,space.h,odecpp_old_collision.h). the ODE_OLD_COLLISION
447           configuration setting no longer has any meaning.
448         
449         * removed support for dGeomGroups, which have been deprecated for
450           a while and are equivalent to 'spaces' anyway.
452 04/13/04 russ
454         * bug fix in dMassSetCappedCylinder(), from Matthew D. Hancher.
456 04/08/04 russ
458         * added trimesh-CCylinder capability, from Vadim Macagon
459           <vadim_mcagon@hotmail.com>.
461 04/04/04 adam
463         * yet another rewrite of triangle-box collision code, this
464         time based on code donated by Croteam, ported by asko@jetti.org
465         and tweaked by Erwin.
467 04/04/04 adam
469         * merged trimesh-trimesh collision code by
470         Jeffrey Smith <jeffreys@Softimage.com>.
472         * changed it to not break the trimesh interface, fix
473         some GCC compilation problems, bring it up to date with
474         ODE changes from 2003-11-15 -> 2004-04-04.
476         * add ability to drop meshes on meshes in test_moving_trimesh,
477         not as good as it could be but it's illustrative.
479 01/16/04 adam
481         * implement a bunch of ultra-simple TriMesh functions that were
482         in the headers but not in the code -- patch by
483         Vadim Macagon <vadim_mcagon@hotmail.com>
485         * disable temporal coherence on trimeshes by default, since
486         it has scaleability issues that don't make it a general clear win.
488 12/01/03 adam
490         * implement dxHashSpace::collide2(), not particularly efficiently.
492 11/14/03 adam
494         * applied several Trimesh fixes and improvements from
495         Aras Pranckevicius <nearaz@interamotion.com>
497 10/22/03 adam
499         * apply Nguyen Binh's work for removing many dSetZero() calls
500         and some other extraneous initializations.
502 07/29/03 martin
504         * added dJointAdd*Torque/Force().
506 07/10/03 russ
508         * added the StepFast code, by David Whittaker.
510 07/02/03 martin
512         * added dMassSet*Total().
514 07/01/03 martin
516         * added joint limits and motors to universal joints.
518         * reversed the polarity of the dJOINT_REVERSE flag.
520 06/30/03 russ
522         * added the TriMesh geom class and the quad tree space to the ODE
523           core. both of these were developed by Erwin de Vries. added OPCODE
524           to the ODE distribution, this is required by TriMesh.
526 06/23/03 martin
528         * added dGeomSetQuaternion() and dGeomGetQuaternion()
529         
530         * added dJointGet*Anchor2()
532 05/07/03 russ
534         * added dGeomGetSpace().
536 02/05/03 russ
538         * added dMassSetCylinder().
540 12/07/02 russ
542         * added dAreConnectedExcluding().
544 11/30/02 russ
546         * added the ray geom class.
548         * added the dGeomXXXPointDepth() functions.
550         * added a collision test infrastructure, and some more tests.
552 11/24/02 russ
554         * added support for multiple box-box contacts.
556 11/10/02 russ
558         * added new collision system. select between the old/new system by
559           setting the ODE_OLD_COLLISION variable in config/user-settings.
561 10/28/02 russ
563         * fixed two problems in the LCP code to improve the reliability of
564           the dContactApprox1 contact mode.
566         * added a FAQ question about rolling bodies getting stuck when they
567           hit multiple geoms.
569 09/08/02 russ
571         * added dClosestLineSegmentPoints().
572         * implemented dCollideCB().
574 08/28/02 russ
576         * added dJointSetFeedback() and dJointGetFeedback().
578 08/05/02 russ
580         * added dGeomTransformSetInfo() and dGeomTransformGetInfo().
582 07/13/02 russ
584         * added dBodySetForce(), dBodySetTorque(), dWorldImpulseToForce(),
585           dBodyGetPosRelPoint(), dBodyGetPosRelPoint(), dBodyVectorToWorld(),
586           dBodyVectorFromWorld().
588         * added dBodyGetPointVel() (thanks to Colin Reed).
590         * added a new C++ interface (from Martin C. Martin, with modifications
591           by russ). the old C++ interface is now in odecpp_old.h.
593 06/25/02 russ
595         * added an additional BSD-style licensing option for ODE.
597 06/23/02 russ
599         * added dCloseODE(), contributed by Nate Waddoups and David McClurg.
601 05/16/02 russ
603         * added dSpaceQuery(), contributed by Nate Waddoups.
605 04/07/02 russ
607         * added a section to the documentation for universal joints.
608           this includes a picture of the joint.
610 04/05/02 russ
612         * added a universal joint class (generously contributed by
613           Martin C. Martin). it doesn't (yet) have a motor or joint limits,
614           but it does come with tests.
616 03/11/02 russ
618         * makefile changes to accomodate OSs with command line length
619           limitations (thanks to Norman Lin).
621 01/06/02 russ
623         * added the dBodySetGravityMode() and dBodyGetGravityMode()
624           functions, which change the dxBodyNoGravity body flag.
626         * added support for building a DLL with MSVC - there is now a
627           msvc-dll target. thanks to Norman Lin for doing this.
629 12/28/01 russ
631         * added the dParamCFM joint parameter.
633 12/24/01 russ
635         * reworked the build system to make it more cross-platform.
636           there is now a single top-level makefile and a configurator.c
637           program. see the INSTALL file for details.
639 12/04/01 russ
641         * the "angular motor" joint has been completed, and a new section
642           has been added to the documentation.
644 11/26/01 russ
646         * added a new joint type: "angular motor". using this joint is a good
647           way to get ball-joint motors and limits. this is work in progress -
648           it has not been fully implemented or tested yet.
650 11/22/01 russ
652         * replaced the mmap()-based joint group stack (stack.cpp) with a
653           malloc()-based arena stack (obstack.cpp). this will be more
654           portable and should not impact performance.
656 11/12/01 russ
658         * changed the meaning of the 'flags' parameter to dCollide() and
659           related functions: now the size of the contact buffer is kept in
660           the lower 16 bits. this change will be backward compatible.
662         * added dBodyGetFiniteRotationMode() and dBodyGetFiniteRotationAxis().
664         * added dBodyAddForceAtRelPos() function.
666 11/11/01 russ
668         * added the ability to manually enable and disable bodies.
669           see dBodyEnable(), dBodyDisable(), dBodyIsEnabled().
671         * fixed a potential bug: when a world is destroyed that contains
672           joints in joint groups, those joints are marked as "deactivated" in
673           the joint group, so when the joint group is destroyed they can be
674           ignored.
676         * the test_boxstack demo has new options to enable and disable bodies.
678         * new configuration parameter in config.h: dEFFICIENT_SIZE.
680 11/11/01 russ
682         * started the change log for ODE. changes older than today were added
683           to this file by inspecting the CVS logs.
685 11/05/01 russ
687         * added REAL() constructions for floating point numbers, to prevent
688           many warnings when compiling under VC++.
690 11/03/01 russ
692         * added geometry transform class, documented composite objects.
694         * added collision rule: no contacts if both geoms on the same body.
695           this is not the best rule, may have to remove this in the future.
697         * new dMassAdd() function.
699         * capped cylinder to capped cylinder collision function.
701 10/31/01 russ
703         * increase CFM in some demos to make them more robust.
705 10/29/01 russ
707         * added new accessor functions.
709 10/19/01 russ
711         * added the dJOINT_TWOBODIES flag to the joint, that says it can not
712           be attached to just one body.
714 10/12/01 russ
716         * fixed a collision bug in dCollide() that was causing memory
717           corruption when multiple contacts were being returned.
719 10/11/01 russ
721         * joints can now return m=0 to be "inactive". added a "null" joint
722           to test this.
724 10/09/01 russ
726         * in the LCP solver, try to fail gracefully when s <= 0.
728         * dAABBTestFn() API change.
730 10/08/01 russ
732         * fixed a contact swapping bug in dCollide().
734 10/07/01 russ
736         * added capped cylinder geometry object.
738 09/30/01 russ
740         * the test_buggy demo now uses geometry groups.
742         * added a dAABBTestFn field in the geometry classes.
744 09/29/01 russ
746         * added geometry groups.
748 09/20/01 russ
750         * added finite rotation stuff.