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_4_AXIS_
00025 #define _PO_GROUP_4_AXIS_
00026
00027 #include <Inventor/fields/SoSFEnum.h>
00028 #include <Inventor/fields/SoSFVec2f.h>
00029 #include <Inventor/fields/SoSFString.h>
00030
00031 #include <MeshViz/graph/PoBaseAxis.h>
00032
00033 class PoCartesianAxis ;
00034
00065 class PoGroup4Axis : public PoBaseAxis {
00066
00067 SO_KIT_HEADER(PoGroup4Axis) ;
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
00075
00076 public:
00077
00081 enum AxisType {
00085 LINEAR,
00089 LOGARITHMIC
00090 } ;
00091
00092
00093
00094
00095
00103 SoSFVec2f start ;
00104
00108 SoSFVec2f end ;
00109
00118 SoSFVec2f gradStart;
00119
00128 SoSFVec2f gradEnd;
00129
00133 SoSFString xTitle ;
00134
00138 SoSFString yTitle ;
00139
00140
00141
00142
00143
00147 PoGroup4Axis()
00148 { init(SbVec2f(0., 0.), SbVec2f(1., 1.), LINEAR, LINEAR, NULL, NULL) ; }
00149
00153 PoGroup4Axis(const SbVec2f &_start, const SbVec2f &_end, AxisType _xAxisType,
00154 AxisType _yAxisType, const char *xTtle = NULL, const char *yTtle = NULL)
00155 { init(_start, _end, _xAxisType, _yAxisType, xTtle, yTtle) ; }
00156
00160 virtual void rebuild() ;
00161
00162
00163 private:
00164
00165 static void initClass() ;
00166 static void exitClass() ;
00167
00168 private:
00169
00170 virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
00171 virtual void setDefaultOnNonWritingFields() ;
00172
00173
00174 virtual ~PoGroup4Axis() ;
00175
00176 private:
00177
00178 void init(const SbVec2f &start, const SbVec2f &end, AxisType xAxisType,
00179 AxisType yAxisType, const char *xTtle = NULL, const char *yTtle = NULL) ;
00180
00181
00182 void initAxis(PoCartesianAxis *xDownAxis, PoCartesianAxis *xUpAxis,
00183 PoCartesianAxis *yLeftAxis, PoCartesianAxis *yRightAxis) ;
00184
00185 SoSFEnum xAxisType, yAxisType ;
00186
00187
00188 FieldSensorList fieldSensorList ;
00189
00190
00191 SoFieldList fieldList ;
00192
00193 } ;
00194
00195
00196 #endif
00197
00198