00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _MiCylinderSliceExtractIjk_h
00024 #define _MiCylinderSliceExtractIjk_h
00025
00026 #include <MeshVizXLM/extractors/MiBaseExtractor.h>
00027 #include <MeshVizXLM/mesh/data/MiDataSetIjk.h>
00028 #include <MeshVizXLM/extrmesh/data/MeXDataSetI.h>
00029 #include <MeshVizXLM/extrmesh/MeXSurfaceMeshUnstructured.h>
00030
00031 class MiCellFilterIjk;
00032 class MiVolumeMeshRegular;
00033 class MiVolumeMeshCurvilinear;
00034 class MiVolumeMeshRectilinear;
00035 class MiVolumeMeshVertexHexahedronIjk;
00036 class MiTessellator;
00037
00065 class MESHIVIZ_API MiCylinderSliceExtractIjk : virtual public MiBaseExtractor
00066 {
00067 public:
00068 virtual ~MiCylinderSliceExtractIjk() {}
00069
00071
00074 static MiCylinderSliceExtractIjk* getNewInstance(const MiVolumeMeshRegular& mesh, bool parallel = true, MiTessellator* tessellator=NULL);
00075 static MiCylinderSliceExtractIjk* getNewInstance(const MiVolumeMeshCurvilinear& mesh, bool parallel = true, MiTessellator* tessellator=NULL);
00076 static MiCylinderSliceExtractIjk* getNewInstance(const MiVolumeMeshRectilinear& mesh, bool parallel = true, MiTessellator* tessellator=NULL);
00077 static MiCylinderSliceExtractIjk* getNewInstance(const MiVolumeMeshVertexHexahedronIjk& mesh, bool parallel = true, MiTessellator* tessellator=NULL);
00078
00080
00090 virtual const MeXSurfaceMeshUnstructured& extractSlice(const MbVec3<double>& center, double radius, const MbVec3<double>& direction, const MiCellFilterIjk* cellFilter=NULL) = 0;
00091
00095 virtual const MeXScalardSetI& extractScalarSet(const MiScalardSetIjk& inputSet) = 0;
00096
00100 virtual const MeXVec3dSetI& extractVec3Set(const MiVec3dSetIjk& inputSet) = 0;
00101
00105 virtual const MeXSurfaceMeshUnstructured& getExtract() const = 0;
00106
00107 };
00108
00109 #endif
00110
00111
00112