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_MESHSIDES_
00025 #define _PO_MESHSIDES_
00026
00027 #include <Inventor/fields/SoSFEnum.h>
00028 #include <Inventor/fields/SoSFFloat.h>
00029
00030 #include <MeshViz/3Ddata/PoMesh2D.h>
00031
00032 class PbCartesianGrid2D;
00033 class PbParalCartesianGrid2D;
00034 class PbRegularCartesianGrid2D;
00035 class PbPolarGrid2D;
00036 class PbTriangleMesh2D;
00037 class PbQuadrangleMesh2D;
00038 class PbIndexedMesh2D;
00039
00072 class PoMeshSides : public PoMesh2D {
00073
00074 SO_KIT_HEADER(PoMeshSides) ;
00075
00076
00077 SO_KIT_CATALOG_ENTRY_HEADER(groupSides) ;
00078
00079
00080 public:
00081
00085 PoMeshSides() ;
00086
00090 virtual void rebuild() ;
00091
00095 enum ThresholdType {
00096 THRESHOLD_ZMIN,
00097 THRESHOLD_ZMAX,
00098 THRESHOLD_VALUE
00099 } ;
00100
00101
00102
00115 SoSFEnum thresholdType;
00116
00121 SoSFFloat thresholdValue;
00122
00123
00124 private:
00125 static void initClass() ;
00126 static void exitClass() ;
00127
00128 void regularCartGridSides(PbRegularCartesianGrid2D *mesh);
00129 void paralCartGridSides(PbParalCartesianGrid2D *mesh);
00130 void cartGridSides(PbCartesianGrid2D *mesh);
00131 void polarGridSides(PbPolarGrid2D *mesh);
00132 void triangleSides(PbTriangleMesh2D *mesh);
00133 void quadrangleSides(PbQuadrangleMesh2D *mesh);
00134 void indexedSides(PbIndexedMesh2D *mesh);
00135
00136 private:
00137
00138 virtual ~PoMeshSides() ;
00139 virtual void setDefaultOnNonWritingFields();
00140 virtual void addElementsAllCaches() ;
00141 virtual void preRebuild();
00142 virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
00143
00144
00145 private:
00146
00147 FieldSensorList m_fieldSensorList ;
00148
00149
00150 SoFieldList m_fieldList ;
00151
00152
00153
00154
00155 void regularCartGridSidesInhColr(PbRegularCartesianGrid2D *mesh, const float *z=0, float threshold_val=0) ;
00156 void regularCartGridSidesAvergColr(PbRegularCartesianGrid2D *mesh, const float *v, const float *z, float threshold_val=0);
00157 void regularCartGridSidesMapColr(PbRegularCartesianGrid2D *mesh, const float *v, const float *z, float threshold_val=0);
00158 void regularCartGridSidesContColr(PbRegularCartesianGrid2D *mesh, const float *v, const float *z, float threshold_val=0);
00159
00160 void paralCartGridSidesInhColr(PbParalCartesianGrid2D *mesh, const float *z=0, float threshold_val=0) ;
00161 void paralCartGridSidesAvergColr(PbParalCartesianGrid2D *mesh, const float *v, const float *z, float threshold_val=0);
00162 void paralCartGridSidesMapColr(PbParalCartesianGrid2D *mesh, const float *v, const float *z, float threshold_val=0);
00163 void paralCartGridSidesContColr(PbParalCartesianGrid2D *mesh, const float *v, const float *z, float threshold_val=0);
00164
00165 void cartGridSidesInhColr (PbCartesianGrid2D *mesh, const float **z=0, float threshold_val=0) ;
00166 void cartGridSidesMapColr (PbCartesianGrid2D *mesh, const float **v, const float **z=0, float threshold_val=0) ;
00167 void cartGridSidesAvergColr(PbCartesianGrid2D *mesh, const float **v, const float **z=0, float threshold_val=0) ;
00168 void cartGridSidesContColr (PbCartesianGrid2D *mesh, const float **v, const float **z=0, float threshold_val=0) ;
00169
00170 void polarGridSidesInhColr (PbPolarGrid2D *mesh, const float **z=0, float threshold_val=0);
00171 void polarGridSidesMapColr (PbPolarGrid2D *mesh, const float **v, const float **z=0, float threshold_val=0);
00172 void polarGridSidesAvergColr(PbPolarGrid2D *mesh, const float **v, const float **z=0, float threshold_val=0);
00173 void polarGridSidesContColr (PbPolarGrid2D *mesh, const float **v, const float **z=0, float threshold_val=0);
00174
00175 void triangleSidesInhColr (PbTriangleMesh2D *mesh, const float *z=0, float threshold_val=0);
00176 void triangleSidesMapColr (PbTriangleMesh2D *mesh, const float *v, const float *z, float threshold_val=0);
00177 void triangleSidesAvergColr (PbTriangleMesh2D *mesh, const float *v, const float *z, float threshold_val=0);
00178 void triangleSidesContColr (PbTriangleMesh2D *mesh, const float *v, const float *z, float threshold_val=0);
00179
00180 void quadrangleSidesInhColr (PbQuadrangleMesh2D *mesh, const float *z=0, float threshold_val=0);
00181 void quadrangleSidesMapColr (PbQuadrangleMesh2D *mesh, const float *v, const float *z, float threshold_val=0);
00182 void quadrangleSidesAvergColr (PbQuadrangleMesh2D *mesh, const float *v, const float *z, float threshold_val=0);
00183 void quadrangleSidesContColr (PbQuadrangleMesh2D *mesh, const float *v, const float *z, float threshold_val=0);
00184
00185 void indexedSidesInhColr (PbIndexedMesh2D *mesh, const float *z=0, float threshold_val=0);
00186 void indexedSidesMapColr (PbIndexedMesh2D *mesh, const float *v, const float *z, float threshold_val=0);
00187 void indexedSidesAvergColr (PbIndexedMesh2D *mesh, const float *v, const float *z, float threshold_val=0);
00188 void indexedSidesContColr (PbIndexedMesh2D *mesh, const float *v, const float *z, float threshold_val=0);
00189 } ;
00190
00191
00192
00193 #endif
00194
00195