37 #ifndef _ABSTRACTMESHREADER_HPP_
38 #define _ABSTRACTMESHREADER_HPP_
44 #include <boost/iterator/iterator_facade.hpp>
75 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
121 virtual void Reset()=0;
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);
362 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);
485 #endif //_ABSTRACTMESHREADER_HPP_
ElementIterator GetElementIteratorBegin()
unsigned GetIndex() const
std::set< unsigned >::const_iterator mIndicesIterator
std::set< unsigned >::const_iterator mIndicesIterator
virtual ElementData GetNextElementData()=0
virtual ElementData GetElementData(unsigned index)
virtual ElementData GetFaceData(unsigned index)
virtual unsigned GetNumCableElementAttributes() const
NodeIterator(unsigned index, AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > *pReader)
unsigned ContainingElement
bool equal(const NodeIterator &rOther) const
NodeIterator GetNodeIteratorEnd()
NodeIterator GetNodeIteratorBegin()
virtual unsigned GetOrderOfElements()
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > * mpReader
const std::set< unsigned > * mpIndices
ElementIterator(unsigned index, AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > *pReader)
virtual ElementData GetNextFaceData()=0
const double DOUBLE_UNSET
std::vector< unsigned > NodeIndices
virtual bool HasNodePermutation()
ElementIterator GetElementIteratorEnd()
virtual ElementData GetNextCableElementData()
unsigned GetIndex() const
virtual std::vector< double > GetNode(unsigned index)
virtual unsigned GetNumElements() const =0
ElementData GetEdgeData(unsigned index)
ElementData GetNextEdgeData()
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > * mpReader
const ElementData & dereference() const
const unsigned UNSIGNED_UNSET
virtual bool HasNclFile()
unsigned GetNumEdges() const
virtual unsigned GetNumFaceAttributes() const
virtual unsigned GetNumElementAttributes() const
virtual bool GetReadContainingElementOfBoundaryElement()
virtual bool IsFileFormatBinary()
virtual unsigned GetOrderOfBoundaryElements()
virtual unsigned GetNumCableElements() const
void CacheData(unsigned index, bool firstRead=false)
virtual std::vector< unsigned > GetContainingElementIndices(unsigned index)
ElementData mLastDataRead
virtual std::string GetMeshFileBaseName()
virtual std::vector< double > GetNextNode()=0
void CacheData(unsigned index, bool firstRead=false)
const std::set< unsigned > * mpIndices
const std::vector< double > & dereference() const
virtual unsigned GetNumNodes() const =0
virtual std::vector< double > GetNodeAttributes()
virtual unsigned GetNumFaces() const =0
virtual const std::vector< unsigned > & rGetNodePermutation()
std::vector< double > mLastDataRead
bool equal(const ElementIterator &rOther) const