Chaste Commit::baa90ac2819b962188b7562f2326be23c47859a7
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:

Public Member Functions

 NodeIterator (unsigned index, AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > *pReader)
 
 NodeIterator (const std::set< unsigned > &rIndices, AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > *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
 
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > * mpReader
 
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 363 of file AbstractMeshReader.hpp.

Constructor & Destructor Documentation

◆ NodeIterator() [1/2]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::NodeIterator ( unsigned  index,
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > *  pReader 
)
inline

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 377 of file AbstractMeshReader.hpp.

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

◆ NodeIterator() [2/2]

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

Member Function Documentation

◆ CacheData()

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 344 of file AbstractMeshReader.cpp.

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

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

◆ dereference()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const std::vector< double > & AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::dereference ( ) const
inlineprivate

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

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

Definition at line 435 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.

◆ equal()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::equal ( const NodeIterator rOther) const
inlineprivate
Returns
true if two iterators point at the same item.
Parameters
rOtherthe other iterator

Definition at line 424 of file AbstractMeshReader.hpp.

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

◆ GetIndex()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator::GetIndex ( ) const
inline
Returns
the index of the item pointed at.

Definition at line 398 of file AbstractMeshReader.hpp.

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

◆ increment()

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 317 of file AbstractMeshReader.cpp.

Friends And Related Symbol Documentation

◆ boost::iterator_core_access

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
friend class boost::iterator_core_access
friend

Definition at line 404 of file AbstractMeshReader.hpp.

Member Data Documentation

◆ mIndex

◆ mIndicesIterator

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 450 of file AbstractMeshReader.hpp.

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

◆ mLastDataRead

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 456 of file AbstractMeshReader.hpp.

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

◆ mpIndices

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 447 of file AbstractMeshReader.hpp.

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

◆ mpReader

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

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