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_CIRCLE_ARC3_THREE_PTS_
00025 #define  _PO_CIRCLE_ARC3_THREE_PTS_
00026 
00027 #include <MeshViz/graph/PoCircleArc3.h>
00028 #include <Inventor/fields/SoSFVec3f.h>
00029 
00053 class  PoCircleArc3ThreePts : public PoCircleArc3 {
00054 
00055   SO_KIT_HEADER(PoCircleArc3ThreePts) ;
00056 
00057 
00058  public:
00059 
00060   
00061 
00065   SoSFVec3f startPoint ;
00066 
00070   SoSFVec3f middlePoint ;
00071 
00075   SoSFVec3f endPoint ;
00076 
00077 
00078 
00079   
00080 
00084   PoCircleArc3ThreePts()
00085     { init(TRUE, SbVec3f(1.0, 0.0, 0.0), SbVec3f(-1.0, 0.0, 0.0), SbVec3f(1.0, 0.0, 0.0)) ; }
00086 
00090   PoCircleArc3ThreePts(const SbVec3f &_startPoint, const SbVec3f &_middlePoint, 
00091                        const SbVec3f &_endPoint)
00092     { init(FALSE, _startPoint, _middlePoint, _endPoint) ; }
00093 
00097   virtual void rebuild() ;
00098 
00099   
00100  private:
00101   static void initClass() ;
00102     static void exitClass() ;
00103 
00104  private:
00105   
00106   
00107   virtual ~PoCircleArc3ThreePts() ;
00108   virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
00109   virtual void   setDefaultOnNonWritingFields() ;
00110 
00111  private:
00112   
00113   void init(SbBool isDefault, const SbVec3f &_startPoint, const SbVec3f &_middlePoint, 
00114             const SbVec3f &_endPoint) ;
00115 
00116   
00117   
00118   FieldSensorList fieldSensorList ;
00119   
00120   
00121   SoFieldList     fieldList ;
00122 } ;
00123 
00124 
00125 
00126 #endif 
00127 
00128