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_MESHPROPERTY_
00025 #define _PO_MESHPROPERTY_
00026
00027 #include <Inventor/fields/SoSFVec3f.h>
00028 #include <Inventor/fields/SoSFEnum.h>
00029
00030 #include <MeshViz/nodes/PoNode.h>
00031
00032 class PbMesh;
00033 class PoSFMesh;
00034
00043 class PoMeshProperty : public PoNode {
00044
00045 SO_NODE_HEADER(PoMeshProperty) ;
00046
00047
00048 public:
00049
00054 enum DataBinding {
00056 PER_CELL,
00058 PER_NODE
00059 };
00060
00064 PoMeshProperty() ;
00065
00069 virtual const PbMesh* getMesh() const =0;
00070
00084 virtual void addValuesSet(int index, const float *val, const SbString &set_name = "");
00085
00100 virtual void addValuesSet(int index, const float *val,
00101 DataBinding binding, const SbString &set_name = "");
00102
00108 virtual void addStringsSet(int index, const SbString *val, const SbString &set_name="");
00109
00115 virtual void addVecsSet(int index, const SbVec3f *val, const SbString &set_name = "");
00116
00117
00118 private:
00119 static void initClass() ;
00120 static void exitClass() ;
00121
00122 private:
00123 virtual ~PoMeshProperty() ;
00124 virtual const PoSFMesh* getSFieldMesh() const = 0;
00125
00126 private:
00127
00128 } ;
00129
00130 #endif
00131
00132