37 #ifndef _ABSTRACTMESHREADER_HPP_
38 #define _ABSTRACTMESHREADER_HPP_
44 #include <boost/iterator/iterator_facade.hpp>
70 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
116 virtual void Reset()=0;
137 virtual std::vector<double>
GetNode(
unsigned index);
231 class ElementIterator :
public boost::iterator_facade<ElementIterator, const ElementData,
232 boost::single_pass_traversal_tag>
282 friend class boost::iterator_core_access;
291 void CacheData(
unsigned index,
bool firstRead =
false);
367 class NodeIterator :
public boost::iterator_facade<NodeIterator, const std::vector<double>,
369 boost::single_pass_traversal_tag>
419 friend class boost::iterator_core_access;
428 void CacheData(
unsigned index,
bool firstRead =
false);
500 #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 *pReader)
unsigned ContainingElement
bool equal(const NodeIterator &rOther) const
NodeIterator GetNodeIteratorEnd()
NodeIterator GetNodeIteratorBegin()
virtual unsigned GetOrderOfElements()
const std::set< unsigned > * mpIndices
virtual ElementData GetNextFaceData()=0
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()
const ElementData & dereference() const
const unsigned UNSIGNED_UNSET
virtual bool HasNclFile()
unsigned GetNumEdges() const
AbstractMeshReader * mpReader
virtual unsigned GetNumFaceAttributes() const
AbstractMeshReader * mpReader
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
ElementIterator(unsigned index, AbstractMeshReader *pReader)
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