PxArticulationGPUAPIComputeType

Defined in include/PxDirectGPUAPI.h

class PxArticulationGPUAPIComputeType

This flag specifies the type of operation to perform when calling PxDirectGPUAPI::computeArticulationData.

Public Types

enum Enum

Values:

enumerator eUPDATE_KINEMATIC

Updates the link state for all the articulations specified in the index list. This operation can be performed by the user to propagate changes made to root transform/root velocities/joint positions/joint velocities to be reflected in the link transforms/velocities. Performing this operation will clear output values calculated by the simulation, specifically link accelerations, link incoming joint forces, and joint accelerations. Note that this is only necessary if the user wants to query link state, otherwise it will be performed automatically at the start of the next call to simulate(). The data input parameter will be ignored and can be set to NULL for this operation.

enumerator eDENSE_JACOBIANS

Computes the dense Jacobian for the articulation in world space, including the dofs of a potentially floating base. This is the batched, direct-GPU equivalent of PxArticulationReducedCoordinate::computeDenseJacobian. The output data buffer is laid out into sequential blocks per articulation, where each block has the size (6 + maxDofs) * (6 + (maxLinks - 1) * 6) * sizeof(float). maxLinks and maxDofs are the maximum link and dof counts across all the articulations in the scene, and can be queried by calling PxDirectGPUAPI::getArticulationGPUAPIMaxCounts(). The size of the jacobian can vary by articulation, and will be determined using these formulas: nCols = (fixedBase ? 0 : 6) + dofCount, nRows = (fixedBase ? 0 : 6) + (linkCount - 1) * 6. The matrix is indexed [nCols * row + column].

enumerator eGENERALIZED_MASS_MATRICES

Computes the joint-space inertia matrices that maps joint accelerations to joint forces: forces = M * accelerations on the GPU. This is the batched, direct-GPU equivalent of PxArticulationReducedCoordinate::computeGeneralizedMassMatrix(). The output buffer is laid out into sequential blocks per articulation, where each block has the size maxDofs * maxDofs * sizeof(PxReal). maxDofs is the maximum dof count across all the articulations in the scene, and can be queried by calling PxDirectGPUAPI::getArticulationGPUAPIMaxCounts(). The size of the matrix can vary by articulation, and will be dofCount * dofCount. The dof indices will be according to the low-level indexing, we refer to the documentation of PxArticulationCache for an explanation.

enumerator eGENERALIZED_GRAVITY_FORCES

Computes the joint dof forces required to counteract gravitational forces for the given articulation pose. This is the batched, direct-GPU equivalent of PxArticulationReducedCoordinate::computeGeneralizedGravityForce(). The output data buffer is laid out into sequential blocks per articulation, where each block has the size maxDofs * sizeof(float). maxDofs is the maximum dof count across all the articulations in the scene, and can be queried by calling PxDirectGPUAPI::getArticulationGPUAPIMaxCounts(). The data layout within each block follows the PxArticulationCache layout, for which we refer to the user guide. There will be 1 PxReal per articulation dof.

enumerator eCORIOLIS_AND_CENTRIFUGAL_FORCES

Computes the joint dof forces required to counteract coriolis and centrifugal forces for the given articulation pose. This is the batched, direct-GPU equivalent to PxArticulationReducedCoordinate::computeCoriolisAndCentrifugalForce(). The output data buffer is laid out into sequential blocks per articulation, where each block has the size maxDofs * sizeof(float). maxDofs is the maximum dof count across all the articulations in the scene, and can be queried by calling PxDirectGPUAPI::getArticulationGPUAPIMaxCounts(). The data layout within each block follows the PxArticulationCache layout, for which we refer to the user guide. There will be 1 PxReal per articulation dof.