37#ifndef _ABSTRACTMESHREADER_HPP_
38#define _ABSTRACTMESHREADER_HPP_
44#include <boost/iterator/iterator_facade.hpp>
75template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
142 virtual std::vector<double>
GetNode(
unsigned index);
236 class ElementIterator :
public boost::iterator_facade<ElementIterator, const ElementData,
237 boost::single_pass_traversal_tag>
277 friend class boost::iterator_core_access;
286 void CacheData(
unsigned index,
bool firstRead =
false);
363 class NodeIterator :
public boost::iterator_facade<NodeIterator, const std::vector<double>,
364 boost::single_pass_traversal_tag>
404 friend class boost::iterator_core_access;
413 void CacheData(
unsigned index,
bool firstRead =
false);
const double DOUBLE_UNSET
const unsigned UNSIGNED_UNSET
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > * mpReader
ElementIterator(unsigned index, AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > *pReader)
bool equal(const ElementIterator &rOther) const
void CacheData(unsigned index, bool firstRead=false)
std::set< unsigned >::const_iterator mIndicesIterator
const std::set< unsigned > * mpIndices
const ElementData & dereference() const
unsigned GetIndex() const
ElementData mLastDataRead
std::vector< double > mLastDataRead
const std::set< unsigned > * mpIndices
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > * mpReader
std::set< unsigned >::const_iterator mIndicesIterator
unsigned GetIndex() const
NodeIterator(unsigned index, AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > *pReader)
const std::vector< double > & dereference() const
void CacheData(unsigned index, bool firstRead=false)
bool equal(const NodeIterator &rOther) const
ElementIterator GetElementIteratorBegin()
virtual unsigned GetNumCableElementAttributes() const
ElementData GetEdgeData(unsigned index)
ElementData GetNextEdgeData()
virtual unsigned GetNumElements() const =0
virtual std::vector< unsigned > GetContainingElementIndices(unsigned index)
virtual ElementData GetNextElementData()=0
virtual bool GetReadContainingElementOfBoundaryElement()
virtual unsigned GetOrderOfBoundaryElements()
virtual std::string GetMeshFileBaseName()
virtual unsigned GetNumFaces() const =0
NodeIterator GetNodeIteratorEnd()
virtual unsigned GetNumElementAttributes() const
virtual std::vector< double > GetNode(unsigned index)
virtual std::vector< double > GetNextNode()=0
virtual const std::vector< unsigned > & rGetNodePermutation()
virtual ElementData GetNextCableElementData()
unsigned GetNumEdges() const
virtual bool HasNclFile()
virtual unsigned GetNumCableElements() const
virtual std::vector< double > GetNodeAttributes()
virtual ElementData GetFaceData(unsigned index)
virtual unsigned GetNumFaceAttributes() const
virtual bool HasNodePermutation()
virtual bool IsFileFormatBinary()
virtual unsigned GetNumNodes() const =0
virtual ElementData GetNextFaceData()=0
NodeIterator GetNodeIteratorBegin()
virtual ElementData GetElementData(unsigned index)
ElementIterator GetElementIteratorEnd()
virtual unsigned GetOrderOfElements()
unsigned ContainingElement
std::vector< unsigned > NodeIndices