00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _MBSURFACEMESHREGULAR_H
00025 #define _MBSURFACEMESHREGULAR_H
00026
00027 #ifdef _WIN32
00028 # pragma warning( push )
00029 # pragma warning(disable:4250)
00030 # pragma warning(disable:4251)
00031 #endif
00032
00033 #include <MeshVizXLM/mesh/MiSurfaceMeshRegular.h>
00034 #include <mesh/MbMeshIj.h>
00035
00036 #include <geometry/MbGeometryRegular.h>
00037
00048 template <typename _CoordT=double, typename _ScalarT=double, typename _Vec3T=MbVec3d>
00049 class MbSurfaceMeshRegular : virtual public MiSurfaceMeshRegular, public MbMeshIj<_ScalarT,_Vec3T>
00050 {
00051 public:
00052
00054 MbSurfaceMeshRegular(size_t numCellI, size_t numCellJ,
00055 _CoordT xmin, _CoordT ymin, _CoordT zmin,
00056 _CoordT xmax, _CoordT ymax, _CoordT zmax)
00057 : MbMeshIj<_ScalarT,_Vec3T>(numCellI,numCellJ), m_geometry(xmin,ymin,zmin, xmax,ymax,zmax)
00058 {
00059 }
00060
00064 virtual const MiGeometryRegular& getGeometry() const
00065 {
00066 return m_geometry;
00067 }
00068
00069 private:
00070 virtual std::ostream& toStream(std::ostream& s) const;
00071
00072 MbGeometryRegular<_CoordT> m_geometry;
00073
00074 };
00075
00076
00077 template <typename _CoordT, typename _ScalarT, typename _Vec3T>
00078 inline std::ostream&
00079 MbSurfaceMeshRegular<_CoordT,_ScalarT,_Vec3T>::toStream(std::ostream& s) const
00080 {
00081 MiSurfaceMeshRegular::toStream(s);
00082 MbMeshIj<_ScalarT,_Vec3T>::toStream(s);
00083 return s;
00084 }
00085
00086 #ifdef _WIN32
00087 # pragma warning( pop )
00088 #endif
00089
00090 #endif
00091
00092
00093