Skip to content

LineMesh to LineMesh collision, including two-body and self collision.

Description

This PR adds a new feature for detecting and handling LineMesh to LineMesh collisions. Both two-body as well as self-collision cases are handled. It implements a new class imstk::LineMeshToLineMeshCCD to compute Continuous Collision Detection (CCD) between two (or self) line meshes.

New imstk::CCDAlgorithm has been added as a base class for all CCD algorithms to be added in the future (at least for Mesh-Mesh collisions, non-mesh object collisions might differ). This class enforces the requirement of caching the previous step geometries needed by a CCD algorithm.

New imstk::PbdEdgeEdgeCCDConstraint has been added to handle edge-edge CCD constraints.

An example (PBDSutureSelfCCD) has been added to demonstrate this new feature.

PR Checklist

  • No API changes were made (or the changes have been approved)
  • No major design changes were made (or the changes have been approved)
  • No new dependencies were added (or the new dependencies have been approved)
  • Added test (or behavior not changed)
  • Updated API documentation (or API not changed)
  • Ran the CodeFormatEnforcer task and verified the header is in all new files
  • Added iMSTK examples for all new major features (if any)
Edited by Shreeraj Jadhav

Merge request reports