iMSTK
Interactive Medical Simulation Toolkit
imstkPointSetToCylinderCD.h
1 /*
2 ** This file is part of the Interactive Medical Simulation Toolkit (iMSTK)
3 ** iMSTK is distributed under the Apache License, Version 2.0.
4 ** See accompanying NOTICE for details.
5 */
6 
7 #pragma once
8 
9 #include "imstkCollisionDetectionAlgorithm.h"
10 
11 namespace imstk
12 {
21 {
22 public:
24  virtual ~PointSetToCylinderCD() override = default;
25 
26  IMSTK_TYPE_NAME(PointSetToCylinderCD)
27 
28 protected:
32  virtual void computeCollisionDataAB(
33  std::shared_ptr<Geometry> geomA,
34  std::shared_ptr<Geometry> geomB,
35  std::vector<CollisionElement>& elementsA,
36  std::vector<CollisionElement>& elementsB) override;
37 
41  virtual void computeCollisionDataA(
42  std::shared_ptr<Geometry> geomA,
43  std::shared_ptr<Geometry> geomB,
44  std::vector<CollisionElement>& elementsA) override;
45 
49  virtual void computeCollisionDataB(
50  std::shared_ptr<Geometry> geomA,
51  std::shared_ptr<Geometry> geomB,
52  std::vector<CollisionElement>& elementsB) override;
53 };
54 } // namespace imstk
Base class for all collision detection classes. CollisionDetection classes produce CollisionData betw...
Compound Geometry.
virtual 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.
virtual void computeCollisionDataA(std::shared_ptr< Geometry > geomA, std::shared_ptr< Geometry > geomB, std::vector< CollisionElement > &elementsA) override
Compute collision data for side A.
virtual void computeCollisionDataB(std::shared_ptr< Geometry > geomA, std::shared_ptr< Geometry > geomB, std::vector< CollisionElement > &elementsB) override
Compute collision data for side B.
PointSet to Cylinder collision detection. Generates point-direction contact data. By default only gen...