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_ERROR_POINT_FIELD_
00025 #define _PO_ERROR_POINT_FIELD_
00026
00027 #include <MeshViz/graph/PoGraphMaster.h>
00028
00029 #include <Inventor/fields/SoSFEnum.h>
00030 #include <Inventor/fields/SoMFFloat.h>
00031 #include <Inventor/fields/SoMFVec2f.h>
00032
00057 class PoErrorPointField : public PoGraphMaster {
00058
00059 SO_KIT_HEADER(PoErrorPointField) ;
00060
00061
00062 SO_KIT_CATALOG_ENTRY_HEADER(shapeSep) ;
00063 SO_KIT_CATALOG_ENTRY_HEADER(shapeApp) ;
00064 SO_KIT_CATALOG_ENTRY_HEADER(shape) ;
00065
00066 SO_KIT_CATALOG_ENTRY_HEADER(skeletonSep) ;
00067 SO_KIT_CATALOG_ENTRY_HEADER(skeletonApp) ;
00068 SO_KIT_CATALOG_ENTRY_HEADER(skeleton) ;
00069
00070
00071 public:
00072
00076 enum ShapeType {
00080 NO_SHAPE,
00084 RECTANGLE_SHAPE,
00088 QUADRANGLE_SHAPE,
00092 ELLIPSE_SHAPE
00093 } ;
00094
00098 enum SkeletonType {
00102 NO_SKELETON,
00106 CROSS1_SKELETON,
00110 CROSS2_SKELETON,
00114 CROSS3_SKELETON,
00118 BAR_SKELETON
00119 } ;
00120
00121
00122
00123
00124
00128 SoMFVec2f point ;
00129
00134 SoMFFloat errorX ;
00135
00140 SoMFFloat errorY ;
00141
00146 SoSFEnum shapeType ;
00147
00152 SoSFEnum skeletonType ;
00153
00154
00155
00156
00157
00161 PoErrorPointField()
00162 { init(TRUE) ; }
00163
00168 PoErrorPointField(int numPoints, const SbVec2f *_point, const float *_errorX,
00169 const float *_errorY, ShapeType _shapeType = RECTANGLE_SHAPE,
00170 SkeletonType _skeletonType = CROSS1_SKELETON)
00171 { init(FALSE, numPoints, _point, _errorX, _errorY, _shapeType, _skeletonType) ; }
00172
00176 virtual void rebuild() ;
00177
00178
00179
00180
00181 private:
00182 static void initClass() ;
00183 static void exitClass() ;
00184
00185 private:
00186
00187
00188 virtual ~PoErrorPointField() ;
00189 virtual void setDefaultOnNonWritingFields() ;
00190 virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
00191
00192 private:
00193
00194 void init(SbBool isDefault, int numPoints=0, const SbVec2f *_point=NULL,
00195 const float *_errorX=NULL, const float *_errorY=NULL, ShapeType
00196 _shapeType = RECTANGLE_SHAPE, SkeletonType _skeletonType =
00197 CROSS1_SKELETON) ;
00198
00199
00200 FieldSensorList fieldSensorList ;
00201
00202
00203 SoFieldList fieldList ;
00204
00205 } ;
00206
00207
00208
00209 #endif
00210
00211