00001 #ifndef quadgrid2d_hh 00002 #define quadGrid2d_hh 00003 00004 #include "basics/typedefs.hh" 00005 #include "geometry/mesh.hh" 00006 #include "geometry/topology.hh" 00007 #include "geometry/cell2D.hh" 00008 #include "toolbox.hh" 00009 00010 namespace concepts{ 00011 00012 00020 class QuadGrid2D : public Mesh2{ 00021 00027 QuadGrid2D(); 00028 00035 QuadGrid2D(uint N); 00036 00037 00038 00045 virtual ~QuadGrid2D(); 00046 00047 inline uint ncell() const { return cell_.size(); } 00048 00049 inline Scan2* scan() { 00050 return new PStlVectorScan<Cell2>(cell_.begin(), cell_.end()); 00051 } 00052 00053 virtual std::ostream& info(std::ostream& os) const; 00054 00055 private: 00056 void construct_(const Array<uint>& attrib, uint N); 00057 00058 void lor(uint N); 00059 00060 Sequence<Vertex*> vtx_; 00061 Sequence<Edge*> edg_; 00062 Sequence<Quad*> quad_; 00063 Sequence<Cell2*> cell_; 00064 }; 00065 00066 00067 00068 00069 00070 } 00071 00072 }//namespace 00073 00074 #endif