00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _MBVOXELCELL_H
00024 #define _MBVOXELCELL_H
00025
00026 #ifdef _WIN32
00027 #pragma warning(push)
00028 #pragma warning(disable:4250)
00029 #endif
00030
00031 #include <MeshVizXLM/mesh/cell/MiVolumeCell.h>
00032 #include <cell/MbHexahedronCell.h>
00033 #include <MbMeshVizImpl.h>
00034
00072 class MbVoxelCell : virtual public MbHexahedronCell
00073 {
00074 public:
00075
00079 MbVoxelCell():MbHexahedronCell(0,0,0,0,0,0,0,0) {}
00080
00084 MbVoxelCell(size_t n0, size_t n1, size_t n2, size_t n3,
00085 size_t n4, size_t n5, size_t n6, size_t n7);
00086
00090 double getVolume(const MiGeometryI* meshGeometry) const;
00091
00092 virtual double getRelativeSize(const MiGeometryI* meshGeometry) const;
00093
00094 private:
00098 virtual std::ostream& toStream(std::ostream& s) const;
00099
00100 };
00101
00102
00103 inline std::ostream&
00104 MbVoxelCell::toStream(std::ostream& s) const
00105 {
00106 s << "MbVoxelCell (" <<
00107 m_nodeIds[0] << "," <<
00108 m_nodeIds[1] << "," <<
00109 m_nodeIds[2] << "," <<
00110 m_nodeIds[3] << "," <<
00111 m_nodeIds[4] << "," <<
00112 m_nodeIds[5] << "," <<
00113 m_nodeIds[6] << "," <<
00114 m_nodeIds[7] <<
00115 ")";
00116 return s;
00117 }
00118
00119 #ifdef _WIN32
00120 # pragma warning( pop )
00121 #endif
00122
00123 #endif
00124
00125