SOFA API  014b24ea
Open source framework for multi-physics simuation
sofa::core::collision::MemberElementIntersector< Elem1, Elem2, T > Class Template Reference
Inheritance diagram for sofa::core::collision::MemberElementIntersector< Elem1, Elem2, T >:

Protected Attributes

T * impl
 

Public Member Functions

 MemberElementIntersector (T *ptr)
 
bool canIntersect (core::CollisionElementIterator elem1, core::CollisionElementIterator elem2) override
 Test if 2 elements can collide. Note that this can be conservative (i.e. return true even when no collision is present) More...
 
int beginIntersect (core::CollisionModel *model1, core::CollisionModel *model2, DetectionOutputVector *&contacts) override
 
int intersect (core::CollisionElementIterator elem1, core::CollisionElementIterator elem2, DetectionOutputVector *contacts) override
 Compute the intersection between 2 elements. More...
 
std::string name () const override
 
int endIntersect (core::CollisionModel *model1, core::CollisionModel *model2, DetectionOutputVector *contacts) override
 End intersection tests between two collision models. Return the number of contacts written in the contacts vector. More...
 
- Public Member Functions inherited from sofa::core::collision::ElementIntersector
virtual ~ElementIntersector ()
 

Attribute details

template<class Elem1 , class Elem2 , class T >
T* sofa::core::collision::MemberElementIntersector< Elem1, Elem2, T >::impl
protected

Constructor details

template<class Elem1 , class Elem2 , class T >
sofa::core::collision::MemberElementIntersector< Elem1, Elem2, T >::MemberElementIntersector ( T *  ptr)
inline

Function details

template<class Elem1 , class Elem2 , class T >
int sofa::core::collision::MemberElementIntersector< Elem1, Elem2, T >::beginIntersect ( core::CollisionModel model1,
core::CollisionModel model2,
DetectionOutputVector *&  contacts 
)
inlineoverridevirtual

Begin intersection tests between two collision models. Return the number of contacts written in the contacts vector. If the given contacts vector is nullptr, then this method should allocate it.

Implements sofa::core::collision::ElementIntersector.

template<class Elem1 , class Elem2 , class T >
bool sofa::core::collision::MemberElementIntersector< Elem1, Elem2, T >::canIntersect ( core::CollisionElementIterator  elem1,
core::CollisionElementIterator  elem2 
)
inlineoverridevirtual

Test if 2 elements can collide. Note that this can be conservative (i.e. return true even when no collision is present)

Implements sofa::core::collision::ElementIntersector.

template<class Elem1 , class Elem2 , class T >
int sofa::core::collision::MemberElementIntersector< Elem1, Elem2, T >::endIntersect ( core::CollisionModel model1,
core::CollisionModel model2,
DetectionOutputVector contacts 
)
inlineoverridevirtual

End intersection tests between two collision models. Return the number of contacts written in the contacts vector.

Implements sofa::core::collision::ElementIntersector.

template<class Elem1 , class Elem2 , class T >
int sofa::core::collision::MemberElementIntersector< Elem1, Elem2, T >::intersect ( core::CollisionElementIterator  elem1,
core::CollisionElementIterator  elem2,
DetectionOutputVector contacts 
)
inlineoverridevirtual

Compute the intersection between 2 elements.

Implements sofa::core::collision::ElementIntersector.

template<class Elem1 , class Elem2 , class T >
std::string sofa::core::collision::MemberElementIntersector< Elem1, Elem2, T >::name ( ) const
inlineoverridevirtual