warp.geometry.swept_volume_sdf#

warp.geometry.swept_volume_sdf = <Function swept_volume_sdf(point: vec3f, mesh_ids: array(ndim=1, dtype=uint64), transforms: array(ndim=2, dtype=transformf), max_dist: float32, sign_mode: int32)>#

Evaluate the swept-volume pseudo signed distance at a single point.

Returns \(\min_m \min_s \mathrm{sdf}_m(X_{m,s}^{-1} p)\), the minimum over every mesh \(m\) and every sampled pose \(s\). The motion is rigid, so instead of transforming the geometry the query point is pushed back into each mesh’s rest frame, and one closest-point query per (mesh, sample) evaluates one pose. Callable from within your own kernels; not differentiable.

Parameters:
  • point (vec3f) – Query point, in world space.

  • mesh_ids (warp.array[warp.uint64]) – Identifiers of the rest-pose meshes.

  • transforms (warp.array2d[warp.transformf]) – Per-mesh, per-sample rigid poses, mapping rest space to world space.

  • max_dist (float32) – Bound on the closest-point search. A query that finds nothing within it returns no sign either, so this returns +max_dist for a point deep inside the union just as it does for one far outside; pass a bound that spans the region of interest, as the array-level entry points do.

  • sign_mode (int32) – Inside/outside classification method, as the integer value of a SweptVolumeSignMode member.

Returns:

The pseudo signed distance at point.

Return type:

float32