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

Revision 106, 13.0 kB (checked in by dirk, 2 years ago)

Keyword substitution added
Version string fixed

  • 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_inl[]={
11 "/*---------------------------------------------------------------------------*\\",
12 " *                                OpenSG                                     *",
13 " *                                                                           *",
14 " *                                                                           *",
15 " *               Copyright (C) 2000-2006 by the OpenSG Forum                 *",
16 " *                                                                           *",
17 " *   contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de          *",
18 " *                                                                           *",
19 "\\*---------------------------------------------------------------------------*/",
20 "/*---------------------------------------------------------------------------*\\",
21 " *                                License                                    *",
22 " *                                                                           *",
23 " * This library is free software; you can redistribute it and/or modify it   *",
24 " * under the terms of the GNU Library General Public License as published    *",
25 " * by the Free Software Foundation, version 2.                               *",
26 " *                                                                           *",
27 " * This library is distributed in the hope that it will be useful, but       *",
28 " * WITHOUT ANY WARRANTY; without even the implied warranty of                *",
29 " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *",
30 " * Library General Public License for more details.                          *",
31 " *                                                                           *",
32 " * You should have received a copy of the GNU Library General Public         *",
33 " * License along with this library; if not, write to the Free Software       *",
34 " * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                 *",
35 " *                                                                           *",
36 "\\*---------------------------------------------------------------------------*/",
37 "/*---------------------------------------------------------------------------*\\",
38 " *                                Changes                                    *",
39 " *                                                                           *",
40 " *                                                                           *",
41 " *                                                                           *",
42 " *                                                                           *",
43 " *                                                                           *",
44 " *                                                                           *",
45 "\\*---------------------------------------------------------------------------*/",
46 "",
47 "/*****************************************************************************\\",
48 " *****************************************************************************",
49 " **                                                                         **",
50 " **                  This file is automatically generated.                  **",
51 " **                                                                         **",
52 " **          Any changes made to this file WILL be lost when it is          **",
53 " **           regenerated, which can become necessary at any time.          **",
54 " **                                                                         **",
55 " **     Do not change this file, changes should be done in the derived      **",
56 " **     class @!Classname!@!",
57 " **                                                                         **",
58 " *****************************************************************************",
59 "\\*****************************************************************************/",
60 "",
61 "OSG_BEGIN_NAMESPACE",
62 "",
63 "",
64 "//! access the type of the class",
65 "inline",
66 "OSG::FieldContainerType &@!Classname!@Base::getClassType(void)",
67 "{",
68 "    return _type; ",
69 "} ",
70 "",
71 "//! access the numerical type of the class",
72 "inline",
73 "OSG::UInt32 @!Classname!@Base::getClassTypeId(void) ",
74 "{",
75 "    return _type.getId(); ",
76 "} ",
77 "",
78 "inline",
79 "OSG::UInt16 @!Classname!@Base::getClassGroupId(void)",
80 "{",
81 "    return _type.getGroupId();",
82 "}",
83 "",
84 "@@if !Decorator",
85 "@@if !isDecoratable",
86 "/*------------------------------ get -----------------------------------*/",
87 "",
88 "@@BeginSFFieldLoop@@",
89 "@@if isPtrField",
90 "",
91 "//! Get the value of the @!Classname!@::_@!fieldname!@ field.",
92 "inline",
93 "@!Fieldtype!@Const @!Classname!@Base::get@!Fieldname!@(void) const",
94 "{",
95 "    return _@!fieldname!@.getValue();",
96 "}",
97 "",
98 "//! Set the value of the @!Classname!@::_@!fieldname!@ field.",
99 "inline",
100 "@@if passFieldMask",
101 "void @!Classname!@Base::set@!Fieldname!@(@!Fieldtype!@ConstArg value,",
102 "                             const UInt16      uiStoredInFieldId)",
103 "@@else",
104 "void @!Classname!@Base::set@!Fieldname!@(@!Fieldtype!@ConstArg value)",
105 "@@endif",
106 "{",
107 "    editSField(@!Fieldname!@FieldMask);",
108 "",
109 "@@if linkMParent",
110 "    @!Classname!@Ptr thisP = Inherited::constructPtr<@!Classname!@>(",
111 "        static_cast<@!Classname!@ *>(this));",
112 "",
113 "    if(_@!fieldname!@.getValue() != NullFC)",
114 "    {",
115 "        _@!fieldname!@.getValue()->subParent(thisP);",
116 "    }",
117 "",
118 "@@endif",
119 "@@if linkSParent",
120 "    if(_@!fieldname!@.getValue() != NullFC)",
121 "    {",
122 "        _@!fieldname!@.getValue()->setParent(NullFC);",
123 "    }",
124 "",
125 "@@endif",
126 "@@if doRefCount",
127 "    setRefd(_@!fieldname!@.getValue(), value);",
128 "@@else",
129 "    _@!fieldname!@.setValue(value);",
130 "@@endif",
131 "@@if linkMParent",
132 "",
133 "    if(_@!fieldname!@.getValue() != NullFC)",
134 "    {",
135 "        _@!fieldname!@.getValue()->addParent(thisP, @!Fieldname!@FieldMask);",
136 "    }",
137 "@@endif",
138 "@@if linkSParent",
139 "",
140 "    @!Classname!@Ptr thisP = Inherited::constructPtr<@!Classname!@>(",
141 "        static_cast<@!Classname!@ *>(this));",
142 "",
143 "    if(_@!fieldname!@.getValue() != NullFC)",
144 "    {",
145 "        _@!fieldname!@.getValue()->setParent(thisP, @!Fieldname!@FieldMask);",
146 "    }",
147 "@@endif",
148 "@@if passFieldMask",
149 "    _@!fieldname!@.getValue().setParentFieldPos(uiStoredInFieldId);",
150 "@@endif",
151 "",
152 "}",
153 "@@else",
154 "//! Get the value of the @!Classname!@::_@!fieldname!@ field.",
155 "",
156 "inline",
157 "@!Fieldtype!@ &@!Classname!@Base::edit@!Fieldname!@(void)",
158 "{",
159 "    editSField(@!Fieldname!@FieldMask);",
160 "",
161 "    return _@!fieldname!@.getValue();",
162 "}",
163 "",
164 "//! Get the value of the @!Classname!@::_@!fieldname!@ field.",
165 "inline",
166 "const @!Fieldtype!@ &@!Classname!@Base::get@!Fieldname!@(void) const",
167 "{",
168 "    return _@!fieldname!@.getValue();",
169 "}",
170 "",
171 "@@if CompatOneSix",
172 "#ifdef OSG_1_COMPAT",
173 "inline",
174 "@!Fieldtype:19!@ &@!Classname!@Base::get@!Fieldname:15!@(void)",
175 "{",
176 "    return this->edit@!Fieldname:15!@();",
177 "}",
178 "#endif",
179 "@@endif //CompatOneSix",
180 "",
181 "//! Set the value of the @!Classname!@::_@!fieldname!@ field.",
182 "inline",
183 "void @!Classname!@Base::set@!Fieldname!@(const @!Fieldtype!@ &value)",
184 "{",
185 "    editSField(@!Fieldname!@FieldMask);",
186 "",
187 "    _@!fieldname!@.setValue(value);",
188 "}",
189 "@@endif",
190 "@@EndSFFieldLoop@@",
191 "",
192 "@@BeginMFFieldLoop@@",
193 "//! Get the value of the \\a index element the @!Classname!@::_@!fieldname!@ field.",
194 "inline",
195 "@@if isPtrField",
196 "@!Fieldtype!@Const @!Classname!@Base::get@!Fieldname!@(const UInt32 index) const",
197 "@@else",
198 "const @!Fieldtype!@ &@!Classname!@Base::get@!Fieldname!@(const UInt32 index) const",
199 "@@endif",
200 "{",
201 "    return _@!fieldname!@[index];",
202 "}",
203 "@@if !isPtrField",
204 "",
205 "inline",
206 "@!Fieldtype!@ &@!Classname!@Base::edit@!Fieldname!@(const UInt32 index)",
207 "{",
208 "    editMField(@!Fieldname!@FieldMask, _@!fieldname!@);",
209 "",
210 "    return _@!fieldname!@[index];",
211 "}",
212 "",
213 "//! Get the @!Classname!@::_@!fieldname!@ field.",
214 "inline",
215 "@!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean!@ &@!Classname!@Base::edit@!Fieldname!@(void)",
216 "{",
217 "    editMField(@!Fieldname!@FieldMask, _@!fieldname!@);",
218 "",
219 "    return _@!fieldname!@;",
220 "}",
221 "",
222 "@@if CompatOneSix",
223 "#ifdef OSG_1_COMPAT",
224 "inline",
225 "@!Fieldtype:19!@ &@!Classname!@Base::get@!Fieldname:15!@(const UInt32 index)",
226 "{",
227 "    return this->edit@!Fieldname:15!@(index);",
228 "}",
229 "",
230 "inline",
231 "@!CARDINALITY!@@!CapsFieldtypeClean:17!@ &@!Classname!@Base::get@!Fieldname:15!@(void)",
232 "{",
233 "    return this->edit@!Fieldname:15!@();",
234 "}",
235 "",
236 "#endif",
237 "@@endif",
238 "",
239 "@@endif",
240 "",
241 "//! Get the @!Classname!@::_@!fieldname!@ field.",
242 "inline",
243 "const @!FieldNamespace!@@!CARDINALITY!@@!CapsFieldtypeClean!@ &@!Classname!@Base::get@!Fieldname!@(void) const",
244 "{",
245 "    return _@!fieldname!@;",
246 "}",
247 "",
248 "@@EndMFFieldLoop@@",
249 "@@endif",
250 "@@else",
251 "",
252 "inline",
253 "const @!Parent!@PtrConst @!Classname!@Base::getDecoratee(void) const",
254 "{",
255 "    return _sfDecoratee.getValue();",
256 "}",
257 "",
258 "inline",
259 "void @!Classname!@Base::setDecoratee(const @!Parent!@Ptr &value)",
260 "{",
261 "    editSField(DecorateeFieldMask);",
262 "",
263 "    setRefd(_sfDecoratee.getValue(), value);",
264 "}",
265 "@@endif",
266 "@@if !Abstract",
267 "//! create a new instance of the class",
268 "inline",
269 "@!Classname!@Ptr @!Classname!@Base::create(void) ",
270 "{",
271 "    @!Classname!@Ptr fc; ",
272 "",
273 "    if(getClassType().getPrototype() != NullFC) ",
274 "    {",
275 "        fc = OSG::cast_dynamic<@!Classname!@::ObjPtr>(",
276 "            getClassType().getPrototype()-> shallowCopy()); ",
277 "    }",
278 "    ",
279 "    return fc; ",
280 "}",
281 "@@endif",
282 "",
283 "#ifdef OSG_MT_FIELDCONTAINERPTR",
284 "inline",
285 "void @!Classname!@Base::execSync(      @!Classname!@Base *pOther,",
286 "                                       ConstFieldMaskArg  whichField,",
287 "                                       ConstFieldMaskArg  syncMode  ,",
288 "                                 const UInt32             uiSyncInfo,",
289 "                                       UInt32             uiCopyOffset)",
290 "{",
291 "    Inherited::execSync(pOther, whichField, syncMode, uiSyncInfo, uiCopyOffset);",
292 "@@if Decorator",
293 "",
294 "    if(FieldBits::NoField != (DecorateeFieldMask & whichField))",
295 "    {",
296 "        _sfDecoratee.syncWith(pOther->_sfDecoratee);",
297 "    }",
298 "@@else",
299 "@@BeginFieldLoop@@",
300 "",
301 "@@if isSField",
302 "    if(FieldBits::NoField != (@!Fieldname!@FieldMask & whichField))",
303 "        _@!fieldname!@.syncWith(pOther->_@!fieldname!@);",
304 "@@else",
305 "    if(FieldBits::NoField != (@!Fieldname!@FieldMask & whichField))",
306 "        _@!fieldname!@.syncWith(pOther->_@!fieldname!@, ",
307 "                                syncMode,",
308 "                                uiSyncInfo,",
309 "                                uiCopyOffset);",
310 "@@endif",
311 "@@EndFieldLoop@@",
312 "@@endif",
313 "}",
314 "#endif",
315 "",
316 "#ifdef OSG_MT_CPTR_ASPECT",
317 "inline",
318 "void @!Classname!@Base::execSync (      @!Classname!@Base *pFrom,",
319 "                                        ConstFieldMaskArg  whichField,",
320 "                                        AspectOffsetStore &oOffsets,",
321 "                                        ConstFieldMaskArg  syncMode  ,",
322 "                                  const UInt32             uiSyncInfo)",
323 "{",
324 "    Inherited::execSync(pFrom, whichField, oOffsets, syncMode, uiSyncInfo);",
325 "@@if Decorator",
326 "",
327 "    if(FieldBits::NoField != (DecorateeFieldMask & whichField))",
328 "    {",
329 "        _sfDecoratee.syncWith(pFrom->_sfDecoratee);",
330 "    }",
331 "@@else",
332 "@@BeginFieldLoop@@",
333 "",
334 "@@if isSField",
335 "    if(FieldBits::NoField != (@!Fieldname!@FieldMask & whichField))",
336 "        _@!fieldname!@.syncWith(pFrom->_@!fieldname!@);",
337 "@@else",
338 "    if(FieldBits::NoField != (@!Fieldname!@FieldMask & whichField))",
339 "        _@!fieldname!@.syncWith(pFrom->_@!fieldname!@, ",
340 "                                syncMode,",
341 "                                uiSyncInfo,",
342 "                                oOffsets);",
343 "@@endif",
344 "@@EndFieldLoop@@",
345 "@@endif",
346 "}",
347 "#endif",
348 "",
349 "#if 0",
350 "inline",
351 "void @!Classname!@Base::execBeginEdit(ConstFieldMaskArg whichField,",
352 "                                      UInt32            uiAspect,",
353 "                                      UInt32            uiContainerSize)",
354 "{",
355 "    Inherited::execBeginEdit(whichField, uiAspect, uiContainerSize);",
356 "@@if !Decorator",
357 "@@BeginMFFieldLoop@@",
358 "",
359 "    if(FieldBits::NoField != (@!Fieldname!@FieldMask & whichField))",
360 "    {",
361 "        _@!fieldname!@.beginEdit(uiAspect, uiContainerSize);",
362 "    }",
363 "@@EndMFFieldLoop@@",
364 "@@endif",
365 "}",
366 "#endif",
367 "",
368 "",
369 "inline",
370 "Char8 *@!Classname!@Base::getClassname(void)",
371 "{",
372 "    return \"@!Classname!@\";
373 "}",
374 "",
375 "typedef PointerBuilder<@!Classname!@>::ObjPtr          @!Classname!@Ptr;",
376 "typedef PointerBuilder<@!Classname!@>::ObjPtrConst     @!Classname!@PtrConst;",
377 "typedef PointerBuilder<@!Classname!@>::ObjConstPtr     @!Classname!@ConstPtr;",
378 "",
379 "typedef PointerBuilder<@!Classname!@>::ObjPtrArg       @!Classname!@PtrArg;",
380 "typedef PointerBuilder<@!Classname!@>::ObjConstPtrArg  @!Classname!@ConstPtrArg;",
381 "typedef PointerBuilder<@!Classname!@>::ObjPtrConstArg  @!Classname!@PtrConstArg;",
382 "",
383 "OSG_END_NAMESPACE",
384 "",
385 "#define OSG@!CLASSNAME!@BASE_INLINE_CVSID \"@(#)$Id$\"",
386 "",
387 NULL};
Note: See TracBrowser for help on using the browser.