Package com.jme3.bullet
Class PhysicsSoftSpace
java.lang.Object
com.jme3.bullet.NativePhysicsObject
com.jme3.bullet.CollisionSpace
com.jme3.bullet.PhysicsSpace
com.jme3.bullet.PhysicsSoftSpace
- All Implemented Interfaces:
ContactListener
,Comparable<NativePhysicsObject>
A PhysicsSpace that supports soft bodies, with its own
btSoftRigidDynamicsWorld
.-
Nested Class Summary
Nested classes/interfaces inherited from class com.jme3.bullet.PhysicsSpace
PhysicsSpace.BroadphaseType
-
Field Summary
Fields inherited from class com.jme3.bullet.PhysicsSpace
AXIS_X, AXIS_Y, AXIS_Z, logger
Fields inherited from class com.jme3.bullet.CollisionSpace
loggerC
Fields inherited from class com.jme3.bullet.NativePhysicsObject
loggerN
-
Constructor Summary
ConstructorDescriptionPhysicsSoftSpace
(PhysicsSpace.BroadphaseType broadphaseType) Instantiate a PhysicsSoftSpace with a sequential-impulse solver.PhysicsSoftSpace
(Vector3f worldMin, Vector3f worldMax, PhysicsSpace.BroadphaseType broadphaseType) Instantiate a PhysicsSoftSpace with a sequential-impulse solver.PhysicsSoftSpace
(Vector3f worldMin, Vector3f worldMax, PhysicsSpace.BroadphaseType broadphaseType, CollisionConfiguration configuration) Instantiate a PhysicsSoftSpace with a sequential-impulse solver. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add the specified collision object to this space.boolean
Test whether the specified collision object is added to this space.int
Count the joints in this space, including anchors and soft-body joints.int
Count the soft bodies in this space.protected void
create()
Must be invoked on the designated physics thread.void
destroy()
Remove all collision objects and physics joints.Enumerate collision objects that have been added to this space and not yet removed.Enumerate soft bodies that have been added to this space and not yet removed.static PhysicsSoftSpace
Access the PhysicsSoftSpace running on this thread.Access the parameters applied when soft bodies are added to this space.boolean
isEmpty()
Test whether this space is empty.void
Remove the specified collision object from this space.void
setGravity
(Vector3f gravity) Alter the gravitational acceleration acting on newly-added bodies.Methods inherited from class com.jme3.bullet.PhysicsSpace
activateAll, add, addJoint, addTickListener, contains, countManifolds, countRigidBodies, countTickListeners, getAccuracy, getCharacterList, getGravity, getJointList, getJointMap, getPhysicsSpace, getRigidBodyList, getSolverInfo, getSolverType, getVehicleList, getWorldType, initSolverInfo, isCcdWithStaticOnly, isUsingScr, listManifoldIds, maxSubSteps, maxTimeStep, onContactEnded, onContactProcessed, onContactStarted, remove, removeJoint, removeTickListener, setAccuracy, setCcdWithStaticOnly, setMaxSubSteps, setMaxTimeStep, update, update, update, updateSolver, useScr
Methods inherited from class com.jme3.bullet.CollisionSpace
contactTest, countCollisionObjects, countSolvers, getBroadphaseType, getCollisionSpace, getConfiguration, getGhostObjectList, getRayTestFlags, getWorldMax, getWorldMin, hasClosest, hasContact, initThread, isForceUpdateAllAabbs, isUsingDeterministicDispatch, jniEnvId, needsCollision, pairTest, rayTest, rayTest, rayTestDp, rayTestRaw, rayTestRaw, setForceUpdateAllAabbs, setLocalThreadPhysicsSpace, setRayTestFlags, sweepTest, useDeterministicDispatch
Methods inherited from class com.jme3.bullet.NativePhysicsObject
compareTo, countTrackers, dumpTrackers, equals, freeUnusedObjects, hasAssignedNativeObject, hashCode, nativeId, reassignNativeId, setNativeId, setNativeIdNotTracked, toString, unassignNativeObject
-
Field Details
-
logger2
message logger for this class
-
-
Constructor Details
-
PhysicsSoftSpace
Instantiate a PhysicsSoftSpace with a sequential-impulse solver. Must be invoked on the designated physics thread.- Parameters:
broadphaseType
- which broadphase accelerator to use (not null)
-
PhysicsSoftSpace
public PhysicsSoftSpace(Vector3f worldMin, Vector3f worldMax, PhysicsSpace.BroadphaseType broadphaseType) Instantiate a PhysicsSoftSpace with a sequential-impulse solver. Must be invoked on the designated physics thread.- Parameters:
worldMin
- the desired minimum coordinate value for each axis (not null, unaffected, default=(-10k,-10k,-10k))worldMax
- the desired maximum coordinate value for each axis (not null, unaffected, default=(10k,10k,10k))broadphaseType
- which broadphase accelerator to use (not null)
-
PhysicsSoftSpace
public PhysicsSoftSpace(Vector3f worldMin, Vector3f worldMax, PhysicsSpace.BroadphaseType broadphaseType, CollisionConfiguration configuration) Instantiate a PhysicsSoftSpace with a sequential-impulse solver. Must be invoked on the designated physics thread.- Parameters:
worldMin
- the desired minimum coordinate value for each axis (not null, unaffected, default=(-10k,-10k,-10k))worldMax
- the desired maximum coordinate value for each axis (not null, unaffected, default=(10k,10k,10k))broadphaseType
- which broadphase accelerator to use (not null)configuration
- the desired configuration (not null)
-
-
Method Details
-
countSoftBodies
public int countSoftBodies()Count the soft bodies in this space.- Returns:
- the count (≥0)
-
getSoftBodyList
Enumerate soft bodies that have been added to this space and not yet removed.- Returns:
- a new unmodifiable collection of pre-existing instances (not null)
-
getSoftSpace
Access the PhysicsSoftSpace running on this thread. For parallel physics, this may be invoked from the OpenGL thread.- Returns:
- the pre-existing PhysicsSoftSpace running on this thread
-
getWorldInfo
Access the parameters applied when soft bodies are added to this space.- Returns:
- the pre-existing instance (not null)
-
addCollisionObject
Add the specified collision object to this space.- Overrides:
addCollisionObject
in classPhysicsSpace
- Parameters:
pco
- the collision object to add (not null)
-
contains
Test whether the specified collision object is added to this space.- Overrides:
contains
in classPhysicsSpace
- Parameters:
pco
- the object to test (not null, unaffected)- Returns:
- true if currently added, otherwise false
-
countJoints
public int countJoints()Count the joints in this space, including anchors and soft-body joints.- Overrides:
countJoints
in classPhysicsSpace
- Returns:
- the count (≥0)
-
create
protected void create()Must be invoked on the designated physics thread.- Overrides:
create
in classPhysicsSpace
-
destroy
public void destroy()Remove all collision objects and physics joints.- Overrides:
destroy
in classPhysicsSpace
-
getPcoList
Enumerate collision objects that have been added to this space and not yet removed.- Overrides:
getPcoList
in classPhysicsSpace
- Returns:
- a new modifiable collection of pre-existing instances (not null)
-
isEmpty
public boolean isEmpty()Test whether this space is empty.- Overrides:
isEmpty
in classPhysicsSpace
- Returns:
- true if empty, otherwise false
-
removeCollisionObject
Remove the specified collision object from this space.- Overrides:
removeCollisionObject
in classPhysicsSpace
- Parameters:
pco
- the collision object to remove (not null)
-
setGravity
Alter the gravitational acceleration acting on newly-added bodies.Typically, when a body is added to a space, the body's gravity gets set to that of the space. Thus, it is preferable to set the space's gravity before adding any bodies to the space.
- Overrides:
setGravity
in classPhysicsSpace
- Parameters:
gravity
- the desired acceleration vector (not null, unaffected, default=(0,-9.81,0))
-