#include <CollisionElement.h>
Reference to an collision element defined by its index inside a given collision model. More...

Reference to an collision element defined by its index inside a given collision model.
A CollisionElementIterator is only a temporary iterator and must not contain any data. It only contains inline non-virtual methods calling the appropriate methods in the parent model object. This class is a template in order to store reference to a specific type of element (such as a Cube in a CubeModel).
Public Attributes | |
| Model * | model |
| CollisionModel containing the referenced element. More... | |
Public Member Functions | |
| TCollisionElementIterator (Model *model=nullptr, Index index=0) | |
| TCollisionElementIterator (Model *model, Index index, VIterator it, VIterator itend) | |
| TCollisionElementIterator (Model *model, VIterator it, VIterator itend) | |
| bool | isActive (core::CollisionModel *cm=nullptr) const |
Iterator Interface | |
| template<class Model2 > | |
| bool | operator== (const TCollisionElementIterator< Model2 > &i) const |
| template<class Model2 > | |
| bool | operator!= (const TCollisionElementIterator< Model2 > &i) const |
| TCollisionElementIterator & | operator+= (int n) |
| TCollisionElementIterator | operator+ (int n) const |
| bool | valid () const |
| Model * | getCollisionModel () const |
| Return the CollisionModel containing the referenced element. More... | |
Wrapper methods to access data and methods inside the CollisionModel. | |
| std::pair< CollisionElementIterator, CollisionElementIterator > | getInternalChildren () const |
| std::pair< CollisionElementIterator, CollisionElementIterator > | getExternalChildren () const |
| bool | isLeaf () const |
| bool | canCollideWith (const TCollisionElementIterator< Model > &elem) const |
| SReal | getProximity () const |
| Distance to the actual (visual) surface. More... | |
| SReal | getContactStiffness () const |
| Contact stiffness. More... | |
| SReal | getContactFriction () const |
| Contact friction (damping) coefficient. More... | |
| void | draw (const core::visual::VisualParams *vparams) |
Public Member Functions inherited from sofa::core::BaseCollisionElementIterator | |
| BaseCollisionElementIterator (Index index=0) | |
| BaseCollisionElementIterator (Index index, VIterator it, VIterator itend) | |
| BaseCollisionElementIterator (VIterator it, VIterator itend) | |
| void | next () |
| Increment this iterator to reference the next element. More... | |
| BaseCollisionElementIterator & | operator++ () |
| Prefix increment this iterator to reference the next element. More... | |
| BaseCollisionElementIterator | operator++ (int) |
| Postfix increment this iterator to reference the next element. More... | |
| BaseCollisionElementIterator & | operator+= (int n) |
| BaseCollisionElementIterator | operator+ (int n) const |
| Index | getIndex () const |
| const VIterator & | getVIterator () const |
| Return the current iterator in the vector of indices, in case such a vector is currently used. More... | |
| const VIterator & | getVIteratorEnd () const |
| Return the end iterator in the vector of indices, in case such a vector is currently used. More... | |
Additional Inherited Members | |
Protected Attributes inherited from sofa::core::BaseCollisionElementIterator | |
| Index | index |
| index of the referenced element inside the CollisionModel. More... | |
| VIterator | it |
| current position in a vector of indices, in case this iterator traverse a non-contiguous set of indices More... | |
| VIterator | itend |
| end position in a vector of indices, in case this iterator traverse a non-contiguous set of indices More... | |
Static Protected Attributes inherited from sofa::core::BaseCollisionElementIterator | |
| static std::vector< int > SOFA_CORE_API | emptyVector |
| empty vector to be able to initialize the iterator to an empty pair More... | |
| Model* sofa::core::TCollisionElementIterator< TModel >::model |
CollisionModel containing the referenced element.
|
inline |
Constructor. In most cases it will be used by the CollisionModel to create interators to its elements (such as in the begin() and end() methods).
|
inline |
Constructor. This constructor should be used in case a vector of indices is used.
|
inline |
Constructor. This constructor should be used in case a vector of indices is used.
|
inline |
Test if this element can collide with another element.
|
inline |
Render this element.
|
inline |
Return the CollisionModel containing the referenced element.
|
inline |
Contact friction (damping) coefficient.
|
inline |
Contact stiffness.
| std::pair< CollisionElementIterator, CollisionElementIterator > sofa::core::TCollisionElementIterator< Model >::getExternalChildren |
Return the list (as a pair of iterators) of external children of this element.
| std::pair< CollisionElementIterator, CollisionElementIterator > sofa::core::TCollisionElementIterator< Model >::getInternalChildren |
Return the list (as a pair of iterators) of internal children of this element.
|
inline |
Distance to the actual (visual) surface.
|
inline |
|
inline |
Test if this element is a leaf.
|
inline |
Compare two iterators. Note that even it the iterators are of different types, they can point to the same element.
|
inline |
|
inline |
|
inline |
Compare two iterators. Note that even it the iterators are of different types, they can point to the same element.
|
inline |
Test if this iterator is initialized with a valid CollisionModel. Note that it does not test if the referenced element inside the CollisionModel is valid.