00001 /* Graphics for 2D hp FEM 00002 */ 00003 00004 #ifndef quadGraphics_hh 00005 #define quadGraphics_hh 00006 00007 #include "baseQuadGraphics.hh" 00008 00009 namespace hp2D { 00010 00011 // forward declaration 00012 class InfiniteQuad; 00013 00014 // ********************************************************** QuadGraphics ** 00015 00019 template<class F> 00020 class QuadGraphics : public BaseQuadGraphics<F> { 00021 public: 00022 QuadGraphics(); 00023 virtual void operator() 00024 (const concepts::Element<F>& elm, 00025 enum concepts::ElementGraphicsBase::graphicsType type, 00026 concepts::CellPostprocess<F>& post) const; 00027 protected: 00028 virtual std::ostream& info(std::ostream& os) const; 00029 }; 00030 00031 // ************************************************** InfiniteQuadGraphics ** 00032 00037 class InfiniteQuadGraphics : public concepts::ElementGraphics<Real> { 00038 public: 00039 InfiniteQuadGraphics() {} 00040 virtual void operator() 00041 (const concepts::Element<Real>& elm, 00042 enum concepts::ElementGraphicsBase::graphicsType type, 00043 concepts::CellPostprocess<Real>& post) const; 00044 protected: 00045 virtual std::ostream& info(std::ostream& os) const; 00046 private: 00047 template<class F> 00048 bool writeMatlab_ 00049 (const InfiniteQuad& quad, graphics::BaseDataCell<F>* stream) const; 00050 }; 00051 00052 } // namespace hp2D 00053 00054 #endif // quadGraphics_hh