00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _MiVolumeMeshVertexHexahedronIjk_H
00024 #define _MiVolumeMeshVertexHexahedronIjk_H
00025
00026 #ifdef _WIN32
00027 # pragma warning( push )
00028 # pragma warning(disable:4250)
00029 #endif
00030
00031 #include <MeshVizXLM/mesh/MiMeshIjk.h>
00032 #include <MeshVizXLM/mesh/geometry/MiGeometryHexahedronIjk.h>
00033
00073 class MiVolumeMeshVertexHexahedronIjk : virtual public MiMeshIjk
00074 {
00075 public:
00079 virtual const MiGeometryHexahedronIjk& getGeometry() const = 0;
00080
00084 virtual const MiVolumeMeshVertexHexahedronIjk* getNewClone() const
00085 {
00086 throw MiAbstractMethodError("MiVolumeMeshVertexHexahedronIjk::getNewClone()");
00087 }
00088
00089 private:protected:
00093 virtual std::ostream& toStream(std::ostream& s) const
00094 {
00095 MbVec3d v[8];
00096 s << "#MiVolumeMeshVertexHexahedronIjk" << std::endl;
00097 s << getTopology() << std::endl;
00098 s << "#mesh geometry" << std::endl;
00099 for(size_t i=0; i<getTopology().getNumCellsI(); ++i)
00100 for(size_t j=0; j<getTopology().getNumCellsJ(); ++j)
00101 for(size_t k=0; k<getTopology().getNumCellsK(); ++k)
00102 {
00103 getGeometry().getCellCoords(i,j,k,v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7]);
00104 s << i << "," << j << "," << k << ": (" << v[0];
00105 for ( size_t n = 1; n < 8; ++n)
00106 s << "; " << v[n] << std::endl;
00107 s << ")" << std::endl;
00108 }
00109 return s;
00110 }
00111
00112 };
00113
00114 #ifdef _WIN32
00115 # pragma warning( pop )
00116 #endif
00117
00118 #endif
00119
00120
00121