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_REGULARCARTESIANGRID3D_
00025 #define _PO_REGULARCARTESIANGRID3D_
00026
00027 #include <MeshViz/nodes/PoMeshProperty.h>
00028 #include <MeshViz/fields/PoSFRegularCartesianGrid3D.h>
00029
00030 class PbMesh;
00031
00040 class PoRegularCartesianGrid3D : public PoMeshProperty {
00041
00042 SO_NODE_HEADER(PoRegularCartesianGrid3D) ;
00043
00044
00045 public:
00046
00047
00048
00052 PoRegularCartesianGrid3D() ;
00053
00057 PoSFRegularCartesianGrid3D mesh;
00058
00062 const PbMesh* getMesh() const { return (const PbMesh*)&mesh.getValue();};
00063
00068 void setGeometry(int num_x, int num_y, int num_z,
00069 float x_min, float y_min, float z_min,
00070 float x_max, float y_max, float z_max);
00071
00072
00073 private:
00074 virtual void doAction(SoAction *action) ;
00075
00076 private:
00077 static void initClass() ;
00078 static void exitClass() ;
00079
00080 private:
00081 const PoSFMesh* getSFieldMesh() const { return &mesh; }
00082 virtual ~PoRegularCartesianGrid3D() ;
00083
00084 private:
00085
00086 } ;
00087
00088
00089
00090
00091 inline void
00092 PoRegularCartesianGrid3D::setGeometry(int num_x, int num_y, int num_z,
00093 float x_min, float y_min, float z_min,
00094 float x_max, float y_max, float z_max)
00095 {
00096 mesh.setGeometry(num_x, num_y, num_z,
00097 x_min, y_min, z_min,
00098 x_max, y_max, z_max);
00099 }
00100
00101 #endif
00102
00103