RavEngine
Loading...
Searching...
No Matches
physx::PxArticulationCache Class Reference

Data structure used to read and write internal articulation data. More...

#include <PxArticulationReducedCoordinate.h>

Collaboration diagram for physx::PxArticulationCache:
[legend]

Public Member Functions

PX_PHYSX_CORE_API void release ()
 Releases an articulation cache.
 

Public Attributes

PxSpatialForce * externalForces
 External forces acting on the articulation links for inverse dynamics computation.
 
PxReal * denseJacobian
 Dense Jacobian data.
 
PxReal * massMatrix
 The generalized mass matrix that maps joint accelerations to joint forces.
 
PxReal * jointVelocity
 The articulation joint DOF velocities.
 
PxReal * jointAcceleration
 The articulation joint DOF accelerations.
 
PxReal * jointPosition
 The articulation joint DOF positions.
 
PxReal * jointForce
 The articulation joint DOF forces.
 
PxReal * jointSolverForces
 Solver constraint joint DOF forces.
 
PxSpatialVelocity * linkVelocity
 Link spatial velocity.
 
PxSpatialVelocity * linkAcceleration
 Link classical acceleration.
 
PxArticulationRootLinkData * rootLinkData
 Root link transform, velocities, and accelerations.
 
PxSpatialForce * sensorForces
 Link sensor spatial forces.
 
PxReal * coefficientMatrix
 Constraint coefficient matrix.
 
PxReal * lambda
 Constraint lambda values (impulses applied by the respective constraints).
 
void * scratchMemory
 The scratch memory is used for internal calculations.
 
void * scratchAllocator
 The scratch allocator is used for internal calculations.
 
PxU32 version
 The cache version used internally to check compatibility with the articulation, i.e. detect if the articulation configuration changed after the cache was created.
 

Detailed Description

Member Function Documentation

◆ release()

Member Data Documentation

◆ coefficientMatrix

PxReal* physx::PxArticulationCache::coefficientMatrix

Constraint coefficient matrix.

  • N = getCoefficentMatrixSize().
  • The user needs to allocate memory and set this member to the allocated memory.
See also
PxArticulationReducedCoordinate::computeCoefficientMatrix

◆ denseJacobian

PxReal* physx::PxArticulationCache::denseJacobian

Dense Jacobian data.

See also
PxArticulationReducedCoordinate::computeDenseJacobian

◆ externalForces

PxSpatialForce* physx::PxArticulationCache::externalForces

External forces acting on the articulation links for inverse dynamics computation.

  • N = getNbLinks().
  • Indexing follows the low-level link indices, see PxArticulationLink::getLinkIndex.
  • The forces are with respect to the center of mass of the link.
See also
PxArticulationReducedCoordinate::computeGeneralizedExternalForce

◆ jointAcceleration

PxReal* physx::PxArticulationCache::jointAcceleration

The articulation joint DOF accelerations.

◆ jointForce

PxReal* physx::PxArticulationCache::jointForce

The articulation joint DOF forces.

◆ jointPosition

PxReal* physx::PxArticulationCache::jointPosition

The articulation joint DOF positions.

◆ jointSolverForces

PxReal* physx::PxArticulationCache::jointSolverForces

Solver constraint joint DOF forces.

◆ jointVelocity

PxReal* physx::PxArticulationCache::jointVelocity

The articulation joint DOF velocities.

  • N = getDofs().
  • Read/write using PxArticulationCacheFlag::eVELOCITY.
  • The indexing follows the internal DOF index order. Therefore, the application should calculate the DOF data indices by summing the joint DOFs in the order of the links' low-level indices (see the manual Section "Cache Indexing" for a snippet for this calculation):
    Low-level link index:   | link 0 | link 1 | link 2 | link 3 | ... | <- PxArticulationLink::getLinkIndex()       
    Link inbound joint DOF: | 0      | 1      | 2      | 1      | ... | <- PxArticulationLink::getInboundJointDof() 
    Low-level DOF index:    | -      | 0      | 1, 2   | 3      | ... |                                             
    The root link always has low-level index 0 and always has zero inbound joint DOFs. The link DOF indexing follows the order in PxArticulationAxis::Enum. For example, assume that low-level link 2 has an inbound spherical joint with two DOFs: eSWING1 and eSWING2. The corresponding low-level joint DOF indices are therefore 1 for eSWING1 and 2 for eSWING2.

◆ lambda

PxReal* physx::PxArticulationCache::lambda

Constraint lambda values (impulses applied by the respective constraints).

  • N = getNbLoopJoints().
  • The user needs to allocate memory and set this member to the allocated memory.
See also
PxArticulationReducedCoordinate::computeLambda

◆ linkAcceleration

PxSpatialVelocity* physx::PxArticulationCache::linkAcceleration

Link classical acceleration.

See also
PxArticulationReducedCoordinate::getLinkAcceleration, PxRigidBody::getCMassLocalPose

◆ linkVelocity

PxSpatialVelocity* physx::PxArticulationCache::linkVelocity

Link spatial velocity.

See also
PxRigidBody::getCMassLocalPose

◆ massMatrix

PxReal* physx::PxArticulationCache::massMatrix

The generalized mass matrix that maps joint accelerations to joint forces.

See also
PxArticulationReducedCoordinate::computeGeneralizedMassMatrix

◆ rootLinkData

PxArticulationRootLinkData* physx::PxArticulationCache::rootLinkData

Root link transform, velocities, and accelerations.

See also
PxArticulationRootLinkData

◆ sensorForces

PxSpatialForce* physx::PxArticulationCache::sensorForces

Link sensor spatial forces.

See also
PxArticulationSensor

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