e52d57696e
pkgsrc changes:
- set license
- revamp build definitions
- revamp blk3.mk and bump API_DEPENDS to 0.13 (recent software depends on new ode-config)
- drop all local patches as not needed
upstream changes:
Changes for 0.13
New features:
Stable, implicit gyroscopic forces (patch #185 by Joseph Cooper). Bodies with gyroscopic forces won't gain energy anymore.
New joint: transmission joint (patch #182 by Dimitris Papavasiliou).
Contacts now have rolling friction (patch #184 by Joseph Cooper).
Removed the need for defining dSINGLE/dDOUBLE; this is stored now in the generated ode/precision.h header.
New joint: Double Ball (AKA "distance joint").
New joint: Double Hinge.
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: --disable-threading-intf (--no-threading-intf for Windows/Premake). This allows disabling threading interface support.
Bug fixes
Joint feedback forces application fixed in QuickStep implementation
Bug #89 by Luc: (dJointAddSliderForce() adds a zero force when the parent body is NULL)
Bug #88 by Luc: heightfield data assigned to a wrong field in dGeomHeightfieldSetHeightfieldData
Fixed cylinder AABB computation.
Removed ALLOCA calls from dHashSpace; it should not depend on stack size limits anymore.
Bugs in AMotor joint (patch #181)
Bugs in PU joint (patch #186)
Fixed issue with friction and non-friction constraints being intermixed during constraints random reordering in QuickStep.
Fixed matrix inversion bug (patch #183).
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.
Fixed issues reported in patches #151 and #22 (collisions with SAPSpace and QuadTreeSpace might not work because geometries list was misused in them).
Fixed IsPointInPolygon in convex.cpp (patch #160 by Janis Rucis)
Fixed zero comparisons in OPCODE to use relative error instead of absolute epsilon value (found by Bill Sellers)
Fixed dhinge's last constraint to properly handle rotations.
Fixed plane2d joint: uninitialized variables (reported by Dimitris Papavasiliou)
Bug #80 by Georg Martius: better handling of capsule-box with deep penetrations.
Fixed zero-mu issues: now either mu or mu2 can be set to zero.
Other changes
Public headers cleaned to cause less pollution of typedefs and macros.
Changes for 0.12
Added python bindings, contributed by Gideon Klompje.
Integrated libccd from Daniel Fiser, provides new colliders based on GJK, EPA and MPR. Now cylinders can collide with cylinders!
New functions have been added:
dWorldUseSharedWorkingMemory()
dWorldCleanupWorkingMemory()
dWorldSetStepMemoryReservationPolicy()
dWorldSetStepMemoryManager()
dGeomLowLevelControl(): change/query OPCODE trimesh-sphere contact merging behavior at runtime.
dGeomGetRelPointPos() (patch #2991622)
dGeomGetPosRelPoint() (patch #2991622)
dGeomVectorToWorld() (patch #2991622)
dGeomVectorFromWorld() (patch #2991622)
dWorldStepFast1 API removed along with dWorld[Get/Set]AutoEnableDepthSF1
dWorldStep() and dWorldQuickStep() have been changed to return boolean success status, and avoid allocation on stack.
dInitODE2() changed to automatically call AllocateODEDataForThread(dAllocateFlagBasicData) after library initialization.
Made sure neither dSINGLE or dDOUBLE is defined by default; the user should always explicitly specify the precision.
Fixed a bug in dGeomCopyOffsetRotation().
Macros changed to static inline functions in odemath.h and related files.
Improvement for trimesh-plane collision.
odecpp classes changed to be inheritable and easily expandable
QuadTreeSpace implementation corrected to avoid object-block relation ambiguity due to numeric errors.
Fixed bug affecting disabled joints and dWorldStep.
Added extern "C" wrapper to dWorldExportDIF().
Fixed bug #2937076: don't try to build demos if drawstuff is disabled.
Applied patch #2931174 to make demos work for recent MacOS.
Applied patch #2931177 to fix the demos' framerate on X11.
Applied patch #2995450 to generate up to four contacts for box-plane collision test and fix contact depths.
Applied patch #3030783 to fix drawstuff dimensions being ignored in OSX GLUT port.
Applied patch #3429454: fix compilation on some platforms.
Heightfield zone boundaries calculation code fixed to also consider whole next cell after the AABB if the AABB ends exactly at the cell boundary.
New demo: demo_tracks.
Fixed a box-capsule bug: more reasonable normal for deep penetrations.
Many internal fixes to world stepping and collision detection code.
Changes for 0.11.1
Made the new trimesh collider the default.
Added a "-texturepath" option to drawstuff.
Heightfield rotation fixed to avoid NaNs while rotating infinite MIN/MAX heights.
Incorrect parameter order fixed on contact merging in Sphere-Trimesh collisions.
Fixed bug #2685170: use the C99 __func__ instead of __FUNCTION__ when a C99 implementation is available.
Remove unused code in demo_joints.cpp.
Fix bug in collision categories in demo_jointPU.
Added 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.
Thread local data has been cleaned up from OPCODE and OdeTls.
New house of cards demo, which stresses the friction handling stability.
Changes for 0.11
This release contains many joint-related bug fixes, and some new features like kinematic bodies, better convex-convex collision detection and some extra functions.
Fix bug: Fix problem when attaching no body to a joint.
Fix problem with dJointGetUniversalAngle2 when the joint is attached to only a body 2. The sign was inverted.
Fix bug reported by Tilman: dxJointPU::getInfo1 was setting twice the limit of limot1 to zero and not limot2.
Fixed a bug in dSpaceCollide2: if both geoms are not in spaces they would not have valid AABBs.
Swapped geometries returned in contacts for OPCODE Trimesh-Plane collisions as they were returned in unnatural order being different from that in GIMPACT
Fixed an inverted sign problem on positions of joints PU and PR.
Fix bug: when a slider, piston, pu or 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.
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.
New functions: dJointSetUniversalAxis1Offset and dJointSetUniversalAxis2Offset.
New functions: dJointEnable, dJointDisable, dJointIsEnabled (patch #2454764).
New functions: dGeomTriMeshSetTriMergeCallback/dGeomTriMeshGetTriMergeCallback.
New function: void dJointSetPUAnchorOffset (deprecating dJointSetPUAnchorDelta).
New functions: dJointGetPRAngle and dJointGetPRAngleRate.
New functions: dBodyGetGyroscopicMode and dBodySetGyroscopicMode (patch #2019242).
Applied patch #2538046: Heightfield AABB bounds patch.
Applied patch #2381592, which adds support for Kinematic Bodies.
Applied a patch to make GIMPACT trimesh-ray collisions to be consistent with those in OPCODE (bug #2214623).
Applied a patch to make side1, side2 fields of contact structure be always initialized.
Applied patch #2158425: This patch enable GIMPACT to work on 64-bit machine.
Applied patch #2080674: Improved dBodySetRotation; now exact rotation matrices are preserved until the next simulation step.
Enable the motor on the rotoide part of the PR joint.
Added Blender script to create ODE convex geoms under tools.
Convex-Convex collision detection code is finally (nearly) stable.
Changes for 0.10.1
This is a bugfix release, so you shouldn't expect anything to stop working from 0.10.
New function: dJointSetPistonAnchorOffset
Add new function dJointSetHingeAxisDelta
Fix problem with dJointGetPistonPosition and dJointGetPistonPositionRate when the joint is attached to only a body 2. The sign was inversed.
Update the slider joint to have the same behavior as the other joint when there is only a body2 attached to it.
Rename the new function dJointSetHingeAxisDelta to dJointSetHingeAxisOffset. This will remove confusion with the old function dJointSetHingeAnchorDelta.
Bug fix: Max Correcting Vel behavior is now the same as before 0.10.
Changes for 0.10
New functions: dInitODE2(), dAllocateODEDataForThread(), dCleanupODEAllDataForThread(). This adds support for ability to run collision detection from multiple threads for separate spaces.
New functions: dCheckConfiguration(), dGetConfiguration(), to test how ODE was compiled.
New function: dJointGetNumBodies (patch #1901550).
New function: dSpaceGetClass (patch #1901637).
New function: dSetColliderOverride(), to register custom collision handling functions.
Added damping and MaxAngularVel() functions.
Applied patch #1335202: Contact Joint Motion (see demo_motion.cpp).
Applied patch #1851394: support for GIMPACT with double precision, dCollide fix.
Applied patch #1813079 (moved callback).
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.
Fixed a bug in dJointXXXGetInfo. The value in limot.limit was not always updated. (Ex: If hi and lo limit were changed).
New Joint: Prismatic Universal (patch #1828454).
New Joint: Piston, with demo.
Disabled building shared library by default with autotools. ODE shouldn't be installed as a system library.
Fixed drawstuff build issues on OSX.
Removed release and debug flags for configure.in: CPPFLAGS, CFLAGS, CXXFLAGS should be set by the user to their liking, respecting autotools policies.
Added 'Sweep and Prune' collision space.
Optimizations, many bug fixes, and code cleanup.
Changes from 0.8 to 0.9
New Feature: CONTACTS_UNIMPORTANT flag added for dCollide() to allow canceling any contact improvements and return any contacts found as soon as possible
New feature: Add erp/cfm parameters to fixed and ball joint. SF PATCH 1478244
Assert on zero normalizations, add dSafeNormalize. Added boolean result for dNormalize3() and dNormalize4() so that normalization success could be checked
SF Patch 1808007: fix gimpact compiler warning
Apply SF patch 1800579: dGeomTriMeshSetData does not work with GIMPACT
Fix: heightfield collision could return less contacts than was possible
Fix: the deepest contact might be not selected if there was a lack of contact slots in trimesh-trimesh and trimesh-box cases (function exited immediately and did not check for possible contact coincidences).
Improvement: optimizations for GIMPACT versions of trimesh-capsule, trimesh-trimesh, trimesh-plane, trimesh-sphere
Improvement: dCollideConvexPlane optimized
Fix: cylinder-box collision did not respect requested contact count limit
Fix SF issue 1729096 by adding dMassSetTrimeshTotal
Apply SF patch 1685107: Enforce 1 contact request
Apply SF Patch 1697014: Update JointPR code
Catch SF BUG 1621938: gimpact only does stride 12.
patch 1769851 by Jon Watte: recalc aabb when new setting new data
Added Richard Barrington's model loader for XNA (to be used with ODE.NET)
1586733 collision_trimesh_trimesh.cpp OPCODE fix Added Francisco Leon's alternate trimesh-trimesh collider.
|
||
---|---|---|
.. | ||
buildlink3.mk | ||
DESCR | ||
distinfo | ||
Makefile | ||
PLIST |