00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _MO_MESHELEVATEDPLANESLICE_
00024 #define _MO_MESHELEVATEDPLANESLICE_
00025
00026 #include <MeshVizXLM/MbVec3.h>
00027
00028 #include <MeshVizXLM/mapping/nodes/MoMeshPlaneSlice.h>
00029
00030 #include <Inventor/fields/SoSFPlane.h>
00031 #include <Inventor/fields/SoSFDouble.h>
00032
00033 #ifdef _WIN32
00034 #pragma warning(push)
00035 #pragma warning(disable:4251)
00036 #endif
00037
00038 class MiPlaneSliceExtractUnstructured;
00039 class MiPlaneSliceExtractUnstructuredIjk;
00040 class MiPlaneSliceExtractIjk;
00041 class MiVolumeMeshUnstructured;
00042 class MiVolumeMeshUnstructuredIjk;
00043 class MiVolumeMeshHexahedronIjk;
00044 class MiVolumeMeshRegular;
00045 class MiVolumeMeshRectilinear;
00046 class MiVolumeMeshCurvilinear;
00047 template <typename _T, typename _InputT>
00048 class MeSurfaceMeshUnstructured;
00049 class MiTopologyExplicitI;
00050 class MiGeometryI;
00051 class MeXtractedGeometryI;
00052 template <typename _T>
00053 class MiDataSetI;
00054 template <typename _T>
00055 class MeXtractedScalarSetI;
00056
00092 class MESHIVIZDM_API MoMeshElevatedPlaneSlice : public MoMeshPlaneSlice {
00093
00094 SO_NODE_HEADER( MoMeshElevatedPlaneSlice ) ;
00095
00096 public:
00097
00101 MoMeshElevatedPlaneSlice() ;
00102
00107 SoSFDouble scaleFactor;
00108
00118 SoSFInt32 elevationScalarSetId;
00119
00120
00121 private:
00122 static void initClass() ;
00123 static void exitClass() ;
00124
00125 private:
00126 virtual void doExtract( SoAction *action );
00127
00128 private:
00129 virtual ~MoMeshElevatedPlaneSlice() ;
00130
00131 template<typename _MeshInterface, typename _Extractor, typename _ScalarSet, typename _MoScalarSet, typename _CellFilter>
00132 void doExtract( SoState * state, const _MeshInterface* mesh, _Extractor** extractor );
00133
00134 template<typename _Extractor, typename _ScalarSet, typename _MoScalarSet, typename _CellFilter>
00135 void extract( SoState * state, _Extractor* extractor, const _CellFilter *cellFilter );
00136
00137 void computePlane(MbVec3d& normal, double& distance);
00138
00139
00140 MiPlaneSliceExtractUnstructured* m_planeSliceExtractU;
00141 MiPlaneSliceExtractUnstructuredIjk* m_planeSliceExtractUIjk;
00142 MiPlaneSliceExtractIjk* m_planeSliceExtractIjk;
00143 } ;
00144
00145 #ifdef _WIN32
00146 #pragma warning(pop)
00147 #endif
00148
00149 #endif
00150
00151
00152
00153