9 #include "imstkCollisionHandling.h" 10 #include "imstkMacros.h" 15 class CollisionDetectionAlgorithm;
34 void setInputSphObject(std::shared_ptr<SphObject> sphObj);
45 void setDetection(std::shared_ptr<CollisionDetectionAlgorithm> colDetect) { this->m_colDetect = colDetect; }
51 const std::vector<CollisionElement>& elementsA,
52 const std::vector<CollisionElement>& elementsB)
override;
58 void solve(Vec3d& pos, Vec3d& velocity,
const Vec3d& penetrationVector);
61 std::shared_ptr<CollisionDetectionAlgorithm> m_colDetect =
nullptr;
63 double m_boundaryFriction = 0.0;
void solve(Vec3d &pos, Vec3d &velocity, const Vec3d &penetrationVector)
Solves positiona and corrects velocity of individual particle.
void setDetection(std::shared_ptr< CollisionDetectionAlgorithm > colDetect)
Sets detection object for iteration handling+detection.
Base class for all collision handling classes.
The SphCollisionHandling consumes PointIndexDirection contact data to resolve positions and correct v...
void handle(const std::vector< CollisionElement > &elementsA, const std::vector< CollisionElement > &elementsB) override
Resolve SPH particle positions.
void setNumberOfIterations(int iterations)
How many times to resolve and correct position. This is useful when colliding with multiple objects o...