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