Chaste Release::3.1
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator Class Reference

#include <AbstractMeshReader.hpp>

Inheritance diagram for AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator:
Collaboration diagram for AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator:

List of all members.

Public Member Functions

 NodeIterator ()
 NodeIterator (unsigned index, AbstractMeshReader *pReader)
 NodeIterator (const std::set< unsigned > &rIndices, AbstractMeshReader *pReader)
unsigned GetIndex () const

Private Member Functions

void CacheData (unsigned index, bool firstRead=false)
void increment ()
bool equal (const NodeIterator &rOther) const
const std::vector< double > & dereference () const

Private Attributes

unsigned mIndex
const std::set< unsigned > * mpIndices
std::set< unsigned >
::const_iterator 
mIndicesIterator
AbstractMeshReadermpReader
std::vector< doublemLastDataRead

Friends

class boost::iterator_core_access

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
class AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator

An iterator class for node data.

Todo:
#1930. We could roll most iterator functionality into a base class here

Definition at line 337 of file AbstractMeshReader.hpp.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::NodeIterator ( ) [inline]

Default constructor for an iterator that doesn't point to anything.

Definition at line 344 of file AbstractMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::NodeIterator ( unsigned  index,
AbstractMeshReader pReader 
) [inline, explicit]

Constructor for pointing to a specific item.

Note that, in the case of an ASCII mesh file, this will actually start wherever the file pointer currently is. The user is responsible for resetting the reader prior to creating an iterator.

Parameters:
indexthe index of the item to point at
pReaderthe mesh reader to iterate over

Definition at line 361 of file AbstractMeshReader.hpp.

References AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::CacheData(), and AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::mIndex.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::NodeIterator ( const std::set< unsigned > &  rIndices,
AbstractMeshReader pReader 
)

Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::CacheData ( unsigned  index,
bool  firstRead = false 
) [private]

Read the pointed-at item data (if we're pointing at anything) and cache it within the iterator, for use in dereference.

Parameters:
indexthe item to read
firstReadSet to true in the constructor. This ensures that the line 0 is always read

Definition at line 317 of file AbstractMeshReader.cpp.

References AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().

Referenced by AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::NodeIterator().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const std::vector<double>& AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::dereference ( ) const [inline, private]

Dereference this iterator to get the data for the item pointed at.

Note that the returned reference is only valid for as long as this iterator is pointing at the item.

Definition at line 420 of file AbstractMeshReader.hpp.

References AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::mLastDataRead, and AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::mpReader.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::equal ( const NodeIterator rOther) const [inline, private]

Test whether two iterators point at the same item.

Parameters:
rOtherthe other iterator

Definition at line 409 of file AbstractMeshReader.hpp.

References AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::mIndex.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::GetIndex ( ) const [inline]

Get the index of the item pointed at.

Definition at line 383 of file AbstractMeshReader.hpp.

References AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::mIndex.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::increment ( ) [private]

Increment the iterator to point at the next item in the file.

Definition at line 290 of file AbstractMeshReader.cpp.


Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::set<unsigned>::const_iterator AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::mIndicesIterator [private]

Iterator over the indices in that subset.

Definition at line 435 of file AbstractMeshReader.hpp.

Referenced by AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::NodeIterator().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<double> AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::mLastDataRead [private]

Data for the last item read.

Definition at line 441 of file AbstractMeshReader.hpp.

Referenced by AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::dereference().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const std::set<unsigned>* AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::mpIndices [private]

The set which we're iterating over, if we are iterating over a subset of the items.

Definition at line 432 of file AbstractMeshReader.hpp.

Referenced by AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::NodeIterator().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractMeshReader* AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::mpReader [private]

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