PxArticulationReducedCoordinate Class Referenceabstract

a tree structure of bodies connected by joints that is treated as a unit by the dynamics solver More...

#include <PxArticulationReducedCoordinate.h>

Inheritance diagram for PxArticulationReducedCoordinate:
Collaboration diagram for PxArticulationReducedCoordinate:

Public Member Functions

virtual void release ()=0
 Releases the PxBase instance, please check documentation of release in derived class. More...
 
virtual void setArticulationFlags (PxArticulationFlags flags)=0
 Sets flags on the articulation. More...
 
virtual void setArticulationFlag (PxArticulationFlag::Enum flag, bool value)=0
 Raises or clears a flag on the articulation. More...
 
virtual PxArticulationFlags getArticulationFlags () const =0
 return PxArticulationFlags More...
 
virtual PxU32 getDofs () const =0
 returns the total Dofs of the articulation More...
 
virtual PxArticulationCachecreateCache () const =0
 create an articulation cache More...
 
virtual PxU32 getCacheDataSize () const =0
 Get the size of the articulation cache. More...
 
virtual void zeroCache (PxArticulationCache &cache)=0
 zero all data in the articulation cache beside the cache version More...
 
virtual void applyCache (PxArticulationCache &cache, const PxArticulationCacheFlags flag, bool autowake=true)=0
 apply the user defined data in the cache to the articulation system More...
 
virtual void copyInternalStateToCache (PxArticulationCache &cache, const PxArticulationCacheFlags flag) const =0
 copy the internal data of the articulation to the cache More...
 
virtual void releaseCache (PxArticulationCache &cache) const =0
 release an articulation cache More...
 
virtual void packJointData (const PxReal *maximum, PxReal *reduced) const =0
 reduce the maximum data format to the reduced internal data More...
 
virtual void unpackJointData (const PxReal *reduced, PxReal *maximum) const =0
 turn the reduced internal data to maximum joint data format More...
 
virtual void commonInit () const =0
 initialize all the common data for inverse dynamic More...
 
virtual void computeGeneralizedGravityForce (PxArticulationCache &cache) const =0
 determine the statically balance of the joint force of gravity for entire articulation. External force, joint velocity and joint acceleration are set to zero, the joint force returned will be purely determined by gravity. More...
 
virtual void computeCoriolisAndCentrifugalForce (PxArticulationCache &cache) const =0
 determine coriolise and centrifugal force. External force, gravity and joint acceleration are set to zero, the joint force return will be coriolise and centrifugal force for each joint. More...
 
virtual void computeGeneralizedExternalForce (PxArticulationCache &cache) const =0
 determine joint force change caused by external force. Gravity, joint acceleration and joint velocity are all set to zero. More...
 
virtual void computeJointAcceleration (PxArticulationCache &cache) const =0
 determine the joint acceleration for each joint This is purely calculates the change in joint acceleration due to change in the joint force More...
 
virtual void computeJointForce (PxArticulationCache &cache) const =0
 determine the joint force This is purely calculates the change in joint force due to change in the joint acceleration This means gravity and joint velocity will be zero More...
 
virtual void computeKinematicJacobian (const PxU32 linkID, PxArticulationCache &cache) const =0
 compute the kinematic jacobian for each joint from end effector to the root in world space More...
 
virtual void computeCoefficentMatrix (PxArticulationCache &cache) const =0
 compute the coefficent matrix for contact force. PxContactJoint is the contact point More...
 
virtual bool computeLambda (PxArticulationCache &cache, PxArticulationCache &initialState, const PxReal *const jointTorque, const PxU32 maxIter) const =0
 compute the lambda value when the test impulse is 1 More...
 
virtual void computeGeneralizedMassMatrix (PxArticulationCache &cache) const =0
 compute the joint-space inertia matrix More...
 
virtual void addLoopJoint (PxJoint *joint)=0
 add loop joint to the articulation system for inverse dynamic More...
 
virtual void removeLoopJoint (PxJoint *joint)=0
 remove loop joint from the articulation system More...
 
virtual PxU32 getNbLoopJoints () const =0
 returns the number of loop joints in the articulation More...
 
virtual PxU32 getLoopJoints (PxJoint **userBuffer, PxU32 bufferSize, PxU32 startIndex=0) const =0
 returns the set of loop constraints in the articulation More...
 
virtual PxU32 getCoefficentMatrixSize () const =0
 returns the required size of coeffient matrix in the articulation. The coefficient matrix is number of constraint(loop joints) by total dofs. Constraint Torque = transpose(K) * lambda(). Lambda is a vector of number of constraints More...
 
virtual void teleportRootLink (const PxTransform &pose, bool autowake)=0
 teleport root link to a new location More...
 
- Public Member Functions inherited from PxArticulationBase
virtual PxScenegetScene () const =0
 Retrieves the scene which this articulation belongs to. More...
 
virtual void setSolverIterationCounts (PxU32 minPositionIters, PxU32 minVelocityIters=1)=0
 Sets the solver iteration counts for the articulation. More...
 
virtual void getSolverIterationCounts (PxU32 &minPositionIters, PxU32 &minVelocityIters) const =0
 Retrieves the solver iteration counts. More...
 
virtual bool isSleeping () const =0
 Returns true if this articulation is sleeping. More...
 
virtual void setSleepThreshold (PxReal threshold)=0
 Sets the mass-normalized energy threshold below which an articulation may go to sleep. More...
 
virtual PxReal getSleepThreshold () const =0
 Returns the mass-normalized energy below which an articulation may go to sleep. More...
 
virtual void setStabilizationThreshold (PxReal threshold)=0
 Sets the mass-normalized kinetic energy threshold below which an articulation may participate in stabilization. More...
 
virtual PxReal getStabilizationThreshold () const =0
 Returns the mass-normalized kinetic energy below which an articulation may participate in stabilization. More...
 
virtual void setWakeCounter (PxReal wakeCounterValue)=0
 Sets the wake counter for the articulation. More...
 
virtual PxReal getWakeCounter () const =0
 Returns the wake counter of the articulation. More...
 
virtual void wakeUp ()=0
 Wakes up the articulation if it is sleeping. More...
 
virtual void putToSleep ()=0
 Forces the articulation to sleep. More...
 
virtual PxArticulationLinkcreateLink (PxArticulationLink *parent, const PxTransform &pose)=0
 adds a link to the articulation with default attribute values. More...
 
virtual PxU32 getNbLinks () const =0
 returns the number of links in the articulation More...
 
virtual PxU32 getLinks (PxArticulationLink **userBuffer, PxU32 bufferSize, PxU32 startIndex=0) const =0
 returns the set of links in the articulation More...
 
virtual void setName (const char *name)=0
 Sets a name string for the object that can be retrieved with getName(). More...
 
virtual const char * getName () const =0
 Retrieves the name string set with setName(). More...
 
virtual PxBounds3 getWorldBounds (float inflation=1.01f) const =0
 Retrieves the axis aligned bounding box enclosing the articulation. More...
 
virtual PxAggregategetAggregate () const =0
 Retrieves the aggregate the articulation might be a part of. More...
 
virtual PxArticulationImpl * getImpl ()=0
 
virtual const PxArticulationImpl * getImpl () const =0
 
virtual PxArticulationBase::Enum getType () const =0
 
virtual ~PxArticulationBase ()
 
virtual PxArticulationJointBasecreateArticulationJoint (PxArticulationLink &parent, const PxTransform &parentFrame, PxArticulationLink &child, const PxTransform &childFrame)=0
 
virtual void releaseArticulationJoint (PxArticulationJointBase *joint)=0
 
- Public Member Functions inherited from PxBase
virtual const char * getConcreteTypeName () const =0
 Returns string name of dynamic type. More...
 
template<class T >
T * is ()
 
template<class T >
const T * is () const
 
PX_FORCE_INLINE PxType getConcreteType () const
 Returns concrete type of object. More...
 
PX_FORCE_INLINE void setBaseFlag (PxBaseFlag::Enum flag, bool value)
 Set PxBaseFlag. More...
 
PX_FORCE_INLINE void setBaseFlags (PxBaseFlags inFlags)
 Set PxBaseFlags. More...
 
PX_FORCE_INLINE PxBaseFlags getBaseFlags () const
 Returns PxBaseFlags. More...
 
virtual bool isReleasable () const
 Whether the object is subordinate. More...
 

Protected Member Functions

PX_INLINE PxArticulationReducedCoordinate (PxType concreteType, PxBaseFlags baseFlags)
 
PX_INLINE PxArticulationReducedCoordinate (PxBaseFlags baseFlags)
 
virtual ~PxArticulationReducedCoordinate ()
 
- Protected Member Functions inherited from PxArticulationBase
PX_INLINE PxArticulationBase (PxType concreteType, PxBaseFlags baseFlags)
 
PX_INLINE PxArticulationBase (PxBaseFlags baseFlags)
 
- Protected Member Functions inherited from PxBase
PX_INLINE PxBase (PxType concreteType, PxBaseFlags baseFlags)
 Constructor setting concrete type and base flags. More...
 
PX_INLINE PxBase (PxBaseFlags baseFlags)
 Deserialization constructor setting base flags. More...
 
virtual ~PxBase ()
 Destructor. More...
 
virtual bool isKindOf (const char *superClass) const
 Returns whether a given type name matches with the type of this instance. More...
 
template<class T >
bool typeMatch () const
 

Additional Inherited Members

- Public Types inherited from PxArticulationBase
enum  Enum { eReducedCoordinate = 0, eMaximumCoordinate = 1 }
 
- Public Attributes inherited from PxArticulationBase
void * userData
 user can assign this to whatever, usually to create a 1:1 relationship with a user object. More...
 
- Protected Attributes inherited from PxBase
PxType mConcreteType
 
PxBaseFlags mBaseFlags
 

Detailed Description

a tree structure of bodies connected by joints that is treated as a unit by the dynamics solver

Articulations are more expensive to simulate than the equivalent collection of PxRigidDynamic and PxJoint structures, but because the dynamics solver treats each articulation as a single object, they are much less prone to separation and have better support for actuation. An articulation may have at most 64 links.

See also
PxArticulationJoint PxArticulationLink PxPhysics.createArticulation

Constructor & Destructor Documentation

◆ PxArticulationReducedCoordinate() [1/2]

PX_INLINE PxArticulationReducedCoordinate::PxArticulationReducedCoordinate ( PxType  concreteType,
PxBaseFlags  baseFlags 
)
inlineprotected

◆ PxArticulationReducedCoordinate() [2/2]

PX_INLINE PxArticulationReducedCoordinate::PxArticulationReducedCoordinate ( PxBaseFlags  baseFlags)
inlineprotected

◆ ~PxArticulationReducedCoordinate()

virtual PxArticulationReducedCoordinate::~PxArticulationReducedCoordinate ( )
inlineprotectedvirtual

Member Function Documentation

◆ addLoopJoint()

virtual void PxArticulationReducedCoordinate::addLoopJoint ( PxJoint joint)
pure virtual

add loop joint to the articulation system for inverse dynamic

Parameters
[in]jointrequired to add loop joint
See also
commonInit

◆ applyCache()

virtual void PxArticulationReducedCoordinate::applyCache ( PxArticulationCache cache,
const PxArticulationCacheFlags  flag,
bool  autowake = true 
)
pure virtual

apply the user defined data in the cache to the articulation system

Parameters
[in]cachearticulation data.
[in]flagThe mode to use when determine which value in the cache will be applied to the articulation
[in]autowakeSpecify if the call should wake up the articulation if it is currently asleep. If true and the current wake counter value is smaller than PxSceneDesc::wakeCounterResetValue it will get increased to the reset value.
See also
createCache copyInternalStateToCache

◆ commonInit()

virtual void PxArticulationReducedCoordinate::commonInit ( ) const
pure virtual

initialize all the common data for inverse dynamic

◆ computeCoefficentMatrix()

virtual void PxArticulationReducedCoordinate::computeCoefficentMatrix ( PxArticulationCache cache) const
pure virtual

compute the coefficent matrix for contact force. PxContactJoint is the contact point

Parameters
[out]cachereturs the coefficent matrix. Each column is the joint force effected by a contact based on impulse strength 1
See also
commonInit

◆ computeCoriolisAndCentrifugalForce()

virtual void PxArticulationReducedCoordinate::computeCoriolisAndCentrifugalForce ( PxArticulationCache cache) const
pure virtual

determine coriolise and centrifugal force. External force, gravity and joint acceleration are set to zero, the joint force return will be coriolise and centrifugal force for each joint.

Parameters
[in]cachedata
See also
commonInit

◆ computeGeneralizedExternalForce()

virtual void PxArticulationReducedCoordinate::computeGeneralizedExternalForce ( PxArticulationCache cache) const
pure virtual

determine joint force change caused by external force. Gravity, joint acceleration and joint velocity are all set to zero.

Parameters
[in]cachedata
See also
commonInit

◆ computeGeneralizedGravityForce()

virtual void PxArticulationReducedCoordinate::computeGeneralizedGravityForce ( PxArticulationCache cache) const
pure virtual

determine the statically balance of the joint force of gravity for entire articulation. External force, joint velocity and joint acceleration are set to zero, the joint force returned will be purely determined by gravity.

Parameters
[out]cachereturn joint forces which can counteract gravity force
See also
commonInit

◆ computeGeneralizedMassMatrix()

virtual void PxArticulationReducedCoordinate::computeGeneralizedMassMatrix ( PxArticulationCache cache) const
pure virtual

compute the joint-space inertia matrix

Parameters
[in]cachearticulation data
See also
commonInit

◆ computeJointAcceleration()

virtual void PxArticulationReducedCoordinate::computeJointAcceleration ( PxArticulationCache cache) const
pure virtual

determine the joint acceleration for each joint This is purely calculates the change in joint acceleration due to change in the joint force

Parameters
[in]cachearticulation data
See also
commonInit

◆ computeJointForce()

virtual void PxArticulationReducedCoordinate::computeJointForce ( PxArticulationCache cache) const
pure virtual

determine the joint force This is purely calculates the change in joint force due to change in the joint acceleration This means gravity and joint velocity will be zero

Parameters
[in]cachereturn joint force
See also
commonInit

◆ computeKinematicJacobian()

virtual void PxArticulationReducedCoordinate::computeKinematicJacobian ( const PxU32  linkID,
PxArticulationCache cache 
) const
pure virtual

compute the kinematic jacobian for each joint from end effector to the root in world space

Parameters
[in]linkIDis the end effector id
[in]cachereturn jacobian matrix
See also
commonInit

◆ computeLambda()

virtual bool PxArticulationReducedCoordinate::computeLambda ( PxArticulationCache cache,
PxArticulationCache initialState,
const PxReal *const  jointTorque,
const PxU32  maxIter 
) const
pure virtual

compute the lambda value when the test impulse is 1

Parameters
[in]initialStatethe initial state of the articulation system
[in]jointTorqueM(q)*qddot + C(q,qdot) + g(q)
[in]maxItermaximum number of solver iterations to run. If the system converges, fewer iterations may be used.
[out]cachereturns the coefficent matrix. Each column is the joint force effected by a contact based on impulse strength 1
See also
commonInit

◆ copyInternalStateToCache()

virtual void PxArticulationReducedCoordinate::copyInternalStateToCache ( PxArticulationCache cache,
const PxArticulationCacheFlags  flag 
) const
pure virtual

copy the internal data of the articulation to the cache

Parameters
[in]cachearticulation data
[in]flagthis indicates what kind of data the articulation system need to copy to the cache
See also
createCache applyCache

◆ createCache()

virtual PxArticulationCache* PxArticulationReducedCoordinate::createCache ( ) const
pure virtual

create an articulation cache

Note
this call may only be made on articulations that are in a scene, and may not be made during simulation

◆ getArticulationFlags()

virtual PxArticulationFlags PxArticulationReducedCoordinate::getArticulationFlags ( ) const
pure virtual

return PxArticulationFlags

◆ getCacheDataSize()

virtual PxU32 PxArticulationReducedCoordinate::getCacheDataSize ( ) const
pure virtual

Get the size of the articulation cache.

Note
this call may only be made on articulations that are in a scene, and may not be made during simulation

◆ getCoefficentMatrixSize()

virtual PxU32 PxArticulationReducedCoordinate::getCoefficentMatrixSize ( ) const
pure virtual

returns the required size of coeffient matrix in the articulation. The coefficient matrix is number of constraint(loop joints) by total dofs. Constraint Torque = transpose(K) * lambda(). Lambda is a vector of number of constraints

Returns
bite size of the coefficient matrix(nc * n)

◆ getDofs()

virtual PxU32 PxArticulationReducedCoordinate::getDofs ( ) const
pure virtual

returns the total Dofs of the articulation

◆ getLoopJoints()

virtual PxU32 PxArticulationReducedCoordinate::getLoopJoints ( PxJoint **  userBuffer,
PxU32  bufferSize,
PxU32  startIndex = 0 
) const
pure virtual

returns the set of loop constraints in the articulation

Parameters
[in]userBufferbuffer into which to write an array of constraints pointers
[in]bufferSizethe size of the buffer. If this is not large enough to contain all the pointers to links, only as many as will fit are written.
[in]startIndexIndex of first link pointer to be retrieved
Returns
the number of links written into the buffer.
See also
ArticulationLink

◆ getNbLoopJoints()

virtual PxU32 PxArticulationReducedCoordinate::getNbLoopJoints ( ) const
pure virtual

returns the number of loop joints in the articulation

Returns
number of loop joints

◆ packJointData()

virtual void PxArticulationReducedCoordinate::packJointData ( const PxReal *  maximum,
PxReal *  reduced 
) const
pure virtual

reduce the maximum data format to the reduced internal data

Parameters
[in]maximumjoint data format
[out]reducedjoint data format

◆ release()

virtual void PxArticulationReducedCoordinate::release ( )
pure virtual

Releases the PxBase instance, please check documentation of release in derived class.

Implements PxBase.

◆ releaseCache()

virtual void PxArticulationReducedCoordinate::releaseCache ( PxArticulationCache cache) const
pure virtual

release an articulation cache

Parameters
[in]cachethe cache to release
See also
createCache applyCache copyInternalStateToCache

◆ removeLoopJoint()

virtual void PxArticulationReducedCoordinate::removeLoopJoint ( PxJoint joint)
pure virtual

remove loop joint from the articulation system

Parameters
[in]jointrequired to remove loop joint
See also
commonInit

◆ setArticulationFlag()

virtual void PxArticulationReducedCoordinate::setArticulationFlag ( PxArticulationFlag::Enum  flag,
bool  value 
)
pure virtual

Raises or clears a flag on the articulation.

Parameters
[in]flagThe articulation flag
[in]valuetrue/false indicating whether to raise or clear the flag

◆ setArticulationFlags()

virtual void PxArticulationReducedCoordinate::setArticulationFlags ( PxArticulationFlags  flags)
pure virtual

Sets flags on the articulation.

Parameters
[in]flagsArticulation flags

◆ teleportRootLink()

virtual void PxArticulationReducedCoordinate::teleportRootLink ( const PxTransform pose,
bool  autowake 
)
pure virtual

teleport root link to a new location

Parameters
[in]posethe new location of the root link
[in]autowakewake up the articulation system
See also
commonInit

◆ unpackJointData()

virtual void PxArticulationReducedCoordinate::unpackJointData ( const PxReal *  reduced,
PxReal *  maximum 
) const
pure virtual

turn the reduced internal data to maximum joint data format

Parameters
[in]reducedjoint data format
[out]maximumjoint data format

◆ zeroCache()

virtual void PxArticulationReducedCoordinate::zeroCache ( PxArticulationCache cache)
pure virtual

zero all data in the articulation cache beside the cache version

Note
this call may only be made on articulations that are in a scene, and may not be made during simulation

The documentation for this class was generated from the following file: