00001 /* square made out of one or two hexahedron 00002 */ 00003 00004 #ifndef threequadsdym_hh 00005 #define threequadsdym_hh 00006 00007 #include "basics/typedefs.hh" 00008 #include "geometry/mesh.hh" 00009 #include "geometry/topology.hh" 00010 #include "geometry/cell2D.hh" 00011 #include "toolbox.hh" 00012 00013 namespace concepts { 00014 class ThreeQuadsdym : public Mesh2 { 00015 00016 public: 00017 ThreeQuadsdym(); 00018 00021 ThreeQuadsdym(Array<uint> attrib); 00022 00025 virtual ~ThreeQuadsdym(int n); 00026 00027 inline uint ncell() const { return cell_.size(); } 00028 inline Scan2* scan() { 00029 return new PStlVectorScan<Cell2>(cell_.begin(), cell_.end()); 00030 } 00031 00032 virtual std::ostream& info(std::ostream& os) const; 00033 private: 00034 00035 00036 void construct_(const Array<uint>& attrib); 00037 00038 00039 Sequence<Vertex*> vtx_; 00040 Sequence<Edge*> edg_; 00041 Sequence<Quad*> quad_; 00042 Sequence<Cell2*> cell_; 00043 }; 00044 00045 } // namespace concepts 00046 00047 #endif // square_hh