sofa::core::BaseCollisionElementIterator Class Reference

Base class for reference to an collision element defined by its index. More...

#include <CollisionElement.h>

Inheritance diagram for sofa::core::BaseCollisionElementIterator:

Inheritance graph
[legend]
Collaboration diagram for sofa::core::BaseCollisionElementIterator:

Collaboration graph
[legend]

Public Types

typedef std::vector< int >
::const_iterator 
VIterator

Public Member Functions

 BaseCollisionElementIterator (int index=0)
 Constructor.
 BaseCollisionElementIterator (int index, VIterator it, VIterator itend)
 Constructor.
 BaseCollisionElementIterator (VIterator it, VIterator itend)
 Constructor.
Iterator Interface
void next ()
 Increment this iterator to reference the next element.
void operator++ ()
 Increment this iterator to reference the next element.
void operator++ (int)
 Increment this iterator to reference the next element.
int getIndex () const
 Return the index of the referenced element inside the CollisionModel.
const VIterator & getVIterator () const
 Return the current iterator in the vector of indices, in case such a vector is currently used.
const VIterator & getVIteratorEnd () const
 Return the end iterator in the vector of indices, in case such a vector is currently used.

Protected Attributes

int index
 index of the referenced element inside the CollisionModel.
VIterator it
 current position in a vector of indices, in case this iterator traverse a non-contiguous set of indices
VIterator itend
 end position in a vector of indices, in case this iterator traverse a non-contiguous set of indices

Static Protected Attributes

static std::vector< int > emptyVector
 empty vector to be able to initialize the iterator to an empty pair

Detailed Description

Base class for reference to an collision element defined by its index.

Definition at line 45 of file CollisionElement.h.


Member Typedef Documentation

typedef std::vector<int>::const_iterator sofa::core::BaseCollisionElementIterator::VIterator


Constructor & Destructor Documentation

sofa::core::BaseCollisionElementIterator::BaseCollisionElementIterator ( 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 54 of file CollisionElement.h.

sofa::core::BaseCollisionElementIterator::BaseCollisionElementIterator ( int  index,
VIterator  it,
VIterator  itend 
) [inline]

Constructor.

This constructor should be used in case a vector of indices is used.

Definition at line 61 of file CollisionElement.h.

sofa::core::BaseCollisionElementIterator::BaseCollisionElementIterator ( VIterator  it,
VIterator  itend 
) [inline]

Constructor.

This constructor should be used in case a vector of indices is used.

Definition at line 68 of file CollisionElement.h.

References index.


Member Function Documentation

int sofa::core::BaseCollisionElementIterator::getIndex (  )  const [inline]

const VIterator& sofa::core::BaseCollisionElementIterator::getVIterator (  )  const [inline]

Return the current iterator in the vector of indices, in case such a vector is currently used.

Definition at line 111 of file CollisionElement.h.

References it.

Referenced by sofa::core::CollisionElementIterator::operator=().

const VIterator& sofa::core::BaseCollisionElementIterator::getVIteratorEnd (  )  const [inline]

Return the end iterator in the vector of indices, in case such a vector is currently used.

Definition at line 117 of file CollisionElement.h.

References itend.

Referenced by sofa::core::CollisionElementIterator::operator=().

void sofa::core::BaseCollisionElementIterator::next (  )  [inline]

Increment this iterator to reference the next element.

Definition at line 78 of file CollisionElement.h.

References index, it, and itend.

Referenced by operator++().

void sofa::core::BaseCollisionElementIterator::operator++ ( int   )  [inline]

Increment this iterator to reference the next element.

Definition at line 96 of file CollisionElement.h.

References next().

void sofa::core::BaseCollisionElementIterator::operator++ (  )  [inline]

Increment this iterator to reference the next element.

Definition at line 90 of file CollisionElement.h.

References next().


Field Documentation

std::vector< int > sofa::core::BaseCollisionElementIterator::emptyVector [static, protected]

empty vector to be able to initialize the iterator to an empty pair

Definition at line 128 of file CollisionElement.h.

index of the referenced element inside the CollisionModel.

Definition at line 125 of file CollisionElement.h.

Referenced by BaseCollisionElementIterator(), 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 >::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(), getIndex(), 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::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(), next(), 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::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(), and sofa::component::collision::Tetrahedron::v4().

current position in a vector of indices, in case this iterator traverse a non-contiguous set of indices

Definition at line 126 of file CollisionElement.h.

Referenced by sofa::component::collision::GridCell::add(), getVIterator(), next(), and sofa::core::CollisionElementIterator::operator=().

end position in a vector of indices, in case this iterator traverse a non-contiguous set of indices

Definition at line 127 of file CollisionElement.h.

Referenced by getVIteratorEnd(), next(), and sofa::core::CollisionElementIterator::operator=().


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

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