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_GROUP_3_AXIS_3_
00025 #define _PO_GROUP_3_AXIS_3_
00026
00027 #include <Inventor/fields/SoSFEnum.h>
00028 #include <Inventor/fields/SoSFVec3f.h>
00029 #include <Inventor/fields/SoSFString.h>
00030
00031 #include <MeshViz/graph/PoBaseAxis.h>
00032
00033 class PoCartesianAxis ;
00034
00067 class PoGroup3Axis3 : public PoBaseAxis {
00068
00069 SO_KIT_HEADER(PoGroup3Axis3) ;
00070
00071
00072 SO_KIT_CATALOG_ENTRY_HEADER(xAxis) ;
00073 SO_KIT_CATALOG_ENTRY_HEADER(yAxis) ;
00074 SO_KIT_CATALOG_ENTRY_HEADER(zAxis) ;
00075
00076
00077 public:
00078
00082 enum AxisType {
00086 LINEAR,
00090 LOGARITHMIC
00091 } ;
00092
00093 enum AxisName {
00094 X_AXIS,
00095 Y_AXIS,
00096 Z_AXIS
00097 } ;
00098
00099
00100
00104 SoSFVec3f start ;
00105
00109 SoSFVec3f end ;
00110
00119 SoSFVec3f gradStart;
00120
00129 SoSFVec3f gradEnd;
00130
00134 SoSFEnum verticalAxisName ;
00135
00139 SoSFString xTitle ;
00140
00144 SoSFString yTitle ;
00145
00149 SoSFString zTitle ;
00150
00151
00152
00153
00154
00158 PoGroup3Axis3()
00159 { init(SbVec3f(0., 0., 0.), SbVec3f(1., 1., 1.), LINEAR, LINEAR, LINEAR,
00160 Z_AXIS, NULL, NULL, NULL) ; }
00161
00165 PoGroup3Axis3(const SbVec3f &_start, const SbVec3f &_end, AxisType _xAxisType,
00166 AxisType _yAxisType, AxisType _zAxisType, AxisName vertAxis = Z_AXIS,
00167 const char *xTtle = NULL, const char *yTtle = NULL,
00168 const char *zTtle = NULL)
00169 { init(_start, _end, _xAxisType, _yAxisType, _zAxisType, vertAxis, xTtle, yTtle, zTtle) ; }
00170
00174 virtual void rebuild() ;
00175
00176
00177 private:
00178
00179 static void initClass() ;
00180 static void exitClass() ;
00181
00182 private:
00183
00184 virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
00185 virtual void setDefaultOnNonWritingFields() ;
00186
00187
00188 virtual ~PoGroup3Axis3() ;
00189
00190 private:
00191
00192 void init(const SbVec3f &start, const SbVec3f &end, AxisType xAxisType,
00193 AxisType yAxisType, AxisType zAxisType, AxisName vertAxis = Z_AXIS,
00194 const char *xTtle = NULL, const char *yTtle = NULL,
00195 const char *zTtle = NULL) ;
00196
00197
00198 void initAxis(PoCartesianAxis *xaxis, PoCartesianAxis *yaxis,
00199 PoCartesianAxis *zaxis, AxisName vertAxis) ;
00200
00201 SoSFEnum xAxisType, yAxisType, zAxisType ;
00202
00203
00204 FieldSensorList fieldSensorList ;
00205
00206
00207 SoFieldList fieldList ;
00208
00209 } ;
00210
00211
00212 #endif
00213
00214