Minie Versions Save

Integrate Bullet Physics and V-HACD into jMonkeyEngine projects. (code has New BSD license)

8.0.0

2 months ago
  • 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

5 months ago
  • Bugfix: BVH algorithm fails
  • Updated the native libraries to v18.6.1 of Libbulletjme.

7.8.0

5 months ago
  • 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

8 months ago
  • 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

11 months ago
  • 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

1 year ago
  • 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

1 year ago
  • 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

1 year ago
  • 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.

7.2.0

1 year ago
  • Bugfix: PhysicsCollisionObject.findInstance() creates a weak global reference that's never deleted
  • Bugfix: DynamicAnimControl.totalMass() returns NaN even when the control is added to a Spatial
  • Bugfix: weak global references in PhysicsCollisionObject and MultiBody are never deleted
  • Added 2 new methods:
    • CollisionSpace.jniEnvId()
    • NativeLibrary.jniEnvId()
  • Updated the native libraries to v17.5.4 of Libbulletjme.

7.1.0

1 year ago
  • Added the capability to generate cylinder shapes in a ragdoll.
  • Publicized the RagUtils.makeRectangularSolid() method.
  • Added DynamicAnimControl tunings for a Mixamo rig.