iMSTK
Interactive Medical Simulation Toolkit
Public Member Functions | Protected Member Functions | List of all members
imstk::SphCollisionHandling Class Reference

The SphCollisionHandling consumes PointIndexDirection contact data to resolve positions and correct velocities of SPH particles. It does not correct pressures/densities. More...

#include <imstkSphCollisionHandling.h>

Inheritance diagram for imstk::SphCollisionHandling:
Inheritance graph
[legend]
Collaboration diagram for imstk::SphCollisionHandling:
Collaboration graph
[legend]

Public Member Functions

void setInputSphObject (std::shared_ptr< SphObject > sphObj)
 
void setNumberOfIterations (int iterations)
 How many times to resolve and correct position. This is useful when colliding with multiple objects or in a corner of another object.
 
void setDetection (std::shared_ptr< CollisionDetectionAlgorithm > colDetect)
 Sets detection object for iteration handling+detection.
 
void handle (const std::vector< CollisionElement > &elementsA, const std::vector< CollisionElement > &elementsB) override
 Resolve SPH particle positions.
 
- Public Member Functions inherited from imstk::CollisionHandling
virtual const std::string getTypeName () const =0
 
void setInputObjectA (std::shared_ptr< CollidingObject > objectA)
 Set the input objects.
 
void setInputObjectB (std::shared_ptr< CollidingObject > objectB)
 
std::shared_ptr< CollidingObjectgetInputObjectA () const
 Get the input objects.
 
std::shared_ptr< CollidingObjectgetInputObjectB () const
 
virtual std::shared_ptr< GeometrygetHandlingGeometryA ()
 Get the geometry used for handling defaults to the collision geometry.
 
virtual std::shared_ptr< GeometrygetHandlingGeometryB ()
 
void setInputCollisionData (std::shared_ptr< CollisionData > collisionData)
 Set/Get the input collision data used for handling.
 
void setInputCollisionData (std::shared_ptr< std::vector< std::shared_ptr< CollisionData >>> collisionVectorData)
 Set/Get the input collision data used for handling This supports collating information from multiple collision detect algorithms.
 
std::shared_ptr< const CollisionDatagetInputCollisionData () const
 
void update ()
 Handle the input collision data.
 

Protected Member Functions

void solve (Vec3d &pos, Vec3d &velocity, const Vec3d &penetrationVector)
 Solves positiona and corrects velocity of individual particle.
 
- Protected Member Functions inherited from imstk::CollisionHandling
void updateCollisionData (std::shared_ptr< const CollisionData > data)
 

Additional Inherited Members

- Protected Attributes inherited from imstk::CollisionHandling
std::shared_ptr< CollidingObjectm_inputObjectA
 
std::shared_ptr< CollidingObjectm_inputObjectB
 
std::shared_ptr< const CollisionDatam_colData
 Collision data.
 
std::shared_ptr< std::vector< std::shared_ptr< CollisionData > > > m_colVectorData
 Expansion to allow collision detection to return multiple types of collision data.
 
std::function< void()> m_updateFunction = []() {}
 
bool m_clearData = true
 
bool m_processConstraints = true
 

Detailed Description

The SphCollisionHandling consumes PointIndexDirection contact data to resolve positions and correct velocities of SPH particles. It does not correct pressures/densities.

Definition at line 25 of file imstkSphCollisionHandling.h.


The documentation for this class was generated from the following files: