- Bugfix:
copyPcoProperties()
doesn't copy user indices - Bugfix: logic error in
CollisionShape.nativeMargin()
- Publicized the
CollisionSpace.setLocalThreadPhysicsSpace()
method so per-thread physics spaces can nulled and garbage collected. - Added public method
Quaternion.isValidQuaternion()
. - Disallowed GImpact shapes with zero triangles.
- Changed the default setting for collision-shape contact filtering (from enabled to disabled) to address Minie issue 40. This change may cause unwanted behavior for rigid bodies in contact with a gimpact, heightfield, or mesh; see Minie issue 18 for details.
- Added the
ConicalFrustum
collision shape. - Implemented actual-margin debug meshes for concave shapes with
meshResolution == 2
. - Added 14 accessors for the native user indices
of
CollisionShape
,MultiBody
, andPhysicsCollisionObject
. - Added 5 other public methods:
Heightfield.countColumns()
Heightfield.countRows()
Heightfield.upAxis()
IndexedMesh.surfaceArea()
MyMath.area(Triangle)
- Bugfix: crash in
processAllTriangles()
whenm_bvh==NULL
(Minie issue 43) - Bugfix: wrong inertia for a
CustomConvexShape
whenmass != 1
- Added the
SphericalSegment
collision shape. - Added the
TestApp
application for manual testing. - Added 11 public methods:
BoundingValueHierarchy.copyAabb()
BoundingValueHierarchy.copyQuantization()
BoundingValueHierarchy.countLeafNodes()
BoundingValueHierarchy.countNodes()
BoundingValueHierarchy.countSubtreeHeaders()
BoundingValueHierarchy.escapeIndex()
BoundingValueHierarchy.isLeafNode()
BoundingValueHierarchy.partId()
BoundingValueHierarchy.setTraversalMode()
BoundingValueHierarchy.traversalMode()
BoundingValueHierarchy.triangleIndex()
- Made numerous breaking changes to the native API.
- Deleted the (deprecated)
DebugMeshCallback
class. (API change) - Bugfix: JVM crash while serializing
BoundingValueHierarchy
(Minie issue 41) - Added the new
CollisionConfiguration
class and related methods:CollisionSpace.getConfiguration()
PhysicsDescriber.describe(CollisionConfiguration)
- a 5-argument
CollisionSpace
constructor - a 4-argument
PhysicsSoftSpace
constructor - a pair of 5-argument
PhysicsSpace
constructors
- Added 2 other public methods:
BoundingValueHierarchy.isCompressed()
MeshCollisionShape.getBvh()
- Improved the performance of contact filtering by adding an early return
from
FilteredInteriorCountCallback
. - Began building Android binaries using OpenJDK 11 (with Android Gradle plugin v7.4.0 and NDK v23.1.7779620) instead of JDK 8 (with Android Gradle plugin v4.2.2 and NDK v21.3.6528147).
- Began using
htons()
to configure byte swapping when serializing and deserializing aBoundingValueHierarchy
. (This would be a breaking change for big-endian platforms, if any were supported!) - Updated the Bullet sources to match SHA1 id=e9c461b0 of the bullet3 project, to add a test for constraint pass in btMultiBody.cpp. (Thanks to Ian Chen)
- Deprecated the
DebugMeshCallback
class. - Deleted the (unused) native portion of the
DebugShapeFactory
class. - Added 7 new public methods:
FastMath.clamp()
GImpactCollisionShape.countSubmeshes()
GImpactCollisionShape.getSubmesh()
MeshCollisionShape.countSubmeshes()
MeshCollisionShape.getSubmesh()
MyMath.circle(double)
MyMath.circle(float)
- Updated VHACD v4 to version 4.1 .
- Added more detail to descriptions of GImpact and mesh shapes.
- Began building Android binaries on a xenial distro, since trusty is nearing its end of life.
- Bugfix:
CharacterController.onGround()
returns false positives after stepping (not jumping) off a cliff - Added an
IndexMesh
constructor to efficiently generate visualization meshes for collision shapes; replacedDebugMeshCallback
withIndexedMesh
inDebugShapeFactory
. - Added 3 public methods to the
IndexedMesh
class:copyTriangles()
maxDistance()
volumeConvex()
- Improved validation of method arguments.
- Changed both APIs (both Java and native) of the
CustomConvexShape
class to better support scaling of custom shapes. - Added a 3-argument constructor to the
CustomConvexShape
class.
-
Changed the Java API:
- Privatized the
PhysicsCollisionObject.setIgnoreCollisionCheck()
method. - Simplified the signature of
VectorSet.addAll()
. - Deleted 14 previously deprecated methods:
MyMath.isFinite(Vec3d)
PhysicsCollisionObject.listIgnoredIds()
PhysicsCollisionObject.setIgnoreList()
PhysicsSpace.addCollisionListener()
PhysicsSpace.addOngoingCollisionListener()
PhysicsSpace.countCollisionListeners()
PhysicsSpace.distributeEvents()
PhysicsSpace.removeCollisionListener()
PhysicsSpace.removeOngoingCollisionListener()
Quaternion.mult(Vector3f, Vector3f)
Quaternion.multLocal(Vector3f)
Transform.combineWithParent()
Transform.transformInverseVector()
Transform.transformVector()
- Privatized the
-
Added return values to 2 native methods:
DebugShapeFactory.getTriangles()
DebugShapeFactory.getVertices()
-
Added the
CustomConvexShape
class. -
Added 2 methods to the pre-existing
CompoundMesh
class:CompoundMesh.countSubmeshes()
CompoundMesh.getSubmesh()
-
Added runtime checks:
- in the
MeshCollisionShape
class, for meshes that are too complex - in the
DebugShapeFactory
class, forbuildHull()
failures
- in the
-
Upgraded Node.js to v20.11.0 .
Bugfix: BVH algorithm fails
- Bugfix:
PhysicsCharacter
disregards ignore lists - Deprecated the
PhysicsSpace.countCollisionListeners()
method. - Optimized
PhysicsSpace.onContactProcessed()
andonContactStarted()
to create event objects only when listeners are registered. - Added 3 math methods:
FastMath.atan()
MyMath.log2()
MyMath.maxInt()
- Updated the Bullet source code to match SHA1 ID=6bb8d112 of the bullet3 project.
- Build MacOSX_ARM64 natives for release using Xcode 14.2 .
- Upgraded Node.js to v20.10.0
- Added a
MyMath.clamp()
method withint
arguments. - Exposed the
IndexBuffer
wrap constructor to subclasses. - Modified
MinkowskiSum.createShape()
to avoid generating a warning message.
- Added support for
btMinkowskiSumShape
via new classMinkowskiSum
. - Added the protected
nativeMargin()
method to theCollisionShape
class. - Changed the return type of the
getBaseShape()
method in theConvex2dShape
class.
- Bugfix:
MyQuaternion.isRotationIdentity()
accepts NaNs - New capability to dump physics objects for debug purposes,
which entailed addition of the following classes/methods from Heart/Minie:
Describer
Dumper
DumpFlags
MyBuffer.frequency()
MyPco
MyQuaternion.describe()
MyString.axisName()
MyString.describe()
MyString.describeFraction()
MyString.describeMatrix()
MyVector3f.describe()
MyVector3f.describeDirection()
PhysicsDescriber
PhysicsDumper
- Better 3-D rotations and transformations by adding 5 methods from Heart:
MyQuaternion.rotate()
MyQuaternion.rotateInverse()
MyMath.combine()
MyMath.transform()
MyMath.transformInverse()
- Deprecated the corresponding math methods:
Quaternion.multLocal(Vector3f)
Quaternion.mult(Vector3f, Vector3f)
Transform.combineWithParent()
Transform.transformInverseVector()
Transform.transformVector()
- Other methods added:
GImpactCollisionShape.countMeshTriangles()
Transform.setScale(Vector3f)
Validate.standardAngle()
- Bugfix: the gravity of a rigid body is altered by a rebuild
- Integrated bulletphysics/bullet3#4413
- Integrated bulletphysics/bullet3#4462
- Allow zero-mass kinematic rigid bodies.
- Added the
applyAllExceptIgnoreListTo()
method to theRigidBodySnapshot
class.
- Bugfix: ignored collision objects get garbage-collected prematurely
- Added the
isForceUpdateAllAabbs()
andsetForceUpdateAllAabbs()
methods to theCollisionSpace
class, to provide an (optional) optimization. - Added the
listIgnoredPcos()
andsetIgnoreList(PhysicsCollisionObject[])
methods to thePhysicsCollisionObject
class and deprecated thelistIgnoredIds()
andsetIgnoreList(long[])
methods. - Deprecated the
isFinite(Vec3d)
method in theMyMath
class. - Added various checks, including a few for the threading model.
- Renamed 6 methods in the Java-native interface, to avoid underscores:
CollisionSpace.notifyCollisionGroupListeners_native()
CollisionSpace.rayTest_native()
CollisionSpace.sweepTest_native()
PhysicsGhostObject.addOverlappingObject_native()
PhysicsSpace.postTick_native()
PhysicsSpace.preTick_native()
- Changed the Java API:
- Added a
static
qualifier to thelistPointIds()
method in thePersistentManifolds
class. - Privatized the
getCollisionFlags()
method in thePhysicsCollisionObject
class.
- Added a
- Bugfix:
jmeCollisionSpace::m_pEnv
gets modified during callbacks - Publicized another constructor of the
IndexedMesh
class.
- Build MacOSX_ARM64 natives for release using Xcode 12.3 .
- Build MacOSX64 natives for release using Xcode 9.4.1 .
- Bugfix:
PhysicsCollisionObject.findInstance()
creates a weak global reference that's never deleted. - Bugfix: weak global references in
PhysicsCollisionObject
andMultiBody
are never deleted. - Bugfix: assertion failure when
toString()
is invoked on an unassigned joint - Added 5 new methods:
CollisionSpace.jniEnvId()
CompoundCollisionShape.connectivityMatrix()
CompoundCollisionShape.countGroups()
NativeLibrary.jniEnvId()
New6Dof.getRotationMatrix()
- Build Windows natives for release using Visual Studio 2022 .
- Build 64-bit MacOSX natives for release using Xcode 14.2 .
- Throw Java exceptions (instead of crashing the JVM with
btAssert()
) in the JNI glue code. - Improved handling of Java exceptions in the JNI glue code.
- Bugfix: transforms not updated for the
getCalculatedOriginA()
andgetCalculatedOriginB()
methods in theNew6Dof
class - Bugfix:
Quatd.isRotationIdentity()
accepts NaNs - Bugfix:
toString()
fails for an unassignedPhysicsCollisionObject
- Bugfix:
PhysicsCollisionObject.copyPcoProperties()
results in different collision flags - Added 4 new methods:
New6Dof.calculatedBasisA()
New6Dof.calculatedBasisB()
PhysicsCollisionObject.collisionFlags()
Vec3d.isFinite()
- Reduced the likelihood of hash collisions in
Matrix3d
. - Made the result of
PhysicsCollisionObject.toString()
more concise.
- Bugfix:
getPhysicsRotationDp()
returns wrong rotation for a soft body - Overrode the
equals()
andhashCode()
methods of theMatrix3d
class. - Added 6 double-precision accessors for physics objects:
MultiBodyCollider.setPhysicsRotationDp()
PhysicsCollisionObject.getPhysicsRotationMatrixDp()
PhysicsGhostObject.setPhysicsRotationDp(Matrix3d)
PhysicsRigidBody.setPhysicsRotationDp(Matrix3d)
RigidBodyMotionState.getOrientationMatrixDp()
RigidBodyMotionState.getOrientationQuaternionDp()
- Added 4 new math methods:
Matrix3d.isIdentity()
Quatd.isRotationIdentity()
Quatd.isZero()
Validate.nonZero(Quatd)
- Dramatically simplified the
jmeBulletUtil
native class. - Integrated bulletphysics/bullet3#4284
- Added 4 double-precision accessors for physics objects:
CollisionSpace.rayTestDp()
ManifoldPoints.getPositionWorldOnADp()
ManifoldPoints.getPositionWorldOnBDp()
PhysicsGhostObject.setPhysicsRotationDp()
- Added the
Matrix3d
math class. - Added the
mult(Quatd, Quatd)
andtoRotationMatrix()
methods to theQuatd
class. - Added the
combineWithParent()
andtransformInverseVector()
methods to theTransformDp
class. - Added the
divideLocal()
method to theVec3d
class.
- Bugfix:
getPhysicsLocationDp()
returns wrong location for a soft body - Added 8 double-precision accessors for physics objects:
CharacterController.warpDp()
CollisionShape.getScaleDp()
MultiBodyCollider.setPhysicsLocationDp()
PhysicsCharacter.setPhysicsLocationDp()
PhysicsCollisionObject.getTransformDp()
PhysicsGhostObject.setPhysicsLocationDp()
PhysicsSoftBody.setPhysicsLocationDp()
RigidBodyMotionState.getLocationDp()
- Added the
TransformDp
math class. - Added the
isFiniteDouble()
andisFinite(Vec3d)
methods to theMyMath
class. - Added the
finite(Vec3d, String)
method to theValidate
class.
- Renamed the public logger in
ConvexShape
. (API change) - Renamed 2 protected fields in
RigidBodySnapshot
. (API change) - Protected 5 no-arg constructors. (API changes)
- Qualified 6 public classes as
final
. (API changes) - Privatized 27 protected fields in
RigidBodySnapshot
. - Added 3 new methods:
NativeLibrary.countClampedMotions()
PhysicsSpace.isCcdWithStaticOnly()
PhysicsSpace.setCcdWithStaticOnly()
- Upgraded Node.js to v18.12.1
- Bugfix: shape's scale isn't copied in
HullCollisionShape.split()
- Bugfix: shape's scale is ignored by
ChildCollisionShape.split()
- Bugfix:
MeshCollisionShape.split()
doesn't preserve scaling - Bugfix:
GImpactCollisionShape.split()
doesn't preserve scaling - Added the
Generator
class for randomization. - Added a 4-sphere constructor to the
MultiSphere
class. - Added 4 more math methods:
MyMath.fromAngles()
MyMath.isBetween()
MyMath.max()
RectangularSolid.halfExtents()
- Added the
root2
constant to theMyMath
class.
-
Bugfix: assertion failure in
VHACDHull
after a failed decomposition -
Added the
pairTest()
method to theCollisionSpace
class. -
Implemented collision-shape splitting:
- Added
split()
methods to 7 classes:ChildCollisionShape
CompoundCollisionShape
CompoundMesh
GImpactCollisionShape
HullCollisionShape
IndexedMesh
MeshCollisionShape
- Added the
canSplit()
andtoSplittableShape()
methods to theCollisionShape
class. - Added some constructors to 5 classes:
CompoundMesh
GImpactCollisionShape
HullCollisionShape
IndexedMesh
MeshCollisionShape
- Added the
toHullShape()
method to theConvexShape
class.
- Added
-
Implemented center/volume estimation for collision shapes:
- Added the
aabbCenter()
andscaledVolume()
methods to theCollisionShape
class. - Added the
maxMin()
method to theCompoundMesh
class. - Added
volumeConvex()
methods to theDebugMeshCallback
andDebugShapeFactory
classes. - Added the
copyTriangle()
andmaxMin()
methods to theIndexedMesh
class.
- Added the
-
Added math classes:
DistinctVectorValues
MyVolume
RectangularSolid
Triangle
VectorSetUsingBuffer
-
Added math methods:
MyBuffer.covariance()
MyBuffer.maxMin()
MyBuffer.mean()
MyMath.cube()
MyMath.mid(float, float, float)
MyMath.min(float...)
MyMath.modulo(int, int)
MyMath.transformInverse()
for aTriangle
- the normal-and-displacement constructor for a
Plane
Plane.pseudoDistance()
Vector3f.crossLocal()
Vector3f.distance()
Vector3f.mult(float, Vector3f)
Vector3f.mult(Vector3f)
-
Added the
FastMath.QUARTER_PI
constant. -
Added the
VectorSet
interface. -
Added supplemental V-HACD methods:
VHACDParameters.toMap()
Vhacd4Parameters.nextFillMode()
Vhacd4Parameters.toMap()
-
Updated the Bullet sourcecode to match SHA1 ID=dad061fc1 of the bullet3 project.
-
Upgraded Node.js to v16.17.0
- Bugfix: I/O resources not safely closed in
VHACDParameters
. - Added V-HACD v4 without removing the classic version:
- Added the
Vhacd4
,Vhacd4Hull
, andVhacd4Parameters
classes. - Added the
FillMode
enum. - Added a new constructor for
HullCollisionShape
.
- Added the
- Added the
setIgnoreList()
method to thePhysicsCollisionObject
class. - Added a simpler constructor to
PhysicsSoftSpace
. - Overrode the
toString()
method ofVHACDParameters
. - Publicized the
rebuildRigidBody()
method of thePhysicsRigidBody
class. - Created per-class loggers for
SoftBodyMaterial
andSoftBodyWorldInfo
. - Upgraded the GCC compilers used to build Linux natives:
- Linux32 and Linux64 non-multithreaded, from v4.7.3 to v7.5.0
- Linux_ARM32hf and Linux_ARM64, from v5.4.0 to v6.5.0
- Linux64 multithreaded and Linux_ARM32 with software floating-point, from v5.4.0 to v7.5.0
- Qualified 13 utility classes as
final
. (API changes) - Protected 2 constructors of
SoftPhysicsJoint
. (API changes) - Bugfix:
PhysicsRigidBody.setInverseInertiaLocal()
andPhysicsRigidBody.updateMassProps()
don't update the world inertia tensor - Bugfix: static rigid body isn't rebuilt when assigned a positive mass
- Bugfix: when rebuilding a rigid body, its ignore list is lost
- De-privatized the
setIgnoreCollisionCheck()
method inPhysicsCollisionObject
.
- Bugfix: values of 3
ConfigFlag
constants are out-of-date - Bugfix: Android native libraries are missing an object file
- Bugfix:
ConfigFlag.describe()
ignores 3 flags - Added the
DeformableSpace
,MyShape
, andReducedDeformableBody
classes. - Added constants
SDF_MDF
andSDF_RDN
to theConfigFlag
class. - Added the
tan()
method to theFastMath
class. - Added the
isOdd()
method to theMyMath
class. - Added the
removeSuffix()
method to theMyString
class. - Added a warning when the native library version is unexpected.
- Updated the Bullet sourcecode to match SHA1 ID=a1d96646 of the bullet3 project.
- Added the "checkstyle" plugin to the build.
- Added accessors for global deactivation settings:
PhysicsBody.getDeactivationDeadline()
PhysicsBody.isDeactivationEnabled()
PhysicsBody.setDeactivationDeadline()
PhysicsBody.setDeactivationEnabled()
- Added public setters for constraint pivots:
New6Dof.setPivotInA()
New6Dof.setPivotInB()
- Changed the arguments of
PhysicsSoftBody.appendFaces()
andPhysicsSoftBody.appendLinks()
. (API change) - Added the
Mesh
interface andIndexBuffer
class to simplify the interface between soft bodies and the SPORT graphics engine. - Added soft-body methods from Minie:
PhysicsSoftBody.appendTetras()
PhysicsSoftBody.boundingBox()
NativeSoftBodyUtils.appendFromLineMesh()
NativeSoftBodyUtils.appendFromTriMesh()
NativeSoftBodyUtils.appendTetras()
NativeSoftBodyUtils.mapIndices()
NativeSoftBodyUtils.updateClusterMesh()
NativeSoftBodyUtils.updateMesh()
NativeSoftBodyUtils.updatePinMesh()
- Added math methods from Heart:
MyMath.isIdentity(Transform)
MyBuffer.rotate()
MyBuffer.translate()
- Added the
phi
constant to theMyMath
class
- Bugfix:
PhysicsCharacter.onGround()
is unreliable (issue #18) - Added math methods:
BoundingBox.getCenter()
MyVector3f.midpoint()
- When allocating direct buffers, specify native byte order.
- Added math methods:
FastMath.pow(float, float)
MyMath.modulo(float, float)
MyMath.standardizeAngle(float)
MyMath.toDegrees(float)
MyMath.toRadians(float)
MyVector3f.accumulateScaled(Vector3f, Vector3f, float)
Transform.loadIdentity()
Vector3f.divide(Vector3f)
Vector3f.mult(float)
- Added math constants:
FastMath.TWO_PI
MyMath.DEG_TO_RAD
MyMath.RAD_TO_DEG
MyMath.rootHalf
MyVector3f.firstAxis
MyVector3f.lastAxis
- Added string methods:
MyString.escape(CharSequence)
MyString.quote(CharSequence)
- Added validation methods:
Validate.axisIndex(int, String)
Validate.finite(float, String)
Validate.nonEmpty(String, String)
- Log the filename passed to
System.load()
in order to simplify debugging.
Added the GearJoint
class.
- Bugfix:
EXCEPTION_ACCESS_VIOLATION
on Windows (Minie issue #23) - Added
add()
,negate()
,negateLocal()
, andsubtractLocal()
methods to theVector3f
class.
- Added accessors for
m_erp
andm_erp2
to theSolverInfo
class. - Explicitly required Java v8 or higher.
- Redesigned the
ContactListener
interface for utility and efficiency. (API changes) - Added the
PersistentManifolds
utility class. - Added the
countManifolds()
andlistManifolds()
methods to thePhysicsSpace
class. - Added a script to build native libraries for/on Apple Silicon.
- Handle missing platform subdirectories in
NativeLibraryLoader
.
- Added the
ManifoldPoints
utility class, which provides getters and setters forbtManifoldPoint
without the need to instantiate aPhysicsCollisionEvent
. - The
PhysicsCollisionEvent.setContactCalcArea3Points()
method was moved to theManifoldPoints
class. (API change) - The 4 setters added to
PhysicsCollisionEvent
in v12.8.0 were deleted. (API change) - The
PhysicsSpace.onContactProcessed()
method (added in v12.8.0) was deleted. (API change) - Defined the
ContactListener
interface for immediate processing of rigid-body contacts. Overriding this interface ofPhysicsSpace
is now the recommended way to process rigid-body contacts. - Added a new
update()
method toPhysicsSpace
to enable callbacks to specificContactListener
methods. - Deprecated 5
PhysicsSpace
methods associated with event queueing:addCollisionListener()
addOngoingCollisionListener()
distributeEvents()
removeCollisionListener()
removeOngoingCollisionListener()
- Bugfix: btAssert from
HingeJoint.setAngularOnly(true)
(Minie issue 20) - Added a dynamic collision-filtering hook to the
CollisionSpace
class. - Added an immediate ongoing-contact handler to the
PhysicsSpace
class. - Added 4 native setters to the
PhysicsCollisionEvent
class. - Changed
PrimitiveAllocator
to throw an exception on any destruction attempt. - Added a
Platform
mechanism to determine the generic name of the operating system. - Built using Gradle v7.4 .
- Bugfix: continuous collision detection causes memory corruption in a multithreaded world (bullet3 issue 4117)
- Restored support for the MacOSX32 platform.
- Added
divide(float, float, float)
,divideLocal(float, float, float)
, andmult(float, float, float)
methods to theVector3f
class. - Updated the Bullet sourcecode.
- Bugfix:
btTriangleShape::isInside()
relies on the plane normal, which is invalid for a degenerate triangle - Bugfix: unsafe
normalize()
is used inbtTriangleShape
- Bugfix: typo in
btTriangleShape::isInside()
("distance" for "distance2") - Pending resolution of Travis CI ticket #34567:
- Upgraded MacOS64 build tools from Xcode 9.3 to Xcode 12.4 .
- Dropped support for the MacOSX32 platform.
- Added the
isInsideTriangle()
method to theNativeLibrary
class. - Updated the Bullet sourcecode to match SHA1 ID=10f72b9b5 of the bullet3 project.
- Cached the methods that free native objects, to improve performance.
- Implemented contact filtering for GImpact collision shapes.
- Added the
setPivotInB()
method to theAnchor
class. - Overrode the
toString()
method in theIntPair
class.
- Bugfix:
SphereTriangleDetector
doesn't account for the triangle's margin - NativePhysicsObject: make all NPOs comparable (for use in collections)
Bugfix: contact filtering is too aggressive
- Bugfix: invalid contact points for heightfield/mesh shapes (Minie issue #18)
- Bugfix: unsafe
normalize()
is used inbtRaycastVehicle
- Bugfix: logic errors in
btTriangleShape::isInside()
- Added a flag to the
CollisionShape
class to disable contact filtering. - Identified native libraries built with
DEBUG_PERSISTENCY
defined. - Added accessors to the
CollisionSpace
class for the "deterministic overlapping pairs" mode bit.
Bugfix: vehicle wheels don't rotate in v12.2.1
- Bugfix: the velocities used to calculate
deltaRotation
are inaccurate - Bugfix: wheel rotation grows without bound, leading to roundoff errors
- Bugfix: damping is applied incorrectly to
deltaRotation
- Increased customization of the right/forward/up axes of a vehicle chassis.
- Added double-precision accessors for the gravity vectors of rigid bodies.
- Added the
Comparable
interface to theIntPair
class. - Upgraded the Bullet sources to match SHA1 ID=ce2627192 of the bullet3 project.
- Added double-precision getters for the locations and orientations of collision objects.
- Added double-precision accessors for the locations, orientations, and velocities of rigid bodies.
- Added the
Quatd
andVec3d
classes from SimMath. - Added the
isFinite()
method to theMyMath
class. - Built using Gradle v6.9.1 .
- Removed the
getX()
method from theVector3f
class. (API change) - Removed the deprecated
getAngularFactor()
method from thePhysicsRigidBody
class. (API change) - Renamed the
addContraintTorque()
native method in theMultiBodyLink
class. (API change) - Bugfix: "SpQuickprof" not recognized as a valid build flavor
- Disabled contact callbacks when the space has no listeners. (API change)
- In Mt builds, allocated 2 worker threads instead of the maximum number.
- Added profiling points to the
jmePhysicsSpace
class.
Optimized Release-type builds that use Microsoft's Visual C++ compiler.
- Bugfix: pure virtual call by btGImpactMeshShape destructor (Minie issue #17)
- Bugfix: Quickprof reset at the start of every simulation step
- Bugfix: BT_PROFILE() macro never invokes CProfileManager
- Added access to Quickprof profiling.
- Bugfix: missing the cppCompiler arguments to activate OpenMP extensions
- Added the copy constructor and
multLocal(x,y,z,w)
method to theQuaternion
class. - Added the copy constructor and
multLocal(x,y,z)
method to theVector3f
class. - Deprecated the
Vector3f.getX()
andPhysicsRigidBody.getAngularFactor()
methods.
- Bugfix: contact tests report events with positive separation distance
- Tweaked the behavior of
PhysicsRigidBody.setKinematic()
. - Added OpenMP-based multithreading for Linux64 and Windows64 platforms:
- Added the
countThreads()
andisThreadSafe()
methods to theNativeLibrary
class. - Added 2 build flavors: "SpMt" and "DpMt".
- In Mt builds, added a pool of contact-and-constraint solvers
to every
PhysicsSpace
.
- Added the
- Added the
destroy()
method to all physics spaces. - Added the
add(float, float, float)
andsubtract(float, float, float)
methods to theVector3f
class. - Added the
MyString
utility class. - Built using Gradle v6.9 .
- Bugfix: GImpact contact tests always fail (issue #7)
- Added
hasClosest()
andhasContact()
methods to theCollisionSpace
class. - Added a public
getShapeType()
method to theCollisionShape
class.
- Implemented tick listeners for the
PhysicsSpace
class. - Distinguished ARM macOS/Windows from other platforms.
- Eliminated all build dependencies on JCenter.
- Upgraded the Bullet sources to match SHA1 ID=0e124cb2 of the bullet3 project.
- Bugfix:
NullPointerException
inPoint2PointJoint.setPivotInB()
- Upgraded the Bullet sources to match SHA1 ID=00dcc7788 of the bullet3 project.
- Bugfix: Java copies of
Point2PointJoint
pivot locations not updated by setters - Bugfix: overflow/underflow in
Vector3f.length()
- Added the
setRotation()
method to theTransform
class. - Added the
set(int, int, float)
method to theMatrix3f
class. - Added
lerp()
methods to theMyMath
andMyVector3f
classes. - Increased use of double-precision arithmetic in the
MyMath
class. - Built using Gradle v6.8.3 .
- Added getters and setters for the pivot locations of a
Point2PointJoint
. - Tested using JUnit v4.13.2 .
- Bugfix: suspension lengths of a
PhysicsVehicle
are not initialized. - Eliminated all
finalize()
methods by implementing a cleaner thread and adding anNpoTracker
class. - Published to MavenCentral instead of JCenter.
- Built using Gradle v6.8.2 .
- Removed the
angularMomentum()
andkineticEnergy()
methods from theMultiBody
class. (API change) - Upgraded the Bullet sources to match SHA1 ID=537ccb220 of the bullet3 project.
- Added a return value to
MyQuaternion.validateUnit()
. - Reduced argument validation when assertions are disabled.
- Added an option to
Validate
to configure the type of exception thrown for anull
argument. - Publicized some loggers.
- Built using Gradle v6.8.1 .
- Bugfix: a vehicle's acceleration depends on its location (Minie issue #13).
- Cleared the user pointer of each
PhysicsCollisionObject
removed duringjmeCollisionSpace
destruction. - Reverted the null check added to
btAlignedObjectArray::findLinearSearch()
. - Built using Gradle v6.8 .
- Build Linux_ARM32hf libraries at Travis-CI.
- Added a NULL check to
btAlignedObjectArray::findLinearSearch()
.
- Build Linux_ARM32 libraries at Travis-CI.
- Publicized 2 methods in
MultiBodySpace
. - Bugfix: off-by-one in validation of wheel indices
- Built using Gradle v6.7.1 .
- Built using NDK v21.3.6528147 and Gradle plugin v4.1.1, with minSdkVersion=22.
- Test using JUnit v4.13.1 .
Built using Gradle v6.7 and Android SDK v30.
Bugfix: collision-group checks are ineffective due to missing parentheses
Bugfix: logic error in NewHinge.setLowerLimit()
- Bugfix: RotationOrder.cpp missing from the Android builds
- Bugfix: JVM crash while reading collision flags of a static rigid body
- Added the
NewHinge
class. - Added methods to the
New6Dof
class:calculatedOriginA()
calculatedOriginB()
- Added 8 methods to the com.jme3.math package.
- Built using Gradle v6.6.1 .
- Added the
matrixToEuler()
method to theRotationOrder
class. - Added the
newInstance()
method to theNew6Dof
class. - Added the
validateNonZero(Quaternion)
method to theValidate
class. - Added the
fromAngles()
andnormalizeLocal()
methods to theQuaternion
class. - Built using Gradle v6.6 .
- Changed the return type of
rayTestRaw()
in theCollisionSpace
class. (API change) - Changed the semantics of the
countJoints()
andlistJoints()
methods in thePhysicsBody
class. (API change) - Deleted the
getIndices()
andgetNumInts()
methods in theVHACDHull
class. (API change) - Delete the deprecated constructor in the
VHACDHull
class. (API change) - Privatized and renamed the
physicsJoints
field in thePhysicsSpace
class. (API change) - Privatized the
physicsSpaceTL
field in theCollisionSpace
class. (API change) - Bugfix: characters and ghosts ignore their own ignore lists!
- Added a
clearIgnoreList()
method to thePhysicsCollisionObject
class. - Added
findEnd()
andfindOtherBody()
methods to thePhysicsJoint
class. - Built using Gradle Android tools v4.0.1 .
- Added the
MyQuaternion
class from the Heart library. - Added
set()
,addLocal()
,mult()
, andmultLocal()
methods to theQuaternion
class. - Added a
clamp()
method for doubles to theMyMath
class.
- Bugfix:
PhysicsCharacter
behaves strangely until its location is set. - Added 4 methods to the
NativeLibrary
class:crash()
fail()
reinitialization()
setReinitializationCallbackEnabled()
- Added collision listeners for ongoing contacts in a
PhysicsSpace
. - Added a setter for
gContactCalcArea3Points
. - Built using Gradle v6.5.1 .
Added getters for the total force and torque on a rigid body.
- Added accessors for the speculative contact restitution flag
of a
PhysicsSpace
. - Deprecated one of the
VHACDHull
constructors. - Tested using JUnit v4.13 .
- Added the
static
qualifier to 816 native methods. (API changes) - Finalized 2 methods in the
NativePhysicsObject
class. (API changes) - Split off
BoundingValueHierarchy
from theMeshCollisionShape
class. (API change) - Split off
CharacterController
from thePhysicsCharacter
class. (API change) - Split off
VehicleController
from thePhysicsVehicle
class. (API change) - Privatized the
finalizeNative()
method in theConstraint
class. (API change) - Privatized 2 protected fields in the
PhysicsVehicle
class. - Removed 4 unused methods from "PhysicsRigidBody.cpp". (API changes)
- Removed 2 unused methods from "MultiBody.cpp". (API changes)
- Added a native-code fix for JME issue #1351.
- Added
postInitialization()
andversionNumber()
native methods to theNativeLibrary
class. - Added
getIndex()
to theVehicleWheel
class. - Built using Gradle v6.5 .
- Replaced inner class
PhysicsSoftBody.Material
withSoftBodyMaterial
. (API changes) - Deleted the
PhysicsCollisionObject.getObjectId()
method. (API change) - Deleted the
isUseSpaceGravity()
andsetUseSpaceGravity()
methods from thePhysicsRigidBody
class. (API changes) - Deleted the
createEmptySoftBody()
native method. (API change)
- Added a
copyClusterVelocities()
method to thePhysicsSoftBody
class. - Added an
updatePinMesh()
native method to theNativeSoftBodyUtil
class.
- Added a
contactTest()
method to theCollisionSpace
class. - Added a
CompoundCollisionShape
constructor to specify initial capacity.
- Added
countIgnored()
,findInstance()
, andignores()
methods to thePhysicsCollisionObject
class. - Added
isWorldInfoProtected()
andsetWorldInfoProtected()
methods to thePhysicsSoftBody
class. - Used ignore lists to implement the
collisionBetweenLinkedBodies
feature of theConstraint
class.
- Bugfix: crash caused by
ShortBuffer
containing index > 32767 - Bugfix:
CompoundCollisionShape.correctAxes()
gave incorrect results for some shapes - Plugged native memory leaks found in:
Java_vhacd_VHACD_compute()
jmeCollisionSpace
jmePhysicsSpace
SoftBodyWorldInfo
VehicleTuning
- In the
PhysicsRigidBody
class, replacedisUseSpaceGravity()
withisGravityProtected()
andsetUseSpaceGravity()
withsetProtectGravity()
. - Deprecated the
getObjectId()
method inPhysicsCollisionObject
. - Provided Java access to the ignore list of a
PhysicsCollisionObject
. Formerly these lists were used only to implementsetCollisionBetweenLinkedBodies()
for constraints. - Added a
dumpMemoryLeaks()
method to theNativeLibrary
class. This feature requires a native library built with-DBT_DEBUG_MEMORY_ALLOCATIONS
. - Added the
toRotationMatrix()
method to theMatrix4f
class. - Built using Gradle v6.4.1 .
- Removed 18 deprecated methods. (API changes)
- Added arguments for
proxyGroup
andproxyMask
to theJava_com_jme3_bullet_PhysicsSpace_addRigidBody()
method. (API change) - Changed
PhysicsCollisionObject
andPhysicsCollisionEvent
to be subclasses ofNativePhysicsObject
. (API changes) - Added a no-arg constructor to the
VHACD
class. (API change) - Changed 7
PhysicsSpace
methods to return unmodifiable collections instead of copies:getCharacterList()
getGhostObjectList()
getJointList()
getMultiBodyList()
getRigidBodyList()
getSoftBodyList()
getVehicleList()
- Added
isUseSpaceGravity()
andsetUseSpaceGravity()
methods to thePhysicsRigidBody
class. - Added
rotate()
andtranslate()
methods to theCompoundCollisionShape
class. - Publicized the
addJoint()
andremoveJoint()
methods in thePhysicsSpace
class. - Added 2
mult()
methods to theMatrix3f
class. - Updated the V-HACD sources to match SHA1 ID=2731201 of the v-hacd project.
- Built using Gradle v6.4 .
- bugfix:
FINE
logging of collision spaces reportsnativeId=0
increate()
- Implemented collision listeners in
PhysicsSpace
. - Added tracking of the
PhysicsSpace
where eachPhysicsJoint
is added. - Added an
activateAll()
method to thePhysicsSpace
class. - Added
proxyGroup()
andproxyMask()
methods to thePhysicsCollisionObject
class. - Check the
m_objectType
field of everybtTypedConstraint
. - Build for Java 7 compatibility.
- bugfix: native crash while finalizing a non-empty
CollisionSpace
(JME issue #1351). - Added a
NativePhysicsObject
class and refactored 16 classes to become its subclasses. - Added a constructor for
MeshCollisionShape
that takes aCollection
of native meshes. - Added 3 methods to the
PhysicsCollisionObject
class:getProxyFilterGroup()
getProxyFilterMask()
hasBroadphaseProxy()
- Deprecated many redundant methods.
- Added 8 methods:
PhysicsCollisionEvent.getCombinedRollingFriction()
PhysicsCollisionEvent.getCombinedSpinningFriction()
SolverInfo.isSplitImpulseEnabled()
SolverInfo.setSplitImpulseEnabled()
SolverInfo.setSplitImpulseErp()
SolverInfo.setSplitImpulseThreshold()
SolverInfo.splitImpulseErp()
SolverInfo.splitImpulseThreshold()
bugfix: the btBvhTriangleMeshShape
, btGImpactShape
, and btOptimizedBvh
classes don't support PHY_UCHAR
mesh indices.
Specify the c++_static
STL for Android builds.
bugfix: specify the Android STL in Application.mk, not Android.mk
Build native libraries for Android (Sp flavor only).
Use GCC 4.7 for Linux-on-AMD builds, to support Centos 7.
- Bugfix: Minie issue #2 (access violations with Java 9+ on Windows).
- Added 5 methods needed for soft-body construction:
IndexedMesh.copyIndices()
IndexedMesh.copyVertexPositions()
NativeSoftBodyUtil.appendFromNativeMesh()
PhysicsSoftBody.appendFaces()
PhysicsSoftBody.appendLinks()
- Added
IntPair
class. - Built using Gradle v6.3.
Bugfix: wrong indexType
passed to addIndexedMesh()
.
Built on trusty (for AMD) and xenial (for ARM).
- Added
getCollisionSpace()
andspaceId()
methods to thePhysicsCollisionObject
class. - Added
boundingBox()
method to thePhysicsCollisionObject
class. - Added the
PcoType
class. - Built on bionic.
- Added the
ContactPointFlag
class and also agetFlags()
method for thePhysicsCollisionEvent
class. - Added a
serializeBvh()
method and BVH-based constructor to theMeshCollisionShape
class. - Added a
get()
method to theMatrix3f
class. - Added a
setSuspensionLength()
method to theVehicleWheel
class.
Added 3 methods to the VehicleWheel
class:
getRotationAngle()
getSuspensionLength()
setRotationAngle()
- Added
boundingBox()
methods to theCollisionShape
class, along with theBoundingBox
class and supporting methods. - Added methods
createByte()
andcreateShort()
to theIndexedMesh
class. - Specify ABI version 7 for Linux builds.
- API changes:
- renamed
MultiBodySolver
toSolverType
- renamed
getVertices2()
togetTriangles()
in theDebugShapeFactory
class - access the number of solver iterations via
SolverInfo
instead ofPhysicsSpace
- deleted the
configureClonedLink()
method from theMultiBody
class - changed the return types of the
addBaseCollider()
andlistColliders()
methods in theMultiBody
class - changed the return type of the
addCollider()
method in theMultiBodyLink
class
- renamed
- Bugfix: wrong
JNIEnv
used in multithreaded apps. - Implemented the
Comparable
interface in theMultiBody
class. - Added support for MLCP and NNCG solvers to the
PhysicsSpace
class. - Added 2 new classes:
SolverInfo
andSolverMode
. - Added a
getVertices()
method to theDebugShapeFactory
class.
- Bugfix: incorrect filter groups and masks when adding a
collider to a
MultiBodySpace
- Bugfix: collider spaces not set when adding to a
MultiBodySpace
- Bugfix: unsatisfied link of
MultiBody.getCanSleep()
- Added capability to specify the constraint solver for a
MultiBodySpace
. - Added 5 methods to the
MultiBodyCollider
class:getMultiBody()
linkIndex()
mass()
setPhysicsLocation()
setPhysicsRotation()
- Added 2 native methods to the
PhysicsCollisionObject
class:getCollideWithGroups()
getCollisionGroup()
- Added 10 methods to the
MultiBodyLink
class:axis()
orientation()
parent2Link()
parent2Pivot()
pivot2Link()
getAxisBottom()
getAxisTop()
getDVector()
getEVector()
getQ0Parent2LinkRotation()
- Added a
configureClonedLink()
method to theMultiBody
class. - Built using Gradle v6.2.2
- API changes:
- Isolated collision detection from dynamics by adding 2 new classes:
CollisionSpace
andjmeCollisionSpace
. - Deleted the
com.jme3.bullet.debug
package, includingDebugTools
. - Deleted the
isNormalInWorldSpace()
methods from thePhysicsRayTestResult
andPhysicsSweepTestResult
classes. - Privatized the
scale
field in theCompoundMesh
class. - Privatized 2 public fields in the
VHACDHull
class. - Changed arguments to
ConvexShape
inConvex2dShape
constructor,PhysicsCharacter
constructor, andCollisionSpace.sweepTest()
. - Changed argument to
float...
inHullCollisionShape
constructor. - Changed arguments in
jmeCollisionShape.createCollisionSpace()
. - Changed arguments in
jmePhysicsSpace.createPhysicsSpace()
. - Deleted many fields and methods from the
jme3utilities
,jme3utilities.math
, andcom.jme3.math
packages.
- Isolated collision detection from dynamics by adding 2 new classes:
- Implemented multibody/Featherstone support by adding 5 new classes:
MultiBody
,MultiBodyCollider
,MultiBodyJointType
,MultiBodyLink
, andMultiBodySpace
. - Added new methods:
- 2
PhysicsSpace
constructors VHACDHull.clonePositions()
PhysicsSpace.getGlobalCfm()
PhysicsSpace.setGlobalCfm()
PhysicsSoftSpace.getNumSoftBodies()
- 2
- Added more
package-info.java
files. - Built using Gradle v6.2.1
- Bugfix:
btAssert()
inbtVector3::normalize()
(Minie issue #3). - Added
countCollisionObjects()
andgetWorldType()
methods to thePhysicsSpace
class. - Added more automated tests to
TestLibbulletjme
. - Added
package-info.java
files. - Built using Gradle v6.2
- Added an abstract class
ConvexShape
. - Added
getStepHeight()
,getWalkOffset()
, andisUsingGhostSweepTest()
methods to thePhysicsCharacter
class.
- Implemented filtering of predictive contacts (JME issue 1283).
- Added validation of angular limits to the
SixDofJoint
class. - Added a
VF_DD
flag to theConfigFlag
class.
- Build native libraries for
Linux_ARM64
platforms. - Added more automated tests to
TestLibbulletjme
. - Added a
getDebugTriangles()
method to theDebugShapeFactory
class. - Added a
generateBasis()
method to theMyVector3f
class. - Added a
hashCode()
method to theVHACDParameters
class.
- Build a class JAR, a javadoc JAR, a sources JAR, and a POM.
- Added automated testing with Junit.
- Moved all source files from "src" to "src/main".
- Added a
getNbPinnedNodes()
method to thePhysicsSoftBody
class. - Built using Gradle v6.1.1
- Provided part and triangle indices from ray tests and sweep tests.
- Cleaned up the handling of results from ray tests and sweep tests.
- Built using Gradle v6.1
- Removed 6 JNI methods:
CompoundCollisionShape.createShape()
PhysicsCharacter.getCcdMotionThreshold()
PhysicsCharacter.getCcdSquareMotionThreshold()
PhysicsCharacter.getCcdSweptSphereRadius()
PhysicsCharacter.setCcdMotionThreshold()
PhysicsCharacter.setCcdSweptSphereRadius()
- Replaced
jobject
argument withjlong
inPhysicsVehicle.addWheel()
. - Replaced
ByteBuffer
arguments withFloatBuffer
inHullCollisionShape
. - Removed unused arguments of 2 JNI methods:
PhysicsSpace.createPhysicsSpace()
PhysicsVehicle.createVehicleRaycaster()
- Changed the return-type of 4 JNI methods:
CompoundCollisionShape.addChildShape()
CompoundCollisionShape.removeChildShape()
PhysicsRigidBody.updateMassProps()
SoftBodyWorldInfo.setSoftBodyWorldInfo()
- Added a new
VehicleTuning
class. - Added a new
PhysicsRigidBody.getMass()
method.
- Updated the V-HACD sources to match SHA1 ID=b07958e1 of the v-hacd project.
This eliminated the depth and gamma properties from
VHACDParameters
. - Began reporting V-HACD progress to a
VHACD.update()
method. - Switched from Visual Studio 2017 to Visual Studio 2019 for Windows builds.
Solved a compile-time error on platforms where jint != int.
Added V-HACD sources from March 2016 (SHA1 ID=ded1fe4) plus new JNI glue code.
- Fixed a
btAssert()
that occurred (in Debug builds) while rescaling a rigid body with aMeshCollisionShape
. - Upgraded the Bullet sources to match version 2.89 (SHA1 ID=830f0a956) of the bullet3 project.
- Added
getForwardAxisIndex()
,getRightAxisIndex()
,getNumWheels()
,getUpAxisIndex()
, andrayCast()
methods to thePhysicsVehicle
class. - Added
getBrake()
,getEngineForce()
,getRadius()
,getRestLength()
,getRollInfluence()
,getSteerAngle()
, andisFront()
methods to theVehicleWheel
class. - Added many assertions to the
PhysicsVehicle
class.
Added support for btBox2dShape
and btConvex2dShape
(new classes Box2dShape
and Convex2dShape
).
- Added
getAngles()
,getAxis()
,getFrameOffsetA()
,getFrameOffsetB()
,getPivotOffset()
,getRotationOrder()
, andsetRotationOrder()
methods to theNew6Dof
class. - Added range checks for axis indices in
TranslationMotor
.
Added support for btGeneric6DofSpring2Constrant
(new class New6Dof
).
- Reverted the Bullet sources to match SHA1 id=1981493a of the bullet3 project.
- Built using Gradle v6.0.1
Updated the Bullet sources to match SHA1 id=aac737017 of the bullet3 project, to resolve soft-body performance issues at id=837e333.
- Added
getDamping()
,getEquilibriumPoint()
,getStiffness()
, andisSpringEnabled()
methods to theSixDofSpringJoint
class. - Updated the Bullet sources to match SHA1 id=837e333 of the bullet3 project.
- Added
calculatePrincipalAxisTransform()
,countChildren()
,createShape2()
, andsetChildTransform()
methods to theCompoundCollisionShape
class. - Disabled NULL_CHECKs except in Debug builds.
- Added
getActivationState()
andsetActivationState()
methods to thePhysicsCollisionObject
class. - Added
isConvex()
,isInfinite()
,isNonMoving()
, andisPolyhedral()
methods to theCollisionShape
class. - Added more internal checks.
- Added a
getSquaredSpeed()
method to thePhysicsRigidBody
class. - Extensive refactoring and reformatting.
- Added a
getGravity()
method to thePhysicsSpace
class. - Added more internal type checks.
- Added a
setAccumulatedImpulse()
method to theRotationalLimitMotor
class. - Added internal type checks to joint constructors.
- Updated the Bullet sources to match SHA1 id=1981493a of the bullet3 project.
- Added
isEnabled()
andsetEnabled()
methods to theTranslationalLimitMotor
class. - Added assertions to verify the internal type in
HullCollisionShape
,PhysicsRigidBody
, andPhysicsSoftBody
.
- Deleted
NativeMeshUtil
andPhysicsJoint
. - Deleted 51 JNI methods that Minie no longer uses.
Fixed 2 bugs:
btAssert()
while creating a rigid body with aMeshCollisionShape
ConeJoint
causes rigid bodies to disappear (JME issue 1135)
Added accessors for 6 cluster parameters.
Re-try after a partial deployment.
Solved some compile-time errors reported by GCC.
- Added a
getShapeType()
method to theCollisionShape
class. - Added
getConstraintType()
,getOverrideIterations()
, andoverrideIterations()
methods to theConstraint
class. - Added assertions to verify the internal type in
PhysicsGhostObject
.
- Added new class
Anchor
. - Upgraded the Bullet sources to match SHA1 ID=681a730e of the bullet3 project.
Added 2 new classes: Constraint
and NativeLibrary
.
- Redesigned the create methods for
SoftAngularJoint
andSoftLinearJoint
. - Removed the
updateBound()
call fromGImpactCollisionShape.createShape()
. - Added
enableFeedback()
andneedsFeedback()
methods to thePhysicsJoint
class. - Added a
getInternalType()
method toPhysicsCollisionObject
. - Added assertions to validate indices in
PhysicsSoftBody
.
Added appendCluster()
and finishClusters()
methods to the
PhysicsSoftBody
class.
- Added
recalcAabb()
methods to 6 shape classes. - Deployed PDB files from AppVeyor.
- Bugfix: crash with
HeightfieldCollisionShape
in DP build (accessing freed array). - Added
createShape2()
andfinalizeNative()
methods to theHeightfieldCollisionShape
class. - Deployed debug libraries from AppVeyor.
- Stopped #undef-ing
_FORTIFY_SOURCE
.
- Added a new mechanism for creating native meshes: uses
CompoundMesh
andIndexedMesh
instead ofNativeMeshUtil
. - Bugfix:
btAssert
while creating a rigid body withEmptyShape
. - Implemented
Debug
builds for theVisualCpp
toolchain. - Added a
finalizeBVH()
method toMeshCollisionShape
.
Resolved yet another compile-time error.
Resolved more compile-time diagnostic messages.
Resolved some compile-time diagnostic messages.
- Renamed the distribution files again.
- Added double-precision (DP) builds.
- Renamed the distribution files.
- Added debug builds for the gcc toolchain.
- Added null checks for buffers passed via JNI.
- Added count arguments to
appendFaces()
,appendLinks()
,appendNodes()
, andappendTetras()
methods in thePhysicsSoftBody
class. - Added limit checks for the number of nodes when masses, normals,
and velocities in the
PhysicsSoftBody
class.
Bugfix: scaling ignored in PhysicsSoftBody.applyPhysicsTransform().
- Added an
updateAnchorMesh()
method to theNativeSoftBodyUtils
class. - Changed the default collision margin for soft bodies from 0 to
CONVEX_DISTANCE_MARGIN
(which is currently 0.04).
Added an explicit cast to enum type.
- Removed
applyAeroToMode()
method from thePhysicsSoftBody
class. - Added
getWindVelocity()
andsetWindVelocity()
methods to thePhysicsSoftBody
class. - Added
getAeroModel()
andsetAeroModel()
methods to theSoftBodyConfig
class.
Renamed the PhysicsSoftBody.Config
class to SoftBodyConfig
.
Corrected the names of 2 methods in SoftBodyWorldInfo
.
Corrected the names of 2 methods in SoftBodyWorldInfo
.
- Moved the
SoftBodyWorldInfo
class from com_jme3_bullet_objects_info to com_jme3_bullet. - Removed 4 methods from
PhysicsSoftBody
:getPhysicsRotation
getPhysicsTransform
setPhysicsRotation
setPhysicsTransform
Added an updateClusterMesh()
method to the NativeSoftBodyUtil
class.
- Added
countNodesInCluster()
andlistNodesInCluster()
to thePhysicsSoftBody
class. - Upgraded the Bullet sources to match SHA1 ID=26486d56 of the bullet3 project.
- Changed "and" to "or" in the
needBroadphaseCollision()
methods. - Added a
getClustersMasses()
method to thePhysicsSoftBody
class.
Added getMargin()
and setMargin()
methods to the PhysicsSoftBody
class.
- Initialized the inertia tensor of a
PhysicsRigidBody
even if it's static, since the tensor is used inbtSoftBody::PSolve_RContacts()
. - Registered some soft-body collision algorithms in
jmePhysicsSoftSpace
.
Added 8 methods to the PhysicsSoftBody
class:
cutLink()
getAnchorInfluence()
getAnchorNodeIndex()
getAnchorPivot()
getAnchorRigidId()
isCollisionAllowed()
setNormals()
setVelocities()
Added a getBounds()
method to the PhysicsSoftBody
class.
- Copied the
needBroadphaseCollision
code fromjmePhysicsSpace.cpp
tojme3PhysicsSoftSpace.cpp
. - Added
getClusterCenter()
andsetNodeVelocity()
methods to thePhysicsSoftBody
class. - Removed all null checks for
new
operations: not necessary. - Implemented the
bt32BitAxisSweep3
option injme3PhysicsSoftSpace
. - Registered the
btGImpactCollisionAlgorithm
injme3PhysicsSoftSpace
.
- Removed the redundant
getBoundingCenter()
methods from thePhysicsSoftBody
class. - Renamed the
setMacDisplacement()
method in theSoftBodyWorldInfo
class. - Upgraded the Bullet sources to match SHA1 ID=f4f5f708 of the bullet3 project.
- Added 9 methods to the
PhysicsSoftBody
class:addVelocity()
getAnchorCount()
getClustersPositions()
getNodeLocation()
getNodeNormal()
getNodesNormals()
getNodesVelocities()
getNodeVelocity()
setVelocity()
- Renamed the
getRestLenghtScale()
andsetRestLenghtScale()
methods in thePhysicsSoftBody
class. - Added an
isInWorld()
method to thePhysicsCollisionObject
class. - Changed
free()
todelete
in thejmeMotionState
destructor.
Changed free()
to delete
in MultiSphere
.
Rolled back half of the recent change to MultiSphere
.
- Clarified the buffer-reading loops in
PhysicsSoftBody
. - Plugged a memory leak in
MultiSphere
.
- Added getters for frame transforms of cone, hinge, and slider joints.
- Built using Gradle v5.3.1
Bugfix: NullPointerException
thrown by NULL_CHECK
in
PhysicsRigidBody.setAngularDamping()
.
Forced recalculation of pivot offset in SixDofJoint.getPivotOffset()
.
- Forced recalculation of joint angles in
SixDofJoint.getAngles()
. - Deployed a
NULL_CHECK
macro.
Bugfix: compile-time errors in SixDofJoint
.
- Added
getAngles()
andgetPivotOffset()
methods to theSixDofJoint
class. - Updated the Bullet sources to match SHA1 ID=c6a43e0a5 of the bullet3 project.
- Reverted GCC options for debugging.
- Final fix for JME issue #1058.
Reordered 2 statements in btSimpleBroadphase::destroyProxy()
while
trying to fix JME issue #1058.
GCC options for debugging.
- Added a
getNumConstaints()
method to thePhysicsSpace
class. - Implement
AXIS_SWEEP_3_32
broadphase algorithm; was aliased tobtAxisSweep3
.
Added getAabb()
and getBoundingSphere()
methods to
the CollisionShape
class.
Try a different method of constructing btVector3
.
- Added a
CollisionShape.setLocalScaling()
using scalars. - Added a
PhysicsRigidBody.setGravity()
using scalars. - Updated the Bullet sources to match SHA1 id=d56b1361 of the bullet3 project.
Optimize the convex hull when creating a HullCollisionShape
.
- Added
countHullVertices()
andgetHullVertices()
methods to theHullCollisionShape
class. - Added a
getInverseInertiaWorld()
method to thePhysicsRigidBody
class.
Added an applyCentralImpulse()
method to the PhysicsRigidBody
class.
Remove extra qualification from jmePhysicsSpace.h
.
Try riccardobl's fix for JME issue #1029.
Use a copy of btSphereSphereCollisionAlgorithm.cpp
from Bullet v2.82
in an attempt to work around JME issue #1029.
- Added a
getOrientation()
method to thePhysicsCollisionObject
class. - In
jmePhysicsSpace::contactProcessedCallback()
, check both collision objects for NULL user pointers. - Updated the Bullet sources to match SHA1 id=1bac759a of the bullet3 project.
Added 21 methods to PhysicsCollisionObject
:
{get/has/set}AnisotropicFriction()
getBasis()
,getLocation()
, andsetLocationAndBasis()
getContactDamping()
,getContactStiffness()
, andsetContactStiffnessAndDamping()
{get/set}ContactProcessingThreshold()
{get/set}DeactivationTime
{get/set}Friction()
{get/set}Restitution()
{get/set}RollingFriction()
{get/set}SpinningFriction()
- Added
getFallSpeed()
,getJumpSpeed()
,getUpDirection()
,reset()
, andsetUseGhostSweepTest()
to thePhysicsCharacter
class. - Added
getCcdMotionThreshold()
,getCcdSweptSphereRadius()
,setCcdMotionThreshold()
, andsetCcdSweptSphereRadius()
to thePhysicsCollisionObject
class. - Verify convex shape in
PhysicsCharacter.createCharacterObject()
.
Bugfix: setStartupMessageEnabled()
should default to TRUE.
- Renamed the project from Jme3-bullet-native to Libbulletjme.
- Added
countSpheres()
,getSpherePosition()
, andgetSphereRadius()
to theMultiSphere
class. - Added
DebugTools.setStartupMessageEnabled()
in order to make the startup message optional.
Added createShapeB(ByteBuffer, int)
methods to the HullCollisionShape
and MultiSphere
classes.
Upgraded the Bullet sources to match release 2.88 of the bullet3 project.
Added diagnostic messages when a contact is ignored
by jmePhysicsSpace::contactProcessedCallback
.
- Print version number during initialization.
- Added
EmptyShape
class based onbtEmptyShape
. - Added
isActive()
method to thePhysicsCollisionObject
class. - Upgraded the Bullet sources to match SHA1 ID=4a66d6c of the bullet3 project.
- Removed ancient threading support from
jmePhysicsSoftSpace
.
- Added missing source file for
PhysicsSoftBody
. - Removed portions of the Bullet Physics library that are not needed here.
- Added soft-body physics support, mostly copied straight from Dokthar's fork.
- Added
getCollisionFlags()
andsetCollisionFlags()
to thePhysicsCollisionObject
class.
- Added a method to create a single-ended
SliderJoint
. - Added null checks and improved exception messages.
Added methods to create single-ended ConeJoint
, HingeJoint
,
SixDofJoint
, and SixDofSpringJoint
.
- Added
getBreakingImpulseThreshold()
,setBreakingImpulseThreshold()
,isEnabled()
, andsetEnabled()
to thePhysicsJoint
class. - Added a method to create a single-ended
Point2PointJoint
.
- Added an option to generate debug meshes with 256 vertices for convex shapes, instead of the usual 42 vertices.
- Avoid trashing the shape's user pointer in
DebugShapeFactory
.
- Added a multi-sphere collision shape.
- Added
isConcave()
to theCollisionShape
class. - Changed the initialization message.
Upgraded the Bullet sources to match SHA1 ID=9ad77a2 of the bullet3 project.
- Added
activate()
to thePhysicsCollisionObject
class. - Added
getTargetVelocity()
to theTranslationalLimitMotor
class. - Removed an accidentally committed DLL.
- Improved argument validation for JNI methods.
Upgraded the Bullet sources to match release 2.87 of the bullet3 project.
Use the Force in PhysicsRigidBody.activate()
.
- Added
getAccumulatedImpulse()
andgetCurrentPosition()
to theRotationalLimitMotor
class. - Added
getOffset()
andsetTargetVelocity()
to theTranslationalLimitMotor
class.
- Removed the unused
addConstraint()
andinitNativePhysics()
from thePhysicsSpace
class. - Added 4 CFM accessors to the
RotationalLimitMotor
class. - Added 8 accessors to the
TranslationalLimitMotor
class for CFM, ERP, and max motor force.
- Provided access to JME's
Transform.getScale()
method. - Added methods to convert a
btQuaternion
orbtTransform
to JME. - Added 3 frame accessors to the
SixDofJoint
class.
Removed all Bullet3 source files except Bullet3Common
.
Disabled Quickprof to avoid its thread limit.
- Fixed JME issues 918 and 919.
- Added
getLocalScaling()
method forCollisionShape
. - Removed 2 files not needed for Gradle build.
This was the initial baseline release, combining
source code from release 2.86.1 of the bullet3 project
with glue code from the master
branch of the jmonkeyengine project.