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_LABEL_
00025 #define _PO_LABEL_
00026
00027 #include <MeshViz/graph/PoChart.h>
00028
00029 #include <Inventor/fields/SoSFBitMask.h>
00030 #include <Inventor/fields/SoSFEnum.h>
00031 #include <Inventor/fields/SoMFVec3f.h>
00032 #include <Inventor/fields/SoSFFloat.h>
00033
00034 class SoCoordinate3 ;
00035
00088 class PoLabel : public PoChart {
00089
00090 SO_KIT_HEADER(PoLabel) ;
00091
00092
00093 SO_KIT_CATALOG_ENTRY_HEADER(label) ;
00094 SO_KIT_CATALOG_ENTRY_HEADER(labelLineSep) ;
00095 SO_KIT_CATALOG_ENTRY_HEADER(labelLineApp) ;
00096 SO_KIT_CATALOG_ENTRY_HEADER(labelLine) ;
00097
00098
00099 public:
00100
00104 enum ValueType {
00110 VALUE,
00111
00117 NAME
00118 } ;
00119
00120
00121
00125 enum Position {
00129 VALUE_POS,
00130
00137 MIDDLE_POS,
00138
00144 THRESHOLD_POS
00145
00146 } ;
00147
00148
00149
00153 enum Axis {
00155 X,
00156
00158 Y
00159 } ;
00160
00161
00162
00163
00164
00170 SoSFInt32 stringsIndex ;
00171
00177 SoSFEnum axis ;
00178
00190 SoSFBitMask valueType ;
00191
00206 SoSFEnum position ;
00207
00211 SoSFFloat threshold ;
00212
00218 SoMFVec3f offset ;
00219
00226 SoSFFloat fontSize ;
00227
00231 PoLabel() ;
00232
00233
00234
00235
00236 private:
00237 static void initClass() ;
00238 static void exitClass() ;
00239
00240 private:
00241 virtual ~PoLabel() ;
00242
00243
00244
00245 virtual void rebuild() ;
00246 virtual void addElementsAllCaches() ;
00247 virtual void preRebuild() ;
00248
00249
00250 virtual void setDefaultOnNonWritingFields() ;
00251 virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
00252
00253 private:
00254 void drawLabelLine(const SbBox2f &labelLimit, float labelDepth, const SbVec3f &origPos,
00255 SoCoordinate3 *labelLineCoords) ;
00256
00257 const SbString* retreiveValueName(float xValue, float yValue,
00258 int size, const float *x,
00259 const float *y, const SbString *valuesNames) const ;
00260
00261
00262 FieldSensorList fieldSensorList ;
00263
00264
00265 SoFieldList fieldList ;
00266 } ;
00267
00268
00269
00270 #endif
00271
00272