9 #include "imstkCollisionHandling.h" 10 #include "imstkMacros.h" 14 class CollidingObject;
16 class FeDeformableObject;
33 void setInputFeObject(std::shared_ptr<FeDeformableObject> feObj);
34 void setInputRbdObject(std::shared_ptr<RigidObject2> rbdObj);
36 std::shared_ptr<FeDeformableObject> getInputFeObject();
37 std::shared_ptr<RigidObject2> getInputRbdObject();
52 const std::vector<CollisionElement>& elementsA,
53 const std::vector<CollisionElement>& elementsB)
override;
60 const std::vector<CollisionElement>& elements,
61 std::shared_ptr<RigidObject2> analyticObj);
67 const std::vector<CollisionElement>& elements,
68 std::shared_ptr<FeDeformableObject> deformableObj);
double m_stiffness
Stiffness of contact.
void computeContactForcesDiscreteDeformable(const std::vector< CollisionElement > &elements, std::shared_ptr< FeDeformableObject > deformableObj)
Given the collision data, applies nodal forces in the FEM model.
void setContactStiffness(const double stiffness)
Set the contact stiffness.
void handle(const std::vector< CollisionElement > &elementsA, const std::vector< CollisionElement > &elementsB) override
Handle the input collision data. Elements will be flipped (if needed) such that elementsA corresponds...
Implements penalty collision handling between Fem and Rigid models.
void computeContactForcesAnalyticRigid(const std::vector< CollisionElement > &elements, std::shared_ptr< RigidObject2 > analyticObj)
Given the collision data, applies contact as external force to the rigid body (onyl supports PointDir...
Base class for all collision handling classes.
void setContactVelocityDamping(const double damping)
Set the contact velocity damping.
double m_damping
Damping of the contact.