fixed: auto_ptr -> unique_ptr
[opensg.git] / Source / System / State / Base / OSGDepthChunkBase.h
blobd7d8738b7a24bbedccac19aafad41597d63b42f3
1 /*---------------------------------------------------------------------------*\
2 * OpenSG *
3 * *
4 * *
5 * Copyright (C) 2000-2013 by the OpenSG Forum *
6 * *
7 * www.opensg.org *
8 * *
9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, carsten_neumann@gmx.net *
10 * *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
13 * License *
14 * *
15 * This library is free software; you can redistribute it and/or modify it *
16 * under the terms of the GNU Library General Public License as published *
17 * by the Free Software Foundation, version 2. *
18 * *
19 * This library is distributed in the hope that it will be useful, but *
20 * WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
22 * Library General Public License for more details. *
23 * *
24 * You should have received a copy of the GNU Library General Public *
25 * License along with this library; if not, write to the Free Software *
26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
27 * *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
30 * Changes *
31 * *
32 * *
33 * *
34 * *
35 * *
36 * *
37 \*---------------------------------------------------------------------------*/
39 /*****************************************************************************\
40 *****************************************************************************
41 ** **
42 ** This file is automatically generated. **
43 ** **
44 ** Any changes made to this file WILL be lost when it is **
45 ** regenerated, which can become necessary at any time. **
46 ** **
47 ** Do not change this file, changes should be done in the derived **
48 ** class DepthChunk
49 ** **
50 *****************************************************************************
51 \*****************************************************************************/
54 #ifndef _OSGDEPTHCHUNKBASE_H_
55 #define _OSGDEPTHCHUNKBASE_H_
56 #ifdef __sgi
57 #pragma once
58 #endif
61 #include "OSGConfig.h"
62 #include "OSGSystemDef.h"
64 //#include "OSGBaseTypes.h"
66 #include "OSGStateChunk.h" // Parent
68 #include "OSGSysFields.h" // Enable type
69 #include "OSGBaseFields.h" // Func type
71 #include "OSGDepthChunkFields.h"
73 OSG_BEGIN_NAMESPACE
76 class DepthChunk;
78 //! \brief DepthChunk Base Class.
80 class OSG_SYSTEM_DLLMAPPING DepthChunkBase : public StateChunk
82 public:
84 typedef StateChunk Inherited;
85 typedef StateChunk ParentContainer;
87 typedef Inherited::TypeObject TypeObject;
88 typedef TypeObject::InitPhase InitPhase;
90 OSG_GEN_INTERNALPTR(DepthChunk);
92 /*========================== PUBLIC =================================*/
94 public:
96 enum
98 EnableFieldId = Inherited::NextFieldId,
99 FuncFieldId = EnableFieldId + 1,
100 NearFieldId = FuncFieldId + 1,
101 FarFieldId = NearFieldId + 1,
102 ReadOnlyFieldId = FarFieldId + 1,
103 NextFieldId = ReadOnlyFieldId + 1
106 static const OSG::BitVector EnableFieldMask =
107 (TypeTraits<BitVector>::One << EnableFieldId);
108 static const OSG::BitVector FuncFieldMask =
109 (TypeTraits<BitVector>::One << FuncFieldId);
110 static const OSG::BitVector NearFieldMask =
111 (TypeTraits<BitVector>::One << NearFieldId);
112 static const OSG::BitVector FarFieldMask =
113 (TypeTraits<BitVector>::One << FarFieldId);
114 static const OSG::BitVector ReadOnlyFieldMask =
115 (TypeTraits<BitVector>::One << ReadOnlyFieldId);
116 static const OSG::BitVector NextFieldMask =
117 (TypeTraits<BitVector>::One << NextFieldId);
119 typedef SFBool SFEnableType;
120 typedef SFGLenum SFFuncType;
121 typedef SFReal32 SFNearType;
122 typedef SFReal32 SFFarType;
123 typedef SFBool SFReadOnlyType;
125 /*---------------------------------------------------------------------*/
126 /*! \name Class Get */
127 /*! \{ */
129 static FieldContainerType &getClassType (void);
130 static UInt32 getClassTypeId (void);
131 static UInt16 getClassGroupId(void);
133 /*! \} */
134 /*---------------------------------------------------------------------*/
135 /*! \name FieldContainer Get */
136 /*! \{ */
138 virtual FieldContainerType &getType (void);
139 virtual const FieldContainerType &getType (void) const;
141 virtual UInt32 getContainerSize(void) const;
143 /*! \} */
144 /*---------------------------------------------------------------------*/
145 /*! \name Field Get */
146 /*! \{ */
149 SFBool *editSFEnable (void);
150 const SFBool *getSFEnable (void) const;
152 SFGLenum *editSFFunc (void);
153 const SFGLenum *getSFFunc (void) const;
155 SFReal32 *editSFNear (void);
156 const SFReal32 *getSFNear (void) const;
158 SFReal32 *editSFFar (void);
159 const SFReal32 *getSFFar (void) const;
161 SFBool *editSFReadOnly (void);
162 const SFBool *getSFReadOnly (void) const;
165 bool &editEnable (void);
166 bool getEnable (void) const;
168 GLenum &editFunc (void);
169 const GLenum &getFunc (void) const;
171 Real32 &editNear (void);
172 Real32 getNear (void) const;
174 Real32 &editFar (void);
175 Real32 getFar (void) const;
177 bool &editReadOnly (void);
178 bool getReadOnly (void) const;
180 /*! \} */
181 /*---------------------------------------------------------------------*/
182 /*! \name Field Set */
183 /*! \{ */
185 void setEnable (const bool value);
186 void setFunc (const GLenum &value);
187 void setNear (const Real32 value);
188 void setFar (const Real32 value);
189 void setReadOnly (const bool value);
191 /*! \} */
192 /*---------------------------------------------------------------------*/
193 /*! \name Ptr MField Set */
194 /*! \{ */
196 /*! \} */
197 /*---------------------------------------------------------------------*/
198 /*! \name Binary Access */
199 /*! \{ */
201 virtual SizeT getBinSize (ConstFieldMaskArg whichField);
202 virtual void copyToBin (BinaryDataHandler &pMem,
203 ConstFieldMaskArg whichField);
204 virtual void copyFromBin(BinaryDataHandler &pMem,
205 ConstFieldMaskArg whichField);
208 /*! \} */
209 /*---------------------------------------------------------------------*/
210 /*! \name Construction */
211 /*! \{ */
213 static DepthChunkTransitPtr create (void);
214 static DepthChunk *createEmpty (void);
216 static DepthChunkTransitPtr createLocal (
217 BitVector bFlags = FCLocal::All);
219 static DepthChunk *createEmptyLocal(
220 BitVector bFlags = FCLocal::All);
222 static DepthChunkTransitPtr createDependent (BitVector bFlags);
224 /*! \} */
225 /*---------------------------------------------------------------------*/
226 /*! \name Copy */
227 /*! \{ */
229 virtual FieldContainerTransitPtr shallowCopy (void) const;
230 virtual FieldContainerTransitPtr shallowCopyLocal(
231 BitVector bFlags = FCLocal::All) const;
232 virtual FieldContainerTransitPtr shallowCopyDependent(
233 BitVector bFlags) const;
235 /*! \} */
236 /*========================= PROTECTED ===============================*/
238 protected:
240 static TypeObject _type;
242 static void classDescInserter(TypeObject &oType);
243 static const Char8 *getClassname (void );
245 /*---------------------------------------------------------------------*/
246 /*! \name Fields */
247 /*! \{ */
249 SFBool _sfEnable;
250 SFGLenum _sfFunc;
251 SFReal32 _sfNear;
252 SFReal32 _sfFar;
253 SFBool _sfReadOnly;
255 /*! \} */
256 /*---------------------------------------------------------------------*/
257 /*! \name Constructors */
258 /*! \{ */
260 DepthChunkBase(void);
261 DepthChunkBase(const DepthChunkBase &source);
263 /*! \} */
264 /*---------------------------------------------------------------------*/
265 /*! \name Destructors */
266 /*! \{ */
268 virtual ~DepthChunkBase(void);
270 /*! \} */
271 /*---------------------------------------------------------------------*/
272 /*! \name onCreate */
273 /*! \{ */
276 /*! \} */
277 /*---------------------------------------------------------------------*/
278 /*! \name Generic Field Access */
279 /*! \{ */
281 GetFieldHandlePtr getHandleEnable (void) const;
282 EditFieldHandlePtr editHandleEnable (void);
283 GetFieldHandlePtr getHandleFunc (void) const;
284 EditFieldHandlePtr editHandleFunc (void);
285 GetFieldHandlePtr getHandleNear (void) const;
286 EditFieldHandlePtr editHandleNear (void);
287 GetFieldHandlePtr getHandleFar (void) const;
288 EditFieldHandlePtr editHandleFar (void);
289 GetFieldHandlePtr getHandleReadOnly (void) const;
290 EditFieldHandlePtr editHandleReadOnly (void);
292 /*! \} */
293 /*---------------------------------------------------------------------*/
294 /*! \name Sync */
295 /*! \{ */
297 #ifdef OSG_MT_CPTR_ASPECT
298 virtual void execSyncV( FieldContainer &oFrom,
299 ConstFieldMaskArg whichField,
300 AspectOffsetStore &oOffsets,
301 ConstFieldMaskArg syncMode ,
302 const UInt32 uiSyncInfo);
304 void execSync ( DepthChunkBase *pFrom,
305 ConstFieldMaskArg whichField,
306 AspectOffsetStore &oOffsets,
307 ConstFieldMaskArg syncMode ,
308 const UInt32 uiSyncInfo);
309 #endif
311 /*! \} */
312 /*---------------------------------------------------------------------*/
313 /*! \name Edit */
314 /*! \{ */
316 /*! \} */
317 /*---------------------------------------------------------------------*/
318 /*! \name Aspect Create */
319 /*! \{ */
321 #ifdef OSG_MT_CPTR_ASPECT
322 virtual FieldContainer *createAspectCopy(
323 const FieldContainer *pRefAspect) const;
324 #endif
326 /*! \} */
327 /*---------------------------------------------------------------------*/
328 /*! \name Edit */
329 /*! \{ */
330 /*! \} */
331 /*---------------------------------------------------------------------*/
332 /*! \name Sync */
333 /*! \{ */
335 virtual void resolveLinks(void);
337 /*! \} */
338 /*========================== PRIVATE ================================*/
340 private:
341 /*---------------------------------------------------------------------*/
343 // prohibit default functions (move to 'public' if you need one)
344 void operator =(const DepthChunkBase &source);
347 typedef DepthChunkBase *DepthChunkBaseP;
349 OSG_END_NAMESPACE
351 #endif /* _OSGDEPTHCHUNKBASE_H_ */