00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _PO_MESHCROSSCONTOUR_
00025 #define _PO_MESHCROSSCONTOUR_
00026
00027 #include <MeshViz/3Ddata/PoMesh3D.h>
00028 #include <Inventor/fields/SoSFPlane.h>
00029 #include <Inventor/SbBasic.h>
00030
00031 class PbIndexedMesh3D;
00032 class PbTetrahedronMesh3D;
00033 class PbHexahedronMesh3D;
00034 class PbCartesianGrid3D;
00035 class PbParalCartesianGrid3D;
00036 class PbRegularCartesianGrid3D;
00037
00038 class SoMFInt32;
00039 class SoMFVec3f;
00040 class SoCoordinate3;
00041 class SoMaterial;
00042
00077 class PoMeshCrossContour : public PoMesh3D {
00078
00079 SO_KIT_HEADER(PoMeshCrossContour) ;
00080
00081
00082 SO_KIT_CATALOG_ENTRY_HEADER(groupCrossContour) ;
00083
00084
00085 public:
00086
00090 PoMeshCrossContour() ;
00091
00095 virtual void rebuild() ;
00096
00100 SoSFPlane plane;
00101 private:
00102 static void initClass() ;
00103 static void exitClass() ;
00104
00105 void indexedMeshCrossContour(PbIndexedMesh3D *mesh) ;
00106 void tetrahedronMeshCrossContour(PbTetrahedronMesh3D *mesh) ;
00107 void hexahedronMeshCrossContour(PbHexahedronMesh3D *mesh) ;
00108 void cartGrid3DCrossContour(PbCartesianGrid3D *mesh);
00109 void paralCartGrid3DCrossContour(PbParalCartesianGrid3D *mesh);
00110 void regularGrid3DCrossContour(PbRegularCartesianGrid3D *mesh);
00111
00112 private:
00113
00114 virtual ~PoMeshCrossContour() ;
00115 virtual void setDefaultOnNonWritingFields();
00116 virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
00117 virtual void addElementsAllCaches() ;
00118 virtual void preRebuild();
00119
00120
00121 private:
00122
00123 FieldSensorList m_fieldSensorList ;
00124
00125
00126 SoFieldList m_fieldList ;
00127
00128
00129 void tetrahedronMeshCrossContourInhColr(PbTetrahedronMesh3D *mesh, const float *v) ;
00130 void tetrahedronMeshCrossContourMapColr(PbTetrahedronMesh3D *mesh, const float *v) ;
00131
00132 void hexahedronMeshCrossContourInhColr(PbHexahedronMesh3D *mesh, const float *v) ;
00133 void hexahedronMeshCrossContourMapColr(PbHexahedronMesh3D *mesh, const float *v) ;
00134
00135 void cartGrid3DCrossContourInhColr(PbCartesianGrid3D *mesh, const float *v);
00136 void cartGrid3DCrossContourMapColr(PbCartesianGrid3D *mesh, const float *v);
00137
00138 void paralCartGrid3DCrossContourInhColr(PbParalCartesianGrid3D *mesh, const float *v);
00139 void paralCartGrid3DCrossContourMapColr(PbParalCartesianGrid3D *mesh, const float *v);
00140
00141 void regularGrid3DCrossContourInhColr(PbRegularCartesianGrid3D *mesh, const float *v);
00142 void regularGrid3DCrossContourMapColr(PbRegularCartesianGrid3D *mesh, const float *v);
00143
00144 void updateCrossContourBindings();
00145 void updateCrossContourTopology();
00146 void updateCrossContourColors();
00147 void updateUnStCrossContourShape(PbIndexedMesh3D *mesh);
00148 void updateGrid3DCrossContourShape(PbCartesianGrid3D *mesh);
00149
00150 } ;
00151
00152
00153
00154 #endif
00155
00156
00157
00158