launchContactData#

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

bool isaacsim::physics::newton::tensors::launchContactData(
const int *contactCount,
const int *shape0,
const int *shape1,
const float *point0,
const float *point1,
const float *normal,
const float *contactForce,
const float *thickness0,
const float *thickness1,
const int *shapeBody,
const float *bodyQ,
const int *bodySensorMap,
int bodySensorMapSize,
const int *bodyFilterMap,
int numBodies,
int filterCount,
int worldBodyIdx,
float dtScale,
int maxContactDataCount,
float *outForces,
float *outPoints,
float *outNormals,
float *outSeparations,
uint32_t *outCounts,
const uint32_t *startIndices,
int rigidContactMax,
bool pointsInWorldSpace = false,
void *stream = nullptr,
)#

Emit per-contact data (force, point, normal, separation) for each sensor/filter pair.

Uses startIndices (exclusive prefix sum over the counts returned by :func:launchCountContactsPerPair) to know where each pair’s slice begins inside the output arrays. outCounts is written with the actual written count per pair, clipped to maxContactDataCount.

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.

  • point0 – Device array, contact points on shape A ([rigidContactMax, 3]).

  • point1 – Device array, contact points on shape B.

  • normal – Device array, contact normals.

  • contactForce – Device array, contact forces.

  • thickness0 – Device array, thicknesses of shape A.

  • thickness1 – Device array, thicknesses of shape B.

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

  • bodyQ – Device array of body transforms (7 floats each).

  • 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.

  • filterCount – Number of filters per sensor.

  • worldBodyIdx – Sentinel body index representing the static world.

  • dtScale – Multiplicative scale applied to each force.

  • maxContactDataCount – Maximum contacts stored per pair.

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

  • outPoints – Device output of the same shape (world-frame points).

  • outNormals – Device output of the same shape.

  • outSeparations – Device output, shape [numSensors, filterCount, maxContactDataCount].

  • outCounts – Device output count per pair, shape [numSensors * filterCount].

  • startIndices – Device exclusive prefix-sum of counts.

  • rigidContactMax – Capacity of the contact arrays.

  • pointsInWorldSpace – If true, output points are expressed in world space; otherwise in the local frame of the corresponding body.

  • stream – CUDA stream.

Returns:

true if the launch succeeded.