osg::ProxyGroup Class Reference

#include <OSGProxyGroup.h>

Inheritance diagram for osg::ProxyGroup:

osg::ProxyGroupBase osg::Group osg::GroupBase osg::NodeCore osg::AttachmentContainer osg::FieldContainer

List of all members.

load thread



static PthreadBase_loadThread = NULL
static std::queue< ProxyGroupPtr_loadQueue = std::queue<ProxyGroupPtr>()
static Lock_loadLock = NULL
static void loadProc (void *)

Public Types

enum  {
  NOT_LOADED = 0, LOAD_THREAD_RUNNING = 1, LOAD_THREAD_FINISHED = 2, LOADED = 4,
  LOAD_ERROR = 100
}
enum  {
  EnabledFieldId = Inherited::NextFieldId, UrlFieldId = EnabledFieldId + 1, RootFieldId = UrlFieldId + 1, StateFieldId = RootFieldId + 1,
  ConcurrentLoadFieldId = StateFieldId + 1, VolumeFieldId = ConcurrentLoadFieldId + 1, IndicesFieldId = VolumeFieldId + 1, TrianglesFieldId = IndicesFieldId + 1,
  PositionsFieldId = TrianglesFieldId + 1, GeometriesFieldId = PositionsFieldId + 1, AbsoluteUrlFieldId = GeometriesFieldId + 1, InlineFieldId = AbsoluteUrlFieldId + 1,
  NextFieldId = InlineFieldId + 1
}
typedef ProxyGroupPtr Ptr
enum  { ParentsFieldId = Inherited::NextFieldId, NextFieldId = ParentsFieldId + 1 }
typedef MFNodePtr ParentField
typedef MFNodePtrParentFieldPtr
typedef MFNodePtr::iterator ParentFieldIt
enum  { AttachmentsFieldId = Inherited::NextFieldId, NextFieldId = AttachmentsFieldId + 1 }
enum  { NextFieldId = 1 }

Public Member Functions

Sync


virtual void changed (BitVector whichField, UInt32 origin)
Dump


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


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


SFBoolgetSFEnabled (void)
 Get the ProxyGroup::_sfEnabled field.
SFStringgetSFUrl (void)
 Get the ProxyGroup::_sfUrl field.
SFNodePtrgetSFRoot (void)
 Get the ProxyGroup::_sfRoot field.
SFUInt32getSFState (void)
 Get the ProxyGroup::_sfState field.
SFBoolgetSFConcurrentLoad (void)
 Get the ProxyGroup::_sfConcurrentLoad field.
SFDynamicVolumegetSFVolume (void)
 Get the ProxyGroup::_sfVolume field.
SFUInt32getSFIndices (void)
 Get the ProxyGroup::_sfIndices field.
SFUInt32getSFTriangles (void)
 Get the ProxyGroup::_sfTriangles field.
SFUInt32getSFPositions (void)
 Get the ProxyGroup::_sfPositions field.
SFUInt32getSFGeometries (void)
 Get the ProxyGroup::_sfGeometries field.
MFUInt8getMFInline (void)
 Get the ProxyGroup::_mfInline field.
bool & getEnabled (void)
 Get the value of the ProxyGroup::_sfEnabled field.
const bool & getEnabled (void) const
 Get the value of the ProxyGroup::_sfEnabled field.
std::string & getUrl (void)
 Get the value of the ProxyGroup::_sfUrl field.
const std::string & getUrl (void) const
 Get the value of the ProxyGroup::_sfUrl field.
NodePtrgetRoot (void)
 Get the value of the ProxyGroup::_sfRoot field.
const NodePtrgetRoot (void) const
 Get the value of the ProxyGroup::_sfRoot field.
UInt32getState (void)
 Get the value of the ProxyGroup::_sfState field.
const UInt32getState (void) const
 Get the value of the ProxyGroup::_sfState field.
bool & getConcurrentLoad (void)
 Get the value of the ProxyGroup::_sfConcurrentLoad field.
const bool & getConcurrentLoad (void) const
 Get the value of the ProxyGroup::_sfConcurrentLoad field.
DynamicVolumegetVolume (void)
 Get the value of the ProxyGroup::_sfVolume field.
const DynamicVolumegetVolume (void) const
 Get the value of the ProxyGroup::_sfVolume field.
UInt32getIndices (void)
 Get the value of the ProxyGroup::_sfIndices field.
const UInt32getIndices (void) const
 Get the value of the ProxyGroup::_sfIndices field.
UInt32getTriangles (void)
 Get the value of the ProxyGroup::_sfTriangles field.
const UInt32getTriangles (void) const
 Get the value of the ProxyGroup::_sfTriangles field.
UInt32getPositions (void)
 Get the value of the ProxyGroup::_sfPositions field.
const UInt32getPositions (void) const
 Get the value of the ProxyGroup::_sfPositions field.
UInt32getGeometries (void)
 Get the value of the ProxyGroup::_sfGeometries field.
const UInt32getGeometries (void) const
 Get the value of the ProxyGroup::_sfGeometries field.
UInt8getInline (const UInt32 index)
 Get the value of the index element the ProxyGroup::_mfInline field.
MFUInt8getInline (void)
 Get the ProxyGroup::_mfInline field.
const MFUInt8getInline (void) const
 Get the ProxyGroup::_mfInline field.
Field Set


void setEnabled (const bool &value)
 Set the value of the ProxyGroup::_sfEnabled field.
void setUrl (const std::string &value)
 Set the value of the ProxyGroup::_sfUrl field.
void setRoot (const NodePtr &value)
 Set the value of the ProxyGroup::_sfRoot field.
void setState (const UInt32 &value)
 Set the value of the ProxyGroup::_sfState field.
void setConcurrentLoad (const bool &value)
 Set the value of the ProxyGroup::_sfConcurrentLoad field.
void setVolume (const DynamicVolume &value)
 Set the value of the ProxyGroup::_sfVolume field.
void setIndices (const UInt32 &value)
 Set the value of the ProxyGroup::_sfIndices field.
void setTriangles (const UInt32 &value)
 Set the value of the ProxyGroup::_sfTriangles field.
void setPositions (const UInt32 &value)
 Set the value of the ProxyGroup::_sfPositions field.
void setGeometries (const UInt32 &value)
 Set the value of the ProxyGroup::_sfGeometries 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
Parents


MFNodePtrgetParents (void)
const MFNodePtrgetParents (void) const
MFNodePtrgetMFParents (void)
Volume


virtual void invalidateVolume (void)
Handle Attachments


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


SFAttachmentMapgetSFAttachments (void)
Get Instance Type Information


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


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

Static Public Member Functions

Class Get


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


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


static UInt16 getClassGroupId (void)

Static Public Attributes

static const osg::BitVector EnabledFieldMask
static const osg::BitVector UrlFieldMask
static const osg::BitVector RootFieldMask
static const osg::BitVector StateFieldMask
static const osg::BitVector ConcurrentLoadFieldMask
static const osg::BitVector VolumeFieldMask
static const osg::BitVector IndicesFieldMask
static const osg::BitVector TrianglesFieldMask
static const osg::BitVector PositionsFieldMask
static const osg::BitVector GeometriesFieldMask
static const osg::BitVector AbsoluteUrlFieldMask
static const osg::BitVector InlineFieldMask
static const osg::BitVector MTInfluenceMask
static const BitVector ParentsFieldMask = (1 << NodeCore::ParentsFieldId )
static const BitVector AttachmentsFieldMask
static const BitVector NextFieldMask
CoredNodePtr helper


static const bool isNodeCore = true

Protected Types

typedef ProxyGroupBase Inherited

Protected Member Functions

Constructors


 ProxyGroup (void)
 ProxyGroup (const ProxyGroup &source)
Destructors


virtual ~ProxyGroup (void)
Draw


Action::ResultE draw (Action *action)
NodeCore Specific


void adjustVolume (Volume &volume)
loading


void startLoading (void)
Field Get


SFStringgetSFAbsoluteUrl (void)
 Get the ProxyGroup::_sfAbsoluteUrl field.
std::string & getAbsoluteUrl (void)
 Get the value of the ProxyGroup::_sfAbsoluteUrl field.
const std::string & getAbsoluteUrl (void) const
 Get the value of the ProxyGroup::_sfAbsoluteUrl field.
Field Set


void setAbsoluteUrl (const std::string &value)
 Set the value of the ProxyGroup::_sfAbsoluteUrl field.
Sync


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


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


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


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


void executeSyncImpl (FieldContainer *pOther, const BitVector &whichField)
Action Callbacks


Action::ResultE drawEnter (Action *action)
Action::ResultE drawLeave (Action *action)
Action::ResultE renderEnter (Action *action)
Action::ResultE renderLeave (Action *action)
Action::ResultE intersect (Action *action)
MT Destruction


virtual void onDestroy (void)
Set / Get Parents


void addParent (const NodePtr &parent)
void subParent (const NodePtr &parent)
Pointer


NodeCorePtr getPtr (void) const
Pointer


AttachmentContainerPtr getPtr (void)
Transformation


virtual void accumulateMatrix (Matrix &result)
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)

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


SFBool _sfEnabled
SFString _sfUrl
SFNodePtr _sfRoot
SFUInt32 _sfState
SFBool _sfConcurrentLoad
SFDynamicVolume _sfVolume
SFUInt32 _sfIndices
SFUInt32 _sfTriangles
SFUInt32 _sfPositions
SFUInt32 _sfGeometries
SFString _sfAbsoluteUrl
MFUInt8 _mfInline
Fields


MFNodePtr _parents
Fields


SFAttachmentMap _attachmentMap
Member


UInt32 _shares

Private Member Functions

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

Static Private Member Functions

Init


static void initMethod (void)

Private Attributes

thread local


NodePtr _loadedRoot

Friends

class FieldContainer
class ProxyGroupBase


Detailed Description

ProxyGroup

This group is used for delayed loading. If enabled the child noads are loaded in a second thread. Until the load is finished the child nodes of this group are rendered. This could be used to show a proxy object. If concurrentLoad is false, then loading is done during the first frame. This is the behaviour of a simple inline.

Definition at line 57 of file OSGProxyGroup.h.


Member Typedef Documentation

Reimplemented from osg::ProxyGroupBase.

Definition at line 87 of file OSGProxyGroup.h.

Reimplemented from osg::GroupBase.

Definition at line 101 of file OSGProxyGroupBase.h.

Definition at line 85 of file OSGNodeCore.h.

Definition at line 86 of file OSGNodeCore.h.

Definition at line 87 of file OSGNodeCore.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
NOT_LOADED 
LOAD_THREAD_RUNNING 
LOAD_THREAD_FINISHED 
LOADED 
LOAD_ERROR 

Definition at line 62 of file OSGProxyGroup.h.

00062          { NOT_LOADED           =   0,
00063            LOAD_THREAD_RUNNING  =   1,
00064            LOAD_THREAD_FINISHED =   2,
00065            LOADED               =   4,
00066            LOAD_ERROR           = 100 };

anonymous enum [inherited]

Enumerator:
EnabledFieldId 
UrlFieldId 
RootFieldId 
StateFieldId 
ConcurrentLoadFieldId 
VolumeFieldId 
IndicesFieldId 
TrianglesFieldId 
PositionsFieldId 
GeometriesFieldId 
AbsoluteUrlFieldId 
InlineFieldId 
NextFieldId 

Definition at line 103 of file OSGProxyGroupBase.h.

00104     {
00105         EnabledFieldId        = Inherited::NextFieldId,
00106         UrlFieldId            = EnabledFieldId        + 1,
00107         RootFieldId           = UrlFieldId            + 1,
00108         StateFieldId          = RootFieldId           + 1,
00109         ConcurrentLoadFieldId = StateFieldId          + 1,
00110         VolumeFieldId         = ConcurrentLoadFieldId + 1,
00111         IndicesFieldId        = VolumeFieldId         + 1,
00112         TrianglesFieldId      = IndicesFieldId        + 1,
00113         PositionsFieldId      = TrianglesFieldId      + 1,
00114         GeometriesFieldId     = PositionsFieldId      + 1,
00115         AbsoluteUrlFieldId    = GeometriesFieldId     + 1,
00116         InlineFieldId         = AbsoluteUrlFieldId    + 1,
00117         NextFieldId           = InlineFieldId         + 1
00118     };

anonymous enum [inherited]

Enumerator:
ParentsFieldId 
NextFieldId 

Definition at line 93 of file OSGNodeCore.h.

00094     { 
00095         ParentsFieldId     = Inherited::NextFieldId, 
00096         NextFieldId        = ParentsFieldId + 1
00097     };

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

ProxyGroup::ProxyGroup ( void   )  [protected]

Definition at line 113 of file OSGProxyGroup.cpp.

00113                            :
00114     Inherited()
00115 {
00116 }

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

Definition at line 118 of file OSGProxyGroup.cpp.

00118                                                :
00119     Inherited(source)
00120 {
00121 }

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

Definition at line 126 of file OSGProxyGroup.cpp.

References osg::ProxyGroupBase::getRoot(), osg::NullFC, osg::ProxyGroupBase::setRoot(), and osg::subRefCP().

00127 {
00128     if(getRoot() != NullFC)
00129     {
00130         subRefCP(getRoot());
00131         setRoot(NullFC);
00132     }
00133 }


Member Function Documentation

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

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

Reimplemented from osg::Group.

Definition at line 104 of file OSGProxyGroup.cpp.

References SLOG.

00106 {
00107     SLOG << "Dump ProxyGroup NI" << std::endl;
00108 }

Action::ResultE ProxyGroup::draw ( Action action  )  [protected]

Draw loaded geometry. If nothing was loaded until now, start loading. If loading is not finished, draw the children of thid group.

Definition at line 165 of file OSGProxyGroup.cpp.

References _loadedRoot, _loadQueue, _loadThread, osg::Action::addNode(), osg::addRefCP(), osg::beginEditCP(), osg::Action::Continue, osg::dropVolume(), osg::endEditCP(), osg::ProxyGroupBase::getAbsoluteUrl(), osg::Action::getActNode(), osg::getCPtr(), osg::ProxyGroupBase::getEnabled(), osg::ProxyGroupBase::getRoot(), osg::ProxyGroupBase::getState(), osg::DrawActionBase::isVisible(), osg::BaseThread::join(), LOAD_ERROR, LOAD_THREAD_FINISHED, LOADED, NOT_LOADED, osg::NullFC, osg::ProxyGroupBase::RootFieldMask, osg::ProxyGroupBase::setRoot(), osg::ProxyGroupBase::setState(), osg::Color3< ValueTypeT >::setValuesRGB(), startLoading(), osg::ProxyGroupBase::StateFieldMask, osg::subRefCP(), SWARNING, and osg::Action::useNodeList().

Referenced by initMethod().

00166 {
00167     DrawActionBase *da        = dynamic_cast<DrawActionBase *>(action);
00168 
00169     if(getEnabled()     == false)
00170         return Action::Continue;
00171 
00172     if(getState() == NOT_LOADED)
00173         startLoading();
00174 
00175     if(getState() == LOAD_THREAD_FINISHED)
00176     {
00177         ProxyGroupPtr ptr(this);
00178             
00179         if(_loadedRoot != NullFC)
00180         {
00181             _loadThread=NULL;
00182             beginEditCP(ptr,RootFieldMask);
00183             if(getRoot() != NullFC)
00184                 subRefCP(getRoot());
00185             setRoot(_loadedRoot);
00186             getRoot()->invalidateVolume();
00187             getRoot()->updateVolume();
00188             endEditCP(ptr,RootFieldMask);
00189             addRefCP(getRoot());
00190             beginEditCP(ptr,StateFieldMask);
00191             setState(LOADED);
00192             endEditCP(ptr,StateFieldMask);
00193             da->getActNode()->invalidateVolume();
00194             da->getActNode()->updateVolume();
00195         }
00196         else
00197         {
00198             SWARNING << "failed to load " << getAbsoluteUrl() << std::endl;
00199             beginEditCP(ptr,StateFieldMask);
00200             setState(LOAD_ERROR);
00201             endEditCP(ptr,StateFieldMask);
00202         }
00203     }
00204 
00205     if(getState() == LOADED)
00206     {
00207         da->useNodeList();
00208         if(da->isVisible(getRoot().getCPtr()))
00209             da->addNode(getRoot());
00210     }
00211     else
00212     {
00213         if(da->getActNode()->getNChildren() == 0)
00214         {
00215             Color3f col;
00216             col.setValuesRGB(.5,.3,0);            
00217             dropVolume(da, da->getActNode(), col);
00218         }
00219     }
00220 
00221     // thread cleanup
00222     if(_loadThread && _loadQueue.empty())
00223     {
00224         printf("join\n");
00225         BaseThread::join(_loadThread);
00226         _loadThread = NULL;
00227     }
00228 
00229     return Action::Continue;
00230 }

void ProxyGroup::adjustVolume ( Volume volume  )  [protected, virtual]

If url was loaded, extend volume by loaded geometry. Otherwise extend volume by the volume given in the proxy object

Reimplemented from osg::NodeCore.

Definition at line 139 of file OSGProxyGroup.cpp.

References osg::Volume::extendBy(), osg::ProxyGroupBase::getEnabled(), osg::ProxyGroupBase::getRoot(), osg::ProxyGroupBase::getState(), osg::ProxyGroupBase::getVolume(), LOADED, osg::NullFC, osg::Volume::setEmpty(), and osg::Volume::setValid().

00140 {
00141     volume.setValid();
00142     volume.setEmpty();
00143 
00144     if(getEnabled() == false)
00145         return;
00146 
00147     if(getState() == LOADED && getRoot() != NullFC)
00148     {
00149         volume.extendBy(getRoot()->getVolume());
00150     }
00151     else
00152     {
00153         volume.extendBy(getVolume());
00154     }
00155 }

void ProxyGroup::startLoading ( void   )  [protected]

Load the given URL, currently the URL is treated as a filename.

Definition at line 238 of file OSGProxyGroup.cpp.

References _loadedRoot, _loadLock, _loadQueue, _loadThread, osg::Lock::aquire(), osg::beginEditCP(), osg::endEditCP(), osg::Lock::get(), osg::ProxyGroupBase::getAbsoluteUrl(), osg::PThreadBase::getAspect(), osg::ProxyGroupBase::getConcurrentLoad(), osg::ProxyGroupBase::getInline(), osg::ThreadManager::getThread(), osg::BaseThread::join(), LOAD_THREAD_FINISHED, LOAD_THREAD_RUNNING, loadProc(), osg::SceneFileHandler::read(), osg::Lock::release(), osg::PThreadBase::runFunction(), osg::ProxyGroupBase::setState(), osg::ProxyGroupBase::StateFieldMask, osg::ThreadManager::the(), and osg::SceneFileHandler::the().

Referenced by draw().

00239 {
00240     ProxyGroupPtr ptr(this);
00241 
00242     if(getConcurrentLoad() == false)
00243     {
00244         if(getInline().size() == 0)
00245         {
00246             _loadedRoot = SceneFileHandler::the().read(getAbsoluteUrl().c_str());
00247         }
00248         else
00249         {
00250             std::stringstream tmpStream(std::ios_base::in|
00251                                         std::ios_base::out|
00252                                         std::ios_base::binary);
00253             tmpStream.write((char*)(&getInline()[0]),getInline().size());
00254             _loadedRoot = SceneFileHandler::the().read(tmpStream, "osb");
00255         }
00256         beginEditCP(ptr,StateFieldMask);
00257         setState(LOAD_THREAD_FINISHED);
00258         endEditCP(ptr,StateFieldMask);
00259     }
00260     else
00261     {
00262         if(_loadLock == NULL)
00263         {
00264             _loadLock=Lock::get("ProxyGroupLoadLock");
00265         }
00266 
00267         _loadLock->aquire();
00268         
00269         bool noThread=_loadQueue.empty();
00270         
00271         _loadQueue.push(ptr);
00272         beginEditCP(ptr,StateFieldMask);
00273         setState(LOAD_THREAD_RUNNING);
00274         endEditCP(ptr,StateFieldMask);
00275         
00276         _loadLock->release();
00277         
00278         if(noThread)
00279         {
00280             if(_loadThread)
00281                 BaseThread::join(_loadThread);
00282             _loadThread=dynamic_cast<Thread *>(ThreadManager::the()
00283                                                ->getThread(NULL));
00284             _loadThread->runFunction( loadProc, 
00285                                       Thread::getAspect(),
00286                                       NULL );
00287         }
00288     }
00289 }

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

void ProxyGroup::loadProc ( void *   )  [static, private]

Definition at line 314 of file OSGProxyGroup.cpp.

References _loadLock, _loadQueue, osg::Lock::aquire(), osg::beginEditCP(), osg::endEditCP(), LOAD_THREAD_FINISHED, osg::SceneFileHandler::read(), osg::Lock::release(), osg::ProxyGroupBase::StateFieldMask, and osg::SceneFileHandler::the().

Referenced by startLoading().

00315 {
00316     bool stopThread=false;
00317     ProxyGroupPtr g;
00318 
00319     _loadLock->aquire();
00320     g=_loadQueue.front();
00321     _loadLock->release();
00322     while(!stopThread)
00323     {
00324         if(g->getInline().size() == 0) 
00325         {
00326             g->_loadedRoot=SceneFileHandler::the().read(g->getAbsoluteUrl().c_str());
00327         }
00328         else
00329         {
00330             std::stringstream tmpStream(std::ios_base::in|
00331                                         std::ios_base::out|
00332                                         std::ios_base::binary);
00333             tmpStream.write((char*)(&g->getInline()[0]),g->getInline().size());
00334             g->_loadedRoot = SceneFileHandler::the().read(tmpStream, "osb");
00335         }
00336         beginEditCP(g,StateFieldMask);
00337         g->setState(LOAD_THREAD_FINISHED);
00338         endEditCP(g,StateFieldMask);
00339         
00340         _loadLock->aquire();
00341         _loadQueue.pop();
00342         if(_loadQueue.empty())
00343             stopThread=true;
00344         else
00345             g=_loadQueue.front();
00346         _loadLock->release();
00347     }
00348 }

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

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

Reimplemented from osg::GroupBase.

Definition at line 58 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_type.

Referenced by osg::ProxyGroupBase::create(), and initMethod().

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::GroupBase.

Definition at line 65 of file OSGProxyGroupBase.inl.

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

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

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

Reimplemented from osg::GroupBase.

Definition at line 227 of file OSGProxyGroupBase.cpp.

References osg::ProxyGroupBase::_type.

00228 {
00229     return _type; 
00230 } 

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

Reimplemented from osg::GroupBase.

Definition at line 232 of file OSGProxyGroupBase.cpp.

References osg::ProxyGroupBase::_type.

00233 {
00234     return _type;
00235 } 

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

Reimplemented from osg::GroupBase.

Definition at line 247 of file OSGProxyGroupBase.cpp.

00248 { 
00249     return sizeof(ProxyGroup); 
00250 }

SFBool * osg::ProxyGroupBase::getSFEnabled ( void   )  [inline, inherited]

Definition at line 101 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfEnabled.

00102 {
00103     return &_sfEnabled;
00104 }

SFString * osg::ProxyGroupBase::getSFUrl ( void   )  [inline, inherited]

Definition at line 108 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfUrl.

00109 {
00110     return &_sfUrl;
00111 }

SFNodePtr * osg::ProxyGroupBase::getSFRoot ( void   )  [inline, inherited]

Definition at line 115 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfRoot.

00116 {
00117     return &_sfRoot;
00118 }

SFUInt32 * osg::ProxyGroupBase::getSFState ( void   )  [inline, inherited]

Definition at line 122 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfState.

00123 {
00124     return &_sfState;
00125 }

SFBool * osg::ProxyGroupBase::getSFConcurrentLoad ( void   )  [inline, inherited]

Definition at line 129 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfConcurrentLoad.

00130 {
00131     return &_sfConcurrentLoad;
00132 }

SFDynamicVolume * osg::ProxyGroupBase::getSFVolume ( void   )  [inline, inherited]

Definition at line 136 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfVolume.

00137 {
00138     return &_sfVolume;
00139 }

SFUInt32 * osg::ProxyGroupBase::getSFIndices ( void   )  [inline, inherited]

Definition at line 143 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfIndices.

00144 {
00145     return &_sfIndices;
00146 }

SFUInt32 * osg::ProxyGroupBase::getSFTriangles ( void   )  [inline, inherited]

Definition at line 150 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfTriangles.

00151 {
00152     return &_sfTriangles;
00153 }

SFUInt32 * osg::ProxyGroupBase::getSFPositions ( void   )  [inline, inherited]

Definition at line 157 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfPositions.

00158 {
00159     return &_sfPositions;
00160 }

SFUInt32 * osg::ProxyGroupBase::getSFGeometries ( void   )  [inline, inherited]

Definition at line 164 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfGeometries.

00165 {
00166     return &_sfGeometries;
00167 }

MFUInt8 * osg::ProxyGroupBase::getMFInline ( void   )  [inline, inherited]

Definition at line 178 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_mfInline.

00179 {
00180     return &_mfInline;
00181 }

bool & osg::ProxyGroupBase::getEnabled ( void   )  [inline, inherited]

Definition at line 186 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfEnabled, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by adjustVolume(), and draw().

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

const bool & osg::ProxyGroupBase::getEnabled ( void   )  const [inline, inherited]

Definition at line 193 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfEnabled, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00194 {
00195     return _sfEnabled.getValue();
00196 }

std::string & osg::ProxyGroupBase::getUrl ( void   )  [inline, inherited]

Definition at line 207 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfUrl, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by changed().

00208 {
00209     return _sfUrl.getValue();
00210 }

const std::string & osg::ProxyGroupBase::getUrl ( void   )  const [inline, inherited]

Definition at line 214 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfUrl, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00215 {
00216     return _sfUrl.getValue();
00217 }

NodePtr & osg::ProxyGroupBase::getRoot ( void   )  [inline, inherited]

Definition at line 228 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfRoot, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by adjustVolume(), draw(), and ~ProxyGroup().

00229 {
00230     return _sfRoot.getValue();
00231 }

const NodePtr & osg::ProxyGroupBase::getRoot ( void   )  const [inline, inherited]

Definition at line 235 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfRoot, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00236 {
00237     return _sfRoot.getValue();
00238 }

UInt32 & osg::ProxyGroupBase::getState ( void   )  [inline, inherited]

Definition at line 249 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfState, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by adjustVolume(), and draw().

00250 {
00251     return _sfState.getValue();
00252 }

const UInt32 & osg::ProxyGroupBase::getState ( void   )  const [inline, inherited]

Definition at line 256 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfState, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00257 {
00258     return _sfState.getValue();
00259 }

bool & osg::ProxyGroupBase::getConcurrentLoad ( void   )  [inline, inherited]

Definition at line 270 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfConcurrentLoad, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by startLoading().

00271 {
00272     return _sfConcurrentLoad.getValue();
00273 }

const bool & osg::ProxyGroupBase::getConcurrentLoad ( void   )  const [inline, inherited]

Definition at line 277 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfConcurrentLoad, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00278 {
00279     return _sfConcurrentLoad.getValue();
00280 }

DynamicVolume & osg::ProxyGroupBase::getVolume ( void   )  [inline, inherited]

Definition at line 291 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfVolume, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by adjustVolume().

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

const DynamicVolume & osg::ProxyGroupBase::getVolume ( void   )  const [inline, inherited]

Definition at line 298 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfVolume, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00299 {
00300     return _sfVolume.getValue();
00301 }

UInt32 & osg::ProxyGroupBase::getIndices ( void   )  [inline, inherited]

Definition at line 312 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfIndices, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00313 {
00314     return _sfIndices.getValue();
00315 }

const UInt32 & osg::ProxyGroupBase::getIndices ( void   )  const [inline, inherited]

Definition at line 319 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfIndices, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00320 {
00321     return _sfIndices.getValue();
00322 }

UInt32 & osg::ProxyGroupBase::getTriangles ( void   )  [inline, inherited]

Definition at line 333 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfTriangles, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

const UInt32 & osg::ProxyGroupBase::getTriangles ( void   )  const [inline, inherited]

Definition at line 340 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfTriangles, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00341 {
00342     return _sfTriangles.getValue();
00343 }

UInt32 & osg::ProxyGroupBase::getPositions ( void   )  [inline, inherited]

Definition at line 354 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfPositions, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

const UInt32 & osg::ProxyGroupBase::getPositions ( void   )  const [inline, inherited]

Definition at line 361 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfPositions, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00362 {
00363     return _sfPositions.getValue();
00364 }

UInt32 & osg::ProxyGroupBase::getGeometries ( void   )  [inline, inherited]

Definition at line 375 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfGeometries, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00376 {
00377     return _sfGeometries.getValue();
00378 }

const UInt32 & osg::ProxyGroupBase::getGeometries ( void   )  const [inline, inherited]

Definition at line 382 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfGeometries, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00383 {
00384     return _sfGeometries.getValue();
00385 }

UInt8 & osg::ProxyGroupBase::getInline ( const UInt32  index  )  [inline, inherited]

Definition at line 418 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_mfInline.

00419 {
00420     return _mfInline[index];
00421 }

MFUInt8 & osg::ProxyGroupBase::getInline ( void   )  [inline, inherited]

Definition at line 425 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_mfInline.

Referenced by startLoading().

00426 {
00427     return _mfInline;
00428 }

const MFUInt8 & osg::ProxyGroupBase::getInline ( void   )  const [inline, inherited]

Definition at line 432 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_mfInline.

00433 {
00434     return _mfInline;
00435 }

void osg::ProxyGroupBase::setEnabled ( const bool &  value  )  [inline, inherited]

Definition at line 200 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfEnabled, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00201 {
00202     _sfEnabled.setValue(value);
00203 }

void osg::ProxyGroupBase::setUrl ( const std::string &  value  )  [inline, inherited]

Definition at line 221 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfUrl, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00222 {
00223     _sfUrl.setValue(value);
00224 }

void osg::ProxyGroupBase::setRoot ( const NodePtr value  )  [inline, inherited]

Definition at line 242 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfRoot, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

Referenced by draw(), and ~ProxyGroup().

00243 {
00244     _sfRoot.setValue(value);
00245 }

void osg::ProxyGroupBase::setState ( const UInt32 value  )  [inline, inherited]

Definition at line 263 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfState, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

Referenced by changed(), draw(), and startLoading().

00264 {
00265     _sfState.setValue(value);
00266 }

void osg::ProxyGroupBase::setConcurrentLoad ( const bool &  value  )  [inline, inherited]

void osg::ProxyGroupBase::setVolume ( const DynamicVolume value  )  [inline, inherited]

Definition at line 305 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfVolume, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00306 {
00307     _sfVolume.setValue(value);
00308 }

void osg::ProxyGroupBase::setIndices ( const UInt32 value  )  [inline, inherited]

Definition at line 326 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfIndices, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00327 {
00328     _sfIndices.setValue(value);
00329 }

void osg::ProxyGroupBase::setTriangles ( const UInt32 value  )  [inline, inherited]

Definition at line 347 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfTriangles, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00348 {
00349     _sfTriangles.setValue(value);
00350 }

void osg::ProxyGroupBase::setPositions ( const UInt32 value  )  [inline, inherited]

Definition at line 368 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfPositions, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00369 {
00370     _sfPositions.setValue(value);
00371 }

void osg::ProxyGroupBase::setGeometries ( const UInt32 value  )  [inline, inherited]

UInt32 ProxyGroupBase::getBinSize ( const BitVector whichField  )  [virtual, inherited]

Reimplemented from osg::GroupBase.

Definition at line 332 of file OSGProxyGroupBase.cpp.

References osg::ProxyGroupBase::_mfInline, osg::ProxyGroupBase::_sfAbsoluteUrl, osg::ProxyGroupBase::_sfConcurrentLoad, osg::ProxyGroupBase::_sfEnabled, osg::ProxyGroupBase::_sfGeometries, osg::ProxyGroupBase::_sfIndices, osg::ProxyGroupBase::_sfPositions, osg::ProxyGroupBase::_sfRoot, osg::ProxyGroupBase::_sfState, osg::ProxyGroupBase::_sfTriangles, osg::ProxyGroupBase::_sfUrl, osg::ProxyGroupBase::_sfVolume, osg::ProxyGroupBase::AbsoluteUrlFieldMask, osg::ProxyGroupBase::ConcurrentLoadFieldMask, osg::ProxyGroupBase::EnabledFieldMask, osg::ProxyGroupBase::GeometriesFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::GroupBase::getBinSize(), osg::ProxyGroupBase::IndicesFieldMask, osg::ProxyGroupBase::InlineFieldMask, osg::FieldBits::NoField, osg::ProxyGroupBase::PositionsFieldMask, osg::ProxyGroupBase::RootFieldMask, osg::ProxyGroupBase::StateFieldMask, osg::ProxyGroupBase::TrianglesFieldMask, osg::ProxyGroupBase::UrlFieldMask, and osg::ProxyGroupBase::VolumeFieldMask.

00333 {
00334     UInt32 returnValue = Inherited::getBinSize(whichField);
00335 
00336     if(FieldBits::NoField != (EnabledFieldMask & whichField))
00337     {
00338         returnValue += _sfEnabled.getBinSize();
00339     }
00340 
00341     if(FieldBits::NoField != (UrlFieldMask & whichField))
00342     {
00343         returnValue += _sfUrl.getBinSize();
00344     }
00345 
00346     if(FieldBits::NoField != (RootFieldMask & whichField))
00347     {
00348         returnValue += _sfRoot.getBinSize();
00349     }
00350 
00351     if(FieldBits::NoField != (StateFieldMask & whichField))
00352     {
00353         returnValue += _sfState.getBinSize();
00354     }
00355 
00356     if(FieldBits::NoField != (ConcurrentLoadFieldMask & whichField))
00357     {
00358         returnValue += _sfConcurrentLoad.getBinSize();
00359     }
00360 
00361     if(FieldBits::NoField != (VolumeFieldMask & whichField))
00362     {
00363         returnValue += _sfVolume.getBinSize();
00364     }
00365 
00366     if(FieldBits::NoField != (IndicesFieldMask & whichField))
00367     {
00368         returnValue += _sfIndices.getBinSize();
00369     }
00370 
00371     if(FieldBits::NoField != (TrianglesFieldMask & whichField))
00372     {
00373         returnValue += _sfTriangles.getBinSize();
00374     }
00375 
00376     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00377     {
00378         returnValue += _sfPositions.getBinSize();
00379     }
00380 
00381     if(FieldBits::NoField != (GeometriesFieldMask & whichField))
00382     {
00383         returnValue += _sfGeometries.getBinSize();
00384     }
00385 
00386     if(FieldBits::NoField != (AbsoluteUrlFieldMask & whichField))
00387     {
00388         returnValue += _sfAbsoluteUrl.getBinSize();
00389     }
00390 
00391     if(FieldBits::NoField != (InlineFieldMask & whichField))
00392     {
00393         returnValue += _mfInline.getBinSize();
00394     }
00395 
00396 
00397     return returnValue;
00398 }

void ProxyGroupBase::copyToBin ( BinaryDataHandler pMem,
const BitVector whichField 
) [virtual, inherited]

Reimplemented from osg::GroupBase.

Definition at line 400 of file OSGProxyGroupBase.cpp.

References osg::ProxyGroupBase::_mfInline, osg::ProxyGroupBase::_sfAbsoluteUrl, osg::ProxyGroupBase::_sfConcurrentLoad, osg::ProxyGroupBase::_sfEnabled, osg::ProxyGroupBase::_sfGeometries, osg::ProxyGroupBase::_sfIndices, osg::ProxyGroupBase::_sfPositions, osg::ProxyGroupBase::_sfRoot, osg::ProxyGroupBase::_sfState, osg::ProxyGroupBase::_sfTriangles, osg::ProxyGroupBase::_sfUrl, osg::ProxyGroupBase::_sfVolume, osg::ProxyGroupBase::AbsoluteUrlFieldMask, osg::ProxyGroupBase::ConcurrentLoadFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::GroupBase::copyToBin(), osg::ProxyGroupBase::EnabledFieldMask, osg::ProxyGroupBase::GeometriesFieldMask, osg::ProxyGroupBase::IndicesFieldMask, osg::ProxyGroupBase::InlineFieldMask, osg::FieldBits::NoField, osg::ProxyGroupBase::PositionsFieldMask, osg::ProxyGroupBase::RootFieldMask, osg::ProxyGroupBase::StateFieldMask, osg::ProxyGroupBase::TrianglesFieldMask, osg::ProxyGroupBase::UrlFieldMask, and osg::ProxyGroupBase::VolumeFieldMask.

00402 {
00403     Inherited::copyToBin(pMem, whichField);
00404 
00405     if(FieldBits::NoField != (EnabledFieldMask & whichField))
00406     {
00407         _sfEnabled.copyToBin(pMem);
00408     }
00409 
00410     if(FieldBits::NoField != (UrlFieldMask & whichField))
00411     {
00412         _sfUrl.copyToBin(pMem);
00413     }
00414 
00415     if(FieldBits::NoField != (RootFieldMask & whichField))
00416     {
00417         _sfRoot.copyToBin(pMem);
00418     }
00419 
00420     if(FieldBits::NoField != (StateFieldMask & whichField))
00421     {
00422         _sfState.copyToBin(pMem);
00423     }
00424 
00425     if(FieldBits::NoField != (ConcurrentLoadFieldMask & whichField))
00426     {
00427         _sfConcurrentLoad.copyToBin(pMem);
00428     }
00429 
00430     if(FieldBits::NoField != (VolumeFieldMask & whichField))
00431     {
00432         _sfVolume.copyToBin(pMem);
00433     }
00434 
00435     if(FieldBits::NoField != (IndicesFieldMask & whichField))
00436     {
00437         _sfIndices.copyToBin(pMem);
00438     }
00439 
00440     if(FieldBits::NoField != (TrianglesFieldMask & whichField))
00441     {
00442         _sfTriangles.copyToBin(pMem);
00443     }
00444 
00445     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00446     {
00447         _sfPositions.copyToBin(pMem);
00448     }
00449 
00450     if(FieldBits::NoField != (GeometriesFieldMask & whichField))
00451     {
00452         _sfGeometries.copyToBin(pMem);
00453     }
00454 
00455     if(FieldBits::NoField != (AbsoluteUrlFieldMask & whichField))
00456     {
00457         _sfAbsoluteUrl.copyToBin(pMem);
00458     }
00459 
00460     if(FieldBits::NoField != (InlineFieldMask & whichField))
00461     {
00462         _mfInline.copyToBin(pMem);
00463     }
00464 
00465 
00466 }

void ProxyGroupBase::copyFromBin ( BinaryDataHandler pMem,
const BitVector whichField 
) [virtual, inherited]

Reimplemented from osg::GroupBase.

Definition at line 468 of file OSGProxyGroupBase.cpp.

References osg::ProxyGroupBase::_mfInline, osg::ProxyGroupBase::_sfAbsoluteUrl, osg::ProxyGroupBase::_sfConcurrentLoad, osg::ProxyGroupBase::_sfEnabled, osg::ProxyGroupBase::_sfGeometries, osg::ProxyGroupBase::_sfIndices, osg::ProxyGroupBase::_sfPositions, osg::ProxyGroupBase::_sfRoot, osg::ProxyGroupBase::_sfState, osg::ProxyGroupBase::_sfTriangles, osg::ProxyGroupBase::_sfUrl, osg::ProxyGroupBase::_sfVolume, osg::ProxyGroupBase::AbsoluteUrlFieldMask, osg::ProxyGroupBase::ConcurrentLoadFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::GroupBase::copyFromBin(), osg::ProxyGroupBase::EnabledFieldMask, osg::ProxyGroupBase::GeometriesFieldMask, osg::ProxyGroupBase::IndicesFieldMask, osg::ProxyGroupBase::InlineFieldMask, osg::FieldBits::NoField, osg::ProxyGroupBase::PositionsFieldMask, osg::ProxyGroupBase::RootFieldMask, osg::ProxyGroupBase::StateFieldMask, osg::ProxyGroupBase::TrianglesFieldMask, osg::ProxyGroupBase::UrlFieldMask, and osg::ProxyGroupBase::VolumeFieldMask.

00470 {
00471     Inherited::copyFromBin(pMem, whichField);
00472 
00473     if(FieldBits::NoField != (EnabledFieldMask & whichField))
00474     {
00475         _sfEnabled.copyFromBin(pMem);
00476     }
00477 
00478     if(FieldBits::NoField != (UrlFieldMask & whichField))
00479     {
00480         _sfUrl.copyFromBin(pMem);
00481     }
00482 
00483     if(FieldBits::NoField != (RootFieldMask & whichField))
00484     {
00485         _sfRoot.copyFromBin(pMem);
00486     }
00487 
00488     if(FieldBits::NoField != (StateFieldMask & whichField))
00489     {
00490         _sfState.copyFromBin(pMem);
00491     }
00492 
00493     if(FieldBits::NoField != (ConcurrentLoadFieldMask & whichField))
00494     {
00495         _sfConcurrentLoad.copyFromBin(pMem);
00496     }
00497 
00498     if(FieldBits::NoField != (VolumeFieldMask & whichField))
00499     {
00500         _sfVolume.copyFromBin(pMem);
00501     }
00502 
00503     if(FieldBits::NoField != (IndicesFieldMask & whichField))
00504     {
00505         _sfIndices.copyFromBin(pMem);
00506     }
00507 
00508     if(FieldBits::NoField != (TrianglesFieldMask & whichField))
00509     {
00510         _sfTriangles.copyFromBin(pMem);
00511     }
00512 
00513     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00514     {
00515         _sfPositions.copyFromBin(pMem);
00516     }
00517 
00518     if(FieldBits::NoField != (GeometriesFieldMask & whichField))
00519     {
00520         _sfGeometries.copyFromBin(pMem);
00521     }
00522 
00523     if(FieldBits::NoField != (AbsoluteUrlFieldMask & whichField))
00524     {
00525         _sfAbsoluteUrl.copyFromBin(pMem);
00526     }
00527 
00528     if(FieldBits::NoField != (InlineFieldMask & whichField))
00529     {
00530         _mfInline.copyFromBin(pMem);
00531     }
00532 
00533 
00534 }

ProxyGroupPtr osg::ProxyGroupBase::create ( void   )  [inline, static, inherited]

Reimplemented from osg::GroupBase.

Definition at line 72 of file OSGProxyGroupBase.inl.

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

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

ProxyGroupPtr osg::ProxyGroupBase::createEmpty ( void   )  [inline, static, inherited]

Reimplemented from osg::GroupBase.

Definition at line 87 of file OSGProxyGroupBase.inl.

References osg::FieldContainer::newPtr().

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

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

Reimplemented from osg::GroupBase.

Definition at line 238 of file OSGProxyGroupBase.cpp.

References osg::FieldContainer::newPtr().

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

00239 { 
00240     ProxyGroupPtr returnValue; 
00241 
00242     newPtr(returnValue, dynamic_cast<const ProxyGroup *>(this)); 
00243 
00244     return returnValue; 
00245 }

SFString * osg::ProxyGroupBase::getSFAbsoluteUrl ( void   )  [inline, protected, inherited]

Definition at line 171 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfAbsoluteUrl.

00172 {
00173     return &_sfAbsoluteUrl;
00174 }

std::string & osg::ProxyGroupBase::getAbsoluteUrl ( void   )  [inline, protected, inherited]

Definition at line 396 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfAbsoluteUrl, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by changed(), draw(), and startLoading().

00397 {
00398     return _sfAbsoluteUrl.getValue();
00399 }

const std::string & osg::ProxyGroupBase::getAbsoluteUrl ( void   )  const [inline, protected, inherited]

Definition at line 403 of file OSGProxyGroupBase.inl.

References osg::ProxyGroupBase::_sfAbsoluteUrl, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00404 {
00405     return _sfAbsoluteUrl.getValue();
00406 }

void osg::ProxyGroupBase::setAbsoluteUrl ( const std::string &  value  )  [inline, protected, inherited]

void ProxyGroupBase::executeSyncImpl ( ProxyGroupBase pOther,
const BitVector whichField 
) [protected, inherited]

Definition at line 537 of file OSGProxyGroupBase.cpp.

References osg::ProxyGroupBase::_mfInline, osg::ProxyGroupBase::_sfAbsoluteUrl, osg::ProxyGroupBase::_sfConcurrentLoad, osg::ProxyGroupBase::_sfEnabled, osg::ProxyGroupBase::_sfGeometries, osg::ProxyGroupBase::_sfIndices, osg::ProxyGroupBase::_sfPositions, osg::ProxyGroupBase::_sfRoot, osg::ProxyGroupBase::_sfState, osg::ProxyGroupBase::_sfTriangles, osg::ProxyGroupBase::_sfUrl, osg::ProxyGroupBase::_sfVolume, osg::ProxyGroupBase::AbsoluteUrlFieldMask, osg::ProxyGroupBase::ConcurrentLoadFieldMask, osg::ProxyGroupBase::EnabledFieldMask, osg::GroupBase::executeSyncImpl(), osg::ProxyGroupBase::GeometriesFieldMask, osg::ProxyGroupBase::IndicesFieldMask, osg::ProxyGroupBase::InlineFieldMask, osg::FieldBits::NoField, osg::ProxyGroupBase::PositionsFieldMask, osg::ProxyGroupBase::RootFieldMask, osg::ProxyGroupBase::StateFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::syncWith(), osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), osg::ProxyGroupBase::TrianglesFieldMask, osg::ProxyGroupBase::UrlFieldMask, and osg::ProxyGroupBase::VolumeFieldMask.

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

00539 {
00540 
00541     Inherited::executeSyncImpl(pOther, whichField);
00542 
00543     if(FieldBits::NoField != (EnabledFieldMask & whichField))
00544         _sfEnabled.syncWith(pOther->_sfEnabled);
00545 
00546     if(FieldBits::NoField != (UrlFieldMask & whichField))
00547         _sfUrl.syncWith(pOther->_sfUrl);
00548 
00549     if(FieldBits::NoField != (RootFieldMask & whichField))
00550         _sfRoot.syncWith(pOther->_sfRoot);
00551 
00552     if(FieldBits::NoField != (StateFieldMask & whichField))
00553         _sfState.syncWith(pOther->_sfState);
00554 
00555     if(FieldBits::NoField != (ConcurrentLoadFieldMask & whichField))
00556         _sfConcurrentLoad.syncWith(pOther->_sfConcurrentLoad);
00557 
00558     if(FieldBits::NoField != (VolumeFieldMask & whichField))
00559         _sfVolume.syncWith(pOther->_sfVolume);
00560 
00561     if(FieldBits::NoField != (IndicesFieldMask & whichField))
00562         _sfIndices.syncWith(pOther->_sfIndices);
00563 
00564     if(FieldBits::NoField != (TrianglesFieldMask & whichField))
00565         _sfTriangles.syncWith(pOther->_sfTriangles);
00566 
00567     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00568         _sfPositions.syncWith(pOther->_sfPositions);
00569 
00570     if(FieldBits::NoField != (GeometriesFieldMask & whichField))
00571         _sfGeometries.syncWith(pOther->_sfGeometries);
00572 
00573     if(FieldBits::NoField != (AbsoluteUrlFieldMask & whichField))
00574         _sfAbsoluteUrl.syncWith(pOther->_sfAbsoluteUrl);
00575 
00576     if(FieldBits::NoField != (InlineFieldMask & whichField))
00577         _mfInline.syncWith(pOther->_mfInline);
00578 
00579 
00580 }

void GroupBase::executeSyncImpl ( GroupBase pOther,
const BitVector whichField 
) [protected, inherited]

void osg::NodeCore::executeSyncImpl ( NodeCore pOther,
const BitVector whichField 
) [inline, 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 ProxyGroupBase::executeSync ( FieldContainer other,
const BitVector whichField 
) [protected, virtual, inherited]

Reimplemented from osg::GroupBase.

Definition at line 254 of file OSGProxyGroupBase.cpp.

References osg::ProxyGroupBase::executeSyncImpl().

00256 {
00257     this->executeSyncImpl((ProxyGroupBase *) &other, whichField);
00258 }

Action::ResultE Group::drawEnter ( Action action  )  [protected, inherited]

Reimplemented in osg::DirectionalLight, osg::Light, osg::PointLight, osg::SpotLight, osg::Billboard, osg::InverseTransform, osg::MaterialGroup, osg::ScreenGroup, and osg::Transform.

Definition at line 100 of file OSGGroup.cpp.

References osg::Action::Continue, osg::DrawActionBase::selectVisibles(), and osg::Action::Skip.

Referenced by osg::Group::initMethod().

00101 {
00102     DrawActionBase *da = dynamic_cast<DrawActionBase *>(action);
00103 
00104     if(da->selectVisibles() == 0)
00105         return Action::Skip;
00106     
00107     return Action::Continue;
00108 }

Action::ResultE Group::drawLeave ( Action action  )  [protected, inherited]

Action::ResultE Group::renderEnter ( Action action  )  [protected, inherited]

Action::ResultE Group::renderLeave ( Action action  )  [protected, inherited]

Action::ResultE Group::intersect ( Action action  )  [protected, inherited]

Reimplemented in osg::Switch.

Definition at line 146 of file OSGGroup.cpp.

References osg::Action::Continue, osg::Action::getActNode(), osg::IntersectAction::getLine(), osg::DynamicVolume::intersect(), osg::Volume::isValid(), and osg::Action::Skip.

Referenced by osg::Group::initMethod(), and osg::Transform::intersectEnter().

00147 {
00148           IntersectAction *ia = dynamic_cast<IntersectAction *>(action);
00149     const DynamicVolume   &dv = ia->getActNode()->getVolume();
00150     
00151     if(dv.isValid() && ! dv.intersect(ia->getLine()))
00152     {
00153         return Action::Skip;  //bv missed -> can not hit children
00154     }
00155     
00156     return Action::Continue;
00157 }

MFNodePtr & osg::NodeCore::getParents ( void   )  [inline, inherited]

Definition at line 56 of file OSGNodeCore.inl.

Referenced by osg::Surface::FindClosestPoint().

00057 {
00058     return _parents;
00059 }

const MFNodePtr & osg::NodeCore::getParents ( void   )  const [inline, inherited]

Definition at line 62 of file OSGNodeCore.inl.

References osg::NodeCore::_parents.

00063 {
00064     return _parents;
00065 }

MFNodePtr * osg::NodeCore::getMFParents ( void   )  [inline, inherited]

Definition at line 68 of file OSGNodeCore.inl.

References osg::NodeCore::_parents.

00069 {
00070     return &_parents;
00071 }

void osg::NodeCore::invalidateVolume ( void   )  [inline, virtual, inherited]

Definition at line 237 of file OSGNodeCore.inl.

References osg::NodeCore::_parents, and osg::MField< FieldTypeT, fieldNameSpace >::size().

Referenced by osg::Transform::changed(), and osg::Slices::changed().

00238 {
00239     for(UInt32 i = 0; i < _parents.size(); i++)
00240     {
00241         _parents[i]->invalidateVolume();
00242     }
00243 }

void osg::NodeCore::onDestroy ( void   )  [inline, protected, virtual, inherited]

Reimplemented from osg::FieldContainer.

Reimplemented in osg::Geometry, osg::Surface, and osg::MaterialPool.

Definition at line 142 of file OSGNodeCore.inl.

Referenced by osg::Geometry::onDestroy().

00143 {
00144 }

void osg::NodeCore::addParent ( const NodePtr parent  )  [inline, protected, inherited]

Definition at line 150 of file OSGNodeCore.inl.

References osg::NodeCore::_parents, and osg::MField< FieldTypeT, fieldNameSpace >::push_back().

00151 {
00152     _parents.push_back(parent);
00153 }

void osg::NodeCore::subParent ( const NodePtr parent  )  [inline, protected, inherited]

Definition at line 156 of file OSGNodeCore.inl.

References osg::NodeCore::_parents, osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::MField< FieldTypeT, fieldNameSpace >::erase(), and osg::MField< FieldTypeT, fieldNameSpace >::find().

00157 {
00158     MFNodePtr::iterator parentIt = _parents.find(parent);
00159 
00160     if(parentIt != _parents.end())
00161     {
00162         _parents.erase(parentIt);
00163     }
00164 }

NodeCorePtr osg::NodeCore::getPtr ( void   )  const [inline, protected, inherited]

Reimplemented in osg::Geometry.

Definition at line 170 of file OSGNodeCore.inl.

Referenced by osg::MaterialPool::add(), osg::NodeCore::dump(), and osg::MaterialPool::sub().

00171 {
00172     return NodeCorePtr(*this);
00173 }

AttachmentContainerPtr AttachmentContainer::getPtr ( void   )  [protected, inherited]

void osg::NodeCore::accumulateMatrix ( Matrix result  )  [inline, protected, virtual, inherited]

Reimplemented in osg::Billboard, osg::InverseTransform, osg::ScreenGroup, and osg::Transform.

Definition at line 224 of file OSGNodeCore.inl.

00225 {
00226 }

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 }

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 }


Friends And Related Function Documentation

friend class FieldContainer [friend]

Reimplemented from osg::ProxyGroupBase.

Definition at line 128 of file OSGProxyGroup.h.

friend class ProxyGroupBase [friend]

Definition at line 129 of file OSGProxyGroup.h.


Member Data Documentation

Definition at line 135 of file OSGProxyGroup.h.

Referenced by draw(), and startLoading().

PthreadBase * ProxyGroup::_loadThread = NULL [static, private]

Definition at line 150 of file OSGProxyGroup.h.

Referenced by draw(), and startLoading().

std::queue< ProxyGroupPtr > ProxyGroup::_loadQueue = std::queue<ProxyGroupPtr>() [static, private]

Definition at line 151 of file OSGProxyGroup.h.

Referenced by draw(), loadProc(), and startLoading().

Lock * ProxyGroup::_loadLock = NULL [static, private]

Definition at line 152 of file OSGProxyGroup.h.

Referenced by loadProc(), and startLoading().

const osg::BitVector ProxyGroupBase::UrlFieldMask [static, inherited]

const osg::BitVector ProxyGroupBase::RootFieldMask [static, inherited]

Initial value:

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

Reimplemented from osg::GroupBase.

Definition at line 134 of file OSGProxyGroupBase.h.

bool ProxyGroupBase::_sfEnabled [protected, inherited]

std::string ProxyGroupBase::_sfUrl [protected, inherited]

NodePtr ProxyGroupBase::_sfRoot [protected, inherited]

UInt32 ProxyGroupBase::_sfState [protected, inherited]

bool ProxyGroupBase::_sfConcurrentLoad [protected, inherited]

DynamicVolume ProxyGroupBase::_sfVolume [protected, inherited]

UInt32 ProxyGroupBase::_sfIndices [protected, inherited]

UInt32 ProxyGroupBase::_sfTriangles [protected, inherited]

UInt32 ProxyGroupBase::_sfPositions [protected, inherited]

UInt32 ProxyGroupBase::_sfGeometries [protected, inherited]

std::string ProxyGroupBase::_sfAbsoluteUrl [protected, inherited]

UInt8 ProxyGroupBase::_mfInline [protected, inherited]

const BitVector NodeCore::ParentsFieldMask = (1 << NodeCore::ParentsFieldId ) [static, inherited]

const bool osg::NodeCore::isNodeCore = true [static, inherited]

Reimplemented from osg::FieldContainer.

Definition at line 149 of file OSGNodeCore.h.

MFNodePtr osg::NodeCore::_parents [protected, inherited]

const BitVector osg::FieldContainer::NextFieldMask [static, inherited]

Initial value:

 
                    (TypeTraits<BitVector>::One << NextFieldId)

Definition at line 75 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:10:22 2008 for OpenSG by  doxygen 1.5.5