00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _MiClipLineExtractIj_h
00024 #define _MiClipLineExtractIj_h
00025
00026 #include <MeshVizXLM/extractors/MiBaseExtractor.h>
00027 #include <MeshVizXLM/mesh/data/MiDataSetIj.h>
00028 #include <MeshVizXLM/extrmesh/data/MeXDataSetI.h>
00029 #include <MeshVizXLM/extrmesh/MeXLineMeshUnstructured.h>
00030
00031 class MiCellFilterIj;
00032 class MiSurfaceMeshRegular;
00033 class MiSurfaceMeshCurvilinear;
00034 class MiSurfaceMeshRectilinear;
00035 class MiTessellator;
00036
00047 class MESHVIZXLM_EXTR_API MiClipLineExtractIj : virtual public MiBaseExtractor
00048 {
00049 public:
00050 virtual ~MiClipLineExtractIj() {}
00051
00053
00056 static MiClipLineExtractIj* getNewInstance(const MiSurfaceMeshRegular& mesh, bool parallel = true, MiTessellator* tessellator=NULL);
00057 static MiClipLineExtractIj* getNewInstance(const MiSurfaceMeshCurvilinear& mesh, bool parallel = true, MiTessellator* tessellator=NULL);
00058 static MiClipLineExtractIj* getNewInstance(const MiSurfaceMeshRectilinear& mesh, bool parallel = true, MiTessellator* tessellator=NULL);
00060
00069 virtual const MeXLineMeshUnstructured& extractLine(const MbVec3<double>& normal, double distance, const MiCellFilterIj* cellFilter=NULL) = 0;
00070
00083 virtual const MeXLineMeshUnstructured& extractLine( const MbVec3d& direction, const std::vector<MbVec3d>& polyline, const MiCellFilterIj* cellFilter = NULL ) = 0;
00084
00092 virtual const MeXScalardSetI& extractScalarSet(const MiScalardSetIj& inputSet) = 0;
00093
00101 virtual const MeXVec3dSetI& extractVec3Set(const MiVec3dSetIj& inputSet) = 0;
00102
00106 virtual const MeXLineMeshUnstructured& getExtract() const = 0;
00107
00108 };
00109
00110 #endif
00111
00112
00113