Releases: stephengold/Minie
8.2.0
- Bugfix: logic error in
CollisionShape.nativeMargin()
- Disallowed GImpact shapes with zero triangles.
- Publicized the
CollisionSpace.setLocalThreadPhysicsSpace()
method, so apps creating spaces on multiple threads can stop a memory leak. - Updated dependencies:
- v9.1.0 of the Heart library.
8.1.0
-
Bugfix: JVM crash while serializing
BoundingValueHierarchy
(issue #41) -
Bugfix: crash in
processAllTriangles()
whenm_bvh==NULL
(issue #43) -
Bugfix: wrong inertia for a
CustomConvexShape
whenmass != 1
-
Changed the default setting for collision-shape contact filtering (from enabled to disabled) to address issue #40. This change may cause unwanted behavior for rigid bodies in contact with a gimpact, heightfield, or mesh shape; see issue #18 for details.
-
Started regenerating the bounding-value hierarchy if it was serialized with a different floating-point precision.
-
Bugfix: the RK4 flag of a
MultiBody
isn't de-serialized -
Added 2 convex collision shapes:
ConicalFrustum
SphericalSegment
-
Made BVH serialization optional:
MeshCollisionShape.isSerializingBvh()
MeshCollisionShape.setSerializingBvh()
-
Added a setting to visualize the collision margins of concave shapes.
-
Added the new
CollisionConfiguration
class and related methods, to configure penetration depth solvers:BulletAppState.getCollisionConfiguration()
BulletAppState.setCollisionConfiguration()
CollisionSpace.getConfiguration()
PhysicsDescriber.describe(CollisionConfiguration)
- a 5-argument
CollisionSpace
constructor - a 4-argument
PhysicsSoftSpace
constructor - a pair of 5-argument
PhysicsSpace
constructors
-
Added 14 accessors for the native user indices of
CollisionShape
,MultiBody
, andPhysicsCollisionObject
. -
Added 20 other public methods:
BoundingValueHierarchy.copyAabb()
BoundingValueHierarchy.copyQuantization()
BoundingValueHierarchy.countLeafNodes()
BoundingValueHierarchy.countNodes()
BoundingValueHierarchy.countSubtreeHeaders()
BoundingValueHierarchy.escapeIndex()
BoundingValueHierarchy.isCompressed()
BoundingValueHierarchy.isLeafNode()
BoundingValueHierarchy.partId()
BoundingValueHierarchy.setTraversalMode()
BoundingValueHierarchy.traversalMode()
BoundingValueHierarchy.triangleIndex()
GImpactCollisionShape.countSubmeshes()
GImpactCollisionShape.getSubmesh()
HeightfieldCollisionShape.countColumns()
HeightfieldCollisionShape.countRows()
HeightfieldCollisionShape.upAxis()
MeshCollisionShape.countSubmeshes()
MeshCollisionShape.getBvh()
MeshCollisionShape.getSubmesh()
-
Enhancements to the MinieExamples subproject:
- Added 2 test apps:
TestIssue40
TestIssue41
- Added 3 custom collision shapes:
CustomLemon
CustomParaboloid
CustomSegment
- Added more options to the
ShapeGenerator
class and also to theDropTest
andSplitDemo
apps. - Started displaying the number of persistent manifolds in the
DropTest
app. - Reduced the CCD motion threshold in the
DropTest
app. - Added getters for the dimensions of custom collision shapes.
- Made 4 custom collision shapes more scalable.
- Added margin to the radii of custom collision shapes.
- Added 2 test apps:
-
Updated dependencies: v3.0.1 of the jme-ttf library and v20.13.0 of Node.js .
-
Built using Gradle v8.7 .
-
Updated the native libraries to v21.2.1 of Libbulletjme.
-
Updated VHACD v4 to version 4.1 .
8.0.0
-
Deleted 9 public methods that had previously been deprecated: (API changes)
CollisionShape.getObjectId()
CollisionSpace.getSpaceId()
PhysicsCollisionObject.getObjectId()
PhysicsCollisionObject.listIgnoredIds()
PhysicsCollisionObject.setIgnoreList()
PhysicsJoint.getObjectId()
RigidBodyMotionState.getObjectId()
RotationalLimitMotor.getMotor()
TranslationalLimitMotor.getMotor()
-
Privatized the
setIgnoreCollisionCheck()
method in thePhysicsCollisionObject
class. (API change) -
Added the capability to define custom collision shapes using JVM code:
- Added the (abstract)
CustomConvexShape
class. - Modified
PhysicsDescriber
to recognize custom shapes.
- Added the (abstract)
-
Bugfix:
CharacterController.onGround()
returns false positives after stepping (not jumping) off a cliff -
Added runtime checks to
MeshCollisionShape
for meshes that are too complex. -
The "+big3" build flavor was replaced with "+big4" that includes native binaries for MacOSX_ARM64.
-
Changed how meshes for debug visualization are generated:
- Added an
IndexedMesh
constructor to efficiently generate visualization meshes for collision shapes. - Replaced
DebugMeshCallback
withIndexedMesh
inDebugShapeFactory
. - Deprecated the
DebugMeshCallback
class.
- Added an
-
Added 10 new public methods:
BetterCharacterControl.getInitialHeight()
BetterCharacterControl.getInitialRadius()
CompoundMesh.countSubmeshes()
CompoundMesh.getSubmesh()
IndexedMesh.copyTriangles()
IndexedMesh.distinctVertices()
IndexedMesh.footprint()
IndexedMesh.maxDistance()
IndexedMesh.surfaceArea()
IndexedMesh.volumeConvex()
-
Updated to depend on v9.0.0 of the Heart library.
-
Updated the native libraries to v20.1.0 of Libbulletjme.
7.8.1
- Bugfix: BVH algorithm fails
- Updated the native libraries to v18.6.1 of Libbulletjme.
7.8.0
- Bugfix:
PhysicsCharacter
disregards ignore lists - Bugfix:
makeMergedMesh()
uses theJME_PHYSICSIGNORE
tag differently from other methods inCollisionShapeFactory
- Added the
ContactManager
interface and split off theDefaultContactManager
class the from thePhysicsSpace
class. - Optimized
PhysicsSpace
to instantiate collision events only when a corresponding listener is registered. - Added a 4-argument
addContactListener()
method to thePhysicsSpace
class. - Based on v8.8.0 of the Heart library.
- Updated the native libraries to v18.6.0 of Libbulletjme.
7.7.0
- Fixed bugs:
NullPointerException
after rebuilding aDynamicAnimControl
- unhelpful warnings while cloning a
PhysicsRigidBody
- Added to the library:
- the
MinkowskiSum
collision shape - the
ClassFilter
class, for filtering physics objects
- the
- Specified a more precise return type for
Convex2dShape.getBaseShape()
DynamicAnimControl
now logs a warning if armature scaling exceeds 1%.- Based on v3.6.1-stable of JMonkeyEngine and v8.7.0 of the Heart library.
- Updated the native libraries to v18.5.2 of Libbulletjme.
7.6.0
- Bugfix: the gravity of a rigid body isn't read/written/cloned
- Bugfix: ignore lists are never cloned for non-joined collision objects
- Bugfix:
IllegalStateException
inDropTest
while creating a ragdoll - Allow zero-mass kinematic rigid bodies.
- Added the "addLinksForTris" parameter to
SoftBodyControl
. - Based on v8.6.0 of the Heart library.
- Updated the native libraries to v18.3.0 of Libbulletjme.
7.5.0
- Bugfix: during cloning, Bullet's ignore list gets out-of-synch with the JVM list
- Added the
applyAllExceptIgnoreListTo()
method to theRigidBodySnapshot
class. - Made private fields
static
in the tutorial apps. - Built using Gradle v8.1.0 .
7.4.0
- Fixed bugs:
BetterCharacterControl
oscillates while unducking near an overhangBetterCharacterController.isOnGround()
is unreliableTestIssue18Heightfield
application throws anIllegalArgumentException
- excessive logging from the
TestIssue13
application
- Implemented kinematic modes for
BetterCharacterControl
andJoinedBodyControl
. - Deprecated 7 library methods for obtaining native IDs:
CollisionShape.getObjectId()
CollisionSpace.getSpaceId()
PhysicsCollisionObject.getObjectId()
PhysicsJoint.getObjectId()
RigidBodyMotionState.getObjectId()
RotationalLimitMotor.getMotor()
TranslationalLimitMotor.getMotor()
- Based on:
- v3.6.0-stable of JMonkeyEngine,
- v3.0.0 of the jME-TTF library,
- v8.3.2 of the Heart library,
- v1.0.0 of the Acorus library,
- v0.7.5 of the Wes library, and
- v0.9.35 of the jme3-utilities-nifty library.
7.3.0+for36
- Fixed bugs:
- ignored collision objects may be garbage-collected prematurely
- adding a
DynamicAnimControl
to a spatial resets its armature PhysicsCollisionObject.cloneIgnoreList()
throws aNullPointerException
BetterCharacterControl.setPhysicsLocation()
never updates the field- tasks passed to
PhysicsSpace.enqueueOnThisThread()
never execute
- Added the
JointedBodyControl
class. - Added 7 methods to the library:
CollisionSpace.isForceUpdateAllAabbs()
CollisionSpace.setForceUpdateAllAabbs()
DynamicAnimControl.blendToKinematicMode(KinematicSubmode, float, Transform)
DynamicAnimControl.saveCurrentPose()
DynamicAnimControl.setKinematicMode(KinematicSubmode)
PhysicsCollisionObject.listIgnoredPcos()
PhysicsCollisionObject.setIgnoreList(PhysicsCollisionObject[])
- Added the "reset" kinematic submode to
DynamicAnimControl
. - Publicized 3 library methods:
- a constructor for the
IndexedMesh
class DacLinks.getTransformer()
RagUtils.findMainJoint()
- a constructor for the
- Deprecated 2 library methods:
PhysicsCollisionObject.listIgnoredIds()
PhysicsCollisionObject.setIgnoreList(long[])
- Added some runtime checks and strengthened others.
- Based on:
- v3.6.0-beta3 of JMonkeyEngine,
- v1.6.0 of the SimMath library, and
- v8.3.1+for36 of the Heart library.
- Updated the native libraries to v18.1.0 of Libbulletjme.