00001 #ifndef nquads_hh 00002 #define nquads_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 class NQuads : public Mesh2{ 00012 00013 public: 00014 NQuads(); 00015 00018 NQuads(uint N); 00019 00020 NQuads(Array<uint> attrib, uint N); 00021 00022 virtual ~NQuads(); 00023 00024 inline uint ncell() const { return cell_.size(); } 00025 inline Scan2* scan() { 00026 return new PStlVectorScan<Cell2>(cell_.begin(), cell_.end()); 00027 } 00028 00029 virtual std::ostream& info(std::ostream& os) const; 00030 00031 private: 00032 void construct_(const Array<uint>& attrib, uint N); 00033 00034 00035 Sequence<Vertex*> vtx_; 00036 Sequence<Edge*> edg_; 00037 Sequence<Quad*> quad_; 00038 Sequence<Cell2*> cell_; 00039 }; 00040 00041 00042 } 00043 #endif