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 _MBMESHSTRUCTUREDIJK_H
00025 #define _MBMESHSTRUCTUREDIJK_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/MiMeshIjk.h>
00034 #include <mesh/MbMeshIjk.h>
00035 #include <topology/MbTopologyIjk.h>
00036
00047 template <typename _ScalarT=double, typename _Vec3T=MbVec3d, MiMeshIjk::StorageLayout _Layout = MiMeshIjk::LAYOUT_KJI>
00048 class MbMeshStructuredIjk : virtual public MiMeshIjk, public MbMeshIjk<_ScalarT,_Vec3T,_Layout>
00049 {
00050 public:
00052 MbMeshStructuredIjk(size_t numCellI, size_t numCellJ, size_t numCellK)
00053 : m_topology(numCellI,numCellJ,numCellK)
00054 {
00055 }
00056
00057 virtual const MiTopologyIjk& getTopology() const
00058 {
00059 return m_topology;
00060 }
00061
00065 void setDeadCell(size_t i, size_t j, size_t k, bool isDead=true)
00066 {
00067 m_topology.setDeadFlag(i,j,k,isDead);
00068 }
00069
00070 private:
00071 virtual std::ostream& toStream(std::ostream& s) const;
00072
00073 MbTopologyIjk<_Layout> m_topology;
00074 };
00075
00076
00077 template <typename _ScalarT, typename _Vec3T, MiMeshIjk::StorageLayout _Layout>
00078 inline std::ostream&
00079 MbMeshStructuredIjk<_ScalarT,_Vec3T,_Layout>::toStream(std::ostream& s) const
00080 {
00081 MbMeshIjk<_ScalarT,_Vec3T,_Layout>::toStream(s);
00082 return s;
00083 }
00084
00085
00086 #ifdef _WIN32
00087 # pragma warning( pop )
00088 #endif
00089
00090 #endif
00091
00092
00093