Skip to content

Releases: stephengold/Minie

8.2.0

17 Sep 03:56
Compare
Choose a tag to compare
  • 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

13 May 05:13
Compare
Choose a tag to compare
  • Bugfix: JVM crash while serializing BoundingValueHierarchy (issue #41)

  • Bugfix: crash in processAllTriangles() when m_bvh==NULL (issue #43)

  • Bugfix: wrong inertia for a CustomConvexShape when mass != 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, and PhysicsCollisionObject.

  • 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 the DropTest and SplitDemo 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.
  • 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

15 Feb 04:55
Compare
Choose a tag to compare
  • 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 the PhysicsCollisionObject 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.
  • 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 with IndexedMesh in DebugShapeFactory.
    • Deprecated the DebugMeshCallback class.
  • 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

05 Dec 07:50
Compare
Choose a tag to compare
  • Bugfix: BVH algorithm fails
  • Updated the native libraries to v18.6.1 of Libbulletjme.

7.8.0

03 Dec 06:40
Compare
Choose a tag to compare
  • Bugfix: PhysicsCharacter disregards ignore lists
  • Bugfix: makeMergedMesh() uses the JME_PHYSICSIGNORE tag differently from other methods in CollisionShapeFactory
  • Added the ContactManager interface and split off the DefaultContactManager class the from the PhysicsSpace class.
  • Optimized PhysicsSpace to instantiate collision events only when a corresponding listener is registered.
  • Added a 4-argument addContactListener() method to the PhysicsSpace class.
  • Based on v8.8.0 of the Heart library.
  • Updated the native libraries to v18.6.0 of Libbulletjme.

7.7.0

31 Aug 22:50
Compare
Choose a tag to compare
  • Fixed bugs:
    • NullPointerException after rebuilding a DynamicAnimControl
    • unhelpful warnings while cloning a PhysicsRigidBody
  • Added to the library:
    • the MinkowskiSum collision shape
    • the ClassFilter class, for filtering physics objects
  • 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

04 Jun 02:00
Compare
Choose a tag to compare
  • 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 in DropTest 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

13 Apr 19:22
Compare
Choose a tag to compare
  • Bugfix: during cloning, Bullet's ignore list gets out-of-synch with the JVM list
  • Added the applyAllExceptIgnoreListTo() method to the RigidBodySnapshot class.
  • Made private fields static in the tutorial apps.
  • Built using Gradle v8.1.0 .

7.4.0

25 Mar 03:47
Compare
Choose a tag to compare
  • Fixed bugs:
    • BetterCharacterControl oscillates while unducking near an overhang
    • BetterCharacterController.isOnGround() is unreliable
    • TestIssue18Heightfield application throws an IllegalArgumentException
    • excessive logging from the TestIssue13 application
  • Implemented kinematic modes for BetterCharacterControl and JoinedBodyControl.
  • 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

04 Mar 03:27
Compare
Choose a tag to compare
  • Fixed bugs:
    • ignored collision objects may be garbage-collected prematurely
    • adding a DynamicAnimControl to a spatial resets its armature
    • PhysicsCollisionObject.cloneIgnoreList() throws a NullPointerException
    • 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()
  • 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.