osg::GradientBackground Class Reference
[Backgrounds]

Background clearing with a color gradient. See Background for a description. More...

#include <OSGGradientBackground.h>

Inheritance diagram for osg::GradientBackground:
osg::GradientBackgroundBase osg::Background osg::BackgroundBase osg::AttachmentContainer osg::FieldContainer

List of all members.

Public Types

enum  {
  ColorFieldId = Inherited::NextFieldId, PositionFieldId = ColorFieldId + 1, ClearStencilBitFieldId = PositionFieldId + 1, StyleFieldId = ClearStencilBitFieldId + 1,
  NextFieldId = StyleFieldId + 1
}
typedef GradientBackgroundPtr Ptr
enum  { AttachmentsFieldId = Inherited::NextFieldId, NextFieldId = AttachmentsFieldId + 1 }
enum  { NextFieldId = 1 }
Enum



enum  { VERTICAL = 1, HORIZONTAL = 2 }

Public Member Functions

your_category



void clear (DrawActionBase *, Viewport *)
void addLine (Color3f color, Real32 position)
void clearLines (void)
transformation



virtual void changed (BitVector whichField, UInt32 origin)
dump



virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
FieldContainer Get



virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Field Set



void setClearStencilBit (const Int32 &value)
 Set the value of the GradientBackground::_sfClearStencilBit field.
void setStyle (const UInt32 &value)
 Set the value of the GradientBackground::_sfStyle field.
Binary Access



virtual UInt32 getBinSize (const BitVector &whichField)
virtual void copyToBin (BinaryDataHandler &pMem, const BitVector &whichField)
virtual void copyFromBin (BinaryDataHandler &pMem, const BitVector &whichField)
Copy



virtual FieldContainerPtr shallowCopy (void) const
Handle Attachments



void addAttachment (const AttachmentPtr &fieldContainerP, UInt16 binding=0)
void subAttachment (const AttachmentPtr &fieldContainerP, UInt16 binding=0)
AttachmentPtr findAttachment (UInt32 groupId, UInt16 binding=0)
AttachmentPtr findAttachment (const FieldContainerType &type, UInt16 binding=0)



SFAttachmentMapgetSFAttachments (void)
Get Instance Type Information



UInt32 getTypeId (void) const
UInt16 getGroupId (void) const
const Char8getTypeName (void) const



FieldgetField (UInt32 fieldId)
FieldgetField (const Char8 *fieldName)

Static Public Member Functions

Class Get



static const char * getClassname (void)
Class Get



static FieldContainerTypegetClassType (void)
 access the type of the class
static UInt32 getClassTypeId (void)
 access the numerical type of the class
Construction



static GradientBackgroundPtr create (void)
 create a new instance of the class
static GradientBackgroundPtr createEmpty (void)
 create an empty new instance of the class, do not copy the prototype
Get Class Type Information



static UInt16 getClassGroupId (void)

Static Public Attributes

static const osg::BitVector LineFieldMask
static const osg::BitVector ColorFieldMask
static const osg::BitVector PositionFieldMask
static const osg::BitVector ClearStencilBitFieldMask
static const osg::BitVector StyleFieldMask
static const osg::BitVector MTInfluenceMask
static const BitVector AttachmentsFieldMask
static const BitVector NextFieldMask
CoredNodePtr helper



static const bool isNodeCore = false

Protected Member Functions

Constructors



 GradientBackground (void)
 GradientBackground (const GradientBackground &source)
Destructors



virtual ~GradientBackground (void)
Sync



void executeSyncImpl (GradientBackgroundBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)
Sync



virtual void executeSync (FieldContainer &other, const BitVector &whichField)=0
Pointer



AttachmentContainerPtr getPtr (void)
MT Edit



template<class FieldTypeT >
void beginEditX (const BitVector &whichField, FieldTypeT &field)
template<class FieldTypeT >
void endEditX (const BitVector &whichField, FieldTypeT &field)
MT Construction



void onCreate (const FieldContainer *source=NULL)
void onCreateAspect (const FieldContainer *aspect0, const FieldContainer *source=NULL)
MT Destruction



virtual void onDestroy (void)

Static Protected Member Functions

Create Fieldcontainer



template<class ObjectPtrT >
static void newPtr (ObjectPtrT &result, const typename ObjectPtrT::StoredObjectType *prototypeP)
template<class ObjectPtrT >
static void newPtr (ObjectPtrT &result)

Protected Attributes

Fields



MFColor3f _mfColor
MFReal32 _mfPosition
SFInt32 _sfClearStencilBit
SFUInt32 _sfStyle
Fields



SFAttachmentMap _attachmentMap
Member



UInt32 _shares

Private Types

typedef GradientBackgroundBase Inherited

Private Member Functions

void operator= (const GradientBackground &source)
 prohibit default functions (move to 'public' if needed)

Static Private Member Functions

static void initMethod (void)

Friends

class FieldContainer
class GradientBackgroundBase

Field Get



SFInt32editSFClearStencilBit (void)
 Get the GradientBackground::_sfClearStencilBit field.
const SFInt32getSFClearStencilBit (void) const
 Get the GradientBackground::_sfClearStencilBit field.
SFInt32getSFClearStencilBit (void)
 Get the GradientBackground::_sfClearStencilBit field.
SFUInt32editSFStyle (void)
 Get the GradientBackground::_sfStyle field.
const SFUInt32getSFStyle (void) const
 Get the GradientBackground::_sfStyle field.
SFUInt32getSFStyle (void)
 Get the GradientBackground::_sfStyle field.
Int32editClearStencilBit (void)
 Get the value of the GradientBackground::_sfClearStencilBit field.
const Int32getClearStencilBit (void) const
 Get the value of the GradientBackground::_sfClearStencilBit field.
Int32getClearStencilBit (void)
 Get the value of the GradientBackground::_sfClearStencilBit field.
UInt32editStyle (void)
 Get the value of the GradientBackground::_sfStyle field.
const UInt32getStyle (void) const
 Get the value of the GradientBackground::_sfStyle field.
UInt32getStyle (void)
 Get the value of the GradientBackground::_sfStyle field.
MFColor3feditMFColor (void)
 Get the GradientBackground::_mfColor field.
const MFColor3fgetMFColor (void) const
 Get the GradientBackground::_mfColor field.
MFColor3fgetMFColor (void)
 Get the GradientBackground::_mfColor field.
MFReal32editMFPosition (void)
 Get the GradientBackground::_mfPosition field.
const MFReal32getMFPosition (void) const
 Get the GradientBackground::_mfPosition field.
MFReal32getMFPosition (void)
 Get the GradientBackground::_mfPosition field.
Color3feditColor (UInt32 index)
 Get the value of the index element the GradientBackground::_mfColor field.
const Color3fgetColor (UInt32 index) const
 Get the value of the index element the GradientBackground::_mfColor field.
Color3fgetColor (UInt32 index)
 Get the value of the index element the GradientBackground::_mfColor field.
MFColor3fgetColor (void)
 Get the GradientBackground::_mfColor field.
const MFColor3fgetColor (void) const
 Get the GradientBackground::_mfColor field.
Real32editPosition (UInt32 index)
 Get the value of the index element the GradientBackground::_mfPosition field.
const Real32getPosition (UInt32 index) const
 Get the value of the index element the GradientBackground::_mfPosition field.
Real32getPosition (UInt32 index)
 Get the value of the index element the GradientBackground::_mfPosition field.
MFReal32getPosition (void)
 Get the GradientBackground::_mfPosition field.
const MFReal32getPosition (void) const
 Get the GradientBackground::_mfPosition field.

Detailed Description

A background showing a vertical color gradient, see Gradient Background.

The colors (_mfColor) and positions (_mfPosition) correspond to each other, so both have to have the same number of elements. The addColor() method should be used for defining the gradient, as it ensures that constarint.

Definition at line 59 of file OSGGradientBackground.h.


Member Typedef Documentation

Reimplemented from osg::GradientBackgroundBase.

Definition at line 134 of file OSGGradientBackground.h.

Reimplemented from osg::BackgroundBase.

Definition at line 93 of file OSGGradientBackgroundBase.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
VERTICAL 
HORIZONTAL 

Definition at line 78 of file OSGGradientBackground.h.

00079     {
00080         VERTICAL   = 1,
00081         HORIZONTAL = 2
00082     };

anonymous enum [inherited]
Enumerator:
ColorFieldId 
PositionFieldId 
ClearStencilBitFieldId 
StyleFieldId 
NextFieldId 

Definition at line 95 of file OSGGradientBackgroundBase.h.

00096     {
00097         ColorFieldId           = Inherited::NextFieldId,
00098         PositionFieldId        = ColorFieldId           + 1,
00099         ClearStencilBitFieldId = PositionFieldId        + 1,
00100         StyleFieldId           = ClearStencilBitFieldId + 1,
00101         NextFieldId            = StyleFieldId           + 1
00102     };

anonymous enum [inherited]
Enumerator:
AttachmentsFieldId 
NextFieldId 

Definition at line 78 of file OSGAttachmentContainerImpl.h.

anonymous enum [inherited]
Enumerator:
NextFieldId 

Definition at line 73 of file OSGFieldContainerImpl.h.

00073 { NextFieldId = 1 };


Constructor & Destructor Documentation

GradientBackground::GradientBackground ( void   )  [protected]

Definition at line 102 of file OSGGradientBackground.cpp.

00102                                            :
00103     Inherited()
00104 {
00105 }

GradientBackground::GradientBackground ( const GradientBackground source  )  [protected]

Definition at line 107 of file OSGGradientBackground.cpp.

00107                                                                        :
00108     Inherited(source)
00109 {
00110 }

GradientBackground::~GradientBackground ( void   )  [protected, virtual]

Definition at line 112 of file OSGGradientBackground.cpp.

00113 {
00114 }


Member Function Documentation

static const char* osg::GradientBackground::getClassname ( void   )  [inline, static]

Reimplemented from osg::Background.

Definition at line 71 of file OSGGradientBackground.h.

00071 { return "GradientBackground"; };

void GradientBackground::clear ( DrawActionBase act,
Viewport port 
) [virtual]

Implements osg::Background.

Definition at line 123 of file OSGGradientBackground.cpp.

References osg::GradientBackgroundBase::_mfColor, osg::GradientBackgroundBase::_mfPosition, FWARNING, osg::TileCameraDecoratorBase::getBottom(), osg::DrawActionBase::getCamera(), osg::GradientBackgroundBase::getClearStencilBit(), osg::getCPtr(), osg::CameraDecoratorBase::getDecoratee(), osg::TileCameraDecoratorBase::getFullHeight(), osg::TileCameraDecoratorBase::getFullWidth(), osg::TileCameraDecoratorBase::getLeft(), osg::Viewport::getPixelHeight(), osg::Viewport::getPixelWidth(), osg::TileCameraDecoratorBase::getRight(), osg::GradientBackgroundBase::getStyle(), osg::TileCameraDecoratorBase::getTop(), osg::Color3< ValueTypeT >::getValuesRGB(), HORIZONTAL, osg::MField< FieldTypeT, fieldNameSpace >::size(), and VERTICAL.

00124 {
00125     Int32 bit = getClearStencilBit();
00126 
00127     glClearDepth(1.f);
00128 
00129     if(_mfPosition.size() < 2)
00130     {
00131         Real32 r = 0, g = 0, b = 0;
00132 
00133         if(_mfPosition.size() == 1)
00134         {
00135             Color3f col = _mfColor[0];
00136             col.getValuesRGB(r, g, b);
00137         }
00138 
00139         glClearColor(r, g, b, 1);
00140 
00141         if (bit >= 0)
00142         {
00143             glClearStencil(bit);
00144             glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
00145         }
00146         else
00147         {
00148             glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00149         }
00150     }
00151     else
00152     {
00153         glPushAttrib(GL_POLYGON_BIT | GL_DEPTH_BUFFER_BIT |
00154                      GL_LIGHTING_BIT);
00155 
00156         glDisable(GL_LIGHTING);
00157         glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
00158         glDisable(GL_DEPTH_TEST);
00159         glDisable(GL_COLOR_MATERIAL);
00160 
00161         glMatrixMode(GL_MODELVIEW);
00162         glPushMatrix();
00163         glLoadIdentity();
00164 
00165         glMatrixMode(GL_PROJECTION);
00166         glPushMatrix();
00167         glLoadIdentity();
00168 
00169         UInt32 width  = port->getPixelWidth(),
00170                height = port->getPixelHeight();
00171 
00172         Camera *cP = act->getCamera();
00173         TileCameraDecorator *cdP = dynamic_cast<TileCameraDecorator*>(cP);
00174 
00175         while (cdP != NULL)
00176         {
00177             width  = cdP->getFullWidth()  ? cdP->getFullWidth()  : width;
00178             height = cdP->getFullHeight() ? cdP->getFullHeight() : height;
00179 
00180             cP  = getCPtr(cdP->getDecoratee());
00181             cdP = dynamic_cast<TileCameraDecorator*>(cP);
00182         }
00183 
00184         cP = act->getCamera();
00185         cdP = dynamic_cast<TileCameraDecorator*>(cP);
00186 
00187         if (cdP)
00188         {
00189             Real32 left   = cdP->getLeft(),
00190                    right  = cdP->getRight(),
00191                    top    = cdP->getTop(),
00192                    bottom = cdP->getBottom();
00193 
00194             glOrtho( left , right, bottom, top, 0, 1);
00195         }
00196         else
00197         {
00198             glOrtho(0, 1, 0, 1, 0, 1);
00199         }
00200 
00201         Real32 r1, g1, b1;
00202         UInt32 size = _mfPosition.size();
00203 
00204         glBegin(GL_QUAD_STRIP);
00205 
00206         Real32 pos   = _mfPosition[0];
00207         UInt32 style = getStyle();
00208 
00209         switch(style)
00210         {
00211         case VERTICAL:
00212         {
00213             if(pos > 0)
00214             {
00215                 glColor3f(0.0, 0.0, 0.0);
00216                 glVertex3f(0, 0, 0);
00217                 glVertex3f(1, 0, 0);
00218             }
00219 
00220             for(UInt32 i = 0; i < size; i++)
00221             {
00222                                pos = _mfPosition[i];
00223                 const Color3f &col = _mfColor   [i];
00224 
00225                 glColor3f(col[0], col[1], col[2]);
00226                 glVertex3f(0, pos, 0);
00227                 glVertex3f(1, pos, 0);
00228             }
00229 
00230             if(pos < 1)
00231             {
00232                 glColor3f(0.0, 0.0, 0.0);
00233                 glVertex3f(0, 1, 0);
00234                 glVertex3f(1, 1, 0);
00235             }
00236 
00237             break;
00238         }
00239 
00240         case HORIZONTAL:
00241         {
00242             if(pos > 0)
00243             {
00244                 glColor3f(0.0, 0.0, 0.0);
00245                 glVertex3f(0, 0, 0);
00246                 glVertex3f(0, 1, 0);
00247             }
00248 
00249             for(UInt32 i = 0; i < size; i++)
00250             {
00251                                pos = _mfPosition[i];
00252                 const Color3f &col = _mfColor   [i];
00253 
00254                 glColor3f(col[0], col[1], col[2]);
00255                 glVertex3f(pos, 0, 0);
00256                 glVertex3f(pos, 1, 0);
00257             }
00258 
00259             if(pos < 1)
00260             {
00261                 glColor3f(0.0, 0.0, 0.0);
00262                 glVertex3f(1, 0, 0);
00263                 glVertex3f(1, 1, 0);
00264             }
00265 
00266             break;
00267         }
00268 
00269         default:
00270         {
00271             FWARNING(("GradientBackground: "
00272                       "SFStyle has invalid value [%u].\n", style));
00273             break;
00274         }
00275 
00276         };
00277 
00278         glEnd();
00279 
00280         glPopMatrix();
00281         glMatrixMode(GL_MODELVIEW);
00282         glPopMatrix();
00283 
00284         glPopAttrib();
00285 
00286         if (bit >= 0)
00287         {
00288             glClearStencil(bit);
00289             glClear(GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
00290         }
00291         else
00292         {
00293             glClear(GL_DEPTH_BUFFER_BIT);
00294         }
00295     }
00296 }

void osg::GradientBackground::addLine ( Color3f  color,
Real32  position 
) [inline]
void osg::GradientBackground::clearLines ( void   )  [inline]
void GradientBackground::changed ( BitVector  whichField,
UInt32  origin 
) [virtual]

Reimplemented from osg::Background.

Definition at line 116 of file OSGGradientBackground.cpp.

References osg::Background::changed().

00117 {
00118     Inherited::changed(whichField, origin);
00119 }

void GradientBackground::dump ( UInt32  uiIndent = 0,
const BitVector  bvFlags = 0 
) const [virtual]

Reimplemented from osg::Background.

Definition at line 300 of file OSGGradientBackground.cpp.

References SLOG.

00302 {
00303     SLOG << "Dump GradientBackground NI" << std::endl;
00304 }

void GradientBackground::initMethod ( void   )  [static, private]

Reimplemented from osg::Background.

Definition at line 92 of file OSGGradientBackground.cpp.

00093 {
00094 }

void osg::GradientBackground::operator= ( const GradientBackground source  )  [private]

Reimplemented from osg::GradientBackgroundBase.

osg::FieldContainerType & osg::GradientBackgroundBase::getClassType ( void   )  [inline, static, inherited]

Reimplemented from osg::BackgroundBase.

Definition at line 58 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_type.

Referenced by osg::GradientBackgroundBase::create().

00059 {
00060     return _type; 
00061 } 

osg::UInt32 osg::GradientBackgroundBase::getClassTypeId ( void   )  [inline, static, inherited]

Reimplemented from osg::BackgroundBase.

Definition at line 65 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_type, and osg::TypeBase::getId().

00066 {
00067     return _type.getId(); 
00068 } 

FieldContainerType & osg::GradientBackgroundBase::getType ( void   )  [virtual, inherited]

Reimplemented from osg::BackgroundBase.

Definition at line 139 of file OSGGradientBackgroundBase.cpp.

References osg::GradientBackgroundBase::_type.

00140 {
00141     return _type; 
00142 } 

const FieldContainerType & osg::GradientBackgroundBase::getType ( void   )  const [virtual, inherited]

Reimplemented from osg::BackgroundBase.

Definition at line 144 of file OSGGradientBackgroundBase.cpp.

References osg::GradientBackgroundBase::_type.

00145 {
00146     return _type;
00147 } 

UInt32 osg::GradientBackgroundBase::getContainerSize ( void   )  const [virtual, inherited]

Reimplemented from osg::BackgroundBase.

Definition at line 159 of file OSGGradientBackgroundBase.cpp.

00160 { 
00161     return sizeof(GradientBackground); 
00162 }

SFInt32 * osg::GradientBackgroundBase::editSFClearStencilBit ( void   )  [inline, inherited]

Definition at line 154 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_sfClearStencilBit.

00155 {
00156     return &_sfClearStencilBit;
00157 }

const SFInt32 * osg::GradientBackgroundBase::getSFClearStencilBit ( void   )  const [inline, inherited]

Definition at line 147 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_sfClearStencilBit.

00148 {
00149     return &_sfClearStencilBit;
00150 }

SFInt32 * osg::GradientBackgroundBase::getSFClearStencilBit ( void   )  [inline, inherited]

Definition at line 162 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_sfClearStencilBit.

00163 {
00164     return &_sfClearStencilBit;
00165 }

SFUInt32 * osg::GradientBackgroundBase::editSFStyle ( void   )  [inline, inherited]

Definition at line 177 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_sfStyle.

00178 {
00179     return &_sfStyle;
00180 }

const SFUInt32 * osg::GradientBackgroundBase::getSFStyle ( void   )  const [inline, inherited]

Definition at line 170 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_sfStyle.

00171 {
00172     return &_sfStyle;
00173 }

SFUInt32 * osg::GradientBackgroundBase::getSFStyle ( void   )  [inline, inherited]

Definition at line 185 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_sfStyle.

00186 {
00187     return &_sfStyle;
00188 }

Int32 & osg::GradientBackgroundBase::editClearStencilBit ( void   )  [inline, inherited]
const Int32 & osg::GradientBackgroundBase::getClearStencilBit ( void   )  const [inline, inherited]

Definition at line 201 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_sfClearStencilBit, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by clear().

00202 {
00203     return _sfClearStencilBit.getValue();
00204 }

Int32 & osg::GradientBackgroundBase::getClearStencilBit ( void   )  [inline, inherited]
UInt32 & osg::GradientBackgroundBase::editStyle ( void   )  [inline, inherited]

Definition at line 224 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_sfStyle, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00225 {
00226     return _sfStyle.getValue();
00227 }

const UInt32 & osg::GradientBackgroundBase::getStyle ( void   )  const [inline, inherited]

Definition at line 231 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_sfStyle, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by clear().

00232 {
00233     return _sfStyle.getValue();
00234 }

UInt32 & osg::GradientBackgroundBase::getStyle ( void   )  [inline, inherited]

Definition at line 239 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_sfStyle, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00240 {
00241     return _sfStyle.getValue();
00242 }

void osg::GradientBackgroundBase::setClearStencilBit ( const Int32 value  )  [inline, inherited]
void osg::GradientBackgroundBase::setStyle ( const UInt32 value  )  [inline, inherited]
UInt32 osg::GradientBackgroundBase::getBinSize ( const BitVector whichField  )  [virtual, inherited]

Reimplemented from osg::BackgroundBase.

Definition at line 230 of file OSGGradientBackgroundBase.cpp.

References osg::GradientBackgroundBase::_mfColor, osg::GradientBackgroundBase::_mfPosition, osg::GradientBackgroundBase::_sfClearStencilBit, osg::GradientBackgroundBase::_sfStyle, osg::GradientBackgroundBase::ClearStencilBitFieldMask, osg::GradientBackgroundBase::ColorFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::BackgroundBase::getBinSize(), osg::FieldBits::NoField, osg::GradientBackgroundBase::PositionFieldMask, and osg::GradientBackgroundBase::StyleFieldMask.

00231 {
00232     UInt32 returnValue = Inherited::getBinSize(whichField);
00233 
00234     if(FieldBits::NoField != (ColorFieldMask & whichField))
00235     {
00236         returnValue += _mfColor.getBinSize();
00237     }
00238 
00239     if(FieldBits::NoField != (PositionFieldMask & whichField))
00240     {
00241         returnValue += _mfPosition.getBinSize();
00242     }
00243 
00244     if(FieldBits::NoField != (ClearStencilBitFieldMask & whichField))
00245     {
00246         returnValue += _sfClearStencilBit.getBinSize();
00247     }
00248 
00249     if(FieldBits::NoField != (StyleFieldMask & whichField))
00250     {
00251         returnValue += _sfStyle.getBinSize();
00252     }
00253 
00254 
00255     return returnValue;
00256 }

void osg::GradientBackgroundBase::copyToBin ( BinaryDataHandler pMem,
const BitVector whichField 
) [virtual, inherited]
void osg::GradientBackgroundBase::copyFromBin ( BinaryDataHandler pMem,
const BitVector whichField 
) [virtual, inherited]
GradientBackgroundPtr osg::GradientBackgroundBase::create ( void   )  [inline, static, inherited]

Definition at line 72 of file OSGGradientBackgroundBase.inl.

References osg::AttachmentContainerPtr::dcast(), osg::GradientBackgroundBase::getClassType(), osg::NullFC, and osg::GradientBackgroundBase::shallowCopy().

00073 {
00074     GradientBackgroundPtr fc; 
00075 
00076     if(getClassType().getPrototype() != OSG::NullFC) 
00077     {
00078         fc = GradientBackgroundPtr::dcast(
00079             getClassType().getPrototype()-> shallowCopy()); 
00080     }
00081     
00082     return fc; 
00083 }

GradientBackgroundPtr osg::GradientBackgroundBase::createEmpty ( void   )  [inline, static, inherited]

Definition at line 87 of file OSGGradientBackgroundBase.inl.

References osg::FieldContainer::newPtr().

00088 { 
00089     GradientBackgroundPtr returnValue; 
00090     
00091     newPtr(returnValue); 
00092 
00093     return returnValue; 
00094 }

FieldContainerPtr osg::GradientBackgroundBase::shallowCopy ( void   )  const [virtual, inherited]

Implements osg::FieldContainer.

Definition at line 150 of file OSGGradientBackgroundBase.cpp.

References osg::FieldContainer::newPtr().

Referenced by osg::GradientBackgroundBase::create().

00151 { 
00152     GradientBackgroundPtr returnValue; 
00153 
00154     newPtr(returnValue, dynamic_cast<const GradientBackground *>(this)); 
00155 
00156     return returnValue; 
00157 }

MFColor3f * osg::GradientBackgroundBase::editMFColor ( void   )  [inline, protected, inherited]

Definition at line 108 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfColor.

00109 {
00110     return &_mfColor;
00111 }

const MFColor3f * osg::GradientBackgroundBase::getMFColor ( void   )  const [inline, protected, inherited]

Definition at line 101 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfColor.

00102 {
00103     return &_mfColor;
00104 }

MFColor3f * osg::GradientBackgroundBase::getMFColor ( void   )  [inline, protected, inherited]

Definition at line 116 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfColor.

00117 {
00118     return &_mfColor;
00119 }

MFReal32 * osg::GradientBackgroundBase::editMFPosition ( void   )  [inline, protected, inherited]

Definition at line 131 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfPosition.

00132 {
00133     return &_mfPosition;
00134 }

const MFReal32 * osg::GradientBackgroundBase::getMFPosition ( void   )  const [inline, protected, inherited]

Definition at line 124 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfPosition.

00125 {
00126     return &_mfPosition;
00127 }

MFReal32 * osg::GradientBackgroundBase::getMFPosition ( void   )  [inline, protected, inherited]

Definition at line 139 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfPosition.

00140 {
00141     return &_mfPosition;
00142 }

Color3f & osg::GradientBackgroundBase::editColor ( UInt32  index  )  [inline, protected, inherited]

Definition at line 255 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfColor.

00256 {
00257     return _mfColor[index];
00258 }

const Color3f & osg::GradientBackgroundBase::getColor ( UInt32  index  )  const [inline, protected, inherited]

Definition at line 262 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfColor.

00263 {
00264     return _mfColor[index];
00265 }

Color3f & osg::GradientBackgroundBase::getColor ( UInt32  index  )  [inline, protected, inherited]

Definition at line 270 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfColor.

00271 {
00272     return _mfColor[index];
00273 }

MFColor3f & osg::GradientBackgroundBase::getColor ( void   )  [inline, protected, inherited]

Definition at line 277 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfColor.

00278 {
00279     return _mfColor;
00280 }

const MFColor3f & osg::GradientBackgroundBase::getColor ( void   )  const [inline, protected, inherited]

Definition at line 284 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfColor.

00285 {
00286     return _mfColor;
00287 }

Real32 & osg::GradientBackgroundBase::editPosition ( UInt32  index  )  [inline, protected, inherited]

Definition at line 293 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfPosition.

00294 {
00295     return _mfPosition[index];
00296 }

const Real32 & osg::GradientBackgroundBase::getPosition ( UInt32  index  )  const [inline, protected, inherited]

Definition at line 300 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfPosition.

00301 {
00302     return _mfPosition[index];
00303 }

Real32 & osg::GradientBackgroundBase::getPosition ( UInt32  index  )  [inline, protected, inherited]

Definition at line 308 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfPosition.

00309 {
00310     return _mfPosition[index];
00311 }

MFReal32 & osg::GradientBackgroundBase::getPosition ( void   )  [inline, protected, inherited]

Definition at line 315 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfPosition.

00316 {
00317     return _mfPosition;
00318 }

const MFReal32 & osg::GradientBackgroundBase::getPosition ( void   )  const [inline, protected, inherited]

Definition at line 322 of file OSGGradientBackgroundBase.inl.

References osg::GradientBackgroundBase::_mfPosition.

00323 {
00324     return _mfPosition;
00325 }

void osg::GradientBackgroundBase::executeSyncImpl ( GradientBackgroundBase pOther,
const BitVector whichField 
) [protected, inherited]
void osg::GradientBackgroundBase::executeSync ( FieldContainer other,
const BitVector whichField 
) [protected, virtual, inherited]

Reimplemented from osg::BackgroundBase.

Definition at line 166 of file OSGGradientBackgroundBase.cpp.

References osg::GradientBackgroundBase::executeSyncImpl().

00168 {
00169     this->executeSyncImpl(static_cast<GradientBackgroundBase *>(&other),
00170                           whichField);
00171 }

virtual void osg::FieldContainer::executeSync ( FieldContainer other,
const BitVector whichField 
) [protected, pure virtual, inherited]
void AttachmentContainer::addAttachment ( const AttachmentPtr fieldContainerP,
UInt16  binding = 0 
) [inherited]

Definition at line 84 of file OSGAttachmentContainer.cpp.

References osg::addRefCP(), osg::beginEditCP(), osg::endEditCP(), osg::NullFC, and osg::subRefCP().

Referenced by osg::AttachmentContainer::AttachmentContainer(), osg::Node::onCreate(), and osg::Image::setAttachmentField().

00086 {
00087     UInt32 key;
00088 
00089     if(fieldContainerP == NullFC)
00090         return;
00091 
00092     key = (UInt32 (fieldContainerP->getGroupId()) << 16) | binding;
00093 
00094     addRefCP(fieldContainerP);
00095 
00096     beginEditCP(fieldContainerP, Attachment::ParentsFieldMask);
00097     {
00098         fieldContainerP->addParent(getPtr());
00099     }
00100     endEditCP  (fieldContainerP, Attachment::ParentsFieldMask);
00101 
00102     AttachmentMap::iterator fcI = _attachmentMap.getValue().find(key);
00103 
00104     if(fcI != _attachmentMap.getValue().end())
00105     {
00106         beginEditCP((*fcI).second, Attachment::ParentsFieldMask);
00107         {
00108             (*fcI).second->subParent(getPtr());
00109         }
00110         endEditCP  ((*fcI).second, Attachment::ParentsFieldMask);
00111 
00112         subRefCP((*fcI).second);
00113 
00114         (*fcI).second = fieldContainerP;
00115     }
00116     else
00117     {
00118         _attachmentMap.getValue()[key] = fieldContainerP;
00119     }
00120 }

void AttachmentContainer::subAttachment ( const AttachmentPtr fieldContainerP,
UInt16  binding = 0 
) [inherited]

Definition at line 122 of file OSGAttachmentContainer.cpp.

References osg::AttachmentContainer::_attachmentMap, osg::beginEditCP(), osg::endEditCP(), osg::AttachmentContainer::getPtr(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::NullFC, osg::Attachment::ParentsFieldMask, and osg::subRefCP().

00124 {
00125     UInt32 key;
00126 
00127     AttachmentMap::iterator fcI;
00128 
00129     if(fieldContainerP == NullFC)
00130         return;
00131 
00132     key = (UInt32(fieldContainerP->getGroupId()) << 16) | binding;
00133 
00134     fcI = _attachmentMap.getValue().find(key);
00135 
00136     if(fcI != _attachmentMap.getValue().end())
00137     {
00138         beginEditCP(fieldContainerP, Attachment::ParentsFieldMask);
00139         {
00140             (*fcI).second->subParent(getPtr());
00141         }
00142         endEditCP  (fieldContainerP, Attachment::ParentsFieldMask);
00143 
00144         subRefCP((*fcI).second);
00145 
00146         _attachmentMap.getValue().erase(fcI);
00147     }
00148 }

AttachmentPtr AttachmentContainer::findAttachment ( UInt32  groupId,
UInt16  binding = 0 
) [inherited]

Definition at line 150 of file OSGAttachmentContainer.cpp.

References osg::AttachmentContainer::_attachmentMap, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), and osg::NullFC.

Referenced by osg::Image::findAttachmentField(), and osg::Image::setAttachmentField().

00152 {
00153     UInt32 key = (UInt32(groupId) << 16) | binding;
00154 
00155     AttachmentMap::iterator fcI = _attachmentMap.getValue().find(key);
00156 
00157     if(fcI == _attachmentMap.getValue().end())
00158     {
00159         return NullFC;
00160     }
00161     else
00162     {
00163         return (*fcI).second;
00164     }
00165 }

AttachmentPtr osg::AttachmentContainer::findAttachment ( const FieldContainerType type,
UInt16  binding = 0 
) [inline, inherited]

Definition at line 57 of file OSGAttachmentContainerImpl.inl.

00060 {
00061     return findAttachment(type.getGroupId(), binding);
00062 }

SFAttachmentMap * AttachmentContainer::getSFAttachments ( void   )  [inherited]

Field Access

Definition at line 170 of file OSGAttachmentContainer.cpp.

References osg::AttachmentContainer::_attachmentMap.

00171 {
00172     return &_attachmentMap;
00173 }

AttachmentContainerPtr AttachmentContainer::getPtr ( void   )  [protected, inherited]
UInt16 osg::FieldContainer::getClassGroupId ( void   )  [inline, static, inherited]

Definition at line 71 of file OSGFieldContainerImpl.inl.

References osg::FieldContainer::_type, and osg::FieldContainerType::getGroupId().

00072 {
00073     return _type.getGroupId();
00074 }

UInt32 osg::FieldContainer::getTypeId ( void   )  const [inline, inherited]

Definition at line 77 of file OSGFieldContainerImpl.inl.

References osg::TypeBase::getId(), and osg::FieldContainer::getType().

Referenced by osg::TextureChunk::changeFrom(), and osg::CubeTextureChunk::changeFrom().

00078 {
00079     return getType().getId();
00080 }

UInt16 osg::FieldContainer::getGroupId ( void   )  const [inline, inherited]

Definition at line 83 of file OSGFieldContainerImpl.inl.

References osg::FieldContainerType::getGroupId(), and osg::FieldContainer::getType().

Referenced by osg::Image::setAttachmentField().

00084 {
00085     return getType().getGroupId();
00086 }

const Char8 * osg::FieldContainer::getTypeName ( void   )  const [inline, inherited]

Definition at line 89 of file OSGFieldContainerImpl.inl.

References osg::TypeBase::getCName(), and osg::FieldContainer::getType().

00090 {
00091     return getType().getCName();
00092 }

Field * osg::FieldContainer::getField ( UInt32  fieldId  )  [inline, inherited]

Generic Field Access

Definition at line 95 of file OSGFieldContainerImpl.inl.

References osg::FieldDescription::getField(), osg::FieldContainerType::getFieldDescription(), and osg::FieldContainer::getType().

Referenced by osg::QFCItem::expand(), osg::VRMLShapeDesc::getFieldAndDesc(), osg::QFieldViewBase::getFieldPtr(), osg::QFieldEditorBase::getFieldPtr(), osg::getParentsField(), and osg::QFCItem::setup().

00096 {
00097     const FieldDescription *desc = getType().getFieldDescription(fieldId);
00098 
00099     return desc ? desc->getField(*this) : NULL;
00100 }

Field * osg::FieldContainer::getField ( const Char8 fieldName  )  [inline, inherited]

Generic Field Access

Definition at line 103 of file OSGFieldContainerImpl.inl.

References osg::FieldContainerType::findFieldDescription(), osg::FieldDescription::getField(), and osg::FieldContainer::getType().

00104 {
00105     const FieldDescription *desc =getType().findFieldDescription(fieldName);
00106 
00107     return desc ? desc->getField(*this) : NULL;
00108 }

template<class ObjectPtrT >
void osg::FieldContainer::newPtr ( ObjectPtrT &  result,
const typename ObjectPtrT::StoredObjectType *  prototypeP 
) [inline, static, protected, inherited]

Definition at line 138 of file OSGFieldContainerImpl.inl.

References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().

Referenced by osg::XWindowBase::createEmpty(), osg::WIN32WindowBase::createEmpty(), osg::ViewportBase::createEmpty(), osg::VertexProgramChunkBase::createEmpty(), osg::TwoSidedLightingChunkBase::createEmpty(), osg::TransformChunkBase::createEmpty(), osg::TransformBase::createEmpty(), osg::TileCameraDecoratorBase::createEmpty(), osg::TextureTransformChunkBase::createEmpty(), osg::TextureGrabForegroundBase::createEmpty(), osg::TextureGrabBackgroundBase::createEmpty(), osg::TextureChunkBase::createEmpty(), osg::TextureBackgroundBase::createEmpty(), osg::TexGenChunkBase::createEmpty(), osg::SwitchMaterialBase::createEmpty(), osg::SwitchBase::createEmpty(), osg::SurfaceBase::createEmpty(), osg::StringAttributeMapBase::createEmpty(), osg::StereoBufferViewportBase::createEmpty(), osg::StencilChunkBase::createEmpty(), osg::StateSortingGroupBase::createEmpty(), osg::StateBase::createEmpty(), osg::SpotLightBase::createEmpty(), osg::SortFirstWindowBase::createEmpty(), osg::SolidBackgroundBase::createEmpty(), osg::SlicesBase::createEmpty(), osg::SkyBackgroundBase::createEmpty(), osg::SimpleTexturedMaterialBase::createEmpty(), osg::SimpleStatisticsForegroundBase::createEmpty(), osg::SimpleMaterialBase::createEmpty(), osg::SHLParameterChunkBase::createEmpty(), osg::SHLChunkBase::createEmpty(), osg::ShearedStereoCameraDecoratorBase::createEmpty(), osg::ShaderParameterVec4fBase::createEmpty(), osg::ShaderParameterVec3fBase::createEmpty(), osg::ShaderParameterVec2fBase::createEmpty(), osg::ShaderParameterStringBase::createEmpty(), osg::ShaderParameterRealBase::createEmpty(), osg::ShaderParameterMVec4fBase::createEmpty(), osg::ShaderParameterMVec3fBase::createEmpty(), osg::ShaderParameterMVec2fBase::createEmpty(), osg::ShaderParameterMRealBase::createEmpty(), osg::ShaderParameterMMatrixBase::createEmpty(), osg::ShaderParameterMIntBase::createEmpty(), osg::ShaderParameterMatrixBase::createEmpty(), osg::ShaderParameterIntBase::createEmpty(), osg::ShaderParameterBoolBase::createEmpty(), osg::ShadeModelChunkBase::createEmpty(), osg::ScreenGroupBase::createEmpty(), osg::SClipPlaneChunkBase::createEmpty(), osg::ResolutionDisplayFilterBase::createEmpty(), osg::RenderOptionsBase::createEmpty(), osg::RegisterCombinersChunkBase::createEmpty(), osg::QTWindowBase::createEmpty(), osg::ProxyGroupBase::createEmpty(), osg::ProjectionCameraDecoratorBase::createEmpty(), osg::PolygonForegroundBase::createEmpty(), osg::PolygonChunkBase::createEmpty(), osg::PolygonBackgroundBase::createEmpty(), osg::PointLightBase::createEmpty(), osg::PointChunkBase::createEmpty(), osg::PhongMaterialBase::createEmpty(), osg::PerspectiveCameraBase::createEmpty(), osg::PassiveWindowBase::createEmpty(), osg::PassiveViewportBase::createEmpty(), osg::PassiveBackgroundBase::createEmpty(), osg::ParticlesBase::createEmpty(), osg::OrthographicCameraBase::createEmpty(), osg::OffsetCameraDecoratorBase::createEmpty(), osg::OffCenterPerspectiveCameraBase::createEmpty(), osg::MultiSwitchBase::createEmpty(), osg::MultiPassMaterialBase::createEmpty(), osg::MultiDisplayWindowBase::createEmpty(), osg::MatrixCameraDecoratorBase::createEmpty(), osg::MatrixCameraBase::createEmpty(), osg::MaterialPoolBase::createEmpty(), osg::MaterialGroupBase::createEmpty(), osg::MaterialChunkBase::createEmpty(), osg::LogicOpChunkBase::createEmpty(), osg::LineChunkBase::createEmpty(), osg::LightModelChunkBase::createEmpty(), osg::LightEnvBase::createEmpty(), osg::LightChunkBase::createEmpty(), osg::InverseTransformBase::createEmpty(), osg::InlineBase::createEmpty(), osg::ImageForegroundBase::createEmpty(), osg::ImageBase::createEmpty(), osg::ImageBackgroundBase::createEmpty(), osg::GroupBase::createEmpty(), osg::GraphicStatisticsForegroundBase::createEmpty(), osg::GradientBackgroundBase::createEmpty(), osg::GrabForegroundBase::createEmpty(), osg::GLUTWindowBase::createEmpty(), osg::GeometryBase::createEmpty(), osg::FresnelMaterialBase::createEmpty(), osg::FragmentProgramChunkBase::createEmpty(), osg::FogChunkBase::createEmpty(), osg::FogBase::createEmpty(), osg::FileGrabForegroundBase::createEmpty(), osg::FCPtrAttributeMapBase::createEmpty(), osg::FBOViewportBase::createEmpty(), osg::FatBorderChunkBase::createEmpty(), osg::DVRVolumeTextureBase::createEmpty(), osg::DVRVolumeBase::createEmpty(), osg::DVRSimpleShaderBase::createEmpty(), osg::DVRSimpleLUTShaderBase::createEmpty(), osg::DVRMtexLUTShaderBase::createEmpty(), osg::DVRLookupTableBase::createEmpty(), osg::DVRIsoSurfaceBase::createEmpty(), osg::DVRIsoShaderBase::createEmpty(), osg::DVRGeometryBase::createEmpty(), osg::DVRClipObjectsBase::createEmpty(), osg::DVRClipGeometryBase::createEmpty(), osg::DVRAppearanceBase::createEmpty(), osg::DistortionDisplayFilterBase::createEmpty(), osg::DistanceLODBase::createEmpty(), osg::DisplayFilterForegroundBase::createEmpty(), osg::DisplayCalibrationBase::createEmpty(), osg::DirectionalLightBase::createEmpty(), osg::DepthClearBackgroundBase::createEmpty(), osg::DepthChunkBase::createEmpty(), osg::CubeTextureChunkBase::createEmpty(), osg::ComponentTransformBase::createEmpty(), osg::ColorMaskChunkBase::createEmpty(), osg::ColorDisplayFilterBase::createEmpty(), osg::ColorBufferViewportBase::createEmpty(), osg::ClusterWindowBase::createEmpty(), osg::ClipPlaneChunkBase::createEmpty(), osg::ClipPlaneBase::createEmpty(), osg::ChunkMaterialBase::createEmpty(), osg::BlendChunkBase::createEmpty(), osg::BillboardBase::createEmpty(), osg::XWindowBase::shallowCopy(), osg::WIN32WindowBase::shallowCopy(), osg::ViewportBase::shallowCopy(), osg::VertexProgramChunkBase::shallowCopy(), osg::TwoSidedLightingChunkBase::shallowCopy(), osg::TransformChunkBase::shallowCopy(), osg::TransformBase::shallowCopy(), osg::TileCameraDecoratorBase::shallowCopy(), osg::TextureTransformChunkBase::shallowCopy(), osg::TextureGrabForegroundBase::shallowCopy(), osg::TextureGrabBackgroundBase::shallowCopy(), osg::TextureChunkBase::shallowCopy(), osg::TextureBackgroundBase::shallowCopy(), osg::TexGenChunkBase::shallowCopy(), osg::SwitchMaterialBase::shallowCopy(), osg::SwitchBase::shallowCopy(), osg::SurfaceBase::shallowCopy(), osg::StringAttributeMapBase::shallowCopy(), osg::StereoBufferViewportBase::shallowCopy(), osg::StencilChunkBase::shallowCopy(), osg::StateSortingGroupBase::shallowCopy(), osg::StateBase::shallowCopy(), osg::SpotLightBase::shallowCopy(), osg::SortFirstWindowBase::shallowCopy(), osg::SolidBackgroundBase::shallowCopy(), osg::SlicesBase::shallowCopy(), osg::SkyBackgroundBase::shallowCopy(), osg::SimpleTexturedMaterialBase::shallowCopy(), osg::SimpleStatisticsForegroundBase::shallowCopy(), osg::SimpleMaterialBase::shallowCopy(), osg::SHLParameterChunkBase::shallowCopy(), osg::SHLChunkBase::shallowCopy(), osg::ShearedStereoCameraDecoratorBase::shallowCopy(), osg::ShaderParameterVec4fBase::shallowCopy(), osg::ShaderParameterVec3fBase::shallowCopy(), osg::ShaderParameterVec2fBase::shallowCopy(), osg::ShaderParameterStringBase::shallowCopy(), osg::ShaderParameterRealBase::shallowCopy(), osg::ShaderParameterMVec4fBase::shallowCopy(), osg::ShaderParameterMVec3fBase::shallowCopy(), osg::ShaderParameterMVec2fBase::shallowCopy(), osg::ShaderParameterMRealBase::shallowCopy(), osg::ShaderParameterMMatrixBase::shallowCopy(), osg::ShaderParameterMIntBase::shallowCopy(), osg::ShaderParameterMatrixBase::shallowCopy(), osg::ShaderParameterIntBase::shallowCopy(), osg::ShaderParameterBoolBase::shallowCopy(), osg::ShadeModelChunkBase::shallowCopy(), osg::ScreenGroupBase::shallowCopy(), osg::SClipPlaneChunkBase::shallowCopy(), osg::ResolutionDisplayFilterBase::shallowCopy(), osg::RenderOptionsBase::shallowCopy(), osg::RegisterCombinersChunkBase::shallowCopy(), osg::QTWindowBase::shallowCopy(), osg::ProxyGroupBase::shallowCopy(), osg::ProjectionCameraDecoratorBase::shallowCopy(), osg::PolygonForegroundBase::shallowCopy(), osg::PolygonChunkBase::shallowCopy(), osg::PolygonBackgroundBase::shallowCopy(), osg::PointLightBase::shallowCopy(), osg::PointChunkBase::shallowCopy(), osg::PhongMaterialBase::shallowCopy(), osg::PerspectiveCameraBase::shallowCopy(), osg::PassiveWindowBase::shallowCopy(), osg::PassiveViewportBase::shallowCopy(), osg::PassiveBackgroundBase::shallowCopy(), osg::ParticlesBase::shallowCopy(), osg::OrthographicCameraBase::shallowCopy(), osg::OffsetCameraDecoratorBase::shallowCopy(), osg::OffCenterPerspectiveCameraBase::shallowCopy(), osg::MultiSwitchBase::shallowCopy(), osg::MultiPassMaterialBase::shallowCopy(), osg::MultiDisplayWindowBase::shallowCopy(), osg::MatrixCameraDecoratorBase::shallowCopy(), osg::MatrixCameraBase::shallowCopy(), osg::MaterialPoolBase::shallowCopy(), osg::MaterialGroupBase::shallowCopy(), osg::MaterialChunkBase::shallowCopy(), osg::LogicOpChunkBase::shallowCopy(), osg::LineChunkBase::shallowCopy(), osg::LightModelChunkBase::shallowCopy(), osg::LightEnvBase::shallowCopy(), osg::LightChunkBase::shallowCopy(), osg::InverseTransformBase::shallowCopy(), osg::InlineBase::shallowCopy(), osg::ImageForegroundBase::shallowCopy(), osg::ImageBase::shallowCopy(), osg::ImageBackgroundBase::shallowCopy(), osg::GroupBase::shallowCopy(), osg::GraphicStatisticsForegroundBase::shallowCopy(), osg::GradientBackgroundBase::shallowCopy(), osg::GrabForegroundBase::shallowCopy(), osg::GLUTWindowBase::shallowCopy(), osg::GeometryBase::shallowCopy(), osg::FresnelMaterialBase::shallowCopy(), osg::FragmentProgramChunkBase::shallowCopy(), osg::FogChunkBase::shallowCopy(), osg::FogBase::shallowCopy(), osg::FileGrabForegroundBase::shallowCopy(), osg::FCPtrAttributeMapBase::shallowCopy(), osg::FBOViewportBase::shallowCopy(), osg::FatBorderChunkBase::shallowCopy(), osg::DVRVolumeTextureBase::shallowCopy(), osg::DVRVolumeBase::shallowCopy(), osg::DVRSimpleShaderBase::shallowCopy(), osg::DVRSimpleLUTShaderBase::shallowCopy(), osg::DVRMtexLUTShaderBase::shallowCopy(), osg::DVRLookupTableBase::shallowCopy(), osg::DVRIsoSurfaceBase::shallowCopy(), osg::DVRIsoShaderBase::shallowCopy(), osg::DVRGeometryBase::shallowCopy(), osg::DVRClipObjectsBase::shallowCopy(), osg::DVRClipGeometryBase::shallowCopy(), osg::DVRAppearanceBase::shallowCopy(), osg::DistortionDisplayFilterBase::shallowCopy(), osg::DistanceLODBase::shallowCopy(), osg::DisplayFilterForegroundBase::shallowCopy(), osg::DisplayCalibrationBase::shallowCopy(), osg::DirectionalLightBase::shallowCopy(), osg::DepthClearBackgroundBase::shallowCopy(), osg::DepthChunkBase::shallowCopy(), osg::CubeTextureChunkBase::shallowCopy(), osg::ComponentTransformBase::shallowCopy(), osg::ColorMaskChunkBase::shallowCopy(), osg::ColorDisplayFilterBase::shallowCopy(), osg::ColorBufferViewportBase::shallowCopy(), osg::ClusterWindowBase::shallowCopy(), osg::ClipPlaneChunkBase::shallowCopy(), osg::ClipPlaneBase::shallowCopy(), osg::ChunkMaterialBase::shallowCopy(), osg::BlendChunkBase::shallowCopy(), and osg::BillboardBase::shallowCopy().

00141 {
00142     typedef typename ObjectPtrT::StoredObjectType ObjectType;
00143     
00144     UInt8 *pTmp;
00145     
00146     result._containerSize = sizeof(ObjectType);
00147     
00148     pTmp        = 
00149         static_cast<UInt8 *>(operator new(
00150             sizeof(Int32)      + // ReferenceCount
00151             sizeof(UInt32)     + // ContainerId
00152             sizeof(ObjectType) * ThreadManager::getNumAspects()));
00153     
00154     *(reinterpret_cast<Int32 *>(pTmp)) = 0;
00155     
00156     pTmp += sizeof(Int32);
00157     
00158     result._storeP = (pTmp + sizeof(UInt32));
00159 
00160 #ifdef OSG_DEBUG_FCPTR
00161     result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP);
00162 #endif
00163 
00164     *(reinterpret_cast<UInt32 *>(pTmp)) = 
00165         FieldContainerFactory::the()->registerFieldContainer(result);
00166 
00167 #ifdef OSG_INVALID_PTR_CHECK
00168     result._id = *(reinterpret_cast<UInt32 *>(pTmp));
00169 #endif
00170 
00171     Thread::getCurrentChangeList()->addCreated(
00172         *(reinterpret_cast<UInt32 *>(pTmp)));
00173     
00174     pTmp += sizeof(UInt32);
00175     
00176     ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp);
00177 
00178     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00179     {
00180         pTmp = 
00181             reinterpret_cast<UInt8 *>(new (pTmp) ObjectType(*prototypeP));
00182         
00183         pTmp += sizeof(ObjectType);
00184     }
00185     
00186     result->onCreate(prototypeP);
00187 
00188     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00189     {
00190         aObject[i].onCreateAspect(aObject, prototypeP);
00191     }
00192 
00193 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM)
00194 
00195     fprintf(stderr, "GV_MEM_FC_DBG : (%u) cc (%p|%u)\n", 
00196             Thread::getAspect(),
00197             result._storeP,
00198 //            ObjectType::getClassType().getCName(),
00199             ObjectType::getClassType().getId());
00200 #endif
00201 
00202 #ifdef OSG_DEBUG_TYPED_FCPTR
00203     result.updateTypedStore();
00204 #endif
00205 }

template<class ObjectPtrT >
void osg::FieldContainer::newPtr ( ObjectPtrT &  result  )  [inline, static, protected, inherited]

Definition at line 208 of file OSGFieldContainerImpl.inl.

References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().

00209 {
00210     typedef typename ObjectPtrT::StoredObjectType ObjectType;
00211     
00212     UInt8 *pTmp;
00213     
00214     result._containerSize = sizeof(ObjectType);
00215     
00216     pTmp        =             
00217         static_cast<UInt8 *>(operator new(
00218             sizeof(Int32)      + // ReferenceCount
00219             sizeof(UInt32)     + // ContainerId
00220             sizeof(ObjectType) * ThreadManager::getNumAspects()));
00221     
00222     *(reinterpret_cast<Int32 *>(pTmp)) = 0;
00223     
00224     pTmp  += sizeof(Int32);
00225     
00226     result._storeP = (pTmp + sizeof(UInt32));
00227     
00228 #ifdef OSG_DEBUG_FCPTR
00229     result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP);
00230 #endif
00231 
00232     *(reinterpret_cast<UInt32 *>(pTmp)) = 
00233         FieldContainerFactory::the()->registerFieldContainer(result);
00234 
00235 #ifdef OSG_INVALID_PTR_CHECK
00236     result._id = *(reinterpret_cast<UInt32 *>(pTmp));
00237 #endif
00238 
00239     Thread::getCurrentChangeList()->addCreated(
00240         *(reinterpret_cast<UInt32 *>(pTmp)));
00241     
00242     pTmp += sizeof(UInt32);
00243     
00244     ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp);
00245 
00246     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00247     {
00248         pTmp = reinterpret_cast<UInt8 *>(new (pTmp) ObjectType());
00249         
00250         pTmp += sizeof(ObjectType);
00251     }
00252     
00253     result->onCreate();
00254     
00255     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00256     {
00257         aObject[i].onCreateAspect(aObject);
00258     }
00259 
00260 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM)
00261     fprintf(stderr, "GV_MEM_FC_DBG : (%u) c (%p|%u)\n", 
00262             Thread::getAspect(),
00263             result._storeP,
00264 //            ObjectType::getClassType().getCName(),
00265             ObjectType::getClassType().getId());
00266 #endif
00267     
00268 #ifdef OSG_DEBUG_TYPED_FCPTR
00269     result.updateTypedStore();
00270 #endif
00271 }

template<class FieldTypeT >
void osg::FieldContainer::beginEditX ( const BitVector whichField,
FieldTypeT &  field 
) [inline, protected, inherited]

Definition at line 293 of file OSGFieldContainerImpl.inl.

00294 {
00295 //    fieldR.beginEdit();
00296 }

template<class FieldTypeT >
void osg::FieldContainer::endEditX ( const BitVector whichField,
FieldTypeT &  field 
) [inline, protected, inherited]

Definition at line 299 of file OSGFieldContainerImpl.inl.

References osg::endEditCP().

00300 {
00301     FieldContainerPtr tmpPtr(this);
00302     endEditCP(tmpPtr, whichField);
00303 }

void osg::FieldContainer::onCreate ( const FieldContainer source = NULL  )  [inline, protected, inherited]
void osg::FieldContainer::onCreateAspect ( const FieldContainer aspect0,
const FieldContainer source = NULL 
) [inline, protected, inherited]

Reimplemented in osg::Window.

Definition at line 331 of file OSGFieldContainerImpl.inl.

00333 {
00334 }

void FieldContainer::onDestroy ( void   )  [protected, virtual, inherited]

Friends And Related Function Documentation

friend class FieldContainer [friend]

Reimplemented from osg::GradientBackgroundBase.

Definition at line 136 of file OSGGradientBackground.h.

friend class GradientBackgroundBase [friend]

Definition at line 137 of file OSGGradientBackground.h.


Member Data Documentation

Initial value:
 
    (Inherited::MTInfluenceMask) | 
    (static_cast<BitVector>(0x0) << Inherited::NextFieldId)

Reimplemented from osg::BackgroundBase.

Definition at line 110 of file OSGGradientBackgroundBase.h.

const BitVector osg::FieldContainer::NextFieldMask [static, inherited]
Initial value:
 
                    (TypeTraits<BitVector>::One << NextFieldId)

Definition at line 75 of file OSGFieldContainerImpl.h.

const bool osg::FieldContainer::isNodeCore = false [static, inherited]

Reimplemented in osg::NodeCore.

Definition at line 181 of file OSGFieldContainerImpl.h.

UInt32 osg::FieldContainer::_shares [protected, inherited]

Definition at line 199 of file OSGFieldContainerImpl.h.


The documentation for this class was generated from the following files:

Generated on 8 Feb 2010 for OpenSG by  doxygen 1.6.1