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_6_AXIS_3_
00025 #define _PO_GROUP_6_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
00065 class PoGroup6Axis3 : public PoBaseAxis {
00066
00067 SO_KIT_HEADER(PoGroup6Axis3) ;
00068
00069
00070 SO_KIT_CATALOG_ENTRY_HEADER(xUpAxis) ;
00071 SO_KIT_CATALOG_ENTRY_HEADER(xDownAxis) ;
00072 SO_KIT_CATALOG_ENTRY_HEADER(yLeftAxis) ;
00073 SO_KIT_CATALOG_ENTRY_HEADER(yRightAxis) ;
00074 SO_KIT_CATALOG_ENTRY_HEADER(zUpAxis) ;
00075 SO_KIT_CATALOG_ENTRY_HEADER(zDownAxis) ;
00076
00077
00078 public:
00079
00083 enum AxisType {
00087 LINEAR,
00091 LOGARITHMIC
00092 } ;
00093
00094
00095
00096
00097
00101 SoSFVec3f start ;
00102
00106 SoSFVec3f end ;
00107
00116 SoSFVec3f gradStart;
00117
00126 SoSFVec3f gradEnd;
00127
00131 SoSFString xTitle ;
00132
00136 SoSFString yTitle ;
00137
00141 SoSFString zTitle ;
00142
00143
00144
00145
00146
00150 PoGroup6Axis3()
00151 { init(SbVec3f(0., 0., 0.), SbVec3f(1., 1., 1.), LINEAR, LINEAR, LINEAR,
00152 NULL, NULL, NULL) ; }
00153
00157 PoGroup6Axis3(const SbVec3f &_start, const SbVec3f &_end, AxisType _xAxisType,
00158 AxisType _yAxisType, AxisType _zAxisType,
00159 const char *xTtle = NULL, const char *yTtle = NULL,
00160 const char *zTtle = NULL)
00161 { init(_start, _end, _xAxisType, _yAxisType, _zAxisType, xTtle, yTtle, zTtle) ; }
00162
00166 virtual void rebuild() ;
00167
00168
00169
00170
00171 private:
00172
00173 static void initClass() ;
00174 static void exitClass() ;
00175
00176 private:
00177
00178 virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
00179 virtual void setDefaultOnNonWritingFields() ;
00180
00181
00182 virtual ~PoGroup6Axis3() ;
00183
00184 private:
00185
00186 void init(const SbVec3f &start, const SbVec3f &end, AxisType xAxisType,
00187 AxisType yAxisType, AxisType zAxisType,
00188 const char *xTtle = NULL, const char *yTtle = NULL,
00189 const char *zTtle = NULL) ;
00190
00191
00192 void initAxis(PoCartesianAxis *xDownAxis, PoCartesianAxis *xUpAxis,
00193 PoCartesianAxis *yLeftAxis, PoCartesianAxis *yRightAxis,
00194 PoCartesianAxis *zDownAxis, PoCartesianAxis *zUpAxis) ;
00195
00196 SoSFEnum xAxisType, yAxisType, zAxisType ;
00197
00198
00199 FieldSensorList fieldSensorList ;
00200
00201
00202 SoFieldList fieldList ;
00203
00204 } ;
00205
00206
00207 #endif
00208
00209