ESyS-Particle  4.0.1
Mesh2DReader.h
00001 
00002 //                                                         //
00003 // Copyright (c) 2003-2011 by The University of Queensland //
00004 // Earth Systems Science Computational Centre (ESSCC)      //
00005 // http://www.uq.edu.au/esscc                              //
00006 //                                                         //
00007 // Primary Business: Brisbane, Queensland, Australia       //
00008 // Licensed under the Open Software License version 3.0    //
00009 // http://www.opensource.org/licenses/osl-3.0.php          //
00010 //                                                         //
00012 
00013 
00014 #ifndef __MESH_2D_READER_H
00015 #define __MESH_2D_READER_H
00016 
00017 //-- Project includes
00018 #include "Model/MeshData2D.h"
00019 #include "Parallel/IterativeReader.h"
00020 
00021 //-- STL includes --
00022 #include <string>
00023 using std::string;
00024 
00025 namespace esys
00026 {
00027   namespace lsm 
00028   {
00037     class Node2DReader : public IterativeReader<IStreamIterator<MeshNodeData2D> >
00038     {
00039     public:
00040       Node2DReader(std::istream&);
00041       virtual void initialise();
00042     };
00043 
00044 
00053     class Edge2DReader : public IterativeReader<IStreamIterator<MeshEdgeData2D> >
00054     {
00055     public:
00056       Edge2DReader(std::istream&);
00057       virtual void initialise();
00058     };
00059 
00067     class Mesh2DReader
00068     {
00069     private:
00070       class Impl;
00071       Impl *m_impl_ptr; // pointer to the implementation
00072 
00073     public:
00074       // types
00075       typedef Node2DReader::Iterator NodeIterator;
00076       typedef Edge2DReader::Iterator EdgeIterator;
00077 
00078       // functions
00079       Mesh2DReader(const string&);
00080       ~Mesh2DReader();
00081 
00082       NodeIterator &getNodeIterator();
00083       EdgeIterator &getEdgeIterator();
00084     };
00085   }; // end namespace lsm
00086 }; // end namespace esys
00087 
00088 
00089 #endif // __MESH_READER_H