#include <CollisionElement.h>


Public Types | |
| typedef TModel | Model |
| typedef std::vector< int > ::const_iterator | VIterator |
Public Member Functions | |
| TCollisionElementIterator (Model *model=NULL, int index=0) | |
| Constructor. | |
| TCollisionElementIterator (Model *model, int index, VIterator it, VIterator itend) | |
| Constructor. | |
| TCollisionElementIterator (Model *model, VIterator it, VIterator itend) | |
| Constructor. | |
Iterator Interface | |
| template<class Model2 > | |
| bool | operator== (const TCollisionElementIterator< Model2 > &i) const |
| Compare two iterators. | |
| template<class Model2 > | |
| bool | operator!= (const TCollisionElementIterator< Model2 > &i) const |
| Compare two iterators. | |
| bool | valid () const |
| Test if this iterator is initialized with a valid CollisionModel. | |
| Model * | getCollisionModel () const |
| Return the CollisionModel containing the referenced element. | |
Wrapper methods to access data and methods inside the CollisionModel. | |
| std::pair < CollisionElementIterator, CollisionElementIterator > | getInternalChildren () const |
| Return the list (as a pair of iterators) of internal children of this element. | |
| std::pair < CollisionElementIterator, CollisionElementIterator > | getExternalChildren () const |
| Return the list (as a pair of iterators) of external children of this element. | |
| bool | isLeaf () const |
| Test if this element is a leaf. | |
| bool | canCollideWith (TCollisionElementIterator< Model > &elem) |
| Test if this element can collide with another element. | |
| double | getProximity () |
| Distance to the actual (visual) surface. | |
| double | getContactStiffness () |
| Contact stiffness. | |
| double | getContactFriction () |
| Contact friction (damping) coefficient. | |
| void | draw () |
| Render this element. | |
Protected Attributes | |
| Model * | model |
| CollisionModel containing the referenced element. | |
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).
Definition at line 143 of file CollisionElement.h.
| typedef TModel sofa::core::TCollisionElementIterator< TModel >::Model |
Definition at line 146 of file CollisionElement.h.
| typedef std::vector<int>::const_iterator sofa::core::TCollisionElementIterator< TModel >::VIterator |
Reimplemented from sofa::core::BaseCollisionElementIterator.
Definition at line 147 of file CollisionElement.h.
| sofa::core::TCollisionElementIterator< TModel >::TCollisionElementIterator | ( | Model * | model = NULL, |
|
| int | index = 0 | |||
| ) | [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).
Definition at line 153 of file CollisionElement.h.
| sofa::core::TCollisionElementIterator< TModel >::TCollisionElementIterator | ( | Model * | model, | |
| int | index, | |||
| VIterator | it, | |||
| VIterator | itend | |||
| ) | [inline] |
Constructor.
This constructor should be used in case a vector of indices is used.
Definition at line 160 of file CollisionElement.h.
| sofa::core::TCollisionElementIterator< TModel >::TCollisionElementIterator | ( | Model * | model, | |
| VIterator | it, | |||
| VIterator | itend | |||
| ) | [inline] |
Constructor.
This constructor should be used in case a vector of indices is used.
Definition at line 167 of file CollisionElement.h.
| bool sofa::core::TCollisionElementIterator< TModel >::canCollideWith | ( | TCollisionElementIterator< Model > & | elem | ) | [inline] |
Test if this element can collide with another element.
Definition at line 230 of file CollisionElement.h.
Referenced by sofa::component::collision::GridCell::add().
| void sofa::core::TCollisionElementIterator< TModel >::draw | ( | ) | [inline] |
Render this element.
Definition at line 248 of file CollisionElement.h.
Referenced by sofa::component::collision::RayPickInteractor::draw().
| Model* sofa::core::TCollisionElementIterator< TModel >::getCollisionModel | ( | ) | const [inline] |
Return the CollisionModel containing the referenced element.
Definition at line 199 of file CollisionElement.h.
Referenced by sofa::component::collision::GridCell::add(), sofa::component::collision::VoxelGrid::add(), sofa::component::collision::BruteForceDetection::addCollisionPair(), sofa::component::collision::DefaultPickingManager< TDataTypes, ContactForceField >::attach(), sofa::component::collision::NewProximityIntersection::computeIntersection(), sofa::component::collision::MinProximityIntersection::computeIntersection(), sofa::component::collision::LocalMinDistance::computeIntersection(), sofa::component::collision::DiscreteIntersection::computeIntersection(), sofa::component::collision::RayPickInteractor::draw(), sofa::component::collision::TopologicalChangeManager::incisionCollisionModel(), sofa::component::collision::TopologicalChangeManager::incisionTriangleModel(), sofa::core::componentmodel::collision::Intersection::isSupported(), sofa::core::TCollisionElementIterator< sofa::component::collision::SphereTreeModel >::operator!=(), sofa::core::CollisionElementIterator::operator=(), sofa::core::TCollisionElementIterator< sofa::component::collision::SphereTreeModel >::operator==(), sofa::component::collision::RayPickInteractor::pickBody(), sofa::component::collision::TopologicalChangeManager::removeItemsFromCollisionModel(), sofa::component::collision::TopologicalChangeManager::removeItemsFromTriangleModel(), and sofa::component::collision::LocalMinDistance::testValidity().
| double sofa::core::TCollisionElementIterator< TModel >::getContactFriction | ( | ) | [inline] |
Contact friction (damping) coefficient.
Definition at line 242 of file CollisionElement.h.
Referenced by sofa::component::collision::DefaultPickingManager< TDataTypes, ContactForceField >::attach().
| double sofa::core::TCollisionElementIterator< TModel >::getContactStiffness | ( | ) | [inline] |
Contact stiffness.
Definition at line 239 of file CollisionElement.h.
Referenced by sofa::component::collision::DefaultPickingManager< TDataTypes, ContactForceField >::attach().
| std::pair< CollisionElementIterator, CollisionElementIterator > sofa::core::TCollisionElementIterator< Model >::getExternalChildren | ( | ) | const [inline] |
Return the list (as a pair of iterators) of external children of this element.
Definition at line 325 of file CollisionElement.h.
References sofa::core::BaseCollisionElementIterator::index, and sofa::core::TCollisionElementIterator< TModel >::model.
| std::pair< CollisionElementIterator, CollisionElementIterator > sofa::core::TCollisionElementIterator< Model >::getInternalChildren | ( | ) | const [inline] |
Return the list (as a pair of iterators) of internal children of this element.
Definition at line 319 of file CollisionElement.h.
References sofa::core::BaseCollisionElementIterator::index, and sofa::core::TCollisionElementIterator< TModel >::model.
| double sofa::core::TCollisionElementIterator< TModel >::getProximity | ( | ) | [inline] |
Distance to the actual (visual) surface.
Definition at line 236 of file CollisionElement.h.
Referenced by sofa::component::collision::NewProximityIntersection::computeIntersection(), sofa::component::collision::MinProximityIntersection::computeIntersection(), sofa::component::collision::LocalMinDistance::computeIntersection(), sofa::component::collision::DiscreteIntersection::computeIntersection(), sofa::component::collision::NewProximityIntersection::testIntersection(), sofa::component::collision::MinProximityIntersection::testIntersection(), and sofa::component::collision::LocalMinDistance::testIntersection().
| bool sofa::core::TCollisionElementIterator< TModel >::isLeaf | ( | ) | const [inline] |
Test if this element is a leaf.
Definition at line 222 of file CollisionElement.h.
| bool sofa::core::TCollisionElementIterator< TModel >::operator!= | ( | const TCollisionElementIterator< Model2 > & | i | ) | const [inline] |
Compare two iterators.
Note that even it the iterators are of different types, they can point to the same element.
Definition at line 186 of file CollisionElement.h.
| bool sofa::core::TCollisionElementIterator< TModel >::operator== | ( | const TCollisionElementIterator< Model2 > & | i | ) | const [inline] |
Compare two iterators.
Note that even it the iterators are of different types, they can point to the same element.
Definition at line 178 of file CollisionElement.h.
| bool sofa::core::TCollisionElementIterator< TModel >::valid | ( | ) | const [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.
Definition at line 193 of file CollisionElement.h.
Model* sofa::core::TCollisionElementIterator< TModel >::model [protected] |
CollisionModel containing the referenced element.
Definition at line 257 of file CollisionElement.h.
Referenced by sofa::core::TCollisionElementIterator< sofa::component::collision::SphereTreeModel >::canCollideWith(), sofa::component::collision::SingleSphere::center(), sofa::component::collision::TSphere< DataTypes >::center(), sofa::component::collision::Ray::direction(), sofa::core::TCollisionElementIterator< sofa::component::collision::SphereTreeModel >::draw(), sofa::component::collision::Triangle::flags(), sofa::component::collision::Tetrahedron::getBary(), sofa::core::TCollisionElementIterator< sofa::component::collision::SphereTreeModel >::getCollisionModel(), sofa::core::TCollisionElementIterator< sofa::component::collision::SphereTreeModel >::getContactFriction(), sofa::core::TCollisionElementIterator< sofa::component::collision::SphereTreeModel >::getContactStiffness(), sofa::component::collision::Tetrahedron::getCoord(), sofa::component::collision::Tetrahedron::getDBary(), sofa::component::collision::Tetrahedron::getDCoord(), sofa::core::TCollisionElementIterator< TModel >::getExternalChildren(), sofa::gpu::cuda::CudaRigidDistanceGridCollisionElement::getGrid(), sofa::component::collision::FFDDistanceGridCollisionElement::getGrid(), sofa::component::collision::RigidDistanceGridCollisionElement::getGrid(), sofa::core::TCollisionElementIterator< TModel >::getInternalChildren(), sofa::gpu::cuda::CudaRigidDistanceGridCollisionElement::getPrevDt(), sofa::component::collision::RigidDistanceGridCollisionElement::getPrevDt(), sofa::gpu::cuda::CudaRigidDistanceGridCollisionElement::getPrevGrid(), sofa::component::collision::RigidDistanceGridCollisionElement::getPrevGrid(), sofa::gpu::cuda::CudaRigidDistanceGridCollisionElement::getPrevRotation(), sofa::component::collision::RigidDistanceGridCollisionElement::getPrevRotation(), sofa::gpu::cuda::CudaRigidDistanceGridCollisionElement::getPrevTranslation(), sofa::component::collision::RigidDistanceGridCollisionElement::getPrevTranslation(), sofa::core::TCollisionElementIterator< sofa::component::collision::SphereTreeModel >::getProximity(), sofa::gpu::cuda::CudaRigidDistanceGridCollisionElement::getRotation(), sofa::component::collision::RigidDistanceGridCollisionElement::getRotation(), sofa::gpu::cuda::CudaPoint::getSize(), sofa::gpu::cuda::CudaRigidDistanceGridCollisionElement::getTranslation(), sofa::component::collision::RigidDistanceGridCollisionElement::getTranslation(), sofa::gpu::cuda::CudaPoint::i0(), sofa::component::collision::Line::i1(), sofa::component::collision::Line::i2(), sofa::core::TCollisionElementIterator< sofa::component::collision::SphereTreeModel >::isLeaf(), sofa::gpu::cuda::CudaRigidDistanceGridCollisionElement::isTransformed(), sofa::component::collision::RigidDistanceGridCollisionElement::isTransformed(), sofa::component::collision::Ray::l(), sofa::component::collision::Cube::maxVect(), sofa::component::collision::Cube::minVect(), sofa::component::collision::Triangle::n(), sofa::component::collision::Point::n(), sofa::core::TCollisionElementIterator< sofa::component::collision::SphereTreeModel >::operator!=(), sofa::core::CollisionElementIterator::operator=(), sofa::core::TCollisionElementIterator< sofa::component::collision::SphereTreeModel >::operator==(), sofa::component::collision::Ray::origin(), sofa::component::collision::Point::p(), sofa::component::collision::Triangle::p1(), sofa::component::collision::Tetrahedron::p1(), sofa::component::collision::Line::p1(), sofa::component::collision::Triangle::p1Free(), sofa::component::collision::Tetrahedron::p1Free(), sofa::component::collision::Line::p1Free(), sofa::component::collision::Triangle::p1Index(), sofa::component::collision::Tetrahedron::p1Index(), sofa::component::collision::Triangle::p2(), sofa::component::collision::Tetrahedron::p2(), sofa::component::collision::Line::p2(), sofa::component::collision::Triangle::p2Free(), sofa::component::collision::Tetrahedron::p2Free(), sofa::component::collision::Line::p2Free(), sofa::component::collision::Triangle::p2Index(), sofa::component::collision::Tetrahedron::p2Index(), sofa::component::collision::Triangle::p3(), sofa::component::collision::Tetrahedron::p3(), sofa::component::collision::Triangle::p3Free(), sofa::component::collision::Tetrahedron::p3Free(), sofa::component::collision::Triangle::p3Index(), sofa::component::collision::Tetrahedron::p3Index(), sofa::component::collision::Tetrahedron::p4(), sofa::component::collision::Tetrahedron::p4Free(), sofa::component::collision::Tetrahedron::p4Index(), sofa::component::collision::Point::pFree(), sofa::component::collision::SingleSphere::r(), sofa::component::collision::TSphere< DataTypes >::r(), sofa::component::collision::SingleSphere::setCenter(), sofa::gpu::cuda::CudaRigidDistanceGridCollisionElement::setGrid(), sofa::component::collision::FFDDistanceGridCollisionElement::setGrid(), sofa::component::collision::RigidDistanceGridCollisionElement::setGrid(), sofa::gpu::cuda::CudaRigidDistanceGridCollisionElement::setNewState(), sofa::component::collision::RigidDistanceGridCollisionElement::setNewState(), sofa::component::collision::Cube::subcells(), sofa::component::collision::Point::testLMD(), sofa::component::collision::SingleSphere::v(), sofa::component::collision::TSphere< DataTypes >::v(), sofa::component::collision::Point::v(), sofa::component::collision::Triangle::v1(), sofa::component::collision::Tetrahedron::v1(), sofa::component::collision::Line::v1(), sofa::component::collision::Triangle::v2(), sofa::component::collision::Tetrahedron::v2(), sofa::component::collision::Line::v2(), sofa::component::collision::Triangle::v3(), sofa::component::collision::Tetrahedron::v3(), sofa::component::collision::Tetrahedron::v4(), and sofa::core::TCollisionElementIterator< sofa::component::collision::SphereTreeModel >::valid().
1.5.7.1