fixed: gcc8 compile issues
[opensg.git] / Tools / fcd2code / TemplateFieldContainer_h.txt
blob04c5e3c0393a49a4c765d4353ac893c90e519eb0
1 /*---------------------------------------------------------------------------*\
2  *                                OpenSG                                     *
3  *                                                                           *
4  *                                                                           *
5  *               Copyright (C) 2000-2013 by the OpenSG Forum                 *
6  *                                                                           *
7  *                            www.opensg.org                                 *
8  *                                                                           *
9 @@if hasAuthors
10 @!AuthorsCommentText!@
11 @@else // hasAuthors
12  * contact: dirk@opensg.org, gerrit.voss@vossg.org, carsten_neumann@gmx.net  *
13 @@endif // hasAuthors
14  *                                                                           *
15 \*---------------------------------------------------------------------------*/
16 /*---------------------------------------------------------------------------*\
17  *                                License                                    *
18  *                                                                           *
19  * This library is free software; you can redistribute it and/or modify it   *
20  * under the terms of the GNU Library General Public License as published    *
21  * by the Free Software Foundation, version 2.                               *
22  *                                                                           *
23  * This library is distributed in the hope that it will be useful, but       *
24  * WITHOUT ANY WARRANTY; without even the implied warranty of                *
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *
26  * Library General Public License for more details.                          *
27  *                                                                           *
28  * You should have received a copy of the GNU Library General Public         *
29  * License along with this library; if not, write to the Free Software       *
30  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                 *
31  *                                                                           *
32 \*---------------------------------------------------------------------------*/
33 /*---------------------------------------------------------------------------*\
34  *                                Changes                                    *
35  *                                                                           *
36  *                                                                           *
37  *                                                                           *
38  *                                                                           *
39  *                                                                           *
40  *                                                                           *
41 \*---------------------------------------------------------------------------*/
43 #ifndef _OSG@!CLASSNAME!@_H_
44 #define _OSG@!CLASSNAME!@_H_
45 #ifdef __sgi
46 #pragma once
47 #endif
49 #include "OSG@!Classname!@Base.h"
51 OSG_BEGIN_NAMESPACE
53 /*! \brief @!Classname!@ class. See \ref
54 @@if isInLibrary
55            Page@!Libname!@@!Classname!@ for a description.
56 @@else
57            Page@!Classname!@ for a description.
58 @@endif
61 @@if isInLibrary
62 class OSG_@!LIBNAME!@_DLLMAPPING @!Classname!@ : public @!Classname!@Base
63 @@else
64 class @!Classname!@ : public @!Classname!@Base
65 @@endif
67   protected:
69     /*==========================  PUBLIC  =================================*/
71   public:
73     typedef @!Classname!@Base Inherited;
74     typedef @!Classname!@     Self;
76     /*---------------------------------------------------------------------*/
77     /*! \name                      Sync                                    */
78     /*! \{                                                                 */
80     virtual void changed(ConstFieldMaskArg whichField,
81                          UInt32            origin,
82                          BitVector         details    );
84     /*! \}                                                                 */
85     /*---------------------------------------------------------------------*/
86     /*! \name                     Output                                   */
87     /*! \{                                                                 */
89     virtual void dump(      UInt32     uiIndent = 0,
90                       const BitVector  bvFlags  = 0) const;
92     /*! \}                                                                 */
93     /*=========================  PROTECTED  ===============================*/
95   protected:
97     // Variables should all be in @!Classname!@Base.
99     /*---------------------------------------------------------------------*/
100     /*! \name                  Constructors                                */
101     /*! \{                                                                 */
103     @!Classname!@(void);
104     @!Classname!@(const @!Classname!@ &source);
106     /*! \}                                                                 */
107     /*---------------------------------------------------------------------*/
108     /*! \name                   Destructors                                */
109     /*! \{                                                                 */
111     virtual ~@!Classname!@(void);
113     /*! \}                                                                 */
114     /*---------------------------------------------------------------------*/
115     /*! \name                      Init                                    */
116     /*! \{                                                                 */
118     static void initMethod(InitPhase ePhase);
120     /*! \}                                                                 */
121     /*==========================  PRIVATE  ================================*/
123   private:
125     friend class FieldContainer;
126     friend class @!Classname!@Base;
128     // prohibit default functions (move to 'public' if you need one)
129     void operator =(const @!Classname!@ &source);
132 typedef @!Classname!@ *@!Classname!@P;
134 OSG_END_NAMESPACE
136 #include "OSG@!Classname!@Base.inl"
137 #include "OSG@!Classname!@.inl"
139 #endif /* _OSG@!CLASSNAME!@_H_ */