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...