PageRenderTime 168ms CodeModel.GetById 40ms app.highlight 95ms RepoModel.GetById 26ms app.codeStats 0ms

/Source/System/Image/WS/OSGImageBase.h

https://github.com/msteners/OpenSGDevMaster_Toolbox
C++ Header | 652 lines | 381 code | 126 blank | 145 comment | 0 complexity | e36615c32cffa938c36cdcf786882b15 MD5 | raw file
  1/*---------------------------------------------------------------------------*\
  2 *                                OpenSG                                     *
  3 *                                                                           *
  4 *                                                                           *
  5 *               Copyright (C) 2000-2006 by the OpenSG Forum                 *
  6 *                                                                           *
  7 *                            www.opensg.org                                 *
  8 *                                                                           *
  9 *   contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de          *
 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\*---------------------------------------------------------------------------*/
 38
 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 Image
 49 **                                                                         **
 50 *****************************************************************************
 51\*****************************************************************************/
 52
 53
 54#ifndef _OSGIMAGEBASE_H_
 55#define _OSGIMAGEBASE_H_
 56#ifdef __sgi
 57#pragma once
 58#endif
 59
 60
 61#include "OSGConfig.h"
 62#include "OSGSystemDef.h"
 63
 64//#include "OSGBaseTypes.h"
 65
 66#include "OSGAttachmentContainer.h" // Parent
 67
 68#include "OSGFieldContainerFields.h"    // Parents type
 69#include "OSGSysFields.h"               // Dimension type
 70#include "OSGBaseFields.h"              // FrameDelay type
 71
 72#include "OSGImageFields.h"
 73
 74OSG_BEGIN_NAMESPACE
 75
 76class Image;
 77
 78//! \brief Image Base Class.
 79
 80class OSG_SYSTEM_DLLMAPPING ImageBase : public AttachmentContainer
 81{
 82  public:
 83
 84    typedef AttachmentContainer Inherited;
 85    typedef AttachmentContainer ParentContainer;
 86
 87    typedef Inherited::TypeObject TypeObject;
 88    typedef TypeObject::InitPhase InitPhase;
 89
 90    OSG_GEN_INTERNALPTR(Image);
 91
 92    /*==========================  PUBLIC  =================================*/
 93
 94  public:
 95
 96    enum
 97    {
 98        ParentsFieldId = Inherited::NextFieldId,
 99        DimensionFieldId = ParentsFieldId + 1,
100        WidthFieldId = DimensionFieldId + 1,
101        HeightFieldId = WidthFieldId + 1,
102        DepthFieldId = HeightFieldId + 1,
103        BppFieldId = DepthFieldId + 1,
104        MipMapCountFieldId = BppFieldId + 1,
105        FrameCountFieldId = MipMapCountFieldId + 1,
106        FrameDelayFieldId = FrameCountFieldId + 1,
107        PixelFormatFieldId = FrameDelayFieldId + 1,
108        PixelFieldId = PixelFormatFieldId + 1,
109        FrameSizeFieldId = PixelFieldId + 1,
110        NameFieldId = FrameSizeFieldId + 1,
111        DataTypeFieldId = NameFieldId + 1,
112        ComponentSizeFieldId = DataTypeFieldId + 1,
113        SideCountFieldId = ComponentSizeFieldId + 1,
114        SideSizeFieldId = SideCountFieldId + 1,
115        ForceCompressedDataFieldId = SideSizeFieldId + 1,
116        ForceAlphaChannelFieldId = ForceCompressedDataFieldId + 1,
117        ForceColorChannelFieldId = ForceAlphaChannelFieldId + 1,
118        ForceAlphaBinaryFieldId = ForceColorChannelFieldId + 1,
119        ResXFieldId = ForceAlphaBinaryFieldId + 1,
120        ResYFieldId = ResXFieldId + 1,
121        ResUnitFieldId = ResYFieldId + 1,
122        ClearOnLoadFieldId = ResUnitFieldId + 1,
123        NextFieldId = ClearOnLoadFieldId + 1
124    };
125
126    static const OSG::BitVector ParentsFieldMask =
127        (TypeTraits<BitVector>::One << ParentsFieldId);
128    static const OSG::BitVector DimensionFieldMask =
129        (TypeTraits<BitVector>::One << DimensionFieldId);
130    static const OSG::BitVector WidthFieldMask =
131        (TypeTraits<BitVector>::One << WidthFieldId);
132    static const OSG::BitVector HeightFieldMask =
133        (TypeTraits<BitVector>::One << HeightFieldId);
134    static const OSG::BitVector DepthFieldMask =
135        (TypeTraits<BitVector>::One << DepthFieldId);
136    static const OSG::BitVector BppFieldMask =
137        (TypeTraits<BitVector>::One << BppFieldId);
138    static const OSG::BitVector MipMapCountFieldMask =
139        (TypeTraits<BitVector>::One << MipMapCountFieldId);
140    static const OSG::BitVector FrameCountFieldMask =
141        (TypeTraits<BitVector>::One << FrameCountFieldId);
142    static const OSG::BitVector FrameDelayFieldMask =
143        (TypeTraits<BitVector>::One << FrameDelayFieldId);
144    static const OSG::BitVector PixelFormatFieldMask =
145        (TypeTraits<BitVector>::One << PixelFormatFieldId);
146    static const OSG::BitVector PixelFieldMask =
147        (TypeTraits<BitVector>::One << PixelFieldId);
148    static const OSG::BitVector FrameSizeFieldMask =
149        (TypeTraits<BitVector>::One << FrameSizeFieldId);
150    static const OSG::BitVector NameFieldMask =
151        (TypeTraits<BitVector>::One << NameFieldId);
152    static const OSG::BitVector DataTypeFieldMask =
153        (TypeTraits<BitVector>::One << DataTypeFieldId);
154    static const OSG::BitVector ComponentSizeFieldMask =
155        (TypeTraits<BitVector>::One << ComponentSizeFieldId);
156    static const OSG::BitVector SideCountFieldMask =
157        (TypeTraits<BitVector>::One << SideCountFieldId);
158    static const OSG::BitVector SideSizeFieldMask =
159        (TypeTraits<BitVector>::One << SideSizeFieldId);
160    static const OSG::BitVector ForceCompressedDataFieldMask =
161        (TypeTraits<BitVector>::One << ForceCompressedDataFieldId);
162    static const OSG::BitVector ForceAlphaChannelFieldMask =
163        (TypeTraits<BitVector>::One << ForceAlphaChannelFieldId);
164    static const OSG::BitVector ForceColorChannelFieldMask =
165        (TypeTraits<BitVector>::One << ForceColorChannelFieldId);
166    static const OSG::BitVector ForceAlphaBinaryFieldMask =
167        (TypeTraits<BitVector>::One << ForceAlphaBinaryFieldId);
168    static const OSG::BitVector ResXFieldMask =
169        (TypeTraits<BitVector>::One << ResXFieldId);
170    static const OSG::BitVector ResYFieldMask =
171        (TypeTraits<BitVector>::One << ResYFieldId);
172    static const OSG::BitVector ResUnitFieldMask =
173        (TypeTraits<BitVector>::One << ResUnitFieldId);
174    static const OSG::BitVector ClearOnLoadFieldMask =
175        (TypeTraits<BitVector>::One << ClearOnLoadFieldId);
176    static const OSG::BitVector NextFieldMask =
177        (TypeTraits<BitVector>::One << NextFieldId);
178        
179    typedef MFParentFieldContainerPtr MFParentsType;
180    typedef SFInt32           SFDimensionType;
181    typedef SFInt32           SFWidthType;
182    typedef SFInt32           SFHeightType;
183    typedef SFInt32           SFDepthType;
184    typedef SFInt32           SFBppType;
185    typedef SFInt32           SFMipMapCountType;
186    typedef SFInt32           SFFrameCountType;
187    typedef SFTime            SFFrameDelayType;
188    typedef SFUInt32          SFPixelFormatType;
189    typedef MFUInt8           MFPixelType;
190    typedef SFInt32           SFFrameSizeType;
191    typedef SFString          SFNameType;
192    typedef SFInt32           SFDataTypeType;
193    typedef SFInt32           SFComponentSizeType;
194    typedef SFInt32           SFSideCountType;
195    typedef SFInt32           SFSideSizeType;
196    typedef SFBool            SFForceCompressedDataType;
197    typedef SFBool            SFForceAlphaChannelType;
198    typedef SFBool            SFForceColorChannelType;
199    typedef SFBool            SFForceAlphaBinaryType;
200    typedef SFReal32          SFResXType;
201    typedef SFReal32          SFResYType;
202    typedef SFUInt16          SFResUnitType;
203    typedef SFBool            SFClearOnLoadType;
204
205    /*---------------------------------------------------------------------*/
206    /*! \name                    Class Get                                 */
207    /*! \{                                                                 */
208
209    static FieldContainerType &getClassType   (void);
210    static UInt32              getClassTypeId (void);
211    static UInt16              getClassGroupId(void);
212
213    /*! \}                                                                 */
214    /*---------------------------------------------------------------------*/
215    /*! \name                FieldContainer Get                            */
216    /*! \{                                                                 */
217
218    virtual       FieldContainerType &getType         (void);
219    virtual const FieldContainerType &getType         (void) const;
220
221    virtual       UInt32              getContainerSize(void) const;
222
223    /*! \}                                                                 */
224    /*---------------------------------------------------------------------*/
225    /*! \name                    Field Get                                 */
226    /*! \{                                                                 */
227
228
229                  SFInt32             *editSFDimension      (void);
230            const SFInt32             *getSFDimension       (void) const;
231
232                  SFInt32             *editSFWidth          (void);
233            const SFInt32             *getSFWidth           (void) const;
234
235                  SFInt32             *editSFHeight         (void);
236            const SFInt32             *getSFHeight          (void) const;
237
238                  SFInt32             *editSFDepth          (void);
239            const SFInt32             *getSFDepth           (void) const;
240
241                  SFInt32             *editSFBpp            (void);
242            const SFInt32             *getSFBpp             (void) const;
243
244                  SFInt32             *editSFMipMapCount    (void);
245            const SFInt32             *getSFMipMapCount     (void) const;
246
247                  SFInt32             *editSFFrameCount     (void);
248            const SFInt32             *getSFFrameCount      (void) const;
249
250                  SFTime              *editSFFrameDelay     (void);
251            const SFTime              *getSFFrameDelay      (void) const;
252
253                  SFUInt32            *editSFPixelFormat    (void);
254            const SFUInt32            *getSFPixelFormat     (void) const;
255
256                  MFUInt8             *editMFPixel          (void);
257            const MFUInt8             *getMFPixel           (void) const;
258
259                  SFInt32             *editSFFrameSize      (void);
260            const SFInt32             *getSFFrameSize       (void) const;
261
262                  SFString            *editSFName           (void);
263            const SFString            *getSFName            (void) const;
264
265                  SFInt32             *editSFDataType       (void);
266            const SFInt32             *getSFDataType        (void) const;
267
268                  SFInt32             *editSFSideCount      (void);
269            const SFInt32             *getSFSideCount       (void) const;
270
271                  SFInt32             *editSFSideSize       (void);
272            const SFInt32             *getSFSideSize        (void) const;
273
274                  SFBool              *editSFForceCompressedData(void);
275            const SFBool              *getSFForceCompressedData (void) const;
276
277                  SFBool              *editSFForceAlphaChannel(void);
278            const SFBool              *getSFForceAlphaChannel (void) const;
279
280                  SFBool              *editSFForceColorChannel(void);
281            const SFBool              *getSFForceColorChannel (void) const;
282
283                  SFBool              *editSFForceAlphaBinary(void);
284            const SFBool              *getSFForceAlphaBinary (void) const;
285
286                  SFReal32            *editSFResX           (void);
287            const SFReal32            *getSFResX            (void) const;
288
289                  SFReal32            *editSFResY           (void);
290            const SFReal32            *getSFResY            (void) const;
291
292                  SFUInt16            *editSFResUnit        (void);
293            const SFUInt16            *getSFResUnit         (void) const;
294
295                  SFBool              *editSFClearOnLoad    (void);
296            const SFBool              *getSFClearOnLoad     (void) const;
297
298
299                  Int32               &editDimension      (void);
300                  Int32                getDimension       (void) const;
301
302                  Int32               &editWidth          (void);
303                  Int32                getWidth           (void) const;
304
305                  Int32               &editHeight         (void);
306                  Int32                getHeight          (void) const;
307
308                  Int32               &editDepth          (void);
309                  Int32                getDepth           (void) const;
310
311                  Int32               &editBpp            (void);
312                  Int32                getBpp             (void) const;
313
314                  Int32               &editMipMapCount    (void);
315                  Int32                getMipMapCount     (void) const;
316
317                  Int32               &editFrameCount     (void);
318                  Int32                getFrameCount      (void) const;
319
320                  Time                &editFrameDelay     (void);
321            const Time                &getFrameDelay      (void) const;
322
323                  UInt32              &editPixelFormat    (void);
324                  UInt32               getPixelFormat     (void) const;
325
326                  UInt8               &editPixel          (const UInt32 index);
327                  UInt8                getPixel           (const UInt32 index) const;
328
329                  Int32               &editFrameSize      (void);
330                  Int32                getFrameSize       (void) const;
331
332                  std::string         &editName           (void);
333            const std::string         &getName            (void) const;
334
335                  Int32               &editDataType       (void);
336                  Int32                getDataType        (void) const;
337
338                  Int32               &editSideCount      (void);
339                  Int32                getSideCount       (void) const;
340
341                  Int32               &editSideSize       (void);
342                  Int32                getSideSize        (void) const;
343
344                  bool                &editForceCompressedData(void);
345                  bool                 getForceCompressedData (void) const;
346
347                  bool                &editForceAlphaChannel(void);
348                  bool                 getForceAlphaChannel (void) const;
349
350                  bool                &editForceColorChannel(void);
351                  bool                 getForceColorChannel (void) const;
352
353                  bool                &editForceAlphaBinary(void);
354                  bool                 getForceAlphaBinary (void) const;
355
356                  Real32              &editResX           (void);
357                  Real32               getResX            (void) const;
358
359                  Real32              &editResY           (void);
360                  Real32               getResY            (void) const;
361
362                  UInt16              &editResUnit        (void);
363                  UInt16               getResUnit         (void) const;
364
365                  bool                &editClearOnLoad    (void);
366                  bool                 getClearOnLoad     (void) const;
367
368    /*! \}                                                                 */
369    /*---------------------------------------------------------------------*/
370    /*! \name                    Field Set                                 */
371    /*! \{                                                                 */
372
373            void setDimension      (const Int32 value);
374            void setWidth          (const Int32 value);
375            void setHeight         (const Int32 value);
376            void setDepth          (const Int32 value);
377            void setBpp            (const Int32 value);
378            void setMipMapCount    (const Int32 value);
379            void setFrameCount     (const Int32 value);
380            void setFrameDelay     (const Time &value);
381            void setPixelFormat    (const UInt32 value);
382            void setFrameSize      (const Int32 value);
383            void setName           (const std::string &value);
384            void setDataType       (const Int32 value);
385            void setSideCount      (const Int32 value);
386            void setSideSize       (const Int32 value);
387            void setForceCompressedData(const bool value);
388            void setForceAlphaChannel(const bool value);
389            void setForceColorChannel(const bool value);
390            void setForceAlphaBinary(const bool value);
391            void setResX           (const Real32 value);
392            void setResY           (const Real32 value);
393            void setResUnit        (const UInt16 value);
394            void setClearOnLoad    (const bool value);
395
396    /*! \}                                                                 */
397    /*---------------------------------------------------------------------*/
398    /*! \name                Ptr MField Set                                */
399    /*! \{                                                                 */
400
401    /*! \}                                                                 */
402    /*---------------------------------------------------------------------*/
403    /*! \name                   Binary Access                              */
404    /*! \{                                                                 */
405
406    virtual UInt32 getBinSize (ConstFieldMaskArg  whichField);
407    virtual void   copyToBin  (BinaryDataHandler &pMem,
408                               ConstFieldMaskArg  whichField);
409    virtual void   copyFromBin(BinaryDataHandler &pMem,
410                               ConstFieldMaskArg  whichField);
411
412
413    /*! \}                                                                 */
414    /*---------------------------------------------------------------------*/
415    /*! \name                   Construction                               */
416    /*! \{                                                                 */
417
418    static  ImageTransitPtr  create          (void);
419    static  Image           *createEmpty     (void);
420
421    static  ImageTransitPtr  createLocal     (
422                                               BitVector bFlags = FCLocal::All);
423
424    static  Image            *createEmptyLocal(
425                                              BitVector bFlags = FCLocal::All);
426
427    static  ImageTransitPtr  createDependent  (BitVector bFlags);
428
429    /*! \}                                                                 */
430    /*---------------------------------------------------------------------*/
431    /*! \name                       Copy                                   */
432    /*! \{                                                                 */
433
434    virtual FieldContainerTransitPtr shallowCopy     (void) const;
435    virtual FieldContainerTransitPtr shallowCopyLocal(
436                                       BitVector bFlags = FCLocal::All) const;
437    virtual FieldContainerTransitPtr shallowCopyDependent(
438                                                      BitVector bFlags) const;
439
440    /*! \}                                                                 */
441    /*=========================  PROTECTED  ===============================*/
442
443  protected:
444
445    static TypeObject _type;
446
447    static       void   classDescInserter(TypeObject &oType);
448    static const Char8 *getClassname     (void             );
449
450    /*---------------------------------------------------------------------*/
451    /*! \name                      Fields                                  */
452    /*! \{                                                                 */
453
454    MFParentFieldContainerPtr _mfParents;
455    SFInt32           _sfDimension;
456    SFInt32           _sfWidth;
457    SFInt32           _sfHeight;
458    SFInt32           _sfDepth;
459    SFInt32           _sfBpp;
460    SFInt32           _sfMipMapCount;
461    SFInt32           _sfFrameCount;
462    SFTime            _sfFrameDelay;
463    SFUInt32          _sfPixelFormat;
464    MFUInt8           _mfPixel;
465    SFInt32           _sfFrameSize;
466    SFString          _sfName;
467    SFInt32           _sfDataType;
468    SFInt32           _sfComponentSize;
469    SFInt32           _sfSideCount;
470    SFInt32           _sfSideSize;
471    SFBool            _sfForceCompressedData;
472    SFBool            _sfForceAlphaChannel;
473    SFBool            _sfForceColorChannel;
474    SFBool            _sfForceAlphaBinary;
475    SFReal32          _sfResX;
476    SFReal32          _sfResY;
477    SFUInt16          _sfResUnit;
478    SFBool            _sfClearOnLoad;
479
480    /*! \}                                                                 */
481    /*---------------------------------------------------------------------*/
482    /*! \name                   Constructors                               */
483    /*! \{                                                                 */
484
485    ImageBase(void);
486    ImageBase(const ImageBase &source);
487
488    /*! \}                                                                 */
489    /*---------------------------------------------------------------------*/
490    /*! \name                   Destructors                                */
491    /*! \{                                                                 */
492
493    virtual ~ImageBase(void);
494
495    /*! \}                                                                 */
496    /*---------------------------------------------------------------------*/
497    /*! \name                     onCreate                                */
498    /*! \{                                                                 */
499
500
501    /*! \}                                                                 */
502    /*---------------------------------------------------------------------*/
503    /*! \name Parent linking                                               */
504    /*! \{                                                                 */
505
506    virtual bool linkParent  (FieldContainer * const pParent,
507                              UInt16           const childFieldId,
508                              UInt16           const parentFieldId);
509    virtual bool unlinkParent(FieldContainer * const pParent,
510                              UInt16           const parentFieldId);
511
512    /*! \}                                                                 */
513    /*---------------------------------------------------------------------*/
514    /*! \name                    Generic Field Access                      */
515    /*! \{                                                                 */
516
517    GetFieldHandlePtr  getHandleParents         (void) const;
518    EditFieldHandlePtr editHandleParents        (void);
519    GetFieldHandlePtr  getHandleDimension       (void) const;
520    EditFieldHandlePtr editHandleDimension      (void);
521    GetFieldHandlePtr  getHandleWidth           (void) const;
522    EditFieldHandlePtr editHandleWidth          (void);
523    GetFieldHandlePtr  getHandleHeight          (void) const;
524    EditFieldHandlePtr editHandleHeight         (void);
525    GetFieldHandlePtr  getHandleDepth           (void) const;
526    EditFieldHandlePtr editHandleDepth          (void);
527    GetFieldHandlePtr  getHandleBpp             (void) const;
528    EditFieldHandlePtr editHandleBpp            (void);
529    GetFieldHandlePtr  getHandleMipMapCount     (void) const;
530    EditFieldHandlePtr editHandleMipMapCount    (void);
531    GetFieldHandlePtr  getHandleFrameCount      (void) const;
532    EditFieldHandlePtr editHandleFrameCount     (void);
533    GetFieldHandlePtr  getHandleFrameDelay      (void) const;
534    EditFieldHandlePtr editHandleFrameDelay     (void);
535    GetFieldHandlePtr  getHandlePixelFormat     (void) const;
536    EditFieldHandlePtr editHandlePixelFormat    (void);
537    GetFieldHandlePtr  getHandlePixel           (void) const;
538    EditFieldHandlePtr editHandlePixel          (void);
539    GetFieldHandlePtr  getHandleFrameSize       (void) const;
540    EditFieldHandlePtr editHandleFrameSize      (void);
541    GetFieldHandlePtr  getHandleName            (void) const;
542    EditFieldHandlePtr editHandleName           (void);
543    GetFieldHandlePtr  getHandleDataType        (void) const;
544    EditFieldHandlePtr editHandleDataType       (void);
545    GetFieldHandlePtr  getHandleComponentSize   (void) const;
546    EditFieldHandlePtr editHandleComponentSize  (void);
547    GetFieldHandlePtr  getHandleSideCount       (void) const;
548    EditFieldHandlePtr editHandleSideCount      (void);
549    GetFieldHandlePtr  getHandleSideSize        (void) const;
550    EditFieldHandlePtr editHandleSideSize       (void);
551    GetFieldHandlePtr  getHandleForceCompressedData (void) const;
552    EditFieldHandlePtr editHandleForceCompressedData(void);
553    GetFieldHandlePtr  getHandleForceAlphaChannel (void) const;
554    EditFieldHandlePtr editHandleForceAlphaChannel(void);
555    GetFieldHandlePtr  getHandleForceColorChannel (void) const;
556    EditFieldHandlePtr editHandleForceColorChannel(void);
557    GetFieldHandlePtr  getHandleForceAlphaBinary (void) const;
558    EditFieldHandlePtr editHandleForceAlphaBinary(void);
559    GetFieldHandlePtr  getHandleResX            (void) const;
560    EditFieldHandlePtr editHandleResX           (void);
561    GetFieldHandlePtr  getHandleResY            (void) const;
562    EditFieldHandlePtr editHandleResY           (void);
563    GetFieldHandlePtr  getHandleResUnit         (void) const;
564    EditFieldHandlePtr editHandleResUnit        (void);
565    GetFieldHandlePtr  getHandleClearOnLoad     (void) const;
566    EditFieldHandlePtr editHandleClearOnLoad    (void);
567
568    /*! \}                                                                 */
569    /*---------------------------------------------------------------------*/
570    /*! \name                    Field Get                                 */
571    /*! \{                                                                 */
572
573
574                  SFInt32             *editSFComponentSize  (void);
575            const SFInt32             *getSFComponentSize   (void) const;
576
577
578                  Int32               &editComponentSize  (void);
579                  Int32                getComponentSize   (void) const;
580
581    /*! \}                                                                 */
582    /*---------------------------------------------------------------------*/
583    /*! \name                    Field Set                                 */
584    /*! \{                                                                 */
585
586            void setComponentSize  (const Int32 value);
587
588    /*! \}                                                                 */
589    /*---------------------------------------------------------------------*/
590    /*! \name                Ptr MField Set                                */
591    /*! \{                                                                 */
592
593    /*! \}                                                                 */
594    /*---------------------------------------------------------------------*/
595    /*! \name                       Sync                                   */
596    /*! \{                                                                 */
597
598#ifdef OSG_MT_CPTR_ASPECT
599    virtual void execSyncV(      FieldContainer    &oFrom,
600                                 ConstFieldMaskArg  whichField,
601                                 AspectOffsetStore &oOffsets,
602                                 ConstFieldMaskArg  syncMode  ,
603                           const UInt32             uiSyncInfo);
604
605            void execSync (      ImageBase *pFrom,
606                                 ConstFieldMaskArg  whichField,
607                                 AspectOffsetStore &oOffsets,
608                                 ConstFieldMaskArg  syncMode  ,
609                           const UInt32             uiSyncInfo);
610#endif
611
612    /*! \}                                                                 */
613    /*---------------------------------------------------------------------*/
614    /*! \name                       Edit                                   */
615    /*! \{                                                                 */
616
617    /*! \}                                                                 */
618    /*---------------------------------------------------------------------*/
619    /*! \name                     Aspect Create                            */
620    /*! \{                                                                 */
621
622#ifdef OSG_MT_CPTR_ASPECT
623    virtual FieldContainer *createAspectCopy(
624                                    const FieldContainer *pRefAspect) const;
625#endif
626
627    /*! \}                                                                 */
628    /*---------------------------------------------------------------------*/
629    /*! \name                       Edit                                   */
630    /*! \{                                                                 */
631    /*! \}                                                                 */
632    /*---------------------------------------------------------------------*/
633    /*! \name                       Sync                                   */
634    /*! \{                                                                 */
635
636    virtual void resolveLinks(void);
637
638    /*! \}                                                                 */
639    /*==========================  PRIVATE  ================================*/
640
641  private:
642    /*---------------------------------------------------------------------*/
643
644    // prohibit default functions (move to 'public' if you need one)
645    void operator =(const ImageBase &source);
646};
647
648typedef ImageBase *ImageBaseP;
649
650OSG_END_NAMESPACE
651
652#endif /* _OSGIMAGEBASE_H_ */