sofa::core::componentmodel::collision::Intersection Class Reference

Given 2 collision elements, test if an intersection is possible (for bounding volumes), or compute intersection points if any. More...

#include <Intersection.h>

Inheritance diagram for sofa::core::componentmodel::collision::Intersection:

Inheritance graph
[legend]
Collaboration diagram for sofa::core::componentmodel::collision::Intersection:

Collaboration graph
[legend]

Public Member Functions

virtual ~Intersection ()
virtual ElementIntersector * findIntersector (core::CollisionModel *object1, core::CollisionModel *object2, bool &swapModels)=0
 Return the intersector class handling the given pair of collision models, or NULL if not supported.
virtual bool isSupported (core::CollisionElementIterator elem1, core::CollisionElementIterator elem2)
 Test if intersection between 2 types of elements is supported, i.e.
virtual bool useProximity () const
 returns true if algorithm uses proximity detection
virtual bool useContinuous () const
 returns true if algorithm uses continous detection
virtual double getAlarmDistance () const
 Return the alarm distance (must return 0 if useProximity() is false).
virtual double getContactDistance () const
 Return the contact distance (must return 0 if useProximity() is false).

Detailed Description

Given 2 collision elements, test if an intersection is possible (for bounding volumes), or compute intersection points if any.

Definition at line 94 of file Intersection.h.


Constructor & Destructor Documentation

sofa::core::componentmodel::collision::Intersection::~Intersection (  )  [virtual]

Definition at line 90 of file Intersection.cpp.


Member Function Documentation

virtual ElementIntersector* sofa::core::componentmodel::collision::Intersection::findIntersector ( core::CollisionModel *  object1,
core::CollisionModel *  object2,
bool &  swapModels 
) [pure virtual]

Return the intersector class handling the given pair of collision models, or NULL if not supported.

Parameters:
swapModel output value set to true if the collision models must be swapped before calling the intersector.

Implemented in sofa::component::collision::DiscreteIntersection.

Referenced by sofa::component::collision::RayTraceDetection::addCollisionModel(), sofa::component::collision::BruteForceDetection::addCollisionModel(), sofa::component::collision::BruteForceDetection::addCollisionPair(), and isSupported().

virtual double sofa::core::componentmodel::collision::Intersection::getAlarmDistance (  )  const [inline, virtual]

virtual double sofa::core::componentmodel::collision::Intersection::getContactDistance (  )  const [inline, virtual]

bool sofa::core::componentmodel::collision::Intersection::isSupported ( core::CollisionElementIterator  elem1,
core::CollisionElementIterator  elem2 
) [virtual]

Test if intersection between 2 types of elements is supported, i.e.

an intersection test is implemented for this combinaison of types. Note that this method is deprecated in favor of findIntersector

an intersection test is implemented for this combinaison of types. Note that this method is deprecated in favor of findIntersector

Definition at line 96 of file Intersection.cpp.

References findIntersector(), and sofa::core::TCollisionElementIterator< TModel >::getCollisionModel().

virtual bool sofa::core::componentmodel::collision::Intersection::useContinuous (  )  const [inline, virtual]

virtual bool sofa::core::componentmodel::collision::Intersection::useProximity (  )  const [inline, virtual]


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

Generated on Sun Nov 23 04:23:36 2008 for Sofa by  doxygen 1.5.7.1