root/branches/Carsten_PtrWork2/Tools/fcdProcess/FCBaseTemplate_h.h

Revision 485, 34.7 kB (checked in by vossg, 2 years ago)

changed : switched to boost mpl

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
Line 
1 /* This is a template file for fcdEdit.
2  * To create it from sample source,  cut'n'paste the source and apply the following
3  * substitutions:
4  * s|\|\\|g
5  * s|"|\"|g
6  * s|^|"|
7  * s|$|",|
8  */
9
10 char *FCBaseTemplate_h[]={
11 "/*---------------------------------------------------------------------------*\\",
12 " *                                OpenSG                                     *",
13 " *                                                                           *",
14 " *                                                                           *",
15 " *               Copyright (C) 2000-2006 by the OpenSG Forum                 *",
16 " *                                                                           *",
17 " *                            www.opensg.org                                 *",
18 " *                                                                           *",
19 " *   contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de          *",
20 " *                                                                           *",
21 "\\*---------------------------------------------------------------------------*/",
22 "/*---------------------------------------------------------------------------*\\",
23 " *                                License                                    *",
24 " *                                                                           *",
25 " * This library is free software; you can redistribute it and/or modify it   *",
26 " * under the terms of the GNU Library General Public License as published    *",
27 " * by the Free Software Foundation, version 2.                               *",
28 " *                                                                           *",
29 " * This library is distributed in the hope that it will be useful, but       *",
30 " * WITHOUT ANY WARRANTY; without even the implied warranty of                *",
31 " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *",
32 " * Library General Public License for more details.                          *",
33 " *                                                                           *",
34 " * You should have received a copy of the GNU Library General Public         *",
35 " * License along with this library; if not, write to the Free Software       *",
36 " * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                 *",
37 " *                                                                           *",
38 "\\*---------------------------------------------------------------------------*/",
39 "/*---------------------------------------------------------------------------*\\",
40 " *                                Changes                                    *",
41 " *                                                                           *",
42 " *                                                                           *",
43 " *                                                                           *",
44 " *                                                                           *",
45 " *                                                                           *",
46 " *                                                                           *",
47 "\\*---------------------------------------------------------------------------*/",
48 "",
49 "/*****************************************************************************\\",
50 " *****************************************************************************",
51 " **                                                                         **",
52 " **                  This file is automatically generated.                  **",
53 " **                                                                         **",
54 " **          Any changes made to this file WILL be lost when it is          **",
55 " **           regenerated, which can become necessary at any time.          **",
56 " **                                                                         **",
57 " **     Do not change this file, changes should be done in the derived      **",
58 " **     class @!Classname!@",
59 " **                                                                         **",
60 " *****************************************************************************",
61 "\\*****************************************************************************/",
62 "",
63 "",
64 "#ifndef _OSG@!CLASSNAME!@BASE_H_",
65 "#define _OSG@!CLASSNAME!@BASE_H_",
66 "#ifdef __sgi",
67 "#pragma once",
68 "#endif",
69 "",
70 "",
71 "#include \"@!HeaderPrefix!@OSGConfig.h\"",
72 "@@if Library",
73 "#include \"OSG@!Libname!@Def.h\"",
74 "@@endif",
75 "",
76 "#include \"@!HeaderPrefix!@OSGBaseTypes.h\"",
77 "",
78 "#include \"@!ParentHeaderPrefix!@OSG@!Parent!@.h\" // Parent",
79 "",
80 "@@if !Decorator",
81 "@@BeginFieldLoop@@",
82 "#include \"@!FieldtypeInclude!@\" // @!Fieldname!@ type",
83 "@@EndFieldLoop@@",
84 "@@else",
85 "#include \"OSG@!Parent!@Fields.h\" // Decoratee type",
86 "@@endif",
87 "",
88 "#include \"OSG@!Classname!@Fields.h\"",
89 "",
90 "OSG_BEGIN_NAMESPACE",
91 "",
92 "class @!Classname!@;",
93 "",
94 "//! \\brief @!Classname!@ Base Class.",
95 "",
96 "@@if Library",
97 "class OSG_@!LIBNAME!@_DLLMAPPING @!Classname!@Base : public @!Parent!@",
98 "@@else",
99 "class @!Classname!@Base : public @!Parent!@",
100 "@@endif",
101 "{",
102 "  public:",
103 "",
104 "    typedef @!Parent!@ Inherited;",
105 "    typedef @!Parent!@ ParentContainer;",
106 "",
107 "    typedef Inherited::TypeObject TypeObject;",
108 "    typedef TypeObject::InitPhase InitPhase;",
109 "",
110 "    typedef PointerFwdBuilder<@!Parent!@Ptr, ",
111 "                              @!Parent!@ConstPtr, ",
112 "                              @!Classname!@>::ObjPtr         ObjPtr;",
113 "    typedef PointerFwdBuilder<@!Parent!@Ptr, ",
114 "                              @!Parent!@ConstPtr, ",
115 "                              @!Classname!@>::ObjPtrConst    ObjPtrConst;",
116 "    typedef PointerFwdBuilder<@!Parent!@Ptr, ",
117 "                              @!Parent!@ConstPtr,",
118 "                              @!Classname!@>::ObjConstPtr    ObjConstPtr;",
119 "    typedef PointerFwdBuilder<@!Parent!@Ptr, ",
120 "                              @!Parent!@ConstPtr,",
121 "                              @!Classname!@>::ObjPtrArg      ObjPtrArg;",
122 "    typedef PointerFwdBuilder<@!Parent!@Ptr, ",
123 "                              @!Parent!@ConstPtr,",
124 "                              @!Classname!@>::ObjConstPtrArg ObjConstPtrArg;",
125 "    typedef PointerFwdBuilder<@!Parent!@Ptr, ",
126 "                              @!Parent!@ConstPtr,",
127 "                              @!Classname!@>::ObjPtrConstArg ObjPtrConstArg;",
128 "",
129 "    /*==========================  PUBLIC  =================================*/",
130 "",
131 "  public:",
132 "",
133 "@@if Decorator",
134 "    enum",
135 "    {",
136 "        DecorateeFieldId        = Inherited::NextFieldId,",
137 "        NextFieldId             = DecorateeFieldId          + 1",
138 "    };",
139 "",
140 "    static const OSG::BitVector DecorateeFieldMask = ",
141 "        (TypeTraits<BitVector>::One << DecorateeFieldId);",
142 "@@else",
143 "@@FieldIdsAndMasksDecl@@",
144 "@@endif",
145 "",
146 "",
147 "    /*---------------------------------------------------------------------*/",
148 "    /*! \\name                    Class Get                                 */",
149 "    /*! \\{                                                                 */",
150 "",
151 "    static FieldContainerType &getClassType   (void); ",
152 "    static UInt32              getClassTypeId (void); ",
153 "    static UInt16              getClassGroupId(void);",
154 "",
155 "    /*! \\}                                                                 */",
156 "    /*---------------------------------------------------------------------*/",
157 "    /*! \\name                FieldContainer Get                            */",
158 "    /*! \\{                                                                 */",
159 "",
160 "    virtual       FieldContainerType &getType         (void); ",
161 "    virtual const FieldContainerType &getType         (void) const; ",
162 "",
163 "    virtual       UInt32              getContainerSize(void) const;",
164 "",
165 "    /*! \\}                                                                 */",
166 "@@if hasPublicFields",
167 "    /*---------------------------------------------------------------------*/",
168 "    /*! \\name                    Field Get                                 */",
169 "    /*! \\{                                                                 */",
170 "",
171 "@@if decorator",
172 "    @!FieldMethodType!@ const SF@!Parent!@Ptr *getSFDecoratee(void) const;",
173 "@@endif",
174 "@@BeginFieldLoop@@",
175 "@@if isPublic",
176 "@@if isPtrField",
177 "    @!FieldMethodType!@ const @!CARDINALITY!@@!CapsFieldtypeClean:17!@ *get@!CARDINALITY!@@!Fieldname:15!@ (void) const;",
178 "@@else",
179 "",
180 "@@if CompatOneSix",
181 "#ifdef OSG_1_COMPAT",
182 "    @!FieldMethodType!@       @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean:17!@ *get@!CARDINALITY!@@!Fieldname:15!@(void);",
183 "#endif",
184 "@@endif",
185 "    @!FieldMethodType!@       @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean:17!@ *edit@!CARDINALITY!@@!Fieldname:15!@(void);",
186 "    @!FieldMethodType!@ const @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean:17!@ *get@!CARDINALITY!@@!Fieldname:15!@ (void) const;",
187 "@@endif",
188 "@@endif",
189 "@@EndFieldLoop@@",
190 "",
191 "@@if Decorator",
192 "    @!FieldMethodType!@       @!Parent!@PtrConst getDecoratee(void) const;",
193 "@@endif",
194 "@@BeginFieldLoop@@",
195 "@@if isPublic",
196 "@@if isSField",
197 "",
198 "@@if isPtrField",
199 "    @!FieldMethodType!@       @!Fieldtype:19!@Const get@!Fieldname:15!@(void) const;",
200 "@@else",
201 "@@if CompatOneSix",
202 "#ifdef OSG_1_COMPAT",
203 "    @!FieldMethodType!@       @!Fieldtype:19!@ &get@!Fieldname:15!@(void);",
204 "#endif",
205 "@@endif",
206 "    @!FieldMethodType!@       @!Fieldtype:19!@ &edit@!Fieldname:15!@(void);",
207 "    @!FieldMethodType!@ const @!Fieldtype:19!@ &get@!Fieldname:15!@ (void) const;",
208 "@@endif",
209 "@@else",
210 "",
211 "@@if isPtrField",
212 "    @!FieldMethodType!@       @!Fieldtype:19!@Const get@!Fieldname:15!@(const UInt32 index) const;",
213 "@@else",
214 "@@if CompatOneSix",
215 "#ifdef OSG_1_COMPAT",
216 "    @!FieldMethodType!@       @!Fieldtype:19!@ &get@!Fieldname:15!@(const UInt32 index);",
217 "    @!FieldMethodType!@       @!CARDINALITY!@@!CapsFieldtypeClean:17!@ &get@!Fieldname:15!@(void);",
218 "#endif",
219 "@@endif",
220 "    @!FieldMethodType!@       @!Fieldtype:19!@ &edit@!Fieldname:15!@(const UInt32 index);",
221 "    @!FieldMethodType!@ const @!Fieldtype:19!@ &get@!Fieldname:15!@ (const UInt32 index) const;",
222 "    @!FieldMethodType!@       @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean:17!@ &edit@!Fieldname:15!@(void);",
223 "@@endif",
224 "    @!FieldMethodType!@ const @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean:17!@ &get@!Fieldname:15!@(void) const;",
225 "@@endif",
226 "@@endif",
227 "@@EndFieldLoop@@",
228 "",
229 "    /*! \\}                                                                 */",
230 "    /*---------------------------------------------------------------------*/",
231 "    /*! \\name                    Field Set                                 */",
232 "    /*! \\{                                                                 */",
233 "",
234 "@@if decorator",
235 "    @!FieldMethodType!@ void setDecoratee      ( const @!Parent!@Ptr &value );",
236 "@@endif",
237 "@@BeginSFFieldLoop@@",
238 "@@if isPublic",
239 "@@if isPtrField",
240 "@@if passFieldMask",
241 "    @!FieldMethodType!@ void set@!Fieldname:15!@(      @!Fieldtype!@ConstArg value,",
242 "                    const UInt16        uiStoredInFieldId = InvalidParentEPos);",
243 "@@else",
244 "    @!FieldMethodType!@ void set@!Fieldname:15!@(@!Fieldtype!@ConstArg value);",
245 "@@endif",
246 "@@else",
247 "    @!FieldMethodType!@ void set@!Fieldname:15!@(const @!Fieldtype!@ &value);",
248 "@@endif",
249 "@@endif",
250 "@@EndSFFieldLoop@@",
251 "",
252 "    /*! \\}                                                                 */",
253 "@@if hasPtrFields"
254 "    /*---------------------------------------------------------------------*/",
255 "    /*! \\name                Ptr Field Set                                 */",
256 "    /*! \\{                                                                 */",
257 "",
258 "    virtual void pushToField     (      FieldContainerPtrConstArg pNewElement, ",
259 "                                  const UInt32                    uiFieldId  );",
260 "",
261 "    virtual void insertIntoMField(const UInt32                    uiIndex, ",
262 "                                        FieldContainerPtrConstArg pNewElement, ",
263 "                                  const UInt32                    uiFieldId  );",
264 "",
265 "    virtual void replaceInMField (const UInt32                    uiIndex,",
266 "                                        FieldContainerPtrConstArg pNewElement, ",
267 "                                  const UInt32                    uiFieldId  );",
268 "",
269 "    virtual void replaceInMField (      FieldContainerPtrConstArg pOldElement,",
270 "                                        FieldContainerPtrConstArg pNewElement, ",
271 "                                  const UInt32                    uiFieldId  );",
272 "",
273 "    virtual void removeFromMField(const UInt32                    uiIndex, ",
274 "                                  const UInt32                    uiFieldId  );",
275 "    ",
276 "    virtual void removeFromMField(      FieldContainerPtrConstArg pElement, ",
277 "                                  const UInt32                    uiFieldId  );",
278 "",
279 "    virtual void clearField      (const UInt32                    uiFieldId  );",
280 "",
281 "    /*! \\}                                                                 */",
282 "    /*---------------------------------------------------------------------*/",
283 "    /*! \\name                Ptr MField Set                                */",
284 "    /*! \\{                                                                 */",
285 "",
286 "@@BeginMFFieldLoop@@",
287 "@@if isPublic",
288 "@@if isPtrField",
289 "@@if writePushToField",
290 "    void @!pushToField!@           (@!Fieldtype!@ConstArg value   );",
291 "@@endif",
292 "@@if writeInsertIntoMField",
293 "    void @!insertIntoMField!@      (UInt32                uiIndex,",
294 "                                    @!Fieldtype!@ConstArg value   );",
295 "@@endif",
296 "@@if writeReplaceInMFieldIndex",
297 "    void @!replaceInMFieldIndex!@  (UInt32                uiIndex,",
298 "                                    @!Fieldtype!@ConstArg value   );",
299 "@@endif",
300 "@@if writeReplaceInMFieldObject",
301 "    void @!replaceInMFieldObject!@ (@!Fieldtype!@ConstArg pOldElem,",
302 "                                    @!Fieldtype!@ConstArg pNewElem);",
303 "@@endif",
304 "@@if writeRemoveFromMFieldIndex",
305 "    void @!removeFromMFieldIndex!@ (UInt32                uiIndex );",
306 "@@endif",
307 "@@if writeRemoveFromMFieldObject",
308 "    void @!removeFromMFieldObject!@(@!Fieldtype!@ConstArg value   );",
309 "@@endif",
310 "@@if writeClearField",
311 "    void @!clearField!@            (void                          );",
312 "@@endif",
313
314 "@@else"
315
316 "@@if writePushToField",
317 "    void @!pushToField!@           (const @!Fieldtype!@& value   );",
318 "@@endif",
319 "@@if writeInsertIntoMField",
320 "    void @!insertIntoMField!@      (UInt32                uiIndex,",
321 "                                    const @!Fieldtype!@& value   );",
322 "@@endif",
323 "@@if writeReplaceInMFieldIndex",
324 "    void @!replaceInMFieldIndex!@  (UInt32                uiIndex,",
325 "                                    const @!Fieldtype!@& value   );",
326 "@@endif",
327 "@@if writeReplaceInMFieldObject",
328 "    void @!replaceInMFieldObject!@ (const @!Fieldtype!@& pOldElem,",
329 "                                    const @!Fieldtype!@& pNewElem);",
330 "@@endif",
331 "@@if writeRemoveFromMFieldIndex",
332 "    void @!removeFromMFieldIndex!@ (UInt32                uiIndex );",
333 "@@endif",
334 "@@if writeRemoveFromMFieldObject",
335 "    void @!removeFromMFieldObject!@(const @!Fieldtype!@& value   );",
336 "@@endif",
337 "@@if writeClearField",
338 "    void @!clearField!@            (void                          );",
339 "@@endif",
340
341
342 "@@endif",
343  
344 "@@endif",
345 "",
346 "@@EndMFFieldLoop@@",
347 "@@endif",
348 "    /*! \\}                                                                 */",
349 "@@endif",
350 "    /*---------------------------------------------------------------------*/",
351 "    /*! \\name                   Binary Access                              */",
352 "    /*! \\{                                                                 */",
353 "",
354 "    virtual UInt32 getBinSize (ConstFieldMaskArg  whichField);",
355 "    virtual void   copyToBin  (BinaryDataHandler &pMem,",
356 "                               ConstFieldMaskArg  whichField);",
357 "    virtual void   copyFromBin(BinaryDataHandler &pMem,",
358 "                               ConstFieldMaskArg  whichField);",
359 "",
360 "",
361 "    /*! \\}                                                                 */",
362 "@@if !Abstract",
363 "    /*---------------------------------------------------------------------*/",
364 "    /*! \\name                   Construction                               */",
365 "    /*! \\{                                                                 */",
366 "",
367 "    static  @!Classname!@Ptr create     (void); ",
368 "    static  @!Classname!@Ptr createEmpty(void); ",
369 "",
370 "    /*! \\}                                                                 */",
371 "    /*---------------------------------------------------------------------*/",
372 "    /*! \\name                       Copy                                   */",
373 "    /*! \\{                                                                 */",
374 "",
375 "    virtual FieldContainerPtr shallowCopy(void) const; ",
376 "",
377 "    /*! \\}                                                                 */",
378 "@@endif",
379 "    /*=========================  PROTECTED  ===============================*/",
380 "",
381 "  protected:",
382 "",
383 "    static TypeObject _type;",
384 "",
385 "    static void   classDescInserter(TypeObject &oType);",
386 "    static Char8 *getClassname     (void             );",
387 "",
388 "@@if hasFields",
389 "    /*---------------------------------------------------------------------*/",
390 "    /*! \\name                      Fields                                  */",
391 "    /*! \\{                                                                 */",
392 "",
393 "@@if Decorator",
394 "    SF@!Parent!@Ptr _sfDecoratee;",
395 "@@else",
396 "@@BeginFieldLoop@@",
397 "@@if !isPrivate",
398 "    @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean:15!@ _@!fieldname!@;",
399 "@@endif",
400 "@@EndFieldLoop@@",
401 "@@endif",
402 "",
403 "    /*! \\}                                                                 */",
404 "@@endif",
405 "    /*---------------------------------------------------------------------*/",
406 "    /*! \\name                   Constructors                               */",
407 "    /*! \\{                                                                 */",
408 "",
409 "    @!Classname!@Base(void);",
410 "    @!Classname!@Base(const @!Classname!@Base &source);",
411 "",
412 "    /*! \\}                                                                 */",
413 "    /*---------------------------------------------------------------------*/",
414 "    /*! \\name                   Destructors                                */",
415 "    /*! \\{                                                                 */",
416 "",
417 "    virtual ~@!Classname!@Base(void); ",
418 "",
419 "    /*! \\}                                                                 */",
420 "    /*---------------------------------------------------------------------*/",
421 "    /*! \\name                     onCreate                                */",
422 "    /*! \\{                                                                 */",
423 "",
424 "@@if hasPtrFields",
425 "    void onCreate(const @!Classname!@ *source = NULL);",
426 "@@endif",
427 "",
428 "    /*! \\}                                                                 */",
429 "@@if hasProtectedFields",
430 "    /*---------------------------------------------------------------------*/",
431 "    /*! \\name                    Field Get                                 */",
432 "    /*! \\{                                                                 */",
433 "",
434 "@@BeginFieldLoop@@",
435 "@@if isProtected",
436 "@@if isPtrField",
437 "    @!FieldMethodType!@ const @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean:17!@ *get@!CARDINALITY!@@!Fieldname:15!@ (void) const;",
438 "@@else",
439 "",
440 "@@if CompatOneSix",
441 "#ifdef OSG_1_COMPAT",
442 "    @!FieldMethodType!@       @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean:17!@ *get@!CARDINALITY!@@!Fieldname:15!@(void);",
443 "#endif",
444 "@@endif",
445 "    @!FieldMethodType!@       @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean:17!@ *edit@!CARDINALITY!@@!Fieldname:15!@(void);",
446 "    @!FieldMethodType!@ const @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean:17!@ *get@!CARDINALITY!@@!Fieldname:15!@ (void) const;",
447 "@@endif",
448 "@@endif",
449 "@@EndFieldLoop@@",
450 "",
451 "@@BeginFieldLoop@@",
452 "@@if isProtected",
453 "@@if isSField",
454 "",
455 "@@if isPtrField",
456 "    @!FieldMethodType!@       @!Fieldtype:19!@Const get@!Fieldname:15!@(void) const;",
457 "@@else",
458 "@@if CompatOneSix",
459 "#ifdef OSG_1_COMPAT",
460 "    @!FieldMethodType!@       @!Fieldtype:19!@ &get@!Fieldname:15!@(void);",
461 "#endif",
462 "@@endif",
463 "    @!FieldMethodType!@       @!Fieldtype:19!@ &edit@!Fieldname:15!@(void);",
464 "    @!FieldMethodType!@ const @!Fieldtype:19!@ &get@!Fieldname:15!@(void) const;",
465 "@@endif",
466 "@@else",
467 "",
468 "@@if isPtrField",
469 "    @!FieldMethodType!@       @!Fieldtype:19!@Const get@!Fieldname:15!@(const UInt32 index) const;",
470 "@@else",
471 "@@if CompatOneSix",
472 "#ifdef OSG_1_COMPAT",
473 "    @!FieldMethodType!@       @!Fieldtype:19!@ &get@!Fieldname:15!@(const UInt32 index);",
474 "    @!FieldMethodType!@       @!CARDINALITY!@@!CapsFieldtypeClean:17!@ &get@!Fieldname:15!@(void);",
475 "#endif",
476 "@@endif",
477 "    @!FieldMethodType!@       @!Fieldtype:19!@ &edit@!Fieldname:15!@(const UInt32 index);",
478 "    @!FieldMethodType!@ const @!Fieldtype:19!@ &get@!Fieldname:15!@(const UInt32 index) const;",
479 "    @!FieldMethodType!@       @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean:17!@ &edit@!Fieldname:15!@(void);",
480 "@@endif",
481 "    @!FieldMethodType!@ const @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean:17!@ &get@!Fieldname:15!@(void) const;",
482 "@@endif",
483 "@@endif",
484 "@@EndFieldLoop@@",
485 "",
486 "    /*! \\}                                                                 */",
487 "    /*---------------------------------------------------------------------*/",
488 "    /*! \\name                    Field Set                                 */",
489 "    /*! \\{                                                                 */",
490 "",
491 "@@BeginSFFieldLoop@@",
492 "@@if isProtected",
493 "@@if isPtrField",
494 "    @!FieldMethodType!@ void set@!Fieldname:15!@(@!Fieldtype!@ConstArg value);",
495 "@@else",
496 "    @!FieldMethodType!@ void set@!Fieldname:15!@(const @!Fieldtype!@ &value);",
497 "@@endif",
498 "@@endif",
499 "@@EndSFFieldLoop@@",
500 "",
501 "    /*! \\}                                                                 */",
502 "    /*---------------------------------------------------------------------*/",
503 "    /*! \\name                Ptr MField Set                                */",
504 "    /*! \\{                                                                 */",
505 "",
506 "@@BeginMFFieldLoop@@",
507 "@@if isProtected",
508 "@@if isPtrField",
509 "@@if writePushToField",
510 "    void @!pushToField!@           (@!Fieldtype!@ConstArg value   );",
511 "@@endif",
512 "@@if writeInsertIntoMField",
513 "    void @!insertIntoMField!@      (UInt32                uiIndex,",
514 "                                    @!Fieldtype!@ConstArg value   );",
515 "@@endif",
516 "@@if writeReplaceInMFieldIndex",
517 "    void @!replaceInMFieldIndex!@  (UInt32                uiIndex,",
518 "                                    @!Fieldtype!@ConstArg value   );",
519 "@@endif",
520 "@@if writeReplaceInMFieldObject",
521 "    void @!replaceInMFieldObject!@ (@!Fieldtype!@ConstArg pOldElem,",
522 "                                    @!Fieldtype!@ConstArg pNewElem);",
523 "@@endif",
524 "@@if writeRemoveFromMFieldIndex",
525 "    void @!removeFromMFieldIndex!@ (UInt32                uiIndex );",
526 "@@endif",
527 "@@if writeRemoveFromMFieldObject",
528 "    void @!removeFromMFieldObject!@(@!Fieldtype!@ConstArg value   );",
529 "@@endif",
530 "@@if writeClearField",
531 "    void @!clearField!@            (void                          );",
532 "@@endif",
533
534 "@@else",
535
536 "@@if writePushToField",
537 "    void @!pushToField!@           (const @!Fieldtype!@& value   );",
538 "@@endif",
539 "@@if writeInsertIntoMField",
540 "    void @!insertIntoMField!@      (UInt32                uiIndex,",
541 "                                    const @!Fieldtype!@& value   );",
542 "@@endif",
543 "@@if writeReplaceInMFieldIndex",
544 "    void @!replaceInMFieldIndex!@  (UInt32                uiIndex,",
545 "                                    const @!Fieldtype!@& value   );",
546 "@@endif",
547 "@@if writeReplaceInMFieldObject",
548 "    void @!replaceInMFieldObject!@ (const @!Fieldtype!@& pOldElem,",
549 "                                    const @!Fieldtype!@& pNewElem);",
550 "@@endif",
551 "@@if writeRemoveFromMFieldIndex",
552 "    void @!removeFromMFieldIndex!@ (UInt32                uiIndex );",
553 "@@endif",
554 "@@if writeRemoveFromMFieldObject",
555 "    void @!removeFromMFieldObject!@(const @!Fieldtype!@& value   );",
556 "@@endif",
557 "@@if writeClearField",
558 "    void @!clearField!@            (void                          );",
559 "@@endif",
560
561
562 "@@endif",
563 "@@endif",
564 "",
565 "@@EndMFFieldLoop@@",
566 "",
567 "    /*! \\}                                                                 */",
568 "@@endif",
569 "    /*---------------------------------------------------------------------*/",
570 "    /*! \\name                       Sync                                   */",
571 "    /*! \\{                                                                 */",
572 "",
573 "#ifdef OSG_MT_FIELDCONTAINERPTR",
574 "    virtual void execSyncV(      FieldContainer    &oFrom,",
575 "                                 ConstFieldMaskArg  whichField,",
576 "                                 ConstFieldMaskArg  syncMode  ,",
577 "                           const UInt32             uiSyncInfo,",
578 "                                 UInt32             uiCopyOffset);",
579 "",
580 "            void execSync (      @!Classname!@Base *pFrom,",
581 "                                 ConstFieldMaskArg  whichField,",
582 "                                 ConstFieldMaskArg  syncMode  ,",
583 "                           const UInt32             uiSyncInfo,",
584 "                                 UInt32             uiCopyOffset);",
585 "#endif",
586 "#ifdef OSG_MT_CPTR_ASPECT",
587 "    virtual void execSyncV(      FieldContainer    &oFrom,",
588 "                                 ConstFieldMaskArg  whichField,",
589 "                                 AspectOffsetStore &oOffsets,",
590 "                                 ConstFieldMaskArg  syncMode  ,",
591 "                           const UInt32             uiSyncInfo);",
592 "",
593 "            void execSync (      @!Classname!@Base *pFrom,",
594 "                                 ConstFieldMaskArg  whichField,",
595 "                                 AspectOffsetStore &oOffsets,",
596 "                                 ConstFieldMaskArg  syncMode  ,",
597 "                           const UInt32             uiSyncInfo);",
598 "#endif",
599 "",
600 "    /*! \\}                                                                 */",
601 "    /*---------------------------------------------------------------------*/",
602 "    /*! \\name                       Edit                                   */",
603 "    /*! \\{                                                                 */",
604 "",
605 "#if 0",
606 "    virtual void execBeginEditV(ConstFieldMaskArg whichField, ",
607 "                                UInt32            uiAspect,",
608 "                                UInt32            uiContainerSize);",
609 "",
610 "            void execBeginEdit (ConstFieldMaskArg whichField, ",
611 "                                UInt32            uiAspect,",
612 "                                UInt32            uiContainerSize);",
613 "#endif",
614 "",
615 "    /*! \\}                                                                 */",
616 "    /*---------------------------------------------------------------------*/",
617 "    /*! \\name                     Aspect Create                            */",
618 "    /*! \\{                                                                 */",
619 "@@if !abstract",
620 "",
621 "#ifdef OSG_MT_CPTR_ASPECT",
622 "    virtual FieldContainerPtr createAspectCopy(void) const;",
623 "#endif",
624 "@@endif",
625 "",
626 "    /*! \\}                                                                 */",
627 "    /*---------------------------------------------------------------------*/",
628 "    /*! \\name                       Edit                                   */",
629 "    /*! \\{                                                                 */",
630 "    /*! \\}                                                                 */",
631 "    /*---------------------------------------------------------------------*/",
632 "    /*! \\name                       Sync                                   */",
633 "    /*! \\{                                                                 */",
634 "",
635 "    virtual void resolveLinks(void);",
636 "",
637 "    /*! \\}                                                                 */",
638