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

changed: parent linking uses FC helper functions, so that parent

fields can be read only.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/Carsten_PtrWork2/Tools/fcd2code/TemplateFieldContainerBase_inl.txt

    r795 r1015  
    4949\*****************************************************************************/ 
    5050 
     51// #include "OSGContainerPtrFuncs.h" 
     52 
    5153OSG_BEGIN_NAMESPACE 
    5254 
    53  
    5455//! access the type of the class 
    55 inline 
    56 OSG::FieldContainerType &@!Classname!@Base::getClassType(void) 
     56inline OSG::FieldContainerType & 
     57@!Classname!@Base::getClassType(void) 
    5758{ 
    5859    return _type; 
     
    6061 
    6162//! access the numerical type of the class 
    62 inline 
    63 OSG::UInt32 @!Classname!@Base::getClassTypeId(void) 
     63inline OSG::UInt32 
     64@!Classname!@Base::getClassTypeId(void) 
    6465{ 
    6566    return _type.getId(); 
    6667} 
    6768 
    68 inline 
    69 OSG::UInt16 @!Classname!@Base::getClassGroupId(void) 
     69inline OSG::UInt16 
     70@!Classname!@Base::getClassGroupId(void) 
    7071{ 
    7172    return _type.getGroupId(); 
    7273} 
    7374 
    74 @@if !isDecorator 
    75     @@if !isDecoratable 
    76 /*------------------------------ get -----------------------------------*/ 
    77  
     75@@if not @!isDecorator!@ 
     76    @@if not @!isDecoratable!@ 
    7877        @@BeginSFFieldLoop@@ 
    79             @@if !field.noAccess 
    80             @@if field.isPtrField 
    81  
    82 //! Get the value of the @!Classname!@::_@!field.VarName!@ field. 
    83 inline 
    84 @!field.Type!@Const @!Classname!@Base::get@!field.Name!@(void) const 
    85 
    86     return _@!field.VarName!@.getValue(); 
    87 
    88  
    89 //! Set the value of the @!Classname!@::_@!field.VarName!@ field. 
    90 inline 
    91             @@if field.PassFieldMask 
    92 void @!Classname!@Base::set@!field.Name!@(@!field.Type!@ConstArg value, 
    93                              const UInt16      uiStoredInFieldId) 
    94             @@else // field.PassFieldMask 
    95 void @!Classname!@Base::set@!field.Name!@(@!field.Type!@ConstArg value) 
    96             @@endif // field.PassFieldMask 
     78            @@if not @!field.accessNone!@ 
     79/*-------------------------------------------------------------------------*/ 
     80/* Field @!field.CARD!@@!field.Name:63!@ */ 
     81 
     82                @@if @!field.categoryData!@                                  // DATA SField functions 
     83inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ * 
     84@!Classname!@Base::edit@!field.CARD!@@!field.Name!@(void) 
    9785{ 
    9886    editSField(@!field.Name!@FieldMask); 
    9987 
    100             @@if field.linkMParent 
    101  
    102     if(_@!field.VarName!@.getValue() != NullFC) 
    103     { 
    104         _@!field.VarName!@.getValue()->subParent(this); 
    105     } 
    106  
    107             @@endif // field.linkMParent 
    108             @@if field.linkSParent 
    109     if(_@!field.VarName!@.getValue() != NullFC) 
    110     { 
    111         _@!field.VarName!@.getValue()->setParent(NullFC); 
    112     } 
    113  
    114             @@endif // field.linkSParent 
    115             @@if field.doRefCount 
    116     setRefd(_@!field.VarName!@.getValue(), value); 
    117             @@else // field.doRefCount 
    118     _@!field.VarName!@.setValue(value); 
    119             @@endif // field.doRefCount 
    120             @@if field.linkMParent 
    121  
    122     if(_@!field.VarName!@.getValue() != NullFC) 
    123     { 
    124         _@!field.VarName!@.getValue()->addParent(this, @!field.Name!@FieldMask); 
    125     } 
    126             @@endif // field.linkMParent 
    127             @@if field.linkSParent 
    128  
    129     if(_@!field.VarName!@.getValue() != NullFC) 
    130     { 
    131         _@!field.VarName!@.getValue()->setParent(this, @!field.Name!@FieldMask); 
    132     } 
    133             @@endif // field.linkSParent 
    134             @@if field.PassFieldMask 
    135     _@!field.VarName!@.getValue().setParentFieldPos(uiStoredInFieldId); 
    136             @@endif // field.PassFieldMask 
    137  
    138 
    139         @@else // field.isPtrField 
    140 //! Get the value of the @!Classname!@::_@!field.VarName!@ field. 
    141  
    142 inline 
    143 @!field.Type!@ &@!Classname!@Base::edit@!field.Name!@(void) 
     88    return &@!field.VarName!@; 
     89
     90 
     91inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ const * 
     92@!Classname!@Base::get@!field.CARD!@@!field.Name!@ (void) const 
     93
     94    return &@!field.VarName!@; 
     95
     96 
     97                    @@if @!CompatOneSix!@ 
     98#ifdef OSG_1_GET_COMPAT 
     99inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ * 
     100@!Classname!@Base::get@!field.CARD!@@!field.Name!@ (void) 
     101
     102    return this->edit@!field.CARD!@@!field.Name!@(); 
     103
     104#endif 
     105 
     106                    @@endif // CompatOneSix 
     107inline @!field.TypeNS!@@!field.Type!@ & 
     108@!Classname!@Base::edit@!field.Name!@(void) 
    144109{ 
    145110    editSField(@!field.Name!@FieldMask); 
    146111 
    147     return _@!field.VarName!@.getValue(); 
    148 
    149  
    150 //! Get the value of the @!Classname!@::_@!field.VarName!@ field. 
    151 inline 
    152 const @!field.Type!@ &@!Classname!@Base::get@!field.Name!@(void) const 
    153 
    154     return _@!field.VarName!@.getValue(); 
    155 
    156  
    157             @@if CompatOneSix 
     112    return @!field.VarName!@.getValue(); 
     113
     114 
     115inline @!field.TypeNS!@@!field.Type!@ const & 
     116@!Classname!@Base::get@!field.Name!@ (void) const 
     117
     118    return @!field.VarName!@.getValue(); 
     119
     120                    @@if @!CompatOneSix!@ 
    158121#ifdef OSG_1_GET_COMPAT 
    159 inline 
    160 @!field.Type:19!@ &@!Classname!@Base::get@!field.Name:15!@(void) 
    161 
    162     return this->edit@!field.Name:15!@(); 
    163 
    164 #endif 
    165             @@endif // CompatOneSix 
    166  
    167 //! Set the value of the @!Classname!@::_@!field.VarName!@ field. 
    168 inline 
    169 void @!Classname!@Base::set@!field.Name!@(const @!field.Type!@ &value) 
     122inline @!field.TypeNS!@@!field.Type!@ & 
     123@!Classname!@Base::get@!field.Name!@ (void) 
     124
     125    return this->edit@!field.Name!@(); 
     126
     127#endif 
     128 
     129                    @@endif // CompatOneSix 
     130inline void 
     131@!Classname!@Base::set@!field.Name!@(@!field.TypeNS!@@!field.Type!@ const &value) 
    170132{ 
    171133    editSField(@!field.Name!@FieldMask); 
    172134 
    173     _@!field.VarName!@.setValue(value); 
    174 
    175         @@endif // field.isPtrField 
    176         @@endif //!field.noAccess 
     135    @!field.VarName!@.setValue(value); 
     136
     137 
     138                @@endif // field.categoryData 
     139                @@if @!field.categoryPointer!@ or @!field.categoryWeakPointer!@ // POINTER SField functions 
     140inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ const * 
     141@!Classname!@Base::get@!field.CARD!@@!field.Name!@(void) const 
     142
     143    return &@!field.VarName!@; 
     144
     145 
     146inline @!field.TypeNS!@@!field.Type!@Const  
     147@!Classname!@Base::get@!field.Name!@(void) const 
     148
     149    return @!field.VarName!@.getValue(); 
     150
     151     
     152inline void 
     153@!Classname!@Base::set@!field.Name!@(@!field.TypeNS!@@!field.Type!@ConstArg value) 
     154
     155    editSField(@!field.Name!@FieldMask); 
     156 
     157    @!field.VarName!@.setValue(value); 
     158
     159 
     160                @@endif // @!field.categoryPointer!@ or @!field.categoryWeakPointer!@ 
     161                @@if @!field.categoryParentPointer!@                         // PARENTPOINTER SField functions 
     162inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ const * 
     163@!Classname!@Base::get@!field.CARD!@@!field.Name!@(void) const 
     164
     165    return &@!field.VarName!@; 
     166
     167 
     168inline @!field.InterfaceTypeNS!@@!field.InterfaceType!@Const  
     169@!Classname!@Base::get@!field.Name!@(void) const 
     170
     171    return @!field.VarName!@.getValue(); 
     172
     173 
     174                @@endif // field.categoryParentPointer                 
     175            @@endif // !field.accessNone 
    177176        @@EndSFFieldLoop@@ 
    178  
     177     
    179178        @@BeginMFFieldLoop@@ 
    180         @@if !field.noAccess 
    181 //! Get the value of the \a index element the @!Classname!@::_@!field.VarName!@ field. 
    182 inline 
    183             @@if field.isPtrField 
    184 @!field.Type!@Const @!Classname!@Base::get@!field.Name!@(const UInt32 index) const 
    185             @@else // field.isPtrField 
    186 const @!field.Type!@ &@!Classname!@Base::get@!field.Name!@(const UInt32 index) const 
    187             @@endif // field.isPtrField 
    188 
    189     return _@!field.VarName!@[index]; 
    190 
    191             @@if !field.isPtrField 
    192  
    193 inline 
    194 @!field.Type!@ &@!Classname!@Base::edit@!field.Name!@(const UInt32 index) 
    195 
    196     editMField(@!field.Name!@FieldMask, _@!field.VarName!@); 
    197  
    198     return _@!field.VarName!@[index]; 
    199 
    200  
    201 //! Get the @!Classname!@::_@!field.VarName!@ field. 
    202 inline 
    203 @!field.TypeNamespace!@@!field.CARD!@@!field.TypeCaps!@ &@!Classname!@Base::edit@!field.Name!@(void) 
    204 
    205     editMField(@!field.Name!@FieldMask, _@!field.VarName!@); 
    206  
    207     return _@!field.VarName!@; 
    208 
    209  
    210                 @@if CompatOneSix 
     179            @@if not @!field.accessNone!@ 
     180                @@if @!field.categoryData!@                                   // DATA MField functions 
     181/*-------------------------------------------------------------------------*/ 
     182/* Field @!field.CARD!@@!field.Name:50!@ (Data field) */ 
     183 
     184inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ * 
     185@!Classname!@Base::edit@!field.CARD!@@!field.Name!@(void) 
     186
     187    editMField(@!field.Name!@FieldMask, @!field.VarName!@); 
     188 
     189    return &@!field.VarName!@; 
     190
     191 
     192inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ const * 
     193@!Classname!@Base::get@!field.CARD!@@!field.Name!@ (void) const 
     194
     195    return &@!field.VarName!@; 
     196
     197 
     198                    @@if @!CompatOneSix!@ 
    211199#ifdef OSG_1_GET_COMPAT 
    212 inline 
    213 @!field.Type:19!@ &@!Classname!@Base::get@!field.Name:15!@(const UInt32 index) 
    214 
    215     return this->edit@!field.Name:15!@(index); 
    216 
    217  
    218 inline 
    219 @!field.CARD!@@!field.TypeCaps:17!@ &@!Classname!@Base::get@!field.Name:15!@(void) 
    220 
    221     return this->edit@!field.Name:15!@(); 
    222 
    223  
    224 #endif 
    225                 @@endif // CompatOneSix 
    226  
    227             @@endif // !field.isPtrField 
    228  
    229 //! Get the @!Classname!@::_@!field.VarName!@ field. 
    230 inline 
    231 const @!field.TypeNamespace!@@!field.CARD!@@!field.TypeCaps!@ &@!Classname!@Base::get@!field.Name!@(void) const 
    232 
    233     return _@!field.VarName!@; 
    234 
    235  
    236         @@endif //!field.noAccess 
     200inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ * 
     201@!Classname!@Base::get@!field.CARD!@@!field.Name!@ (void) 
     202
     203    return this->edit@!field.CARD!@@!field.Name!@(); 
     204
     205#endif 
     206 
     207                    @@endif // CompatOneSix 
     208inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ & 
     209@!Classname!@Base::edit@!field.Name!@(void) 
     210
     211    editMField(@!field.Name!@FieldMask, @!field.VarName!@); 
     212 
     213    return @!field.VarName!@; 
     214
     215 
     216inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ const & 
     217@!Classname!@Base::get@!field.Name!@ (void) const 
     218
     219    return @!field.VarName!@; 
     220
     221 
     222inline @!field.TypeNS!@@!field.Type!@ & 
     223@!Classname!@Base::edit@!field.Name!@(UInt32 const index) 
     224
     225    editMField(@!field.Name!@FieldMask, @!field.VarName!@); 
     226     
     227    return @!field.VarName!@[index]; 
     228
     229 
     230inline @!field.TypeNS!@@!field.Type!@ const & 
     231@!Classname!@Base::get@!field.Name!@(UInt32 const index) const 
     232
     233    return @!field.VarName!@[index]; 
     234
     235 
     236                    @@if @!CompatOneSix!@ 
     237#ifdef OSG_1_GET_COMPAT 
     238inline @!field.TypeNS!@@!field.Type!@ & 
     239@!Classname!@Base::get@!field.Name!@(UInt32 const index) 
     240
     241    return this->edit@!field.Name!@(index); 
     242
     243 
     244inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ & 
     245@!Classname!@Base::get@!field.Name!@(void) 
     246
     247    return this->edit@!field.Name!@(); 
     248
     249#endif 
     250 
     251                    @@endif // CompatOneSix 
     252                @@endif // field.categoryData 
     253                @@if @!field.categoryPointer!@ or @!field.categoryWeakPointer!@ // POINTER MField functions 
     254/*-------------------------------------------------------------------------*/ 
     255/* Field @!field.CARD!@@!field.Name:47!@ (Pointer field) */ 
     256 
     257inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ const * 
     258@!Classname!@Base::get@!field.CARD!@@!field.Name!@(void) const 
     259
     260    return &@!field.VarName!@; 
     261
     262 
     263inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ const & 
     264@!Classname!@Base::get@!field.Name!@  (void) const 
     265
     266    return @!field.VarName!@; 
     267
     268 
     269inline @!field.InterfaceTypeNS!@@!field.InterfaceType!@Const 
     270@!Classname!@Base::get@!field.Name!@(UInt32 const index) const 
     271
     272    return @!field.InterfaceTypeNS!@@!field.InterfaceType!@(@!field.VarName!@[index]); 
     273
     274 
     275            @@endif // @!field.categoryPointer!@ or @!field.categoryWeakPointer!@ 
     276            @@if @!field.categoryParentPointer!@                             // PARENTPOINTER MField functions 
     277/*-------------------------------------------------------------------------*/ 
     278/* Field @!field.CARD!@@!field.Name:40!@ (Parent Pointer field) */ 
     279 
     280inline @!field.FieldTypeNS!@@!field.CARD!@@!field.FieldTypeCaps!@ const * 
     281@!Classname!@Base::get@!field.CARD!@@!field.Name!@(void) const 
     282
     283    return &@!field.VarName!@; 
     284
     285 
     286inline @!field.InterfaceTypeNS!@@!field.CARD!@@!field.TypeCaps!@ const & 
     287@!Classname!@Base::get@!field.Name!@(void) const 
     288
     289    return @!field.VarName!@; 
     290
     291 
     292inline @!field.InterfaceTypeNS!@@!field.InterfaceType!@Const 
     293@!Classname!@Base::get@!field.Name!@(UInt32 const index) const 
     294
     295    return @!field.VarName!@[index]; 
     296
     297 
     298                @@endif // field.categoryParentPointer                 
     299            @@endif // !field.accessNone 
    237300        @@EndMFFieldLoop@@ 
    238301    @@endif // !isDecoratable 
    239302@@else // !isDecorator 
    240  
    241 inline 
    242 const @!Parent!@PtrConst @!Classname!@Base::getDecoratee(void) const 
     303/*-------------------------------------------------------------------------*/ 
     304/* Field SFDecorator                                                       */ 
     305 
     306inline SF@!Parent!@InternalRefPtr const * 
     307@!Classname!@Base::getSFDecoratee(void) const 
     308
     309    return &_sfDecoratee; 
     310
     311 
     312inline @!Parent!@PtrConst 
     313@!Classname!@Base::getDecoratee(void) const 
    243314{ 
    244315    return _sfDecoratee.getValue(); 
    245316} 
    246  
    247 inline 
    248 void @!Classname!@Base::setDecoratee(const @!Parent!@Ptr &value) 
     317     
     318inline void 
     319@!Classname!@Base::setDecoratee(@!Parent!@PtrConstArg value) 
    249320{ 
    250321    editSField(DecorateeFieldMask); 
    251322 
    252     setRefd(_sfDecoratee.getValue(), value); 
    253 
     323//     setRefd(_sfDecoratee.getValue(), value); 
     324    _sfDecoratee.setValue(value); 
     325
     326 
    254327@@endif // !isDecorator 
    255328 
     
    263336{ 
    264337    Inherited::execSync(pFrom, whichField, oOffsets, syncMode, uiSyncInfo); 
    265 @@if isDecorator 
     338@@if @!isDecorator!@ 
    266339 
    267340    if(FieldBits::NoField != (DecorateeFieldMask & whichField)) 
     
    272345    @@BeginFieldLoop@@ 
    273346 
    274     @@if field.isSField 
     347    @@if @!field.isSField!@ 
    275348    if(FieldBits::NoField != (@!field.Name!@FieldMask & whichField)) 
    276         _@!field.VarName!@.syncWith(pFrom->_@!field.VarName!@); 
     349        @!field.VarName!@.syncWith(pFrom->@!field.VarName!@); 
    277350    @@else // field.isSField 
    278351    if(FieldBits::NoField != (@!field.Name!@FieldMask & whichField)) 
    279         _@!field.VarName!@.syncWith(pFrom->_@!field.VarName!@, 
     352        @!field.VarName!@.syncWith(pFrom->@!field.VarName!@, 
    280353                                syncMode, 
    281354                                uiSyncInfo, 
     
    288361 
    289362 
    290 inline 
    291 Char8 *@!Classname!@Base::getClassname(void) 
     363inline Char8 const * 
     364@!Classname!@Base::getClassname(void) 
    292365{ 
    293366    return "@!Classname!@"; 
    294367} 
    295 OSG_GEN_CONTAINERPTR(@!Classname!@); 
    296368 
    297369OSG_END_NAMESPACE