PxConstraint
Defined in include/PxConstraint.h
-
class PxConstraint : public PxBase
A plugin class for implementing constraints.
See also
PxPhysics.createConstraint
Public Functions
-
virtual void release() = 0
Releases a PxConstraint instance.
See also
PxPhysics.createConstraint, PxBase.release()
Note
This call does not wake up the connected rigid bodies.
-
virtual PxScene *getScene() const = 0
Retrieves the scene which this constraint belongs to.
See also
PxScene
- Returns
Owner Scene. NULL if not part of a scene.
-
virtual void getActors(PxRigidActor *&actor0, PxRigidActor *&actor1) const = 0
Retrieves the actors for this constraint.
See also
PxActor
- Parameters
actor0 – [out] a reference to the pointer for the first actor
actor1 – [out] a reference to the pointer for the second actor
-
virtual void setActors(PxRigidActor *actor0, PxRigidActor *actor1) = 0
Sets the actors for this constraint.
See also
PxActor
- Parameters
actor0 – [in] a reference to the pointer for the first actor
actor1 – [in] a reference to the pointer for the second actor
-
virtual void markDirty() = 0
Notify the scene that the constraint shader data has been updated by the application.
-
virtual PxConstraintFlags getFlags() const = 0
Retrieve the flags for this constraint.
See also
PxConstraintFlags
- Returns
the constraint flags
-
virtual void setFlags(PxConstraintFlags flags) = 0
Set the flags for this constraint.
default: PxConstraintFlag::eDRIVE_LIMITS_ARE_FORCES
See also
PxConstraintFlags
- Parameters
flags – [in] the new constraint flags
-
virtual void setFlag(PxConstraintFlag::Enum flag, bool value) = 0
Set a flag for this constraint.
See also
PxConstraintFlags
- Parameters
flag – [in] the constraint flag
value – [in] the new value of the flag
-
virtual void getForce(PxVec3 &linear, PxVec3 &angular) const = 0
Retrieve the constraint force most recently applied to maintain this constraint.
Note
It is not allowed to use this method while the simulation is running (except during PxScene::collide(), in PxContactModifyCallback or in contact report callbacks).
- Parameters
linear – [out] the constraint force
angular – [out] the constraint torque
-
virtual bool isValid() const = 0
whether the constraint is valid.
A constraint is valid if it has at least one dynamic rigid body or articulation link. A constraint that is not valid may not be inserted into a scene, and therefore a static actor to which an invalid constraint is attached may not be inserted into a scene.
Invalid constraints arise only when an actor to which the constraint is attached has been deleted.
-
virtual void setBreakForce(PxReal linear, PxReal angular) = 0
Set the break force and torque thresholds for this constraint.
If either the force or torque measured at the constraint exceed these thresholds the constraint will break.
- Parameters
linear – [in] the linear break threshold
angular – [in] the angular break threshold
-
virtual void getBreakForce(PxReal &linear, PxReal &angular) const = 0
Retrieve the constraint break force and torque thresholds.
- Parameters
linear – [out] the linear break threshold
angular – [out] the angular break threshold
-
virtual void setMinResponseThreshold(PxReal threshold) = 0
Set the minimum response threshold for a constraint row.
When using mass modification for a joint or infinite inertia for a jointed body, very stiff solver constraints can be generated which can destabilize simulation. Setting this value to a small positive value (e.g. 1e-8) will cause constraint rows to be ignored if very large changes in impulses will generate only small changes in velocity. When setting this value, also set PxConstraintFlag::eDISABLE_PREPROCESSING. The solver accuracy for this joint may be reduced.
See also
PxConstraintFlag::eDISABLE_PREPROCESSING
- Parameters
threshold – [in] the minimum response threshold
-
virtual PxReal getMinResponseThreshold() const = 0
Retrieve the constraint break force and torque thresholds.
- Returns
the minimum response threshold for a constraint row
-
virtual void *getExternalReference(PxU32 &typeID) = 0
Fetch external owner of the constraint.
Provides a reference to the external owner of a constraint and a unique owner type ID.
See also
PxConstraintConnector.getExternalReference()
- Parameters
typeID – [out] Unique type identifier of the external object.
- Returns
Reference to the external object which owns the constraint.
-
virtual void setConstraintFunctions(PxConstraintConnector &connector, const PxConstraintShaderTable &shaders) = 0
Set the constraint functions for this constraint.
See also
PxConstraintConnector PxConstraintSolverPrep PxConstraintVisualize
- Parameters
connector – [in] the constraint connector object by which the SDK communicates with the constraint.
shaders – [in] the shader table for the constraint
-
inline virtual const char *getConcreteTypeName() const final override
Returns string name of dynamic type.
- Returns
Class name of most derived type of this object.
-
virtual PxConstraintResidual getSolverResidual() const = 0
Returns the residual for this constraint.
The residual represents the current error in this constraint measured as the delta impulse applied in the last velocity or position iteration. If the solver converges perfectly, the residual should approach zero.
See also
PxConstraintResidual
- Returns
The residual for this constraint.
-
inline PxType getConcreteType() const
Returns concrete type of object.
See also
PxConcreteType
- Returns
PxConcreteType::Enum of serialized object
-
inline void setBaseFlag(PxBaseFlag::Enum flag, bool value)
Set PxBaseFlag
- Parameters
flag – [in] The flag to be set
value – [in] The flags new value
-
inline void setBaseFlags(PxBaseFlags inFlags)
Set PxBaseFlags
See also
PxBaseFlags
- Parameters
inFlags – [in] The flags to be set
-
inline PxBaseFlags getBaseFlags() const
Returns PxBaseFlags.
See also
PxBaseFlags
- Returns
PxBaseFlags
-
inline virtual bool isReleasable() const
Whether the object is subordinate.
A class is subordinate, if it can only be instantiated in the context of another class.
See also
PxSerialization::isSerializable
- Returns
Whether the class is subordinate
Public Members
-
void *userData
user can assign this to whatever, usually to create a 1:1 relationship with a user object.
Protected Functions
-
inline PxConstraint(PxType concreteType, PxBaseFlags baseFlags)
-
inline PxConstraint(PxBaseFlags baseFlags)
-
inline virtual ~PxConstraint()
-
inline virtual bool isKindOf(const char *name) const override
Returns whether a given type name matches with the type of this instance.
-
template<class T>
inline bool typeMatch() const
-
virtual void release() = 0