|
| void | Initialize (const SoftBodyCreationSettings &inSettings) |
| | Initialize the soft body motion properties.
|
| |
| const SoftBodySharedSettings * | GetSettings () const |
| | Get the shared settings of the soft body.
|
| |
| const Array< Vertex > & | GetVertices () const |
| | Get the vertices of the soft body.
|
| |
| Array< Vertex > & | GetVertices () |
| |
| const Vertex & | GetVertex (uint inIndex) const |
| | Access an individual vertex.
|
| |
| Vertex & | GetVertex (uint inIndex) |
| |
| Quat | GetRodRotation (uint inIndex) const |
| | Access to the state of rods.
|
| |
| Vec3 | GetRodAngularVelocity (uint inIndex) const |
| |
| const PhysicsMaterialList & | GetMaterials () const |
| | Get the materials of the soft body.
|
| |
| const Array< Face > & | GetFaces () const |
| | Get the faces of the soft body.
|
| |
| const Face & | GetFace (uint inIndex) const |
| | Access to an individual face.
|
| |
| uint32 | GetNumIterations () const |
| | Get the number of solver iterations.
|
| |
| void | SetNumIterations (uint32 inNumIterations) |
| |
| float | GetPressure () const |
| | Get the pressure of the soft body.
|
| |
| void | SetPressure (float inPressure) |
| |
| bool | GetUpdatePosition () const |
| | Update the position of the body while simulating (set to false for something that is attached to the static world)
|
| |
| void | SetUpdatePosition (bool inUpdatePosition) |
| |
| bool | GetFacesDoubleSided () const |
| | If the faces in this soft body should be treated as double sided for the purpose of collision detection (ray cast / collide shape / cast shape)
|
| |
| void | SetFacesDoubleSided (bool inDoubleSided) |
| |
| bool | GetEnableSkinConstraints () const |
| | Global setting to turn on/off skin constraints.
|
| |
| void | SetEnableSkinConstraints (bool inEnableSkinConstraints) |
| |
| float | GetSkinnedMaxDistanceMultiplier () const |
| | Multiplier applied to Skinned::mMaxDistance to allow tightening or loosening of the skin constraints. 0 to hard skin all vertices.
|
| |
| void | SetSkinnedMaxDistanceMultiplier (float inSkinnedMaxDistanceMultiplier) |
| |
| float | GetVertexRadius () const |
| | How big the particles are, can be used to push the vertices a little bit away from the surface of other bodies to prevent z-fighting.
|
| |
| void | SetVertexRadius (float inVertexRadius) |
| |
| const AABox & | GetLocalBounds () const |
| | Get local bounding box.
|
| |
| float | GetVolume () const |
| | Get the volume of the soft body. Note can become negative if the shape is inside out!
|
| |
| void | CalculateMassAndInertia () |
| | Calculate the total mass and inertia of this body based on the current state of the vertices.
|
| |
| void | DrawVertices (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform) const |
| | Draw the state of a soft body.
|
| |
| void | DrawVertexVelocities (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform) const |
| |
| void | DrawEdgeConstraints (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform, ESoftBodyConstraintColor inConstraintColor) const |
| |
| void | DrawRods (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform, ESoftBodyConstraintColor inConstraintColor) const |
| |
| void | DrawRodStates (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform, ESoftBodyConstraintColor inConstraintColor) const |
| |
| void | DrawRodBendTwistConstraints (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform, ESoftBodyConstraintColor inConstraintColor) const |
| |
| void | DrawBendConstraints (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform, ESoftBodyConstraintColor inConstraintColor) const |
| |
| void | DrawVolumeConstraints (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform, ESoftBodyConstraintColor inConstraintColor) const |
| |
| void | DrawSkinConstraints (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform, ESoftBodyConstraintColor inConstraintColor) const |
| |
| void | DrawLRAConstraints (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform, ESoftBodyConstraintColor inConstraintColor) const |
| |
| void | DrawPredictedBounds (DebugRenderer *inRenderer, RMat44Arg inCenterOfMassTransform) const |
| |
| void | SaveState (StateRecorder &inStream) const |
| | Saving state for replay.
|
| |
| void | RestoreState (StateRecorder &inStream) |
| | Restoring state for replay.
|
| |
| void | SkinVertices (RMat44Arg inCenterOfMassTransform, const Mat44 *inJointMatrices, uint inNumJoints, bool inHardSkinAll, TempAllocator &ioTempAllocator) |
| |
| void | CustomUpdate (float inDeltaTime, Body &ioSoftBody, PhysicsSystem &inSystem) |
| |
| void | InitializeUpdateContext (float inDeltaTime, Body &inSoftBody, const PhysicsSystem &inSystem, SoftBodyUpdateContext &ioContext) |
| | Initialize the update context. Not part of the public API.
|
| |
| void | DetermineCollidingShapes (const SoftBodyUpdateContext &inContext, const PhysicsSystem &inSystem, const BodyLockInterface &inBodyLockInterface) |
| | Do a broad phase check and collect all bodies that can possibly collide with this soft body. Not part of the public API.
|
| |
| EStatus | ParallelUpdate (SoftBodyUpdateContext &ioContext, const PhysicsSettings &inPhysicsSettings) |
| | Update the soft body, will process a batch of work. Not part of the public API.
|
| |
| void | UpdateRigidBodyVelocities (const SoftBodyUpdateContext &inContext, BodyInterface &inBodyInterface) |
| | Update the velocities of all rigid bodies that we collided with. Not part of the public API.
|
| |
| JPH_OVERRIDE_NEW_DELETE EMotionQuality | GetMotionQuality () const |
| | Motion quality, or how well it detects collisions when it has a high velocity.
|
| |
| EAllowedDOFs | GetAllowedDOFs () const |
| | Get the allowed degrees of freedom that this body has (this can be changed by calling SetMassProperties)
|
| |
| bool | GetAllowSleeping () const |
| | If this body can go to sleep.
|
| |
| Vec3 | GetLinearVelocity () const |
| | Get world space linear velocity of the center of mass.
|
| |
| void | SetLinearVelocity (Vec3Arg inLinearVelocity) |
| | Set world space linear velocity of the center of mass.
|
| |
| void | SetLinearVelocityClamped (Vec3Arg inLinearVelocity) |
| | Set world space linear velocity of the center of mass, will make sure the value is clamped against the maximum linear velocity.
|
| |
| Vec3 | GetAngularVelocity () const |
| | Get world space angular velocity of the center of mass.
|
| |
| void | SetAngularVelocity (Vec3Arg inAngularVelocity) |
| | Set world space angular velocity of the center of mass.
|
| |
| void | SetAngularVelocityClamped (Vec3Arg inAngularVelocity) |
| | Set world space angular velocity of the center of mass, will make sure the value is clamped against the maximum angular velocity.
|
| |
| void | MoveKinematic (Vec3Arg inDeltaPosition, QuatArg inDeltaRotation, float inDeltaTime) |
| | Set velocity of body such that it will be rotate/translate by inDeltaPosition/Rotation in inDeltaTime seconds.
|
| |
| void | ClampLinearVelocity () |
| | Clamp velocity according to limit.
|
| |
| void | ClampAngularVelocity () |
| |
| float | GetLinearDamping () const |
| | Get linear damping: dv/dt = -c * v. c. Value should be zero or positive and is usually close to 0.
|
| |
| void | SetLinearDamping (float inLinearDamping) |
| |
| float | GetAngularDamping () const |
| | Get angular damping: dw/dt = -c * w. c. Value should be zero or positive and is usually close to 0.
|
| |
| void | SetAngularDamping (float inAngularDamping) |
| |
| float | GetGravityFactor () const |
| | Get gravity factor (1 = normal gravity, 0 = no gravity)
|
| |
| void | SetGravityFactor (float inGravityFactor) |
| |
| void | SetMassProperties (EAllowedDOFs inAllowedDOFs, const MassProperties &inMassProperties) |
| | Set the mass and inertia tensor.
|
| |
| float | GetInverseMass () const |
| | Get inverse mass (1 / mass). Should only be called on a dynamic object (static or kinematic bodies have infinite mass so should be treated as 1 / mass = 0)
|
| |
| float | GetInverseMassUnchecked () const |
| |
| void | SetInverseMass (float inInverseMass) |
| |
| Vec3 | GetInverseInertiaDiagonal () const |
| | Diagonal of inverse inertia matrix: D. Should only be called on a dynamic object (static or kinematic bodies have infinite mass so should be treated as D = 0)
|
| |
| Quat | GetInertiaRotation () const |
| | Rotation (R) that takes inverse inertia diagonal to local space: \(I_{body}^{-1} = R \: D \: R^{-1}\).
|
| |
| void | SetInverseInertia (Vec3Arg inDiagonal, QuatArg inRot) |
| |
| void | ScaleToMass (float inMass) |
| |
| Mat44 | GetLocalSpaceInverseInertia () const |
| | Get inverse inertia matrix ( \(I_{body}^{-1}\)). Will be a matrix of zeros for a static or kinematic object.
|
| |
| Mat44 | GetLocalSpaceInverseInertiaUnchecked () const |
| | Same as GetLocalSpaceInverseInertia() but doesn't check if the body is dynamic.
|
| |
| Mat44 | GetInverseInertiaForRotation (Mat44Arg inRotation) const |
| | Get inverse inertia matrix ( \(I^{-1}\)) for a given object rotation (translation will be ignored). Zero if object is static or kinematic.
|
| |
| JPH_INLINE Vec3 | MultiplyWorldSpaceInverseInertiaByVector (QuatArg inBodyRotation, Vec3Arg inV) const |
| | Multiply a vector with the inverse world space inertia tensor ( \(I_{world}^{-1}\)). Zero if object is static or kinematic.
|
| |
| JPH_INLINE Vec3 | GetPointVelocityCOM (Vec3Arg inPointRelativeToCOM) const |
| | Velocity of point inPoint (in center of mass space, e.g. on the surface of the body) of the body (unit: m/s)
|
| |
| JPH_INLINE Vec3 | GetAccumulatedForce () const |
| |
| JPH_INLINE Vec3 | GetAccumulatedTorque () const |
| |
| JPH_INLINE void | ResetForce () |
| |
| JPH_INLINE void | ResetTorque () |
| |
| JPH_INLINE void | ResetMotion () |
| |
| JPH_INLINE UVec4 | GetLinearDOFsMask () const |
| | Returns a vector where the linear components that are not allowed by mAllowedDOFs are set to 0 and the rest to 0xffffffff.
|
| |
| JPH_INLINE Vec3 | LockTranslation (Vec3Arg inV) const |
| | Takes a translation vector inV and returns a vector where the components that are not allowed by mAllowedDOFs are set to 0.
|
| |
| JPH_INLINE UVec4 | GetAngularDOFsMask () const |
| | Returns a vector where the angular components that are not allowed by mAllowedDOFs are set to 0 and the rest to 0xffffffff.
|
| |
| JPH_INLINE Vec3 | LockAngular (Vec3Arg inV) const |
| | Takes an angular velocity / torque vector inV and returns a vector where the components that are not allowed by mAllowedDOFs are set to 0.
|
| |
| void | SetNumVelocityStepsOverride (uint inN) |
| | Used only when this body is dynamic and colliding. Override for the number of solver velocity iterations to run, 0 means use the default in PhysicsSettings::mNumVelocitySteps. The number of iterations to use is the max of all contacts and constraints in the island.
|
| |
| uint | GetNumVelocityStepsOverride () const |
| |
| void | SetNumPositionStepsOverride (uint inN) |
| | Used only when this body is dynamic and colliding. Override for the number of solver position iterations to run, 0 means use the default in PhysicsSettings::mNumPositionSteps. The number of iterations to use is the max of all contacts and constraints in the island.
|
| |
| uint | GetNumPositionStepsOverride () const |
| |
| void | ApplyGyroscopicForceInternal (QuatArg inBodyRotation, float inDeltaTime) |
| | Apply the gyroscopic force (aka Dzhanibekov effect, see https://en.wikipedia.org/wiki/Tennis_racket_theorem)
|
| |
| void | ApplyForceTorqueAndDragInternal (QuatArg inBodyRotation, Vec3Arg inGravity, float inDeltaTime) |
| | Apply all accumulated forces, torques and drag (should only be called by the PhysicsSystem)
|
| |
| uint32 | GetIslandIndexInternal () const |
| | Access to the island index.
|
| |
| void | SetIslandIndexInternal (uint32 inIndex) |
| |
| uint32 | GetIndexInActiveBodiesInternal () const |
| | Access to the index in the active bodies array.
|
| |
| void | ResetSleepTestSpheres (const RVec3 *inPoints) |
| | Reset spheres to center around inPoints with radius 0.
|
| |
| void | ResetSleepTestTimer () |
| | Reset the sleep test timer without resetting the sleep test spheres.
|
| |
| ECanSleep | AccumulateSleepTime (float inDeltaTime, float inTimeBeforeSleep) |
| | Accumulate sleep time and return if a body can go to sleep.
|
| |
| void | SaveState (StateRecorder &inStream) const |
| | Saving state for replay.
|
| |
| void | RestoreState (StateRecorder &inStream) |
| | Restoring state for replay.
|
| |
| float | GetMaxLinearVelocity () const |
| | Maximum linear velocity that a body can achieve. Used to prevent the system from exploding.
|
| |
| void | SetMaxLinearVelocity (float inLinearVelocity) |
| |
| float | GetMaxAngularVelocity () const |
| | Maximum angular velocity that a body can achieve. Used to prevent the system from exploding.
|
| |
| void | SetMaxAngularVelocity (float inAngularVelocity) |
| |
| void | AddLinearVelocityStep (Vec3Arg inLinearVelocityChange) |
| |
| void | SubLinearVelocityStep (Vec3Arg inLinearVelocityChange) |
| |
| void | AddAngularVelocityStep (Vec3Arg inAngularVelocityChange) |
| |
| void | SubAngularVelocityStep (Vec3Arg inAngularVelocityChange) |
| |