osg::PolygonBackground Class Reference

PolygonBackground class. See PageSystemPolygonBackground for a description. More...

#include <OSGPolygonBackground.h>

Inheritance diagram for osg::PolygonBackground:

osg::PolygonBackgroundBase osg::Background osg::BackgroundBase osg::AttachmentContainer osg::FieldContainer

List of all members.

Public Types

enum  {
  MaterialFieldId = Inherited::NextFieldId, TexCoordsFieldId = MaterialFieldId + 1, PositionsFieldId = TexCoordsFieldId + 1, NormalizedXFieldId = PositionsFieldId + 1,
  NormalizedYFieldId = NormalizedXFieldId + 1, AspectHeightFieldId = NormalizedYFieldId + 1, AspectWidthFieldId = AspectHeightFieldId + 1, ScaleFieldId = AspectWidthFieldId + 1,
  ClearStencilBitFieldId = ScaleFieldId + 1, CleanupFieldId = ClearStencilBitFieldId + 1, TileFieldId = CleanupFieldId + 1, NextFieldId = TileFieldId + 1
}
typedef PolygonBackgroundPtr Ptr
enum  { AttachmentsFieldId = Inherited::NextFieldId, NextFieldId = AttachmentsFieldId + 1 }
enum  { NextFieldId = 1 }

Public Member Functions

Clear


virtual void clear (DrawActionBase *act, Viewport *port)
Sync


virtual void changed (BitVector whichField, UInt32 origin)
Output


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


Real32 mapCoordinate (Real32 val, Real32 max, bool norm)
FieldContainer Get


virtual FieldContainerType & getType (void)
virtual const FieldContainerType & getType (void) const
virtual UInt32 getContainerSize (void) const
Field Get


SFMaterialPtr * getSFMaterial (void)
 Get the PolygonBackground::_sfMaterial field.
MFVec3f * getMFTexCoords (void)
 Get the PolygonBackground::_mfTexCoords field.
MFPnt2f * getMFPositions (void)
 Get the PolygonBackground::_mfPositions field.
SFBool * getSFNormalizedX (void)
 Get the PolygonBackground::_sfNormalizedX field.
SFBool * getSFNormalizedY (void)
 Get the PolygonBackground::_sfNormalizedY field.
SFUInt16 * getSFAspectHeight (void)
 Get the PolygonBackground::_sfAspectHeight field.
SFUInt16 * getSFAspectWidth (void)
 Get the PolygonBackground::_sfAspectWidth field.
SFReal32 * getSFScale (void)
 Get the PolygonBackground::_sfScale field.
SFInt32 * getSFClearStencilBit (void)
 Get the PolygonBackground::_sfClearStencilBit field.
SFBool * getSFCleanup (void)
 Get the PolygonBackground::_sfCleanup field.
SFBool * getSFTile (void)
 Get the PolygonBackground::_sfTile field.
MaterialPtr & getMaterial (void)
 Get the value of the PolygonBackground::_sfMaterial field.
const MaterialPtr & getMaterial (void) const
 Get the value of the PolygonBackground::_sfMaterial field.
bool & getNormalizedX (void)
 Get the value of the PolygonBackground::_sfNormalizedX field.
const bool & getNormalizedX (void) const
 Get the value of the PolygonBackground::_sfNormalizedX field.
bool & getNormalizedY (void)
 Get the value of the PolygonBackground::_sfNormalizedY field.
const bool & getNormalizedY (void) const
 Get the value of the PolygonBackground::_sfNormalizedY field.
UInt16 & getAspectHeight (void)
 Get the value of the PolygonBackground::_sfAspectHeight field.
const UInt16 & getAspectHeight (void) const
 Get the value of the PolygonBackground::_sfAspectHeight field.
UInt16 & getAspectWidth (void)
 Get the value of the PolygonBackground::_sfAspectWidth field.
const UInt16 & getAspectWidth (void) const
 Get the value of the PolygonBackground::_sfAspectWidth field.
Real32 & getScale (void)
 Get the value of the PolygonBackground::_sfScale field.
const Real32 & getScale (void) const
 Get the value of the PolygonBackground::_sfScale field.
Int32 & getClearStencilBit (void)
 Get the value of the PolygonBackground::_sfClearStencilBit field.
const Int32 & getClearStencilBit (void) const
 Get the value of the PolygonBackground::_sfClearStencilBit field.
bool & getCleanup (void)
 Get the value of the PolygonBackground::_sfCleanup field.
const bool & getCleanup (void) const
 Get the value of the PolygonBackground::_sfCleanup field.
bool & getTile (void)
 Get the value of the PolygonBackground::_sfTile field.
const bool & getTile (void) const
 Get the value of the PolygonBackground::_sfTile field.
Vec3f & getTexCoords (const UInt32 index)
 Get the value of the index element the PolygonBackground::_mfTexCoords field.
MFVec3f & getTexCoords (void)
 Get the PolygonBackground::_mfTexCoords field.
const MFVec3f & getTexCoords (void) const
 Get the PolygonBackground::_mfTexCoords field.
Pnt2f & getPositions (const UInt32 index)
 Get the value of the index element the PolygonBackground::_mfPositions field.
MFPnt2f & getPositions (void)
 Get the PolygonBackground::_mfPositions field.
const MFPnt2f & getPositions (void) const
 Get the PolygonBackground::_mfPositions field.
Field Set


void setMaterial (const MaterialPtr &value)
 Set the value of the PolygonBackground::_sfMaterial field.
void setNormalizedX (const bool &value)
 Set the value of the PolygonBackground::_sfNormalizedX field.
void setNormalizedY (const bool &value)
 Set the value of the PolygonBackground::_sfNormalizedY field.
void setAspectHeight (const UInt16 &value)
 Set the value of the PolygonBackground::_sfAspectHeight field.
void setAspectWidth (const UInt16 &value)
 Set the value of the PolygonBackground::_sfAspectWidth field.
void setScale (const Real32 &value)
 Set the value of the PolygonBackground::_sfScale field.
void setClearStencilBit (const Int32 &value)
 Set the value of the PolygonBackground::_sfClearStencilBit field.
void setCleanup (const bool &value)
 Set the value of the PolygonBackground::_sfCleanup field.
void setTile (const bool &value)
 Set the value of the PolygonBackground::_sfTile 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)


SFAttachmentMap * getSFAttachments (void)
Get Instance Type Information


UInt32 getTypeId (void) const
UInt16 getGroupId (void) const
const Char8 * getTypeName (void) const


Field * getField (UInt32 fieldId)
Field * getField (const Char8 *fieldName)

Static Public Member Functions

Class Get


static FieldContainerType & getClassType (void)
 access the type of the class
static UInt32 getClassTypeId (void)
 access the numerical type of the class
Construction


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


static const Char8 * getClassname (void)
Get Class Type Information


static UInt16 getClassGroupId (void)

Static Public Attributes

static const osg::BitVector MaterialFieldMask
static const osg::BitVector TexCoordsFieldMask
static const osg::BitVector PositionsFieldMask
static const osg::BitVector NormalizedXFieldMask
static const osg::BitVector NormalizedYFieldMask
static const osg::BitVector AspectHeightFieldMask
static const osg::BitVector AspectWidthFieldMask
static const osg::BitVector ScaleFieldMask
static const osg::BitVector ClearStencilBitFieldMask
static const osg::BitVector CleanupFieldMask
static const osg::BitVector TileFieldMask
static const osg::BitVector MTInfluenceMask
static const BitVector AttachmentsFieldMask
static const BitVector NextFieldMask
CoredNodePtr helper


static const bool isNodeCore = false

Protected Member Functions

Constructors


 PolygonBackground (void)
 PolygonBackground (const PolygonBackground &source)
Destructors


virtual ~PolygonBackground (void)
Sync


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


void executeSyncImpl (BackgroundBase *pOther, const BitVector &whichField)
Sync


void executeSyncImpl (AttachmentContainer *pOther, const BitVector &whichField)
Sync


void executeSyncImpl (FieldContainer *pOther, const BitVector &whichField)
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


SFMaterialPtr _sfMaterial
MFVec3f _mfTexCoords
MFPnt2f _mfPositions
SFBool _sfNormalizedX
SFBool _sfNormalizedY
SFUInt16 _sfAspectHeight
SFUInt16 _sfAspectWidth
SFReal32 _sfScale
SFInt32 _sfClearStencilBit
SFBool _sfCleanup
SFBool _sfTile
Fields


SFAttachmentMap _attachmentMap
Member


UInt32 _shares

Private Types

typedef PolygonBackgroundBase Inherited

Private Member Functions

void operator= (const PolygonBackground &source)

Static Private Member Functions

static void initMethod (void)

Friends

class FieldContainer
class PolygonBackgroundBase


Detailed Description

A Background that renders a single polygon using the specified material.

Definition at line 56 of file OSGPolygonBackground.h.


Member Typedef Documentation

Reimplemented from osg::PolygonBackgroundBase.

Definition at line 60 of file OSGPolygonBackground.h.

Reimplemented from osg::BackgroundBase.

Definition at line 100 of file OSGPolygonBackgroundBase.h.


Member Enumeration Documentation

anonymous enum [inherited]

Enumerator:
MaterialFieldId 
TexCoordsFieldId 
PositionsFieldId 
NormalizedXFieldId 
NormalizedYFieldId 
AspectHeightFieldId 
AspectWidthFieldId 
ScaleFieldId 
ClearStencilBitFieldId 
CleanupFieldId 
TileFieldId 
NextFieldId 

Definition at line 102 of file OSGPolygonBackgroundBase.h.

00103     {
00104         MaterialFieldId        = Inherited::NextFieldId,
00105         TexCoordsFieldId       = MaterialFieldId        + 1,
00106         PositionsFieldId       = TexCoordsFieldId       + 1,
00107         NormalizedXFieldId     = PositionsFieldId       + 1,
00108         NormalizedYFieldId     = NormalizedXFieldId     + 1,
00109         AspectHeightFieldId    = NormalizedYFieldId     + 1,
00110         AspectWidthFieldId     = AspectHeightFieldId    + 1,
00111         ScaleFieldId           = AspectWidthFieldId     + 1,
00112         ClearStencilBitFieldId = ScaleFieldId           + 1,
00113         CleanupFieldId         = ClearStencilBitFieldId + 1,
00114         TileFieldId            = CleanupFieldId         + 1,
00115         NextFieldId            = TileFieldId            + 1
00116     };

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

PolygonBackground::PolygonBackground ( void   )  [protected]

Definition at line 86 of file OSGPolygonBackground.cpp.

00086                                          :
00087     Inherited()
00088 {
00089 }

PolygonBackground::PolygonBackground ( const PolygonBackground &  source  )  [protected]

Definition at line 91 of file OSGPolygonBackground.cpp.

00091                                                                     :
00092     Inherited(source)
00093 {
00094 }

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

Definition at line 96 of file OSGPolygonBackground.cpp.

00097 {
00098 }


Member Function Documentation

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

Implements osg::Background.

Definition at line 122 of file OSGPolygonBackground.cpp.

References FWARNING, osg::PolygonBackgroundBase::getAspectHeight(), osg::PolygonBackgroundBase::getAspectWidth(), osg::TileCameraDecoratorBase::getBottom(), osg::DrawActionBase::getCamera(), osg::PolygonBackgroundBase::getCleanup(), osg::PolygonBackgroundBase::getClearStencilBit(), osg::AttachmentContainerPtr::getCPtr(), osg::CameraDecoratorBase::getDecoratee(), osg::Camera::getDecoration(), osg::TileCameraDecoratorBase::getFullHeight(), osg::TileCameraDecoratorBase::getFullWidth(), osg::TileCameraDecoratorBase::getLeft(), osg::PolygonBackgroundBase::getMaterial(), osg::PolygonBackgroundBase::getNormalizedX(), osg::PolygonBackgroundBase::getNormalizedY(), osg::Viewport::getPixelHeight(), osg::Viewport::getPixelWidth(), osg::PolygonBackgroundBase::getPositions(), osg::TileCameraDecoratorBase::getRight(), osg::PolygonBackgroundBase::getScale(), osg::PolygonBackgroundBase::getTexCoords(), osg::PolygonBackgroundBase::getTile(), osg::TileCameraDecoratorBase::getTop(), osg::TransformationMatrix< ValueTypeT >::getValues(), mapCoordinate(), and osg::MField< FieldTypeT, fieldNameSpace >::size().

00123 {
00124     if (port->getPixelWidth()  == 0 ||
00125         port->getPixelHeight() == 0 ) 
00126     {   
00127         FWARNING(("PolygonBackground::clear: "
00128                   "Port has zero size: nothing to render to!\n"));
00129         return;
00130     }
00131         
00132     if (getPositions().getSize() == 0 ||
00133         getPositions().getSize() != getTexCoords().getSize())
00134     {
00135         FWARNING(("PolygonBackground::clear: positions and texcoords have "
00136                   "different/ invalid sizes (%d vs. %d)!\n", 
00137                   getPositions().getSize(), getTexCoords().getSize()));
00138         return;
00139     }
00140 
00141     Int32 bit = getClearStencilBit();      // 0x0
00142     
00143     if (bit >= 0)
00144     {
00145         glClearStencil(bit);
00146         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
00147     }
00148     else
00149     {
00150         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00151     }
00152 
00153     glPushAttrib(GL_ALL_ATTRIB_BITS);
00154 
00155     glDisable(GL_DEPTH_TEST);
00156     glDepthFunc(GL_ALWAYS);
00157 
00158     if ( getCleanup() )
00159         glDepthMask(GL_FALSE);
00160 
00161     Real32 aspectX = 1.0f, aspectY = 1.0f;
00162     
00163     if (getAspectHeight() && getAspectWidth())
00164     {
00165         aspectX = ((Real32)port->getPixelHeight()/getAspectHeight()) /
00166                   ((Real32)port->getPixelWidth() / getAspectWidth());
00167     }
00168     
00169     glMatrixMode(GL_TEXTURE);
00170     glPushMatrix();
00171     glLoadIdentity();
00172  
00173     glMatrixMode(GL_MODELVIEW);
00174     glPushMatrix();
00175     glLoadIdentity();
00176 
00177     glMatrixMode(GL_PROJECTION);
00178     glPushMatrix();
00179     glLoadIdentity();
00180     
00181     Real32 sFac = getScale() > 0 ? getScale() : 1.0f;
00182     
00183     UInt32 width  = port->getPixelWidth(),
00184            height = port->getPixelHeight();
00185     
00186     Camera *cP = act->getCamera();
00187     TileCameraDecorator *cdP = dynamic_cast<TileCameraDecorator*>(cP);
00188     
00189     while (cdP != NULL)
00190     {
00191         width  = cdP->getFullWidth()  ? cdP->getFullWidth()  : width;
00192         height = cdP->getFullHeight() ? cdP->getFullHeight() : height;
00193         
00194         cP  = cdP->getDecoratee().getCPtr();
00195         cdP = dynamic_cast<TileCameraDecorator*>(cP);
00196     }
00197     
00198     cP = act->getCamera();
00199     cdP = dynamic_cast<TileCameraDecorator*>(cP);
00200     
00201     if (cdP && !getTile())
00202     {
00203         Real32 t = 0,
00204                left   = cdP->getLeft(),
00205                right  = cdP->getRight(),
00206                top    = cdP->getTop(),
00207                bottom = cdP->getBottom();
00208         
00209         if (getAspectHeight() && getAspectWidth() &&
00210             height != 0 && width != 0)
00211         {
00212             aspectX = ((Real32)height/getAspectHeight()) /
00213                       ((Real32)width / getAspectWidth());
00214             t  = (Real32)width * (1 - aspectX) * 0.5f;
00215             t *= (Real32)port->getPixelWidth() / width;
00216         }
00217         
00218         Matrix sm;
00219         cP->getDecoration(sm, width, height);
00220         
00221         glLoadMatrixf(sm.getValues());
00222         glOrtho(0, port->getPixelWidth(), 0, port->getPixelHeight(), 0, 1);
00223         
00224         glTranslatef(t, 0, 0);
00225         glScalef(aspectX, aspectY, 1);
00226         
00227         float t1 = (1 - sFac) * 0.5f * (Real32)port->getPixelWidth();
00228         float t2 = (1 - sFac) * 0.5f * (Real32)port->getPixelHeight();
00229         glTranslatef(t1, t2, 0);
00230         glScalef(sFac,sFac,1);
00231     }
00232     else
00233     {
00234         glScalef(sFac,sFac,1);
00235         
00236         glScalef(aspectX, aspectY, 1);
00237         glOrtho(0, port->getPixelWidth(), 0, port->getPixelHeight(), 0, 1);    
00238     }
00239     
00240     getMaterial()->getState()->activate(act);
00241     
00242     Vec3f *tc  = &getTexCoords()[0];
00243     Pnt2f *pos = &getPositions()[0];
00244     
00245     glBegin(GL_POLYGON);
00246     
00247     for (UInt16 i=0; i<getPositions().size(); i++)
00248     {
00249         glTexCoord3fv( tc[i].getValues() );
00250         glVertex2f( mapCoordinate(pos[i][0], Real32(port->getPixelWidth()),
00251                                              getNormalizedX()),
00252                     mapCoordinate(pos[i][1], Real32(port->getPixelHeight()),
00253                                              getNormalizedY()) );
00254     }
00255 
00256     glEnd();
00257     
00258     getMaterial()->getState()->deactivate(act);
00259 
00260     glScalef(1, 1, 1);
00261 
00262     if ( getCleanup() )
00263     {
00264         if (bit >= 0)
00265             glClear(GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
00266         else
00267             glClear(GL_DEPTH_BUFFER_BIT);
00268     }
00269     
00270     glMatrixMode(GL_PROJECTION);
00271     glPopMatrix();
00272     glMatrixMode(GL_MODELVIEW);
00273     glPopMatrix();
00274     glMatrixMode(GL_TEXTURE);
00275     glPopMatrix();
00276 
00277     glPopAttrib();
00278 }

void PolygonBackground::changed ( BitVector  whichField,
UInt32  origin 
) [virtual]

Reimplemented from osg::Background.

Definition at line 280 of file OSGPolygonBackground.cpp.

References osg::Background::changed().

00281 {
00282     Inherited::changed(whichField, origin);
00283 }

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

Reimplemented from osg::Background.

Definition at line 285 of file OSGPolygonBackground.cpp.

References SLOG.

00287 {
00288     SLOG << "Dump PolygonBackground NI" << std::endl;
00289 }

Real32 PolygonBackground::mapCoordinate ( Real32  val,
Real32  max,
bool  norm 
)

Definition at line 102 of file OSGPolygonBackground.cpp.

Referenced by clear().

00103 {
00104     if(val >= 0)
00105     {
00106         if (norm)
00107             val *= max;
00108     }
00109     else
00110     {
00111         val += 1;
00112         
00113         if (norm)
00114             val *= max;
00115         
00116         val = max + val;
00117     }
00118    
00119     return val;
00120 }

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

Reimplemented from osg::Background.

Definition at line 71 of file OSGPolygonBackground.cpp.

00072 {
00073 }

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

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

Reimplemented from osg::BackgroundBase.

Definition at line 58 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_type.

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

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::BackgroundBase.

Definition at line 65 of file OSGPolygonBackgroundBase.inl.

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

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

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

Reimplemented from osg::BackgroundBase.

Definition at line 216 of file OSGPolygonBackgroundBase.cpp.

References osg::PolygonBackgroundBase::_type.

00217 {
00218     return _type; 
00219 } 

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

Reimplemented from osg::BackgroundBase.

Definition at line 221 of file OSGPolygonBackgroundBase.cpp.

References osg::PolygonBackgroundBase::_type.

00222 {
00223     return _type;
00224 } 

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

Reimplemented from osg::BackgroundBase.

Definition at line 236 of file OSGPolygonBackgroundBase.cpp.

00237 { 
00238     return sizeof(PolygonBackground); 
00239 }

SFMaterialPtr * osg::PolygonBackgroundBase::getSFMaterial ( void   )  [inline, inherited]

Definition at line 101 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfMaterial.

00102 {
00103     return &_sfMaterial;
00104 }

MFVec3f * osg::PolygonBackgroundBase::getMFTexCoords ( void   )  [inline, inherited]

Definition at line 108 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_mfTexCoords.

00109 {
00110     return &_mfTexCoords;
00111 }

MFPnt2f * osg::PolygonBackgroundBase::getMFPositions ( void   )  [inline, inherited]

Definition at line 115 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_mfPositions.

00116 {
00117     return &_mfPositions;
00118 }

SFBool * osg::PolygonBackgroundBase::getSFNormalizedX ( void   )  [inline, inherited]

Definition at line 122 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfNormalizedX.

00123 {
00124     return &_sfNormalizedX;
00125 }

SFBool * osg::PolygonBackgroundBase::getSFNormalizedY ( void   )  [inline, inherited]

Definition at line 129 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfNormalizedY.

00130 {
00131     return &_sfNormalizedY;
00132 }

SFUInt16 * osg::PolygonBackgroundBase::getSFAspectHeight ( void   )  [inline, inherited]

Definition at line 136 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfAspectHeight.

00137 {
00138     return &_sfAspectHeight;
00139 }

SFUInt16 * osg::PolygonBackgroundBase::getSFAspectWidth ( void   )  [inline, inherited]

Definition at line 143 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfAspectWidth.

00144 {
00145     return &_sfAspectWidth;
00146 }

SFReal32 * osg::PolygonBackgroundBase::getSFScale ( void   )  [inline, inherited]

Definition at line 150 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfScale.

00151 {
00152     return &_sfScale;
00153 }

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

Definition at line 157 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfClearStencilBit.

00158 {
00159     return &_sfClearStencilBit;
00160 }

SFBool * osg::PolygonBackgroundBase::getSFCleanup ( void   )  [inline, inherited]

Definition at line 164 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfCleanup.

00165 {
00166     return &_sfCleanup;
00167 }

SFBool * osg::PolygonBackgroundBase::getSFTile ( void   )  [inline, inherited]

Definition at line 171 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfTile.

00172 {
00173     return &_sfTile;
00174 }

MaterialPtr & osg::PolygonBackgroundBase::getMaterial ( void   )  [inline, inherited]

Definition at line 179 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfMaterial, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by clear().

00180 {
00181     return _sfMaterial.getValue();
00182 }

const MaterialPtr & osg::PolygonBackgroundBase::getMaterial ( void   )  const [inline, inherited]

Definition at line 186 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfMaterial, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00187 {
00188     return _sfMaterial.getValue();
00189 }

bool & osg::PolygonBackgroundBase::getNormalizedX ( void   )  [inline, inherited]

Definition at line 200 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfNormalizedX, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by clear().

00201 {
00202     return _sfNormalizedX.getValue();
00203 }

const bool & osg::PolygonBackgroundBase::getNormalizedX ( void   )  const [inline, inherited]

bool & osg::PolygonBackgroundBase::getNormalizedY ( void   )  [inline, inherited]

Definition at line 221 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfNormalizedY, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by clear().

00222 {
00223     return _sfNormalizedY.getValue();
00224 }

const bool & osg::PolygonBackgroundBase::getNormalizedY ( void   )  const [inline, inherited]

UInt16 & osg::PolygonBackgroundBase::getAspectHeight ( void   )  [inline, inherited]

Definition at line 242 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfAspectHeight, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by clear().

00243 {
00244     return _sfAspectHeight.getValue();
00245 }

const UInt16 & osg::PolygonBackgroundBase::getAspectHeight ( void   )  const [inline, inherited]

UInt16 & osg::PolygonBackgroundBase::getAspectWidth ( void   )  [inline, inherited]

Definition at line 263 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfAspectWidth, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by clear().

00264 {
00265     return _sfAspectWidth.getValue();
00266 }

const UInt16 & osg::PolygonBackgroundBase::getAspectWidth ( void   )  const [inline, inherited]

Real32 & osg::PolygonBackgroundBase::getScale ( void   )  [inline, inherited]

Definition at line 284 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfScale, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by clear().

00285 {
00286     return _sfScale.getValue();
00287 }

const Real32 & osg::PolygonBackgroundBase::getScale ( void   )  const [inline, inherited]

Definition at line 291 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfScale, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00292 {
00293     return _sfScale.getValue();
00294 }

Int32 & osg::PolygonBackgroundBase::getClearStencilBit ( void   )  [inline, inherited]

Definition at line 305 of file OSGPolygonBackgroundBase.inl.

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

Referenced by clear().

00306 {
00307     return _sfClearStencilBit.getValue();
00308 }

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

bool & osg::PolygonBackgroundBase::getCleanup ( void   )  [inline, inherited]

Definition at line 326 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfCleanup, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by clear().

00327 {
00328     return _sfCleanup.getValue();
00329 }

const bool & osg::PolygonBackgroundBase::getCleanup ( void   )  const [inline, inherited]

Definition at line 333 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfCleanup, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00334 {
00335     return _sfCleanup.getValue();
00336 }

bool & osg::PolygonBackgroundBase::getTile ( void   )  [inline, inherited]

Definition at line 347 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfTile, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by clear().

00348 {
00349     return _sfTile.getValue();
00350 }

const bool & osg::PolygonBackgroundBase::getTile ( void   )  const [inline, inherited]

Definition at line 354 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_sfTile, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00355 {
00356     return _sfTile.getValue();
00357 }

Vec3f & osg::PolygonBackgroundBase::getTexCoords ( const UInt32  index  )  [inline, inherited]

Definition at line 369 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_mfTexCoords.

00370 {
00371     return _mfTexCoords[index];
00372 }

MFVec3f & osg::PolygonBackgroundBase::getTexCoords ( void   )  [inline, inherited]

Definition at line 376 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_mfTexCoords.

Referenced by clear().

00377 {
00378     return _mfTexCoords;
00379 }

const MFVec3f & osg::PolygonBackgroundBase::getTexCoords ( void   )  const [inline, inherited]

Definition at line 383 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_mfTexCoords.

00384 {
00385     return _mfTexCoords;
00386 }

Pnt2f & osg::PolygonBackgroundBase::getPositions ( const UInt32  index  )  [inline, inherited]

Definition at line 390 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_mfPositions.

00391 {
00392     return _mfPositions[index];
00393 }

MFPnt2f & osg::PolygonBackgroundBase::getPositions ( void   )  [inline, inherited]

Definition at line 397 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_mfPositions.

Referenced by clear().

00398 {
00399     return _mfPositions;
00400 }

const MFPnt2f & osg::PolygonBackgroundBase::getPositions ( void   )  const [inline, inherited]

Definition at line 404 of file OSGPolygonBackgroundBase.inl.

References osg::PolygonBackgroundBase::_mfPositions.

00405 {
00406     return _mfPositions;
00407 }

void osg::PolygonBackgroundBase::setMaterial ( const MaterialPtr &  value  )  [inline, inherited]

void osg::PolygonBackgroundBase::setNormalizedX ( const bool &  value  )  [inline, inherited]

void osg::PolygonBackgroundBase::setNormalizedY ( const bool &  value  )  [inline, inherited]

void osg::PolygonBackgroundBase::setAspectHeight ( const UInt16 &  value  )  [inline, inherited]

void osg::PolygonBackgroundBase::setAspectWidth ( const UInt16 &  value  )  [inline, inherited]

void osg::PolygonBackgroundBase::setScale ( const Real32 &  value  )  [inline, inherited]

void osg::PolygonBackgroundBase::setClearStencilBit ( const Int32 &  value  )  [inline, inherited]

void osg::PolygonBackgroundBase::setCleanup ( const bool &  value  )  [inline, inherited]

void osg::PolygonBackgroundBase::setTile ( const bool &  value  )  [inline, inherited]

UInt32 osg::PolygonBackgroundBase::getBinSize ( const BitVector &  whichField  )  [virtual, inherited]

Reimplemented from osg::BackgroundBase.

Definition at line 320 of file OSGPolygonBackgroundBase.cpp.

References osg::PolygonBackgroundBase::_mfPositions, osg::PolygonBackgroundBase::_mfTexCoords, osg::PolygonBackgroundBase::_sfAspectHeight, osg::PolygonBackgroundBase::_sfAspectWidth, osg::PolygonBackgroundBase::_sfCleanup, osg::PolygonBackgroundBase::_sfClearStencilBit, osg::PolygonBackgroundBase::_sfMaterial, osg::PolygonBackgroundBase::_sfNormalizedX, osg::PolygonBackgroundBase::_sfNormalizedY, osg::PolygonBackgroundBase::_sfScale, osg::PolygonBackgroundBase::_sfTile, osg::PolygonBackgroundBase::AspectHeightFieldMask, osg::PolygonBackgroundBase::AspectWidthFieldMask, osg::PolygonBackgroundBase::CleanupFieldMask, osg::PolygonBackgroundBase::ClearStencilBitFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::BackgroundBase::getBinSize(), osg::PolygonBackgroundBase::MaterialFieldMask, osg::FieldBits::NoField, osg::PolygonBackgroundBase::NormalizedXFieldMask, osg::PolygonBackgroundBase::NormalizedYFieldMask, osg::PolygonBackgroundBase::PositionsFieldMask, osg::PolygonBackgroundBase::ScaleFieldMask, osg::PolygonBackgroundBase::TexCoordsFieldMask, and osg::PolygonBackgroundBase::TileFieldMask.

00321 {
00322     UInt32 returnValue = Inherited::getBinSize(whichField);
00323 
00324     if(FieldBits::NoField != (MaterialFieldMask & whichField))
00325     {
00326         returnValue += _sfMaterial.getBinSize();
00327     }
00328 
00329     if(FieldBits::NoField != (TexCoordsFieldMask & whichField))
00330     {
00331         returnValue += _mfTexCoords.getBinSize();
00332     }
00333 
00334     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00335     {
00336         returnValue += _mfPositions.getBinSize();
00337     }
00338 
00339     if(FieldBits::NoField != (NormalizedXFieldMask & whichField))
00340     {
00341         returnValue += _sfNormalizedX.getBinSize();
00342     }
00343 
00344     if(FieldBits::NoField != (NormalizedYFieldMask & whichField))
00345     {
00346         returnValue += _sfNormalizedY.getBinSize();
00347     }
00348 
00349     if(FieldBits::NoField != (AspectHeightFieldMask & whichField))
00350     {
00351         returnValue += _sfAspectHeight.getBinSize();
00352     }
00353 
00354     if(FieldBits::NoField != (AspectWidthFieldMask & whichField))
00355     {
00356         returnValue += _sfAspectWidth.getBinSize();
00357     }
00358 
00359     if(FieldBits::NoField != (ScaleFieldMask & whichField))
00360     {
00361         returnValue += _sfScale.getBinSize();
00362     }
00363 
00364     if(FieldBits::NoField != (ClearStencilBitFieldMask & whichField))
00365     {
00366         returnValue += _sfClearStencilBit.getBinSize();
00367     }
00368 
00369     if(FieldBits::NoField != (CleanupFieldMask & whichField))
00370     {
00371         returnValue += _sfCleanup.getBinSize();
00372     }
00373 
00374     if(FieldBits::NoField != (TileFieldMask & whichField))
00375     {
00376         returnValue += _sfTile.getBinSize();
00377     }
00378 
00379 
00380     return returnValue;
00381 }

void osg::PolygonBackgroundBase::copyToBin ( BinaryDataHandler &  pMem,
const BitVector &  whichField 
) [virtual, inherited]

Reimplemented from osg::BackgroundBase.

Definition at line 383 of file OSGPolygonBackgroundBase.cpp.

References osg::PolygonBackgroundBase::_mfPositions, osg::PolygonBackgroundBase::_mfTexCoords, osg::PolygonBackgroundBase::_sfAspectHeight, osg::PolygonBackgroundBase::_sfAspectWidth, osg::PolygonBackgroundBase::_sfCleanup, osg::PolygonBackgroundBase::_sfClearStencilBit, osg::PolygonBackgroundBase::_sfMaterial, osg::PolygonBackgroundBase::_sfNormalizedX, osg::PolygonBackgroundBase::_sfNormalizedY, osg::PolygonBackgroundBase::_sfScale, osg::PolygonBackgroundBase::_sfTile, osg::PolygonBackgroundBase::AspectHeightFieldMask, osg::PolygonBackgroundBase::AspectWidthFieldMask, osg::PolygonBackgroundBase::CleanupFieldMask, osg::PolygonBackgroundBase::ClearStencilBitFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::BackgroundBase::copyToBin(), osg::PolygonBackgroundBase::MaterialFieldMask, osg::FieldBits::NoField, osg::PolygonBackgroundBase::NormalizedXFieldMask, osg::PolygonBackgroundBase::NormalizedYFieldMask, osg::PolygonBackgroundBase::PositionsFieldMask, osg::PolygonBackgroundBase::ScaleFieldMask, osg::PolygonBackgroundBase::TexCoordsFieldMask, and osg::PolygonBackgroundBase::TileFieldMask.

00385 {
00386     Inherited::copyToBin(pMem, whichField);
00387 
00388     if(FieldBits::NoField != (MaterialFieldMask & whichField))
00389     {
00390         _sfMaterial.copyToBin(pMem);
00391     }
00392 
00393     if(FieldBits::NoField != (TexCoordsFieldMask & whichField))
00394     {
00395         _mfTexCoords.copyToBin(pMem);
00396     }
00397 
00398     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00399     {
00400         _mfPositions.copyToBin(pMem);
00401     }
00402 
00403     if(FieldBits::NoField != (NormalizedXFieldMask & whichField))
00404     {
00405         _sfNormalizedX.copyToBin(pMem);
00406     }
00407 
00408     if(FieldBits::NoField != (NormalizedYFieldMask & whichField))
00409     {
00410         _sfNormalizedY.copyToBin(pMem);
00411     }
00412 
00413     if(FieldBits::NoField != (AspectHeightFieldMask & whichField))
00414     {
00415         _sfAspectHeight.copyToBin(pMem);
00416     }
00417 
00418     if(FieldBits::NoField != (AspectWidthFieldMask & whichField))
00419     {
00420         _sfAspectWidth.copyToBin(pMem);
00421     }
00422 
00423     if(FieldBits::NoField != (ScaleFieldMask & whichField))
00424     {
00425         _sfScale.copyToBin(pMem);
00426     }
00427 
00428     if(FieldBits::NoField != (ClearStencilBitFieldMask & whichField))
00429     {
00430         _sfClearStencilBit.copyToBin(pMem);
00431     }
00432 
00433     if(FieldBits::NoField != (CleanupFieldMask & whichField))
00434     {
00435         _sfCleanup.copyToBin(pMem);
00436     }
00437 
00438     if(FieldBits::NoField != (TileFieldMask & whichField))
00439     {
00440         _sfTile.copyToBin(pMem);
00441     }
00442 
00443 
00444 }

void osg::PolygonBackgroundBase::copyFromBin ( BinaryDataHandler &  pMem,
const BitVector &  whichField 
) [virtual, inherited]

Reimplemented from osg::BackgroundBase.

Definition at line 446 of file OSGPolygonBackgroundBase.cpp.

References osg::PolygonBackgroundBase::_mfPositions, osg::PolygonBackgroundBase::_mfTexCoords, osg::PolygonBackgroundBase::_sfAspectHeight, osg::PolygonBackgroundBase::_sfAspectWidth, osg::PolygonBackgroundBase::_sfCleanup, osg::PolygonBackgroundBase::_sfClearStencilBit, osg::PolygonBackgroundBase::_sfMaterial, osg::PolygonBackgroundBase::_sfNormalizedX, osg::PolygonBackgroundBase::_sfNormalizedY, osg::PolygonBackgroundBase::_sfScale, osg::PolygonBackgroundBase::_sfTile, osg::PolygonBackgroundBase::AspectHeightFieldMask, osg::PolygonBackgroundBase::AspectWidthFieldMask, osg::PolygonBackgroundBase::CleanupFieldMask, osg::PolygonBackgroundBase::ClearStencilBitFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::BackgroundBase::copyFromBin(), osg::PolygonBackgroundBase::MaterialFieldMask, osg::FieldBits::NoField, osg::PolygonBackgroundBase::NormalizedXFieldMask, osg::PolygonBackgroundBase::NormalizedYFieldMask, osg::PolygonBackgroundBase::PositionsFieldMask, osg::PolygonBackgroundBase::ScaleFieldMask, osg::PolygonBackgroundBase::TexCoordsFieldMask, and osg::PolygonBackgroundBase::TileFieldMask.

00448 {
00449     Inherited::copyFromBin(pMem, whichField);
00450 
00451     if(FieldBits::NoField != (MaterialFieldMask & whichField))
00452     {
00453         _sfMaterial.copyFromBin(pMem);
00454     }
00455 
00456     if(FieldBits::NoField != (TexCoordsFieldMask & whichField))
00457     {
00458         _mfTexCoords.copyFromBin(pMem);
00459     }
00460 
00461     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00462     {
00463         _mfPositions.copyFromBin(pMem);
00464     }
00465 
00466     if(FieldBits::NoField != (NormalizedXFieldMask & whichField))
00467     {
00468         _sfNormalizedX.copyFromBin(pMem);
00469     }
00470 
00471     if(FieldBits::NoField != (NormalizedYFieldMask & whichField))
00472     {
00473         _sfNormalizedY.copyFromBin(pMem);
00474     }
00475 
00476     if(FieldBits::NoField != (AspectHeightFieldMask & whichField))
00477     {
00478         _sfAspectHeight.copyFromBin(pMem);
00479     }
00480 
00481     if(FieldBits::NoField != (AspectWidthFieldMask & whichField))
00482     {
00483         _sfAspectWidth.copyFromBin(pMem);
00484     }
00485 
00486     if(FieldBits::NoField != (ScaleFieldMask & whichField))
00487     {
00488         _sfScale.copyFromBin(pMem);
00489     }
00490 
00491     if(FieldBits::NoField != (ClearStencilBitFieldMask & whichField))
00492     {
00493         _sfClearStencilBit.copyFromBin(pMem);
00494     }
00495 
00496     if(FieldBits::NoField != (CleanupFieldMask & whichField))
00497     {
00498         _sfCleanup.copyFromBin(pMem);
00499     }
00500 
00501     if(FieldBits::NoField != (TileFieldMask & whichField))
00502     {
00503         _sfTile.copyFromBin(pMem);
00504     }
00505 
00506 
00507 }

PolygonBackgroundPtr osg::PolygonBackgroundBase::create ( void   )  [inline, static, inherited]

Definition at line 72 of file OSGPolygonBackgroundBase.inl.

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

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

PolygonBackgroundPtr osg::PolygonBackgroundBase::createEmpty ( void   )  [inline, static, inherited]

Definition at line 87 of file OSGPolygonBackgroundBase.inl.

References osg::FieldContainer::newPtr().

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

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

Implements osg::FieldContainer.

Definition at line 227 of file OSGPolygonBackgroundBase.cpp.

References osg::FieldContainer::newPtr().

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

00228 { 
00229     PolygonBackgroundPtr returnValue; 
00230 
00231     newPtr(returnValue, dynamic_cast<const PolygonBackground *>(this)); 
00232 
00233     return returnValue; 
00234 }

void osg::PolygonBackgroundBase::executeSyncImpl ( PolygonBackgroundBase *  pOther,
const BitVector &  whichField 
) [protected, inherited]

Definition at line 510 of file OSGPolygonBackgroundBase.cpp.

References osg::PolygonBackgroundBase::_mfPositions, osg::PolygonBackgroundBase::_mfTexCoords, osg::PolygonBackgroundBase::_sfAspectHeight, osg::PolygonBackgroundBase::_sfAspectWidth, osg::PolygonBackgroundBase::_sfCleanup, osg::PolygonBackgroundBase::_sfClearStencilBit, osg::PolygonBackgroundBase::_sfMaterial, osg::PolygonBackgroundBase::_sfNormalizedX, osg::PolygonBackgroundBase::_sfNormalizedY, osg::PolygonBackgroundBase::_sfScale, osg::PolygonBackgroundBase::_sfTile, osg::PolygonBackgroundBase::AspectHeightFieldMask, osg::PolygonBackgroundBase::AspectWidthFieldMask, osg::PolygonBackgroundBase::CleanupFieldMask, osg::PolygonBackgroundBase::ClearStencilBitFieldMask, osg::BackgroundBase::executeSyncImpl(), osg::PolygonBackgroundBase::MaterialFieldMask, osg::FieldBits::NoField, osg::PolygonBackgroundBase::NormalizedXFieldMask, osg::PolygonBackgroundBase::NormalizedYFieldMask, osg::PolygonBackgroundBase::PositionsFieldMask, osg::PolygonBackgroundBase::ScaleFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::syncWith(), osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), osg::PolygonBackgroundBase::TexCoordsFieldMask, and osg::PolygonBackgroundBase::TileFieldMask.

Referenced by osg::PolygonBackgroundBase::executeSync().

00512 {
00513 
00514     Inherited::executeSyncImpl(pOther, whichField);
00515 
00516     if(FieldBits::NoField != (MaterialFieldMask & whichField))
00517         _sfMaterial.syncWith(pOther->_sfMaterial);
00518 
00519     if(FieldBits::NoField != (TexCoordsFieldMask & whichField))
00520         _mfTexCoords.syncWith(pOther->_mfTexCoords);
00521 
00522     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00523         _mfPositions.syncWith(pOther->_mfPositions);
00524 
00525     if(FieldBits::NoField != (NormalizedXFieldMask & whichField))
00526         _sfNormalizedX.syncWith(pOther->_sfNormalizedX);
00527 
00528     if(FieldBits::NoField != (NormalizedYFieldMask & whichField))
00529         _sfNormalizedY.syncWith(pOther->_sfNormalizedY);
00530 
00531     if(FieldBits::NoField != (AspectHeightFieldMask & whichField))
00532         _sfAspectHeight.syncWith(pOther->_sfAspectHeight);
00533 
00534     if(FieldBits::NoField != (AspectWidthFieldMask & whichField))
00535         _sfAspectWidth.syncWith(pOther->_sfAspectWidth);
00536 
00537     if(FieldBits::NoField != (ScaleFieldMask & whichField))
00538         _sfScale.syncWith(pOther->_sfScale);
00539 
00540     if(FieldBits::NoField != (ClearStencilBitFieldMask & whichField))
00541         _sfClearStencilBit.syncWith(pOther->_sfClearStencilBit);
00542 
00543     if(FieldBits::NoField != (CleanupFieldMask & whichField))
00544         _sfCleanup.syncWith(pOther->_sfCleanup);
00545 
00546     if(FieldBits::NoField != (TileFieldMask & whichField))
00547         _sfTile.syncWith(pOther->_sfTile);
00548 
00549 
00550 }

void BackgroundBase::executeSyncImpl ( BackgroundBase *  pOther,
const BitVector &  whichField 
) [protected, inherited]

void AttachmentContainer::executeSyncImpl ( AttachmentContainer *  pOther,
const BitVector &  whichField 
) [protected, inherited]

void osg::FieldContainer::executeSyncImpl ( FieldContainer *  pOther,
const BitVector &  whichField 
) [inline, protected, inherited]

void osg::PolygonBackgroundBase::executeSync ( FieldContainer &  other,
const BitVector &  whichField 
) [protected, virtual, inherited]

Reimplemented from osg::BackgroundBase.

Definition at line 243 of file OSGPolygonBackgroundBase.cpp.

References osg::PolygonBackgroundBase::executeSyncImpl().

00245 {
00246     this->executeSyncImpl((PolygonBackgroundBase *) &other, whichField);
00247 }

static const Char8* osg::Background::getClassname ( void   )  [inline, static, inherited]

Reimplemented in osg::GradientBackground, and osg::SolidBackground.

Definition at line 70 of file OSGBackground.h.

00070 { return "Background"; };

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]

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::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::OffCenterPerspectiveCameraBase::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::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::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::OffCenterPerspectiveCameraBase::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::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     Thread::getCurrentChangeList()->addCreated(
00168         *(reinterpret_cast<UInt32 *>(pTmp)));
00169     
00170     pTmp += sizeof(UInt32);
00171     
00172     ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp);
00173 
00174     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00175     {
00176         pTmp = 
00177             reinterpret_cast<UInt8 *>(new (pTmp) ObjectType(*prototypeP));
00178         
00179         pTmp += sizeof(ObjectType);
00180     }
00181     
00182     result->onCreate(prototypeP);
00183 
00184     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00185     {
00186         aObject[i].onCreateAspect(aObject, prototypeP);
00187     }
00188 
00189 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM)
00190 
00191     fprintf(stderr, "GV_MEM_FC_DBG : (%u) cc (%p|%u)\n", 
00192             Thread::getAspect(),
00193             result._storeP,
00194 //            ObjectType::getClassType().getCName(),
00195             ObjectType::getClassType().getId());
00196 #endif
00197 
00198 #ifdef OSG_DEBUG_TYPED_FCPTR
00199     result.updateTypedStore();
00200 #endif
00201 }

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

Definition at line 204 of file OSGFieldContainerImpl.inl.

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

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

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

Definition at line 285 of file OSGFieldContainerImpl.inl.

00286 {
00287 //    fieldR.beginEdit();
00288 }

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

Definition at line 291 of file OSGFieldContainerImpl.inl.

References osg::endEditCP().

00292 {
00293     FieldContainerPtr tmpPtr(this);
00294     endEditCP(tmpPtr, whichField);
00295 }

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

Definition at line 318 of file OSGFieldContainerImpl.inl.

Referenced by osg::ShaderParameterChunk::onCreate().

00319 {
00320 }

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

Definition at line 323 of file OSGFieldContainerImpl.inl.

00325 {
00326 }

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


Friends And Related Function Documentation

friend class FieldContainer [friend]

Reimplemented from osg::PolygonBackgroundBase.

Definition at line 118 of file OSGPolygonBackground.h.

friend class PolygonBackgroundBase [friend]

Definition at line 119 of file OSGPolygonBackground.h.


Member Data Documentation

Initial value:

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

Reimplemented from osg::BackgroundBase.

Definition at line 131 of file OSGPolygonBackgroundBase.h.

bool osg::PolygonBackgroundBase::_sfNormalizedX [protected, inherited]

bool osg::PolygonBackgroundBase::_sfNormalizedY [protected, inherited]

bool osg::PolygonBackgroundBase::_sfCleanup [protected, inherited]

bool osg::PolygonBackgroundBase::_sfTile [protected, inherited]

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 Mon Mar 17 12:18:34 2008 for OpenSG by  doxygen 1.5.5