9 #include "imstkCollisionDetectionAlgorithm.h" 10 #include "imstkImplicitFunctionFiniteDifferenceFunctor.h" 11 #include "imstkMacros.h" 39 void setupFunctions(std::shared_ptr<ImplicitGeometry> implicitGeom, std::shared_ptr<PointSet> pointSet);
45 std::shared_ptr<Geometry> geomA,
46 std::shared_ptr<Geometry> geomB,
47 std::vector<CollisionElement>& elementsA,
48 std::vector<CollisionElement>& elementsB)
override;
54 std::shared_ptr<Geometry> geomA,
55 std::shared_ptr<Geometry> geomB,
56 std::vector<CollisionElement>& elementsA)
override;
62 std::shared_ptr<Geometry> geomA,
63 std::shared_ptr<Geometry> geomB,
64 std::vector<CollisionElement>& elementsB)
override;
69 std::shared_ptr<VecDataArray<double, 3>> m_displacementsPtr;
71 std::unordered_map<int, Vec3d> m_prevOuterElement;
72 std::unordered_map<int, int> m_prevOuterElementCounter;
75 double m_depthRatioLimit = 0.3;
Base class for all geometries represented by discrete points and elements The pointsets follow a pipe...
Base class for all collision detection classes. CollisionDetection classes produce CollisionData betw...
void computeCollisionDataA(std::shared_ptr< Geometry > geomA, std::shared_ptr< Geometry > geomB, std::vector< CollisionElement > &elementsA) override
Compute collision data for side A.
void computeCollisionDataAB(std::shared_ptr< Geometry > geomA, std::shared_ptr< Geometry > geomB, std::vector< CollisionElement > &elementsA, std::vector< CollisionElement > &elementsB) override
Compute collision data for AB simultaneously.
Simple dynamic array implementation that also supports event posting and viewing/facade.
Gradient given by central finite differences.
ImplicitGeometry to PointSet continous collision detection. This CD method marches along the displace...
void computeCollisionDataB(std::shared_ptr< Geometry > geomA, std::shared_ptr< Geometry > geomB, std::vector< CollisionElement > &elementsB) override
Compute collision data for side B.
Class that can represent the geometry of multiple implicit geometries as boolean functions One may su...