00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef VISUALIZETECPLOT_H
00014 #define VISUALIZETECPLOT_H
00015 #include "../fem/definitions.h"
00016 #include "MShell.h"
00017
00018 #include <ostream>
00019 #include <vector>
00020
00021
00022 namespace {
00023 struct NullType{};
00024 }
00025
00026 namespace shells {
00027 template <typename EXTR0=NullType, typename EXTR1=NullType, typename EXTR2=NullType,
00028 typename EXTR3=NullType>
00029 class VisualizeTecplot;
00030 class MShell;
00031 struct SVertexS;
00032 struct SELementS;
00033 }
00034
00035
00036 namespace shells {
00037
00038 template <typename EXTR0, typename EXTR1, typename EXTR2, typename EXTR3>
00039 class VisualizeTecplot {
00040 public:
00041 VisualizeTecplot(std::ostream& os, const MShell::ElementType& type)
00042 :_os(os), _type(type){}
00043
00044 void initialize(MShell * const m);
00045
00046 void operator()(const shells::SElementS * const vtx) const;
00047 void operator()(const shells::SVertexS * const vtx) const;
00048
00049 void finalize(const MShell * const m) const;
00050 MShell::ElementType elementType() const {return _type;}
00051
00052 private:
00053 typedef std::vector<shells::SVertexS*> _SVertexCont;
00054 typedef _SVertexCont::const_iterator _SVertexConstIt;
00055
00056 std::ostream& _os;
00057 const MShell::ElementType& _type;
00058 _SVertexCont _vertices;
00059 };
00060
00061 }
00062
00063
00064 #include "VisualizeTecplot.cc"
00065
00066 #endif