9 #include "imstkSceneObject.h" 14 class CollisionDetectionAlgorithm;
15 class CollisionHandling;
16 class CollidingObject;
30 std::shared_ptr<CollidingObject> obj1,
31 std::shared_ptr<CollidingObject> obj2,
35 void setCollisionDetection(std::shared_ptr<CollisionDetectionAlgorithm> colDetect);
52 std::shared_ptr<CollisionDetectionAlgorithm> getCollisionDetection()
const {
return m_colDetect; }
53 std::shared_ptr<CollisionHandling> getCollisionHandlingA()
const {
return m_colHandlingA; }
54 std::shared_ptr<CollisionHandling> getCollisionHandlingB()
const {
return m_colHandlingB; }
55 std::shared_ptr<CollisionHandling> getCollisionHandlingAB()
const {
return m_colHandlingA; }
57 std::shared_ptr<TaskNode> getCollisionDetectionNode()
const {
return m_collisionDetectionNode; }
58 std::shared_ptr<TaskNode> getCollisionHandlingANode()
const {
return m_collisionHandleANode; }
59 std::shared_ptr<TaskNode> getCollisionHandlingBNode()
const {
return m_collisionHandleBNode; }
61 void updateCollisionGeometry();
67 virtual bool getEnabled()
const;
88 std::shared_ptr<CollidingObject> m_objA =
nullptr;
89 std::shared_ptr<CollidingObject> m_objB =
nullptr;
91 std::shared_ptr<CollisionDetectionAlgorithm>
m_colDetect =
nullptr;
92 std::shared_ptr<CollisionHandling> m_colHandlingA =
nullptr;
93 std::shared_ptr<CollisionHandling> m_colHandlingB =
nullptr;
95 std::shared_ptr<TaskNode> m_collisionDetectionNode =
nullptr;
96 std::shared_ptr<TaskNode> m_collisionHandleANode =
nullptr;
97 std::shared_ptr<TaskNode> m_collisionHandleBNode =
nullptr;
98 std::shared_ptr<TaskNode> m_collisionGeometryUpdateNode =
nullptr;
100 bool m_didUpdateThisFrame =
false;
void setCollisionHandlingAB(std::shared_ptr< CollisionHandling > colHandlingAB)
Set the two-way Collision Handling for both objects.
void updateCHB()
Update handler B.
void setCollisionHandlingB(std::shared_ptr< CollisionHandling > colHandlingB)
Set the Collision Handling for object B.
void updateCD()
Update collision.
void updateCHA()
Update handler A.
std::shared_ptr< CollisionDetectionAlgorithm > m_colDetect
Collision detection algorithm.
Abstract class for defining collision interactions between objects.
Base class for all scene objects. A scene object can optionally be visible and collide with other sce...
void visualUpdate() override
Update the visuals, called before render.
void setCollisionHandlingA(std::shared_ptr< CollisionHandling > colHandlingA)
Set the Collision Handling for object A.
virtual void setEnabled(const bool enabled)
Enable or disable the interaction, when disabled the interaction isn't executed and no response will ...