1 /*---------------------------------------------------------------------------*\
5 * Copyright (C) 2000-2013 by the OpenSG Forum *
9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, carsten_neumann@gmx.net *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
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. *
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. *
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. *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
37 \*---------------------------------------------------------------------------*/
39 /*****************************************************************************\
40 *****************************************************************************
42 ** This file is automatically generated. **
44 ** Any changes made to this file WILL be lost when it is **
45 ** regenerated, which can become necessary at any time. **
47 ** Do not change this file, changes should be done in the derived **
50 *****************************************************************************
51 \*****************************************************************************/
54 #ifndef _OSGCSMWINDOWBASE_H_
55 #define _OSGCSMWINDOWBASE_H_
61 #include "OSGConfig.h"
62 #include "OSGContribCSMDef.h"
64 //#include "OSGBaseTypes.h"
66 #include "OSGAttachmentContainer.h" // Parent
68 #include "OSGFieldContainerFields.h" // Parent type
69 #include "OSGCSMViewportFields.h" // Viewports type
70 #include "OSGMouseDataFields.h" // MouseData type
71 #include "OSGMTouchDataFields.h" // MTouchData type
72 #include "OSGGestureDataFields.h" // GestureData type
73 #include "OSGSysFields.h" // MouseAsMTouch type
74 #include "OSGVecFields.h" // Size type
75 #include "OSGBaseFields.h" // IgnoreExtensions type
76 #include "OSGRenderOptionsFields.h" // RenderOptions type
78 #include "OSGCSMWindowFields.h"
85 //! \brief CSMWindow Base Class.
87 class OSG_CONTRIBCSM_DLLMAPPING CSMWindowBase
: public AttachmentContainer
91 typedef AttachmentContainer Inherited
;
92 typedef AttachmentContainer ParentContainer
;
94 typedef Inherited::TypeObject TypeObject
;
95 typedef TypeObject::InitPhase InitPhase
;
97 OSG_GEN_INTERNALPTR(CSMWindow
);
99 /*========================== PUBLIC =================================*/
105 ParentFieldId
= Inherited::NextFieldId
,
106 ViewportsFieldId
= ParentFieldId
+ 1,
107 MouseDataFieldId
= ViewportsFieldId
+ 1,
108 MTouchDataFieldId
= MouseDataFieldId
+ 1,
109 MTouchDataWCFieldId
= MTouchDataFieldId
+ 1,
110 GestureDataFieldId
= MTouchDataWCFieldId
+ 1,
111 MouseAsMTouchFieldId
= GestureDataFieldId
+ 1,
112 SizeFieldId
= MouseAsMTouchFieldId
+ 1,
113 PositionFieldId
= SizeFieldId
+ 1,
114 DecorEnabledFieldId
= PositionFieldId
+ 1,
115 RequestMajorFieldId
= DecorEnabledFieldId
+ 1,
116 RequestMinorFieldId
= RequestMajorFieldId
+ 1,
117 EnableForwardCompatContextFieldId
= RequestMinorFieldId
+ 1,
118 EnableDebugContextFieldId
= EnableForwardCompatContextFieldId
+ 1,
119 IgnoreExtensionsFieldId
= EnableDebugContextFieldId
+ 1,
120 IgnoreAllExtensionsFieldId
= IgnoreExtensionsFieldId
+ 1,
121 RequestSamplesFieldId
= IgnoreAllExtensionsFieldId
+ 1,
122 EnableFSAAFieldId
= RequestSamplesFieldId
+ 1,
123 FsaaHintFieldId
= EnableFSAAFieldId
+ 1,
124 RenderOptionsFieldId
= FsaaHintFieldId
+ 1,
125 PartitionDrawModeFieldId
= RenderOptionsFieldId
+ 1,
126 RegisterMainLoopFieldId
= PartitionDrawModeFieldId
+ 1,
127 DumpContainerFieldId
= RegisterMainLoopFieldId
+ 1,
128 WindowStateFieldId
= DumpContainerFieldId
+ 1,
129 NextFieldId
= WindowStateFieldId
+ 1
132 static const OSG::BitVector ParentFieldMask
=
133 (TypeTraits
<BitVector
>::One
<< ParentFieldId
);
134 static const OSG::BitVector ViewportsFieldMask
=
135 (TypeTraits
<BitVector
>::One
<< ViewportsFieldId
);
136 static const OSG::BitVector MouseDataFieldMask
=
137 (TypeTraits
<BitVector
>::One
<< MouseDataFieldId
);
138 static const OSG::BitVector MTouchDataFieldMask
=
139 (TypeTraits
<BitVector
>::One
<< MTouchDataFieldId
);
140 static const OSG::BitVector MTouchDataWCFieldMask
=
141 (TypeTraits
<BitVector
>::One
<< MTouchDataWCFieldId
);
142 static const OSG::BitVector GestureDataFieldMask
=
143 (TypeTraits
<BitVector
>::One
<< GestureDataFieldId
);
144 static const OSG::BitVector MouseAsMTouchFieldMask
=
145 (TypeTraits
<BitVector
>::One
<< MouseAsMTouchFieldId
);
146 static const OSG::BitVector SizeFieldMask
=
147 (TypeTraits
<BitVector
>::One
<< SizeFieldId
);
148 static const OSG::BitVector PositionFieldMask
=
149 (TypeTraits
<BitVector
>::One
<< PositionFieldId
);
150 static const OSG::BitVector DecorEnabledFieldMask
=
151 (TypeTraits
<BitVector
>::One
<< DecorEnabledFieldId
);
152 static const OSG::BitVector RequestMajorFieldMask
=
153 (TypeTraits
<BitVector
>::One
<< RequestMajorFieldId
);
154 static const OSG::BitVector RequestMinorFieldMask
=
155 (TypeTraits
<BitVector
>::One
<< RequestMinorFieldId
);
156 static const OSG::BitVector EnableForwardCompatContextFieldMask
=
157 (TypeTraits
<BitVector
>::One
<< EnableForwardCompatContextFieldId
);
158 static const OSG::BitVector EnableDebugContextFieldMask
=
159 (TypeTraits
<BitVector
>::One
<< EnableDebugContextFieldId
);
160 static const OSG::BitVector IgnoreExtensionsFieldMask
=
161 (TypeTraits
<BitVector
>::One
<< IgnoreExtensionsFieldId
);
162 static const OSG::BitVector IgnoreAllExtensionsFieldMask
=
163 (TypeTraits
<BitVector
>::One
<< IgnoreAllExtensionsFieldId
);
164 static const OSG::BitVector RequestSamplesFieldMask
=
165 (TypeTraits
<BitVector
>::One
<< RequestSamplesFieldId
);
166 static const OSG::BitVector EnableFSAAFieldMask
=
167 (TypeTraits
<BitVector
>::One
<< EnableFSAAFieldId
);
168 static const OSG::BitVector FsaaHintFieldMask
=
169 (TypeTraits
<BitVector
>::One
<< FsaaHintFieldId
);
170 static const OSG::BitVector RenderOptionsFieldMask
=
171 (TypeTraits
<BitVector
>::One
<< RenderOptionsFieldId
);
172 static const OSG::BitVector PartitionDrawModeFieldMask
=
173 (TypeTraits
<BitVector
>::One
<< PartitionDrawModeFieldId
);
174 static const OSG::BitVector RegisterMainLoopFieldMask
=
175 (TypeTraits
<BitVector
>::One
<< RegisterMainLoopFieldId
);
176 static const OSG::BitVector DumpContainerFieldMask
=
177 (TypeTraits
<BitVector
>::One
<< DumpContainerFieldId
);
178 static const OSG::BitVector WindowStateFieldMask
=
179 (TypeTraits
<BitVector
>::One
<< WindowStateFieldId
);
180 static const OSG::BitVector NextFieldMask
=
181 (TypeTraits
<BitVector
>::One
<< NextFieldId
);
183 typedef SFParentFieldContainerPtr SFParentType
;
184 typedef MFUnrecCSMViewportPtr MFViewportsType
;
185 typedef SFMouseData SFMouseDataType
;
186 typedef SFMTouchData SFMTouchDataType
;
187 typedef SFMTouchData SFMTouchDataWCType
;
188 typedef SFGestureData SFGestureDataType
;
189 typedef SFBool SFMouseAsMTouchType
;
190 typedef SFVec2f SFSizeType
;
191 typedef SFVec2f SFPositionType
;
192 typedef SFBool SFDecorEnabledType
;
193 typedef SFInt32 SFRequestMajorType
;
194 typedef SFInt32 SFRequestMinorType
;
195 typedef SFBool SFEnableForwardCompatContextType
;
196 typedef SFBool SFEnableDebugContextType
;
197 typedef MFString MFIgnoreExtensionsType
;
198 typedef SFBool SFIgnoreAllExtensionsType
;
199 typedef SFUInt32 SFRequestSamplesType
;
200 typedef SFBool SFEnableFSAAType
;
201 typedef SFUInt32 SFFsaaHintType
;
202 typedef SFUnrecRenderOptionsPtr SFRenderOptionsType
;
203 typedef SFUInt32 SFPartitionDrawModeType
;
204 typedef SFBool SFRegisterMainLoopType
;
205 typedef SFBool SFDumpContainerType
;
206 typedef SFInt32 SFWindowStateType
;
208 /*---------------------------------------------------------------------*/
209 /*! \name Class Get */
212 static FieldContainerType
&getClassType (void);
213 static UInt32
getClassTypeId (void);
214 static UInt16
getClassGroupId(void);
217 /*---------------------------------------------------------------------*/
218 /*! \name FieldContainer Get */
221 virtual FieldContainerType
&getType (void);
222 virtual const FieldContainerType
&getType (void) const;
224 virtual UInt32
getContainerSize(void) const;
227 /*---------------------------------------------------------------------*/
228 /*! \name Field Get */
231 const MFUnrecCSMViewportPtr
*getMFViewports (void) const;
232 MFUnrecCSMViewportPtr
*editMFViewports (void);
234 SFMouseData
*editSFMouseData (void);
235 const SFMouseData
*getSFMouseData (void) const;
237 SFMTouchData
*editSFMTouchData (void);
238 const SFMTouchData
*getSFMTouchData (void) const;
240 SFMTouchData
*editSFMTouchDataWC (void);
241 const SFMTouchData
*getSFMTouchDataWC (void) const;
243 SFGestureData
*editSFGestureData (void);
244 const SFGestureData
*getSFGestureData (void) const;
246 SFBool
*editSFMouseAsMTouch (void);
247 const SFBool
*getSFMouseAsMTouch (void) const;
249 SFVec2f
*editSFSize (void);
250 const SFVec2f
*getSFSize (void) const;
252 SFVec2f
*editSFPosition (void);
253 const SFVec2f
*getSFPosition (void) const;
255 SFBool
*editSFDecorEnabled (void);
256 const SFBool
*getSFDecorEnabled (void) const;
258 SFInt32
*editSFRequestMajor (void);
259 const SFInt32
*getSFRequestMajor (void) const;
261 SFInt32
*editSFRequestMinor (void);
262 const SFInt32
*getSFRequestMinor (void) const;
264 SFBool
*editSFEnableForwardCompatContext(void);
265 const SFBool
*getSFEnableForwardCompatContext (void) const;
267 SFBool
*editSFEnableDebugContext(void);
268 const SFBool
*getSFEnableDebugContext (void) const;
270 MFString
*editMFIgnoreExtensions(void);
271 const MFString
*getMFIgnoreExtensions (void) const;
273 SFBool
*editSFIgnoreAllExtensions(void);
274 const SFBool
*getSFIgnoreAllExtensions (void) const;
276 SFUInt32
*editSFRequestSamples (void);
277 const SFUInt32
*getSFRequestSamples (void) const;
279 SFBool
*editSFEnableFSAA (void);
280 const SFBool
*getSFEnableFSAA (void) const;
282 SFUInt32
*editSFFsaaHint (void);
283 const SFUInt32
*getSFFsaaHint (void) const;
284 const SFUnrecRenderOptionsPtr
*getSFRenderOptions (void) const;
285 SFUnrecRenderOptionsPtr
*editSFRenderOptions (void);
287 SFUInt32
*editSFPartitionDrawMode(void);
288 const SFUInt32
*getSFPartitionDrawMode (void) const;
290 SFBool
*editSFRegisterMainLoop(void);
291 const SFBool
*getSFRegisterMainLoop (void) const;
293 SFBool
*editSFDumpContainer (void);
294 const SFBool
*getSFDumpContainer (void) const;
296 SFInt32
*editSFWindowState (void);
297 const SFInt32
*getSFWindowState (void) const;
300 CSMViewport
* getViewports (const UInt32 index
) const;
302 MouseData
&editMouseData (void);
303 const MouseData
&getMouseData (void) const;
305 MTouchData
&editMTouchData (void);
306 const MTouchData
&getMTouchData (void) const;
308 MTouchData
&editMTouchDataWC (void);
309 const MTouchData
&getMTouchDataWC (void) const;
311 GestureData
&editGestureData (void);
312 const GestureData
&getGestureData (void) const;
314 bool &editMouseAsMTouch (void);
315 bool getMouseAsMTouch (void) const;
317 Vec2f
&editSize (void);
318 const Vec2f
&getSize (void) const;
320 Vec2f
&editPosition (void);
321 const Vec2f
&getPosition (void) const;
323 bool &editDecorEnabled (void);
324 bool getDecorEnabled (void) const;
326 Int32
&editRequestMajor (void);
327 Int32
getRequestMajor (void) const;
329 Int32
&editRequestMinor (void);
330 Int32
getRequestMinor (void) const;
332 bool &editEnableForwardCompatContext(void);
333 bool getEnableForwardCompatContext (void) const;
335 bool &editEnableDebugContext(void);
336 bool getEnableDebugContext (void) const;
338 MFString ::reference
editIgnoreExtensions(const UInt32 index
);
339 const std::string
&getIgnoreExtensions (const UInt32 index
) const;
341 bool &editIgnoreAllExtensions(void);
342 bool getIgnoreAllExtensions (void) const;
344 UInt32
&editRequestSamples (void);
345 UInt32
getRequestSamples (void) const;
347 bool &editEnableFSAA (void);
348 bool getEnableFSAA (void) const;
350 UInt32
&editFsaaHint (void);
351 UInt32
getFsaaHint (void) const;
353 RenderOptions
* getRenderOptions (void) const;
355 UInt32
&editPartitionDrawMode(void);
356 UInt32
getPartitionDrawMode (void) const;
358 bool &editRegisterMainLoop(void);
359 bool getRegisterMainLoop (void) const;
361 bool &editDumpContainer (void);
362 bool getDumpContainer (void) const;
364 Int32
&editWindowState (void);
365 Int32
getWindowState (void) const;
368 /*---------------------------------------------------------------------*/
369 /*! \name Field Set */
372 void setMouseData (const MouseData
&value
);
373 void setMTouchData (const MTouchData
&value
);
374 void setMTouchDataWC (const MTouchData
&value
);
375 void setGestureData (const GestureData
&value
);
376 void setMouseAsMTouch (const bool value
);
377 void setSize (const Vec2f
&value
);
378 void setPosition (const Vec2f
&value
);
379 void setDecorEnabled (const bool value
);
380 void setRequestMajor (const Int32 value
);
381 void setRequestMinor (const Int32 value
);
382 void setEnableForwardCompatContext(const bool value
);
383 void setEnableDebugContext(const bool value
);
384 void setIgnoreAllExtensions(const bool value
);
385 void setRequestSamples (const UInt32 value
);
386 void setEnableFSAA (const bool value
);
387 void setFsaaHint (const UInt32 value
);
388 void setRenderOptions (RenderOptions
* const value
);
389 void setPartitionDrawMode(const UInt32 value
);
390 void setRegisterMainLoop(const bool value
);
391 void setDumpContainer (const bool value
);
392 void setWindowState (const Int32 value
);
395 /*---------------------------------------------------------------------*/
396 /*! \name Ptr Field Set */
400 /*---------------------------------------------------------------------*/
401 /*! \name Ptr MField Set */
404 void pushToViewports (CSMViewport
* const value
);
405 void assignViewports (const MFUnrecCSMViewportPtr
&value
);
406 void removeFromViewports (UInt32 uiIndex
);
407 void removeObjFromViewports(CSMViewport
* const value
);
408 void clearViewports (void );
411 /*---------------------------------------------------------------------*/
412 /*! \name Binary Access */
415 virtual SizeT
getBinSize (ConstFieldMaskArg whichField
);
416 virtual void copyToBin (BinaryDataHandler
&pMem
,
417 ConstFieldMaskArg whichField
);
418 virtual void copyFromBin(BinaryDataHandler
&pMem
,
419 ConstFieldMaskArg whichField
);
423 /*========================= PROTECTED ===============================*/
427 static TypeObject _type
;
429 static void classDescInserter(TypeObject
&oType
);
430 static const Char8
*getClassname (void );
432 /*---------------------------------------------------------------------*/
436 SFParentFieldContainerPtr _sfParent
;
437 MFUnrecCSMViewportPtr _mfViewports
;
438 SFMouseData _sfMouseData
;
439 SFMTouchData _sfMTouchData
;
440 SFMTouchData _sfMTouchDataWC
;
441 SFGestureData _sfGestureData
;
442 SFBool _sfMouseAsMTouch
;
445 SFBool _sfDecorEnabled
;
446 SFInt32 _sfRequestMajor
;
447 SFInt32 _sfRequestMinor
;
448 SFBool _sfEnableForwardCompatContext
;
449 SFBool _sfEnableDebugContext
;
450 MFString _mfIgnoreExtensions
;
451 SFBool _sfIgnoreAllExtensions
;
452 SFUInt32 _sfRequestSamples
;
453 SFBool _sfEnableFSAA
;
454 SFUInt32 _sfFsaaHint
;
455 SFUnrecRenderOptionsPtr _sfRenderOptions
;
456 SFUInt32 _sfPartitionDrawMode
;
457 SFBool _sfRegisterMainLoop
;
458 SFBool _sfDumpContainer
;
459 SFInt32 _sfWindowState
;
462 /*---------------------------------------------------------------------*/
463 /*! \name Constructors */
467 CSMWindowBase(const CSMWindowBase
&source
);
470 /*---------------------------------------------------------------------*/
471 /*! \name Destructors */
474 virtual ~CSMWindowBase(void);
477 /*---------------------------------------------------------------------*/
478 /*! \name onCreate */
481 void onCreate(const CSMWindow
*source
= NULL
);
484 /*---------------------------------------------------------------------*/
485 /*! \name Parent linking */
488 virtual bool linkParent (FieldContainer
* const pParent
,
489 UInt16
const childFieldId
,
490 UInt16
const parentFieldId
);
491 virtual bool unlinkParent(FieldContainer
* const pParent
,
492 UInt16
const parentFieldId
);
495 /*---------------------------------------------------------------------*/
496 /*! \name Generic Field Access */
499 GetFieldHandlePtr
getHandleParent (void) const;
500 EditFieldHandlePtr
editHandleParent (void);
501 GetFieldHandlePtr
getHandleViewports (void) const;
502 EditFieldHandlePtr
editHandleViewports (void);
503 GetFieldHandlePtr
getHandleMouseData (void) const;
504 EditFieldHandlePtr
editHandleMouseData (void);
505 GetFieldHandlePtr
getHandleMTouchData (void) const;
506 EditFieldHandlePtr
editHandleMTouchData (void);
507 GetFieldHandlePtr
getHandleMTouchDataWC (void) const;
508 EditFieldHandlePtr
editHandleMTouchDataWC (void);
509 GetFieldHandlePtr
getHandleGestureData (void) const;
510 EditFieldHandlePtr
editHandleGestureData (void);
511 GetFieldHandlePtr
getHandleMouseAsMTouch (void) const;
512 EditFieldHandlePtr
editHandleMouseAsMTouch (void);
513 GetFieldHandlePtr
getHandleSize (void) const;
514 EditFieldHandlePtr
editHandleSize (void);
515 GetFieldHandlePtr
getHandlePosition (void) const;
516 EditFieldHandlePtr
editHandlePosition (void);
517 GetFieldHandlePtr
getHandleDecorEnabled (void) const;
518 EditFieldHandlePtr
editHandleDecorEnabled (void);
519 GetFieldHandlePtr
getHandleRequestMajor (void) const;
520 EditFieldHandlePtr
editHandleRequestMajor (void);
521 GetFieldHandlePtr
getHandleRequestMinor (void) const;
522 EditFieldHandlePtr
editHandleRequestMinor (void);
523 GetFieldHandlePtr
getHandleEnableForwardCompatContext (void) const;
524 EditFieldHandlePtr
editHandleEnableForwardCompatContext(void);
525 GetFieldHandlePtr
getHandleEnableDebugContext (void) const;
526 EditFieldHandlePtr
editHandleEnableDebugContext(void);
527 GetFieldHandlePtr
getHandleIgnoreExtensions (void) const;
528 EditFieldHandlePtr
editHandleIgnoreExtensions(void);
529 GetFieldHandlePtr
getHandleIgnoreAllExtensions (void) const;
530 EditFieldHandlePtr
editHandleIgnoreAllExtensions(void);
531 GetFieldHandlePtr
getHandleRequestSamples (void) const;
532 EditFieldHandlePtr
editHandleRequestSamples (void);
533 GetFieldHandlePtr
getHandleEnableFSAA (void) const;
534 EditFieldHandlePtr
editHandleEnableFSAA (void);
535 GetFieldHandlePtr
getHandleFsaaHint (void) const;
536 EditFieldHandlePtr
editHandleFsaaHint (void);
537 GetFieldHandlePtr
getHandleRenderOptions (void) const;
538 EditFieldHandlePtr
editHandleRenderOptions (void);
539 GetFieldHandlePtr
getHandlePartitionDrawMode (void) const;
540 EditFieldHandlePtr
editHandlePartitionDrawMode(void);
541 GetFieldHandlePtr
getHandleRegisterMainLoop (void) const;
542 EditFieldHandlePtr
editHandleRegisterMainLoop(void);
543 GetFieldHandlePtr
getHandleDumpContainer (void) const;
544 EditFieldHandlePtr
editHandleDumpContainer (void);
545 GetFieldHandlePtr
getHandleWindowState (void) const;
546 EditFieldHandlePtr
editHandleWindowState (void);
549 /*---------------------------------------------------------------------*/
553 #ifdef OSG_MT_CPTR_ASPECT
554 virtual void execSyncV( FieldContainer
&oFrom
,
555 ConstFieldMaskArg whichField
,
556 AspectOffsetStore
&oOffsets
,
557 ConstFieldMaskArg syncMode
,
558 const UInt32 uiSyncInfo
);
560 void execSync ( CSMWindowBase
*pFrom
,
561 ConstFieldMaskArg whichField
,
562 AspectOffsetStore
&oOffsets
,
563 ConstFieldMaskArg syncMode
,
564 const UInt32 uiSyncInfo
);
568 /*---------------------------------------------------------------------*/
573 /*---------------------------------------------------------------------*/
574 /*! \name Aspect Create */
578 /*---------------------------------------------------------------------*/
582 /*---------------------------------------------------------------------*/
586 virtual void resolveLinks(void);
589 /*========================== PRIVATE ================================*/
592 /*---------------------------------------------------------------------*/
594 // prohibit default functions (move to 'public' if you need one)
595 void operator =(const CSMWindowBase
&source
);
598 typedef CSMWindowBase
*CSMWindowBaseP
;
602 #endif /* _OSGCSMWINDOWBASE_H_ */