PxConstraint
Defined in include/PxConstraint.h
-
class PxConstraint : public PxBase
A plugin class for implementing constraints.
See also
Public Functions
-
virtual void release() = 0
Releases a PxConstraint instance.
See also
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
- 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
- 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
- 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
- Returns
the constraint flags
-
virtual void setFlags(PxConstraintFlags flags) = 0
Set the flags for this constraint.
default: PxConstraintFlag::eDRIVE_LIMITS_ARE_FORCES
See also
- Parameters
flags – [in] the new constraint flags
-
virtual void setFlag(PxConstraintFlag::Enum flag, bool value) = 0
Set a flag for this constraint.
See also
- 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.
- 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.
- 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.
- 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 override
Returns string name of dynamic type.
- Returns
Class name of most derived type of this object.
-
inline PxType getConcreteType() const
Returns concrete type of object.
See also
- 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
- 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