Show
Ignore:
Timestamp:
11/14/07 17:11:26 (1 year ago)
Author:
cneumann
Message:

changed: started to use new pointer fields
added: ReferenceCountPointer? template
removed: EditHandle? for parent pointer fields

NOTE: Does not compile yet.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/Carsten_PtrWork2/Source/Contrib/Manipulators/OSGManipulatorBase.h

    r864 r1016  
    9393class OSG_CONTRIBGUI_DLLMAPPING ManipulatorBase : public Transform 
    9494{ 
     95    /*==========================  PUBLIC  =================================*/ 
    9596  public: 
    96  
     97    /*---------------------------------------------------------------------*/ 
     98    /*! \name Public Types                                                 */ 
     99    /*! \{                                                                 */ 
     100     
    97101    typedef Transform Inherited; 
    98102    typedef Transform ParentContainer; 
     
    100104    typedef Inherited::TypeObject TypeObject; 
    101105    typedef TypeObject::InitPhase InitPhase; 
    102  
    103     OSG_GEN_INTERNALPTR(Manipulator); 
    104  
    105     /*==========================  PUBLIC  =================================*/ 
    106  
    107   public: 
     106        
     107    typedef SFNodeInternalPtr      TargetFieldType; 
     108    typedef SFNodeInternalPtr      ActiveSubHandleFieldType; 
     109    typedef SFPnt2f                LastMousePosFieldType; 
     110    typedef SFViewportInternalPtr  ViewportFieldType; 
     111    typedef SFBool                 ActiveFieldType; 
     112    typedef SFVec3f                LengthFieldType; 
     113    typedef SFNodeInternalPtr      HandleXNodeFieldType; 
     114    typedef SFNodeInternalPtr      HandleYNodeFieldType; 
     115    typedef SFNodeInternalPtr      HandleZNodeFieldType; 
     116    typedef SFNodeInternalPtr      TransXNodeFieldType; 
     117    typedef SFNodeInternalPtr      TransYNodeFieldType; 
     118    typedef SFNodeInternalPtr      TransZNodeFieldType; 
     119    typedef SFMaterialInternalPtr  MaterialXFieldType; 
     120    typedef SFMaterialInternalPtr  MaterialYFieldType; 
     121    typedef SFMaterialInternalPtr  MaterialZFieldType; 
     122    typedef SFNodeInternalPtr      AxisLinesNFieldType; 
     123     
     124    typedef Manipulator       *       ObjPtr; 
     125    typedef Manipulator const *       ObjConstPtr; 
     126    typedef Manipulator       * const ObjPtrConst; 
     127    typedef Manipulator const * const ObjConstPtrConst; 
     128 
     129    typedef WeakRefCountPtrBuilder<Manipulator>::Ptr ObjWeakRefPtr; 
     130    typedef MTRefCountPtrBuilder  <Manipulator>::Ptr ObjMTRefPtr; 
     131    typedef RefCountPtrBuilder    <Manipulator>::Ptr ObjRefPtr; 
     132    typedef ParentPtrBuilder      <Manipulator>::Ptr ObjParentPtr; 
     133     
     134    /*! \}                                                                 */ 
     135    /*---------------------------------------------------------------------*/ 
     136    /*! \name Constants                                                    */ 
     137    /*! \{                                                                 */ 
    108138 
    109139    enum 
     
    162192    static const OSG::BitVector NextFieldMask = 
    163193        (TypeTraits<BitVector>::One << NextFieldId); 
    164  
    165     /*---------------------------------------------------------------------*/ 
    166     /*! \name                    Class Get                                 */ 
     194         
     195    /*! \}                                                                 */ 
     196    /*---------------------------------------------------------------------*/ 
     197    /*! \name Class Get                                                    */ 
    167198    /*! \{                                                                 */ 
    168199 
     
    173204    /*! \}                                                                 */ 
    174205    /*---------------------------------------------------------------------*/ 
    175     /*! \name                FieldContainer Get                            */ 
    176     /*! \{                                                                 */ 
    177  
    178     virtual       FieldContainerType &getType         (void); 
    179     virtual const FieldContainerType &getType         (void) const; 
    180  
    181     virtual       UInt32              getContainerSize(void) const; 
    182  
    183     /*! \}                                                                 */ 
    184     /*---------------------------------------------------------------------*/ 
    185     /*! \name                    Field Get                                 */ 
    186     /*! \{                                                                 */ 
    187  
    188             const SFNodePtr           *getSFTarget          (void) const; 
    189             const SFNodePtr           *getSFActiveSubHandle (void) const; 
    190             const SFViewportPtr       *getSFViewport        (void) const; 
    191  
    192 #ifdef OSG_1_GET_COMPAT 
    193                   SFBool              *getSFActive          (void); 
    194 #endif 
    195                   SFBool              *editSFActive         (void); 
    196             const SFBool              *getSFActive          (void) const; 
    197  
    198 #ifdef OSG_1_GET_COMPAT 
    199                   SFVec3f             *getSFLength          (void); 
    200 #endif 
    201                   SFVec3f             *editSFLength         (void); 
    202             const SFVec3f             *getSFLength          (void) const; 
    203             const SFNodePtr           *getSFHandleXNode     (void) const; 
    204             const SFNodePtr           *getSFHandleYNode     (void) const; 
    205             const SFNodePtr           *getSFHandleZNode     (void) const; 
    206             const SFNodePtr           *getSFTransXNode      (void) const; 
    207             const SFNodePtr           *getSFTransYNode      (void) const; 
    208             const SFNodePtr           *getSFTransZNode      (void) const; 
    209             const SFMaterialPtr       *getSFMaterialX       (void) const; 
    210             const SFMaterialPtr       *getSFMaterialY       (void) const; 
    211             const SFMaterialPtr       *getSFMaterialZ       (void) const; 
    212             const SFNodePtr           *getSFAxisLinesN      (void) const; 
    213  
    214  
    215                   NodePtrConst getTarget         (void) const; 
    216  
    217                   NodePtrConst getActiveSubHandle(void) const; 
    218  
    219                   ViewportPtrConst getViewport       (void) const; 
    220  
    221 #ifdef OSG_1_GET_COMPAT 
    222                   bool                &getActive          (void); 
    223 #endif 
    224                   bool                &editActive         (void); 
    225             const bool                &getActive          (void) const; 
    226  
    227 #ifdef OSG_1_GET_COMPAT 
    228                   Vec3f               &getLength          (void); 
    229 #endif 
    230                   Vec3f               &editLength         (void); 
    231             const Vec3f               &getLength          (void) const; 
    232  
    233                   NodePtrConst getHandleXNode    (void) const; 
    234  
    235                   NodePtrConst getHandleYNode    (void) const; 
    236  
    237                   NodePtrConst getHandleZNode    (void) const; 
    238  
    239                   NodePtrConst getTransXNode     (void) const; 
    240  
    241                   NodePtrConst getTransYNode     (void) const; 
    242  
    243                   NodePtrConst getTransZNode     (void) const; 
    244  
    245                   MaterialPtrConst getMaterialX      (void) const; 
    246  
    247                   MaterialPtrConst getMaterialY      (void) const; 
    248  
    249                   MaterialPtrConst getMaterialZ      (void) const; 
    250  
    251                   NodePtrConst getAxisLinesN     (void) const; 
    252  
    253     /*! \}                                                                 */ 
    254     /*---------------------------------------------------------------------*/ 
    255     /*! \name                    Field Set                                 */ 
    256     /*! \{                                                                 */ 
    257  
    258             void setTarget         (NodePtrConstArg value); 
    259             void setActiveSubHandle(NodePtrConstArg value); 
    260             void setViewport       (ViewportPtrConstArg value); 
    261             void setActive         (const bool &value); 
    262             void setLength         (const Vec3f &value); 
    263             void setHandleXNode    (NodePtrConstArg value); 
    264             void setHandleYNode    (NodePtrConstArg value); 
    265             void setHandleZNode    (NodePtrConstArg value); 
    266             void setTransXNode     (NodePtrConstArg value); 
    267             void setTransYNode     (NodePtrConstArg value); 
    268             void setTransZNode     (NodePtrConstArg value); 
    269             void setMaterialX      (MaterialPtrConstArg value); 
    270             void setMaterialY      (MaterialPtrConstArg value); 
    271             void setMaterialZ      (MaterialPtrConstArg value); 
    272             void setAxisLinesN     (NodePtrConstArg value); 
    273  
    274     /*! \}                                                                 */ 
    275     /*---------------------------------------------------------------------*/ 
    276     /*! \name                Ptr Field Set                                 */ 
    277     /*! \{                                                                 */ 
    278  
    279     /*! \}                                                                 */ 
    280     /*---------------------------------------------------------------------*/ 
    281     /*! \name                Ptr MField Set                                */ 
    282     /*! \{                                                                 */ 
    283  
    284     /*! \}                                                                 */ 
    285     /*---------------------------------------------------------------------*/ 
    286     /*! \name                   Binary Access                              */ 
     206    /*! \name FieldContainer Get                                           */ 
     207    /*! \{                                                                 */ 
     208 
     209    virtual FieldContainerType       &getType         (void); 
     210    virtual FieldContainerType const &getType         (void) const; 
     211 
     212    virtual UInt32                    getContainerSize(void) const; 
     213 
     214    /*! \}                                                                 */ 
     215    /*---------------------------------------------------------------------*/ 
     216    /*! \name Field SFTarget                                               */ 
     217    /*! \{                                                                 */ 
     218     
     219            SFNodeInternalPtr       *editSFTarget(void); 
     220            SFNodeInternalPtr const *getSFTarget (void) const; 
     221#ifdef OSG_1_GET_COMPAT 
     222            SFNodeInternalPtr       *getSFTarget (void); 
     223#endif 
     224            SFNodeInternalPtr::reference       editTarget(void); 
     225            SFNodeInternalPtr::const_reference getTarget (void) const; 
     226#ifdef OSG_1_GET_COMPAT 
     227            SFNodeInternalPtr::reference       getTarget (void); 
     228#endif 
     229            void setTarget(SFNodeInternalPtr::ArgumentType value); 
     230     
     231    /*! \}                                                                 */ 
     232    /*---------------------------------------------------------------------*/ 
     233    /*! \name Field SFActiveSubHandle                                      */ 
     234    /*! \{                                                                 */ 
     235     
     236            SFNodeInternalPtr       *editSFActiveSubHandle(void); 
     237            SFNodeInternalPtr const *getSFActiveSubHandle (void) const; 
     238#ifdef OSG_1_GET_COMPAT 
     239            SFNodeInternalPtr       *getSFActiveSubHandle (void); 
     240#endif 
     241            SFNodeInternalPtr::reference       editActiveSubHandle(void); 
     242            SFNodeInternalPtr::const_reference getActiveSubHandle (void) const; 
     243#ifdef OSG_1_GET_COMPAT 
     244            SFNodeInternalPtr::reference       getActiveSubHandle (void); 
     245#endif 
     246            void setActiveSubHandle(SFNodeInternalPtr::ArgumentType value); 
     247     
     248    /*! \}                                                                 */ 
     249    /*---------------------------------------------------------------------*/ 
     250    /*! \name Field SFViewport                                             */ 
     251    /*! \{                                                                 */ 
     252     
     253            SFViewportInternalPtr       *editSFViewport(void); 
     254            SFViewportInternalPtr const *getSFViewport (void) const; 
     255#ifdef OSG_1_GET_COMPAT 
     256            SFViewportInternalPtr       *getSFViewport (void); 
     257#endif 
     258            SFViewportInternalPtr::reference       editViewport(void); 
     259            SFViewportInternalPtr::const_reference getViewport (void) const; 
     260#ifdef OSG_1_GET_COMPAT 
     261            SFViewportInternalPtr::reference       getViewport (void); 
     262#endif 
     263            void setViewport(SFViewportInternalPtr::ArgumentType value); 
     264     
     265    /*! \}                                                                 */ 
     266    /*---------------------------------------------------------------------*/ 
     267    /*! \name Field SFActive                                               */ 
     268    /*! \{                                                                 */ 
     269     
     270            SFBool             *editSFActive(void); 
     271            SFBool const       *getSFActive (void) const; 
     272#ifdef OSG_1_GET_COMPAT 
     273            SFBool             *getSFActive (void); 
     274#endif 
     275            SFBool::reference       editActive(void); 
     276            SFBool::const_reference getActive (void) const; 
     277#ifdef OSG_1_GET_COMPAT 
     278            SFBool::reference       getActive (void); 
     279#endif 
     280            void setActive(SFBool::ArgumentType value); 
     281     
     282    /*! \}                                                                 */ 
     283    /*---------------------------------------------------------------------*/ 
     284    /*! \name Field SFLength                                               */ 
     285    /*! \{                                                                 */ 
     286     
     287            SFVec3f             *editSFLength(void); 
     288            SFVec3f const       *getSFLength (void) const; 
     289#ifdef OSG_1_GET_COMPAT 
     290            SFVec3f             *getSFLength (void); 
     291#endif 
     292            SFVec3f::reference       editLength(void); 
     293            SFVec3f::const_reference getLength (void) const; 
     294#ifdef OSG_1_GET_COMPAT 
     295            SFVec3f::reference       getLength (void); 
     296#endif 
     297            void setLength(SFVec3f::ArgumentType value); 
     298     
     299    /*! \}                                                                 */ 
     300    /*---------------------------------------------------------------------*/ 
     301    /*! \name Field SFHandleXNode                                          */ 
     302    /*! \{                                                                 */ 
     303     
     304            SFNodeInternalPtr       *editSFHandleXNode(void); 
     305            SFNodeInternalPtr const *getSFHandleXNode (void) const; 
     306#ifdef OSG_1_GET_COMPAT 
     307            SFNodeInternalPtr       *getSFHandleXNode (void); 
     308#endif 
     309            SFNodeInternalPtr::reference       editHandleXNode(void); 
     310            SFNodeInternalPtr::const_reference getHandleXNode (void) const; 
     311#ifdef OSG_1_GET_COMPAT 
     312            SFNodeInternalPtr::reference       getHandleXNode (void); 
     313#endif 
     314            void setHandleXNode(SFNodeInternalPtr::ArgumentType value); 
     315     
     316    /*! \}                                                                 */ 
     317    /*---------------------------------------------------------------------*/ 
     318    /*! \name Field SFHandleYNode                                          */ 
     319    /*! \{                                                                 */ 
     320     
     321            SFNodeInternalPtr       *editSFHandleYNode(void); 
     322            SFNodeInternalPtr const *getSFHandleYNode (void) const; 
     323#ifdef OSG_1_GET_COMPAT 
     324            SFNodeInternalPtr       *getSFHandleYNode (void); 
     325#endif 
     326            SFNodeInternalPtr::reference       editHandleYNode(void); 
     327            SFNodeInternalPtr::const_reference getHandleYNode (void) const; 
     328#ifdef OSG_1_GET_COMPAT 
     329            SFNodeInternalPtr::reference       getHandleYNode (void); 
     330#endif 
     331            void setHandleYNode(SFNodeInternalPtr::ArgumentType value); 
     332     
     333    /*! \}                                                                 */ 
     334    /*---------------------------------------------------------------------*/ 
     335    /*! \name Field SFHandleZNode                                          */ 
     336    /*! \{                                                                 */ 
     337     
     338            SFNodeInternalPtr       *editSFHandleZNode(void); 
     339            SFNodeInternalPtr const *getSFHandleZNode (void) const; 
     340#ifdef OSG_1_GET_COMPAT 
     341            SFNodeInternalPtr       *getSFHandleZNode (void); 
     342#endif 
     343            SFNodeInternalPtr::reference       editHandleZNode(void); 
     344            SFNodeInternalPtr::const_reference getHandleZNode (void) const; 
     345#ifdef OSG_1_GET_COMPAT 
     346            SFNodeInternalPtr::reference       getHandleZNode (void); 
     347#endif 
     348            void setHandleZNode(SFNodeInternalPtr::ArgumentType value); 
     349     
     350    /*! \}                                                                 */ 
     351    /*---------------------------------------------------------------------*/ 
     352    /*! \name Field SFTransXNode                                           */ 
     353    /*! \{                                                                 */ 
     354     
     355            SFNodeInternalPtr       *editSFTransXNode(void); 
     356            SFNodeInternalPtr const *getSFTransXNode (void) const; 
     357#ifdef OSG_1_GET_COMPAT 
     358            SFNodeInternalPtr       *getSFTransXNode (void); 
     359#endif 
     360            SFNodeInternalPtr::reference       editTransXNode(void); 
     361            SFNodeInternalPtr::const_reference getTransXNode (void) const; 
     362#ifdef OSG_1_GET_COMPAT 
     363            SFNodeInternalPtr::reference       getTransXNode (void); 
     364#endif 
     365            void setTransXNode(SFNodeInternalPtr::ArgumentType value); 
     366     
     367    /*! \}                                                                 */ 
     368    /*---------------------------------------------------------------------*/ 
     369    /*! \name Field SFTransYNode                                           */ 
     370    /*! \{                                                                 */ 
     371     
     372            SFNodeInternalPtr       *editSFTransYNode(void); 
     373            SFNodeInternalPtr const *getSFTransYNode (void) const; 
     374#ifdef OSG_1_GET_COMPAT 
     375            SFNodeInternalPtr       *getSFTransYNode (void); 
     376#endif 
     377            SFNodeInternalPtr::reference       editTransYNode(void); 
     378            SFNodeInternalPtr::const_reference getTransYNode (void) const; 
     379#ifdef OSG_1_GET_COMPAT 
     380            SFNodeInternalPtr::reference       getTransYNode (void); 
     381#endif 
     382            void setTransYNode(SFNodeInternalPtr::ArgumentType value); 
     383     
     384    /*! \}                                                                 */ 
     385    /*---------------------------------------------------------------------*/ 
     386    /*! \name Field SFTransZNode                                           */ 
     387    /*! \{                                                                 */ 
     388     
     389            SFNodeInternalPtr       *editSFTransZNode(void); 
     390            SFNodeInternalPtr const *getSFTransZNode (void) const; 
     391#ifdef OSG_1_GET_COMPAT 
     392            SFNodeInternalPtr       *getSFTransZNode (void); 
     393#endif 
     394            SFNodeInternalPtr::reference       editTransZNode(void); 
     395            SFNodeInternalPtr::const_reference getTransZNode (void) const; 
     396#ifdef OSG_1_GET_COMPAT 
     397            SFNodeInternalPtr::reference       getTransZNode (void); 
     398#endif 
     399            void setTransZNode(SFNodeInternalPtr::ArgumentType value); 
     400     
     401    /*! \}                                                                 */ 
     402    /*---------------------------------------------------------------------*/ 
     403    /*! \name Field SFMaterialX                                            */ 
     404    /*! \{                                                                 */ 
     405     
     406            SFMaterialInternalPtr       *editSFMaterialX(void); 
     407            SFMaterialInternalPtr const *getSFMaterialX (void) const; 
     408#ifdef OSG_1_GET_COMPAT 
     409            SFMaterialInternalPtr       *getSFMaterialX (void); 
     410#endif 
     411            SFMaterialInternalPtr::reference       editMaterialX(void); 
     412            SFMaterialInternalPtr::const_reference getMaterialX (void) const; 
     413#ifdef OSG_1_GET_COMPAT 
     414            SFMaterialInternalPtr::reference       getMaterialX (void); 
     415#endif 
     416            void setMaterialX(SFMaterialInternalPtr::ArgumentType value); 
     417     
     418    /*! \}                                                                 */ 
     419    /*---------------------------------------------------------------------*/ 
     420    /*! \name Field SFMaterialY                                            */ 
     421    /*! \{                                                                 */ 
     422     
     423            SFMaterialInternalPtr       *editSFMaterialY(void); 
     424            SFMaterialInternalPtr const *getSFMaterialY (void) const; 
     425#ifdef OSG_1_GET_COMPAT 
     426            SFMaterialInternalPtr       *getSFMaterialY (void); 
     427#endif 
     428            SFMaterialInternalPtr::reference       editMaterialY(void); 
     429            SFMaterialInternalPtr::const_reference getMaterialY (void) const; 
     430#ifdef OSG_1_GET_COMPAT 
     431            SFMaterialInternalPtr::reference       getMaterialY (void); 
     432#endif 
     433            void setMaterialY(SFMaterialInternalPtr::ArgumentType value); 
     434     
     435    /*! \}                                                                 */ 
     436    /*---------------------------------------------------------------------*/ 
     437    /*! \name Field SFMaterialZ                                            */ 
     438    /*! \{                                                                 */ 
     439     
     440            SFMaterialInternalPtr       *editSFMaterialZ(void); 
     441            SFMaterialInternalPtr const *getSFMaterialZ (void) const; 
     442#ifdef OSG_1_GET_COMPAT 
     443            SFMaterialInternalPtr       *getSFMaterialZ (void); 
     444#endif 
     445            SFMaterialInternalPtr::reference       editMaterialZ(void); 
     446            SFMaterialInternalPtr::const_reference getMaterialZ (void) const; 
     447#ifdef OSG_1_GET_COMPAT 
     448            SFMaterialInternalPtr::reference       getMaterialZ (void); 
     449#endif 
     450            void setMaterialZ(SFMaterialInternalPtr::ArgumentType value); 
     451     
     452    /*! \}                                                                 */ 
     453    /*---------------------------------------------------------------------*/ 
     454    /*! \name Field SFAxisLinesN                                           */ 
     455    /*! \{                                                                 */ 
     456     
     457            SFNodeInternalPtr       *editSFAxisLinesN(void); 
     458            SFNodeInternalPtr const *getSFAxisLinesN (void) const; 
     459#ifdef OSG_1_GET_COMPAT 
     460            SFNodeInternalPtr       *getSFAxisLinesN (void); 
     461#endif 
     462            SFNodeInternalPtr::reference       editAxisLinesN(void); 
     463            SFNodeInternalPtr::const_reference getAxisLinesN (void) const; 
     464#ifdef OSG_1_GET_COMPAT 
     465            SFNodeInternalPtr::reference       getAxisLinesN (void); 
     466#endif 
     467            void setAxisLinesN(SFNodeInternalPtr::ArgumentType value); 
     468     
     469    /*! \}                                                                 */ 
     470     
     471    /*---------------------------------------------------------------------*/ 
     472    /*! \name Binary Access                                                */ 
    287473    /*! \{                                                                 */ 
    288474 
     
    293479                               ConstFieldMaskArg  whichField); 
    294480 
    295  
    296481    /*! \}                                                                 */ 
    297482    /*=========================  PROTECTED  ===============================*/ 
    298  
    299483  protected: 
    300484 
    301485    static TypeObject _type; 
    302486 
    303     static void   classDescInserter(TypeObject &oType); 
    304     static Char8 *getClassname     (void             ); 
    305  
    306     /*---------------------------------------------------------------------*/ 
    307     /*! \name                      Fields                                  */ 
    308     /*! \{                                                                 */ 
    309  
    310     SFNodePtr        _sfTarget; 
    311     SFNodePtr        _sfActiveSubHandle; 
     487    static void         classDescInserter(TypeObject &oType); 
     488    static Char8 const *getClassname     (void             ); 
     489 
     490    /*---------------------------------------------------------------------*/ 
     491    /*! \name Fields                                                       */ 
     492    /*! \{                                                                 */ 
     493 
     494    SFNodeInternalPtr _sfTarget; 
     495    SFNodeInternalPtr _sfActiveSubHandle; 
    312496    SFPnt2f           _sfLastMousePos; 
    313     SFViewportPtr    _sfViewport; 
     497    SFViewportInternalPtr _sfViewport; 
    314498    SFBool            _sfActive; 
    315499    SFVec3f           _sfLength; 
    316     SFNodePtr        _sfHandleXNode; 
    317     SFNodePtr        _sfHandleYNode; 
    318     SFNodePtr        _sfHandleZNode; 
    319     SFNodePtr        _sfTransXNode; 
    320     SFNodePtr        _sfTransYNode; 
    321     SFNodePtr        _sfTransZNode; 
    322     SFMaterialPtr    _sfMaterialX; 
    323     SFMaterialPtr    _sfMaterialY; 
    324     SFMaterialPtr    _sfMaterialZ; 
    325     SFNodePtr        _sfAxisLinesN; 
    326  
    327     /*! \}                                                                 */ 
    328     /*---------------------------------------------------------------------*/ 
    329     /*! \name                   Constructors                               */ 
     500    SFNodeInternalPtr _sfHandleXNode; 
     501    SFNodeInternalPtr _sfHandleYNode; 
     502    SFNodeInternalPtr _sfHandleZNode; 
     503    SFNodeInternalPtr _sfTransXNode; 
     504    SFNodeInternalPtr _sfTransYNode; 
     505    SFNodeInternalPtr _sfTransZNode; 
     506    SFMaterialInternalPtr _sfMaterialX; 
     507    SFMaterialInternalPtr _sfMaterialY; 
     508    SFMaterialInternalPtr _sfMaterialZ; 
     509    SFNodeInternalPtr _sfAxisLinesN; 
     510 
     511    /*! \}                                                                 */ 
     512    /*---------------------------------------------------------------------*/ 
     513    /*! \name Constructors                                                 */ 
    330514    /*! \{                                                                 */ 
    331515 
    332516    ManipulatorBase(void); 
    333     ManipulatorBase(const ManipulatorBase &source); 
    334  
    335     /*! \}                                                                 */ 
    336     /*---------------------------------------------------------------------*/ 
    337     /*! \name                   Destructors                                */ 
     517    ManipulatorBase(ManipulatorBase const &source); 
     518 
     519    /*! \}                                                                 */ 
     520    /*---------------------------------------------------------------------*/ 
     521    /*! \name Destructors                                                  */ 
    338522    /*! \{                                                                 */ 
    339523 
     
    342526    /*! \}                                                                 */ 
    343527    /*---------------------------------------------------------------------*/ 
    344     /*! \name                     onCreate                                */ 
    345     /*! \{                                                                 */ 
    346  
    347     void onCreate(const Manipulator *source = NULL); 
    348  
    349     /*! \}                                                                 */ 
    350     /*---------------------------------------------------------------------*/ 
    351     /*! \name                    Generic Field Access                      */ 
     528    /*! \name onCreate                                                     */ 
     529    /*! \{                                                                 */ 
     530 
     531    void onCreate(Manipulator const *source = NULL); 
     532 
     533    /*! \}                                                                 */ 
     534    /*---------------------------------------------------------------------*/ 
     535    /*! \name Generic Field Access                                         */ 
    352536    /*! \{                                                                 */ 
    353537 
     
    387571    /*! \}                                                                 */ 
    388572    /*---------------------------------------------------------------------*/ 
    389     /*! \name                    Field Get                                 */ 
    390     /*! \{                                                                 */ 
    391  
    392  
    393 #ifdef OSG_1_GET_COMPAT 
    394                   SFPnt2f             *getSFLastMousePos    (void); 
    395 #endif 
    396                   SFPnt2f             *editSFLastMousePos   (void); 
    397             const SFPnt2f             *getSFLastMousePos    (void) const; 
    398  
    399  
    400 #ifdef OSG_1_GET_COMPAT 
    401                   Pnt2f               &getLastMousePos    (void); 
    402 #endif 
    403                   Pnt2f               &editLastMousePos   (void); 
    404             const Pnt2f               &getLastMousePos    (void) const; 
    405  
    406     /*! \}                                                                 */ 
    407     /*---------------------------------------------------------------------*/ 
    408     /*! \name                    Field Set                                 */ 
    409     /*! \{                                                                 */ 
    410  
    411             void setLastMousePos   (const Pnt2f &value); 
    412  
    413     /*! \}                                                                 */ 
    414     /*---------------------------------------------------------------------*/ 
    415     /*! \name                Ptr MField Set                                */ 
    416     /*! \{                                                                 */ 
    417  
    418  
    419     /*! \}                                                                 */ 
    420     /*---------------------------------------------------------------------*/ 
    421     /*! \name                       Sync                                   */ 
     573    /*! \name Field SFLastMousePos                                         */ 
     574    /*! \{                                                                 */ 
     575     
     576            SFPnt2f             *editSFLastMousePos(void); 
     577            SFPnt2f const       *getSFLastMousePos (void) const; 
     578#ifdef OSG_1_GET_COMPAT 
     579            SFPnt2f             *getSFLastMousePos (void); 
     580#endif 
     581            SFPnt2f::reference       editLastMousePos(void); 
     582            SFPnt2f::const_reference getLastMousePos (void) const; 
     583#ifdef OSG_1_GET_COMPAT 
     584            SFPnt2f::reference       getLastMousePos (void); 
     585#endif 
     586            void setLastMousePos(SFPnt2f::ArgumentType value); 
     587     
     588    /*! \}                                                                 */ 
     589     
     590    /*! \}                                                                 */ 
     591    /*---------------------------------------------------------------------*/ 
     592    /*! \name Sync                                                         */ 
    422593    /*! \{                                                                 */ 
    423594 
    424595#ifdef OSG_MT_CPTR_ASPECT 
    425     virtual void execSyncV(      FieldContainer    &oFrom, 
    426                                  ConstFieldMaskArg  whichField, 
    427                                  AspectOffsetStore &oOffsets, 
    428                                  ConstFieldMaskArg  syncMode  , 
    429                            const UInt32             uiSyncInfo); 
    430  
    431             void execSync (      ManipulatorBase *pFrom, 
    432                                  ConstFieldMaskArg  whichField, 
    433                                  AspectOffsetStore &oOffsets, 
    434                                  ConstFieldMaskArg  syncMode  , 
    435                            const UInt32             uiSyncInfo); 
    436 #endif 
    437  
    438     /*! \}                                                                 */ 
    439     /*---------------------------------------------------------------------*/ 
    440     /*! \name                       Edit                                   */ 
    441     /*! \{                                                                 */ 
    442  
    443     /*! \}                                                                 */ 
    444     /*---------------------------------------------------------------------*/ 
    445     /*! \name                     Aspect Create                            */ 
    446     /*! \{                                                                 */ 
    447  
    448     /*! \}                                                                 */ 
    449     /*---------------------------------------------------------------------*/ 
    450     /*! \name                       Edit                                   */ 
    451     /*! \{                                                                 */ 
    452     /*! \}                                                                 */ 
    453     /*---------------------------------------------------------------------*/ 
    454     /*! \name                       Sync                                   */ 
     596    virtual void execSyncV(FieldContainer    &oFrom, 
     597                           ConstFieldMaskArg  whichField, 
     598                           AspectOffsetStore &oOffsets, 
     599                           ConstFieldMaskArg  syncMode, 
     600                           UInt32 const       uiSyncInfo); 
     601 
     602            void execSync (ManipulatorBase *pFrom, 
     603                           ConstFieldMaskArg  whichField, 
     604                           AspectOffsetStore &oOffsets, 
     605                           ConstFieldMaskArg  syncMode, 
     606                           UInt32 const       uiSyncInfo); 
     607#endif 
     608 
     609    /*! \}                                                                 */ 
     610    /*---------------------------------------------------------------------*/ 
     611    /*! \name Aspect Create                                                */ 
     612    /*! \{                                                                 */ 
     613     
     614    /*! \}                                                                 */ 
     615    /*---------------------------------------------------------------------*/ 
     616    /*! \name Sync                                                         */ 
    455617    /*! \{                                                                 */ 
    456618 
     
    459621    /*! \}                                                                 */ 
    460622    /*==========================  PRIVATE  ================================*/ 
    461  
    462623  private: 
    463624 
     
    466627}; 
    467628 
    468 typedef ManipulatorBase *ManipulatorBaseP
    469  
    470 /** Type specific RefPtr type for Manipulator. */ 
    471 typedef RefPtr<ManipulatorPtr> ManipulatorRefPtr; 
     629typedef ManipulatorBase::ObjRefPtr         ManipulatorRefPtr
     630typedef ManipulatorBase::ObjMTRefPtr       ManipulatorMTRefPtr; 
     631typedef ManipulatorBase::ObjWeakRefPtr     ManipulatorWeakRefPtr; 
     632typedef ManipulatorBase::ObjParentPtr      ManipulatorParentPtr; 
    472633 
    473634typedef boost::mpl::if_<