launchContactForceMatrix#

Fully qualified name: isaacsim::physics::newton::tensors::launchContactForceMatrix

bool isaacsim::physics::newton::tensors::launchContactForceMatrix(
const int *contactCount,
const int *shape0,
const int *shape1,
const float *contactForce,
const int *shapeBody,
const int *bodySensorMap,
int bodySensorMapSize,
const int *bodyFilterMap,
int numBodies,
int worldBodyIdx,
float dtScale,
int filterCount,
float *forceMatrix,
int rigidContactMax,
void *stream = nullptr,
)#

Accumulate per-(sensor, filter) contact forces into a dense matrix.

Output forceMatrix has shape [numSensors, filterCount, 3].

Parameters:
  • contactCount – Device pointer to the physics contact count.

  • shape0 – Device array, contact pair shape A indices.

  • shape1 – Device array, contact pair shape B indices.

  • contactForce – Device array, shape [rigidContactMax, 3].

  • shapeBody – Device array mapping shape index to body index.

  • bodySensorMap – Device array mapping body index to sensor index.

  • bodySensorMapSize – Length of bodySensorMap.

  • bodyFilterMap – Device array mapping (sensor, body) to filter index.

  • numBodies – Total body count in the model.

  • worldBodyIdx – Sentinel body index representing the static world.

  • dtScale – Multiplicative scale applied to each force.

  • filterCount – Number of filters per sensor.

  • forceMatrix – Device output, shape [numSensors, filterCount, 3].

  • rigidContactMax – Capacity of the contact arrays.

  • stream – CUDA stream.

Returns:

true if the launch succeeded.