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.outCountsis written with the actual written count per pair, clipped tomaxContactDataCount.- 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:
trueif the launch succeeded.