osg::DisplayFilterForeground Class Reference

DisplayFilterForeground class. See PageSystemDisplayFilterForeground for a description.

#include <OSGDisplayFilterForeground.h>

Inheritance diagram for osg::DisplayFilterForeground:

osg::DisplayFilterForegroundBase osg::Foreground osg::ForegroundBase osg::AttachmentContainer osg::FieldContainer

List of all members.

Public Types

enum  { FilterFieldId = Inherited::NextFieldId, ServerFieldId = FilterFieldId + 1, NextFieldId = ServerFieldId + 1 }
typedef DisplayFilterForegroundPtr Ptr
enum  { ActiveFieldId = Inherited::NextFieldId, NextFieldId = ActiveFieldId + 1 }
enum  { AttachmentsFieldId = Inherited::NextFieldId, NextFieldId = AttachmentsFieldId + 1 }
enum  { NextFieldId = 1 }

Public Member Functions

Sync


virtual void changed (BitVector whichField, UInt32 origin)
Output


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


virtual void draw (DrawActionBase *action, Viewport *port)
correction group handling


DisplayFilterGroup * findReadbackGroup (const std::string &name)
DisplayFilterGroup * findOverlayGroup (const std::string &name)
FieldContainer Get


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


MFDisplayFilterPtr * getMFFilter (void)
 Get the DisplayFilterForeground::_mfFilter field.
SFString * getSFServer (void)
 Get the DisplayFilterForeground::_sfServer field.
std::string & getServer (void)
 Get the value of the DisplayFilterForeground::_sfServer field.
const std::string & getServer (void) const
 Get the value of the DisplayFilterForeground::_sfServer field.
DisplayFilterPtr & getFilter (const UInt32 index)
 Get the value of the index element the DisplayFilterForeground::_mfFilter field.
MFDisplayFilterPtr & getFilter (void)
 Get the DisplayFilterForeground::_mfFilter field.
const MFDisplayFilterPtr & getFilter (void) const
 Get the DisplayFilterForeground::_mfFilter field.
Field Set


void setServer (const std::string &value)
 Set the value of the DisplayFilterForeground::_sfServer 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
Field Get


SFBool * getSFActive (void)
 Get the Foreground::_sfActive field.
bool & getActive (void)
 Get the value of the Foreground::_sfActive field.
const bool & getActive (void) const
 Get the value of the Foreground::_sfActive field.
Field Set


void setActive (const bool &value)
 Set the value of the Foreground::_sfActive field.
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 DisplayFilterForegroundPtr create (void)
 create a new instance of the class
static DisplayFilterForegroundPtr createEmpty (void)
 create an empty new instance of the class, do not copy the prototype
Class Get


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


static UInt16 getClassGroupId (void)

Static Public Attributes

static const osg::BitVector FilterFieldMask
static const osg::BitVector ServerFieldMask
static const osg::BitVector MTInfluenceMask
static const osg::BitVector ActiveFieldMask
static const BitVector AttachmentsFieldMask
static const BitVector NextFieldMask
CoredNodePtr helper


static const bool isNodeCore = false

Protected Member Functions

Constructors


 DisplayFilterForeground (void)
 DisplayFilterForeground (const DisplayFilterForeground &source)
Destructors


virtual ~DisplayFilterForeground (void)
correction group handling


void clearGroups ()
Sync


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


void executeSyncImpl (ForegroundBase *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


MFDisplayFilterPtr _mfFilter
SFString _sfServer
Fields


SFBool _sfActive
Fields


SFAttachmentMap _attachmentMap
Member


UInt32 _shares

Private Types

typedef DisplayFilterForegroundBase Inherited

Private Member Functions

void operator= (const DisplayFilterForeground &source)

Static Private Member Functions

static void initMethod (void)

Private Attributes

std::vector< ViewportPtr > _port
std::map< std::string,
DisplayFilterGroup * > 
_group
std::vector< UInt32 > _changedState
bool _hasNonPowTwoTex

Friends

class FieldContainer
class DisplayFilterForegroundBase

Classes

class  DisplayFilterGroup


Detailed Description

Definition at line 64 of file OSGDisplayFilterForeground.h.


Member Typedef Documentation

Reimplemented from osg::DisplayFilterForegroundBase.

Definition at line 68 of file OSGDisplayFilterForeground.h.

Reimplemented from osg::ForegroundBase.

Definition at line 91 of file OSGDisplayFilterForegroundBase.h.


Member Enumeration Documentation

anonymous enum [inherited]

Enumerator:
FilterFieldId 
ServerFieldId 
NextFieldId 

Definition at line 93 of file OSGDisplayFilterForegroundBase.h.

00094     {
00095         FilterFieldId = Inherited::NextFieldId,
00096         ServerFieldId = FilterFieldId + 1,
00097         NextFieldId   = ServerFieldId + 1
00098     };

anonymous enum [inherited]

Enumerator:
ActiveFieldId 
NextFieldId 

Definition at line 92 of file OSGForegroundBase.h.

00093     {
00094         ActiveFieldId = Inherited::NextFieldId,
00095         NextFieldId   = ActiveFieldId + 1
00096     };

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

osg::DisplayFilterForeground::DisplayFilterForeground ( void   )  [protected]

Definition at line 95 of file OSGDisplayFilterForeground.cpp.

00095                                                      :
00096     Inherited()
00097 {
00098 }

osg::DisplayFilterForeground::DisplayFilterForeground ( const DisplayFilterForeground &  source  )  [protected]

Definition at line 100 of file OSGDisplayFilterForeground.cpp.

00100                                                                                       :
00101     Inherited(source)
00102 {
00103 }

osg::DisplayFilterForeground::~DisplayFilterForeground ( void   )  [protected, virtual]

Definition at line 105 of file OSGDisplayFilterForeground.cpp.

00106 {
00107 }


Member Function Documentation

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

Reimplemented from osg::Foreground.

Definition at line 111 of file OSGDisplayFilterForeground.cpp.

References osg::Foreground::changed(), clearGroups(), and osg::DisplayFilterForegroundBase::FilterFieldMask.

00112 {
00113     if(whichField & FilterFieldMask) {
00114         clearGroups();
00115     }
00116     Inherited::changed(whichField, origin);
00117 }

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

Reimplemented from osg::Foreground.

Definition at line 119 of file OSGDisplayFilterForeground.cpp.

References SLOG.

00121 {
00122     SLOG << "Dump DisplayFilterForeground NI" << std::endl;
00123 }

void osg::DisplayFilterForeground::draw ( DrawActionBase *  action,
Viewport *  port 
) [virtual]

do display correction

Implements osg::Foreground.

Definition at line 127 of file OSGDisplayFilterForeground.cpp.

References _changedState, _group, _hasNonPowTwoTex, _port, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::beginEditCP(), clearGroups(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::endEditCP(), osg::ForegroundBase::getActive(), osg::ViewportBase::getBottom(), osg::DisplayFilterForegroundBase::getFilter(), osg::ViewportBase::getLeft(), osg::ViewportBase::getParent(), osg::Viewport::getPixelHeight(), osg::Viewport::getPixelWidth(), osg::ViewportBase::getRight(), osg::ViewportBase::getTop(), osg::TransformChunkBase::MatrixFieldMask, osg::NullFC, osg::osgnextpower2(), p, osg::TransformationMatrix< ValueTypeT >::setScale(), and osg::MField< FieldTypeT, fieldNameSpace >::size().

00128 {
00129     if (!getActive())
00130         return;
00131     
00132     UInt32 p,f;
00133     WindowPtr window = port->getParent();
00134     MFDisplayFilterPtr::iterator fI;
00135 
00136     RenderActionBase *ract = dynamic_cast<RenderActionBase*>(action);
00137     DrawAction       *dact = dynamic_cast<DrawAction*>(action);
00138 
00139     glPushAttrib(GL_ALL_ATTRIB_BITS);
00140     glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
00141 
00142     // rebuild filter, if enabled state changed
00143     if(_changedState.size() != getFilter().size())
00144     {
00145         clearGroups();
00146     }
00147     else
00148     {
00149         for(f = 0 ; f < getFilter().size() ; ++f)
00150         {
00151             if(_changedState[f] != getFilter()[f]->getChanged())
00152             {
00153                 clearGroups();
00154                 break;
00155             }
00156         }
00157     }
00158 
00159     // create filter
00160     if(_group.empty())
00161     {
00162         //int extension = Window::registerExtension("GL_ARB_texture_non_power_of_two" );
00163         //if(window->hasExtension(extension))
00164         //    _hasNonPowTwoTex = true;
00165         //else
00166         //    _hasNonPowTwoTex = false;
00167         _changedState.resize(getFilter().size());
00168         for(f = 0 ; f < getFilter().size() ; ++f)
00169         {
00170             _changedState[f] =  getFilter()[f]->getChanged();
00171             if(getFilter()[f]->getEnabled())
00172                 getFilter()[f]->createFilter(this,port);
00173         }
00174     }
00175     // update viewport size
00176     for(p = 0 ; p < _port.size() ; ++p) 
00177     {
00178         _port[p]->setLeft(port->getLeft());
00179         _port[p]->setBottom(port->getBottom());
00180         _port[p]->setRight(port->getRight());
00181         _port[p]->setTop(port->getTop());
00182     }
00183     
00184     _hasNonPowTwoTex = true;    // due to changes in TexChunk
00185     
00186     // update texture transform
00187     if(!_hasNonPowTwoTex)
00188     {
00189         std::map<std::string,DisplayFilterGroup*>::iterator cI;
00190         for(cI = _group.begin() ;
00191             cI != _group.end() ;
00192             ++cI)
00193         {
00194             Matrix m;
00195             UInt32 tw = osgnextpower2(port->getPixelWidth());
00196             UInt32 th = osgnextpower2(port->getPixelHeight());
00197             Real32 sx = (Real32)port->getPixelWidth() / tw;
00198             Real32 sy = (Real32)port->getPixelHeight() / th;
00199             m.setScale(sx,sy,1);
00200             if(m != cI->second->getTextureTransform()->getMatrix())
00201             {
00202                 beginEditCP(cI->second->getTextureTransform(),TextureTransformChunk::MatrixFieldMask);
00203                 cI->second->getTextureTransform()->setMatrix(m);
00204                 endEditCP(cI->second->getTextureTransform(),TextureTransformChunk::MatrixFieldMask);
00205             }
00206         }
00207     }
00208 
00209     // individual filter update
00210     for(fI = getFilter().begin() ;
00211         fI != getFilter().end() ;
00212         ++fI) {
00213         if((*fI)->getEnabled())
00214             (*fI)->updateFilter(port);
00215     }
00216     // do rendering
00217     for(p = 0 ; p < _port.size() ; ++p) 
00218     {
00219         // addPort() calls begin/endEditCP and that leads to crash in my (amz)
00220         // cluster environment, setting the viewport parent is actually what we want
00221         // and this works fine.
00222         //window->addPort(_port[p]);
00223         _port[p]->setParent(window);
00224         if(ract)
00225         {
00226             _port[p]->render(ract);
00227         }
00228         else
00229             if(dact)
00230                 _port[p]->draw(dact);
00231         //window->subPort(_port[p]);
00232         _port[p]->setParent(NullFC);
00233     }
00234 
00235     glPopAttrib();
00236 }

DisplayFilterForeground::DisplayFilterGroup * osg::DisplayFilterForeground::findReadbackGroup ( const std::string &  name  ) 

Definition at line 238 of file OSGDisplayFilterForeground.cpp.

References _group, and _port.

Referenced by osg::ResolutionDisplayFilter::createFilter(), osg::DistortionDisplayFilter::createFilter(), and osg::ColorDisplayFilter::createFilter().

00239 {
00240     DisplayFilterGroup *group;
00241     std::map<std::string,DisplayFilterGroup*>::iterator cI;
00242 
00243     std::string id = name + "_overlay";  
00244     cI = _group.find(name);
00245     if(cI !=  _group.end())
00246         return cI->second;
00247     // create group
00248     group = new DisplayFilterGroup(true,_port);
00249     _group[name] = group;
00250     return group;
00251 }

DisplayFilterForeground::DisplayFilterGroup * osg::DisplayFilterForeground::findOverlayGroup ( const std::string &  name  ) 

Definition at line 253 of file OSGDisplayFilterForeground.cpp.

References _group, and _port.

00254 {
00255     DisplayFilterGroup *group;
00256     std::map<std::string,DisplayFilterGroup*>::iterator cI;
00257 
00258     std::string id = name + "_readback";  
00259     cI = _group.find(id);
00260     if(cI !=  _group.end())
00261         return cI->second;
00262     // create group
00263     group = new DisplayFilterGroup(false,_port);
00264     _group[id] = group;
00265     return group;
00266 }

void osg::DisplayFilterForeground::clearGroups (  )  [protected]

Definition at line 268 of file OSGDisplayFilterForeground.cpp.

References _group, and _port.

Referenced by changed(), and draw().

00269 {
00270     std::map<std::string,DisplayFilterGroup*>::iterator cI;
00271     for(cI = _group.begin() ;
00272         cI != _group.end() ;
00273         ++cI)
00274         delete cI->second;
00275     _group.clear();
00276     _port.clear();
00277 }

void osg::DisplayFilterForeground::initMethod ( void   )  [static, private]

Reimplemented from osg::Foreground.

Definition at line 80 of file OSGDisplayFilterForeground.cpp.

00081 {
00082 }

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

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

Reimplemented from osg::ForegroundBase.

Definition at line 58 of file OSGDisplayFilterForegroundBase.inl.

References osg::DisplayFilterForegroundBase::_type.

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

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::ForegroundBase.

Definition at line 65 of file OSGDisplayFilterForegroundBase.inl.

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

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

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

Reimplemented from osg::ForegroundBase.

Definition at line 117 of file OSGDisplayFilterForegroundBase.cpp.

References osg::DisplayFilterForegroundBase::_type.

00118 {
00119     return _type; 
00120 } 

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

Reimplemented from osg::ForegroundBase.

Definition at line 122 of file OSGDisplayFilterForegroundBase.cpp.

References osg::DisplayFilterForegroundBase::_type.

00123 {
00124     return _type;
00125 } 

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

Reimplemented from osg::ForegroundBase.

Definition at line 137 of file OSGDisplayFilterForegroundBase.cpp.

00138 { 
00139     return sizeof(DisplayFilterForeground); 
00140 }

MFDisplayFilterPtr * osg::DisplayFilterForegroundBase::getMFFilter ( void   )  [inline, inherited]

Definition at line 101 of file OSGDisplayFilterForegroundBase.inl.

References osg::DisplayFilterForegroundBase::_mfFilter.

00102 {
00103     return &_mfFilter;
00104 }

SFString * osg::DisplayFilterForegroundBase::getSFServer ( void   )  [inline, inherited]

Definition at line 108 of file OSGDisplayFilterForegroundBase.inl.

References osg::DisplayFilterForegroundBase::_sfServer.

00109 {
00110     return &_sfServer;
00111 }

std::string & osg::DisplayFilterForegroundBase::getServer ( void   )  [inline, inherited]

const std::string & osg::DisplayFilterForegroundBase::getServer ( void   )  const [inline, inherited]

DisplayFilterPtr & osg::DisplayFilterForegroundBase::getFilter ( const UInt32  index  )  [inline, inherited]

Definition at line 138 of file OSGDisplayFilterForegroundBase.inl.

References osg::DisplayFilterForegroundBase::_mfFilter.

00139 {
00140     return _mfFilter[index];
00141 }

MFDisplayFilterPtr & osg::DisplayFilterForegroundBase::getFilter ( void   )  [inline, inherited]

Definition at line 145 of file OSGDisplayFilterForegroundBase.inl.

References osg::DisplayFilterForegroundBase::_mfFilter.

Referenced by draw().

00146 {
00147     return _mfFilter;
00148 }

const MFDisplayFilterPtr & osg::DisplayFilterForegroundBase::getFilter ( void   )  const [inline, inherited]

Definition at line 152 of file OSGDisplayFilterForegroundBase.inl.

References osg::DisplayFilterForegroundBase::_mfFilter.

00153 {
00154     return _mfFilter;
00155 }

void osg::DisplayFilterForegroundBase::setServer ( const std::string &  value  )  [inline, inherited]

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

Reimplemented from osg::ForegroundBase.

Definition at line 202 of file OSGDisplayFilterForegroundBase.cpp.

References osg::DisplayFilterForegroundBase::_mfFilter, osg::DisplayFilterForegroundBase::_sfServer, osg::DisplayFilterForegroundBase::FilterFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::ForegroundBase::getBinSize(), osg::FieldBits::NoField, and osg::DisplayFilterForegroundBase::ServerFieldMask.

00203 {
00204     UInt32 returnValue = Inherited::getBinSize(whichField);
00205 
00206     if(FieldBits::NoField != (FilterFieldMask & whichField))
00207     {
00208         returnValue += _mfFilter.getBinSize();
00209     }
00210 
00211     if(FieldBits::NoField != (ServerFieldMask & whichField))
00212     {
00213         returnValue += _sfServer.getBinSize();
00214     }
00215 
00216 
00217     return returnValue;
00218 }

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

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

DisplayFilterForegroundPtr osg::DisplayFilterForegroundBase::create ( void   )  [inline, static, inherited]

Definition at line 72 of file OSGDisplayFilterForegroundBase.inl.

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

Referenced by osg::ClusterWindow::loadFilter().

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

DisplayFilterForegroundPtr osg::DisplayFilterForegroundBase::createEmpty ( void   )  [inline, static, inherited]

Definition at line 87 of file OSGDisplayFilterForegroundBase.inl.

References osg::FieldContainer::newPtr().

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

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

Implements osg::FieldContainer.

Definition at line 128 of file OSGDisplayFilterForegroundBase.cpp.

References osg::FieldContainer::newPtr().

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

00129 { 
00130     DisplayFilterForegroundPtr returnValue; 
00131 
00132     newPtr(returnValue, dynamic_cast<const DisplayFilterForeground *>(this)); 
00133 
00134     return returnValue; 
00135 }

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

void ForegroundBase::executeSyncImpl ( ForegroundBase *  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::DisplayFilterForegroundBase::executeSync ( FieldContainer &  other,
const BitVector &  whichField 
) [protected, virtual, inherited]

Reimplemented from osg::ForegroundBase.

Definition at line 144 of file OSGDisplayFilterForegroundBase.cpp.

References osg::DisplayFilterForegroundBase::executeSyncImpl().

00146 {
00147     this->executeSyncImpl((DisplayFilterForegroundBase *) &other, whichField);
00148 }

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

Reimplemented in osg::ImageForeground.

Definition at line 74 of file OSGForeground.h.

00074 { return "Foreground"; };

SFBool * osg::ForegroundBase::getSFActive ( void   )  [inline, inherited]

Definition at line 75 of file OSGForegroundBase.inl.

References osg::ForegroundBase::_sfActive.

00076 {
00077     return &_sfActive;
00078 }

bool & osg::ForegroundBase::getActive ( void   )  [inline, inherited]

const bool & osg::ForegroundBase::getActive ( void   )  const [inline, inherited]

Definition at line 90 of file OSGForegroundBase.inl.

References osg::ForegroundBase::_sfActive, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00091 {
00092     return _sfActive.getValue();
00093 }

void osg::ForegroundBase::setActive ( const bool &  value  )  [inline, 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]

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::DisplayFilterForegroundBase.

Definition at line 161 of file OSGDisplayFilterForeground.h.

friend class DisplayFilterForegroundBase [friend]

Definition at line 162 of file OSGDisplayFilterForeground.h.


Member Data Documentation

std::map<std::string,DisplayFilterGroup*> osg::DisplayFilterForeground::_group [private]

Definition at line 158 of file OSGDisplayFilterForeground.h.

Referenced by draw().

Definition at line 159 of file OSGDisplayFilterForeground.h.

Referenced by draw().

Initial value:

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

Reimplemented from osg::ForegroundBase.

Definition at line 104 of file OSGDisplayFilterForegroundBase.h.

std::string osg::DisplayFilterForegroundBase::_sfServer [protected, inherited]

bool ForegroundBase::_sfActive [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 11:21:08 2008 for OpenSG by  doxygen 1.5.5