00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _MiFenceSliceExtractIjk_h
00024 #define _MiFenceSliceExtractIjk_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 #include <MeshVizXLM/mesh/MiVolumeMeshRegular.h>
00032 #include <MeshVizXLM/mesh/MiVolumeMeshRectilinear.h>
00033 #include <MeshVizXLM/mesh/MiVolumeMeshCurvilinear.h>
00034 #include <MeshVizXLM/mesh/MiVolumeMeshVertexHexahedronIjk.h>
00035 class MiCellFilterIjk;
00036 class MiTessellator;
00037
00053 class MESHIVIZ_API MiFenceSliceExtractIjk : virtual public MiBaseExtractor
00054 {
00055 public:
00056 virtual ~MiFenceSliceExtractIjk() {}
00057
00061 static MiFenceSliceExtractIjk* getNewInstance(const MiVolumeMeshRegular& mesh, bool parallel = true, MiTessellator* tessellator=NULL);
00062 static MiFenceSliceExtractIjk* getNewInstance(const MiVolumeMeshRectilinear& mesh, bool parallel = true, MiTessellator* tessellator=NULL);
00063 static MiFenceSliceExtractIjk* getNewInstance(const MiVolumeMeshCurvilinear& mesh, bool parallel = true, MiTessellator* tessellator=NULL);
00064 static MiFenceSliceExtractIjk* getNewInstance(const MiVolumeMeshVertexHexahedronIjk& mesh, bool parallel = true, MiTessellator* tessellator=NULL);
00065
00075 virtual const MeXSurfaceMeshUnstructured& extract(const MbVec3d& direction, const std::vector<MbVec3d>& polyline, const MiCellFilterIjk* cellFilter=NULL) = 0;
00076
00084 virtual const MeXScalardSetI& extractScalarSet(const MiScalardSetIjk& inputSet) = 0;
00085
00093 virtual const MeXVec3dSetI& extractVec3Set(const MiVec3dSetIjk& inputSet) = 0;
00094
00098 virtual const MeXSurfaceMeshUnstructured& getExtract() const = 0;
00099
00100 };
00101
00102 #endif
00103
00104
00105