OSG::NodeCore Class Reference

#include <OSGNodeCore.h>

Inheritance diagram for OSG::NodeCore:

OSG::AttachmentContainer OSG::FieldContainer OSG::ReflexiveContainer OSG::DrawableBase OSG::GroupBase OSG::InlineBase OSG::LightBase OSG::LightEnvBase OSG::Drawable OSG::Group OSG::Inline OSG::Light OSG::LightEnv OSG::MaterialDrawableBase OSG::BillboardBase OSG::ChunkOverrideGroupBase OSG::ContainerMixinHead< StageDesc > OSG::DistanceLODBase OSG::InverseTransformBase OSG::MaterialGroupBase OSG::MultiCoreBase OSG::ProxyGroupBase OSG::ScreenLODBase OSG::SwitchBase OSG::TransformBase OSG::VisitSubTreeBase OSG::DirectionalLightBase OSG::PointLightBase List of all members.

dcast



typedef AttachmentContainer Self
typedef FieldContainerAttachment AttachmentObj
typedef FieldContainerAttachmentPtr AttachmentObjPtr
typedef SFFieldContainerAttachmentPtrMap SFAttachmentObjPtrMap
typedef SFAttachmentObjPtrMap::StoredType AttachmentObjPtrMap
typedef AttachmentObjPtrMap::iterator AttachmentObjPtrMapIt
 OSG_GEN_INTERNALPTR (AttachmentContainer)

Type information



static TypeObject _type
static void classDescInserter (TypeObject &oType)
static Char8 * getClassname (void)

Public Types

typedef AttachmentContainer Inherited
typedef AttachmentContainer ParentContainer
typedef Inherited::TypeObject TypeObject
typedef MFParentFieldContainerPtr ParentField
typedef const MFParentFieldContainerPtr * ParentFieldPtr
typedef MFParentFieldContainerPtr::const_iterator ParentFieldIt
Type definitions


typedef TypeObject::InitPhase InitPhase
typedef Field *(ReflexiveContainer::*) FieldEditMethod (void)
typedef const Field *(ReflexiveContainer::*) FieldGetMethod (void) const

Public Member Functions

 OSG_GEN_INTERNALPTR (NodeCore)
 OSG_RC_FIRST_FIELD_DECL (Parents)
 OSG_RC_LAST_FIELD_DECL (Parents)
Helper


const MFParentFieldContainerPtr & getParents (void) const
Get


const MFParentFieldContainerPtr * getMFParents (void) const
Binary Access


virtual UInt32 getBinSize (ConstFieldMaskArg whichField)
virtual void copyToBin (BinaryDataHandler &pMem, ConstFieldMaskArg whichField)
virtual void copyFromBin (BinaryDataHandler &pMem, ConstFieldMaskArg whichField)
Changed


virtual void accumulateMatrix (Matrixr &result)
MT Destruction


virtual void adjustVolume (Volume &volume)
Comparison


virtual void invalidateVolume (void)
Dump


void addParent (FieldContainerPtrConst &parent, const UInt16 uiStoredInFieldId=InvalidParentEPos)
void subParent (FieldContainerPtrConst &parent)
Dump


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


 OSG_GEN_INTERNALPTR (FieldContainer)
 OSG_RC_FIRST_FIELD_DECL (ChangedCallbacks)
 OSG_RC_LAST_FIELD_DECL (ChangedCallbacks)
Constructors


 OSG_RC_FIRST_FIELD_DECL (Attachments)
 OSG_RC_LAST_FIELD_DECL (Attachments)
Set


void addAttachment (const AttachmentObjPtr attachmentP, UInt16 binding=0)
void subAttachment (const AttachmentObjPtr attachmentP, UInt16 binding=0)
AttachmentObjPtr findAttachment (UInt32 groupId, UInt16 binding=0)
AttachmentObjPtr findAttachment (const FieldContainerType &type, UInt16 binding=0)
your_category


const SFAttachmentObjPtrMapgetSFAttachments (void) const
General Fieldcontainer Declaration


virtual OSG_SYSTEM_DLLMAPPING
TypeObject
getType (void)
virtual OSG_SYSTEM_DLLMAPPING
const TypeObject
getType (void) const
Get


virtual ObjPtr shallowCopy (void) const=0
Set


virtual void changed (ConstFieldMaskArg whichField, UInt32 origin, BitVector details)
void callChangedFunctors (ConstFieldMaskArg whichField)
Container Access


UInt32 addChangedFunctor (ChangedFunctor func, std::string createSymbol)
template<class FunctorT>
void subChangedFunctor (FunctorT func)
void subChangedFunctor (UInt32 uiId)
void clearChangedFunctors (void)
Field Flags


const FieldFlagsgetFieldFlags (void)
Helper


OSG_SYSTEM_DLLMAPPING void addReference (void)
OSG_SYSTEM_DLLMAPPING void subReference (void)
OSG_SYSTEM_DLLMAPPING void subReferenceLocalVar (void)
OSG_SYSTEM_DLLMAPPING Int32 getRefCount (void) const
dcast


OSG_SYSTEM_DLLMAPPING UInt32 getTypeId (void) const
OSG_SYSTEM_DLLMAPPING UInt16 getGroupId (void) const
OSG_SYSTEM_DLLMAPPING const
Char8 * 
getTypeName (void) const
General Fieldcontainer Declaration


virtual UInt32 getContainerSize (void) const=0
Get Field


OSG_SYSTEM_DLLMAPPING UInt32 getNumFields (void) const
OSG_SYSTEM_DLLMAPPING EditFieldHandlePtr editField (UInt32 fieldId)
OSG_SYSTEM_DLLMAPPING EditFieldHandlePtr editField (const Char8 *fieldName)
OSG_SYSTEM_DLLMAPPING GetFieldHandlePtr getField (UInt32 fieldId) const
OSG_SYSTEM_DLLMAPPING GetFieldHandlePtr getField (const Char8 *fieldName) const
Get Field Description


OSG_SYSTEM_DLLMAPPING FieldDescriptionBasegetFieldDescription (UInt32 fieldId)
OSG_SYSTEM_DLLMAPPING FieldDescriptionBasegetFieldDescription (const Char8 *fieldName)
Comparison


OSG_SYSTEM_DLLMAPPING EditFieldHandlePtr invalidEditField (void)
OSG_SYSTEM_DLLMAPPING GetFieldHandlePtr invalidGetField (void) const

Static Public Member Functions

Get Class Type Information


static OSG_SYSTEM_DLLMAPPING
TypeObject
getClassType (void)
static OSG_SYSTEM_DLLMAPPING
UInt32 
getClassTypeId (void)
static OSG_SYSTEM_DLLMAPPING
UInt16 
getClassGroupId (void)

Public Attributes

dcast


 OSG_ABSTR_FIELD_CONTAINER_DECL

Static Public Attributes

static const bool isNodeCore = true
Constants


static const UInt32 NextFieldId = 1
static const BitVector NextFieldMask = 0x01

Protected Member Functions

Member


 NodeCore (void)
 NodeCore (const NodeCore &source)
virtual ~NodeCore (void)
Edit


GetFieldHandlePtr getHandleParents (void) const
Sync


virtual void resolveLinks (void)
Sync


EditFieldHandlePtr editHandleAttachments (void)
GetFieldHandlePtr getHandleAttachments (void) const
Edit


OSG_SYSTEM_DLLMAPPING void subReferenceUnresolved (void)
MT Construction


OSG_SYSTEM_DLLMAPPING void onCreateAspect (const FieldContainer *createAspect, const FieldContainer *source=NULL)
OSG_SYSTEM_DLLMAPPING void onCreate (const FieldContainer *source=NULL)
virtual OSG_SYSTEM_DLLMAPPING
void 
onDestroy (UInt32 uiContainerId)
Changed


OSG_SYSTEM_DLLMAPPING void onCreate (const ReflexiveContainer *source=NULL)
virtual OSG_SYSTEM_DLLMAPPING
void 
onDestroyAspect (UInt32 uiContainerId, UInt32 uiAspect)
MT Construction


virtual OSG_SYSTEM_DLLMAPPING
bool 
deregister (UInt32 uiContainerId)
MT Construction


OSG_SYSTEM_DLLMAPPING void registerChangedContainer (void)
virtual OSG_SYSTEM_DLLMAPPING
void 
registerChangedContainerV (void)
Local Edit


void editSField (ConstFieldMaskArg whichField)
template<class FieldT>
void editMField (ConstFieldMaskArg whichField, FieldT &oField)
MT Destruction


void execEndEdit (ConstFieldMaskArg whichField)
void clearChangeEntry (ContainerChangeEntry *pRef)
Edit


OSG_SYSTEM_DLLMAPPING void setId (UInt32 uiContainerId)
OSG_SYSTEM_DLLMAPPING UInt32 getId (void) const

Static Protected Member Functions

Fields


static void classDescInserter (TypeObject &oType)
MT Construction


template<class ObjectT>
static void newPtr (typename ObjectT::ObjPtr &result, const ObjectT *prototypeP)
template<class ObjectT>
static void newPtr (typename ObjectT::ObjPtr &result)
Init


static void initMethod (InitPhase ePhase)

Protected Attributes

Fields


MFParentFieldContainerPtr _mfParents
Fields


SFAttachmentObjPtrMap _sfAttachments
Type information


FieldFlags_pFieldFlags
MFChangedFunctorCallback _mfChangedFunctors
Int32 _iRefCount
Member


BitVector _bvChanged
ContainerChangeEntry_pContainerChanges
UInt32 _uiContainerId

Private Member Functions

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

Friends

class Node

Detailed Description

Brief

Definition at line 64 of file OSGNodeCore.h.


Member Typedef Documentation

Reimplemented from OSG::AttachmentContainer.

Reimplemented in OSG::MoveManipulator, OSG::ManipulatorBase, OSG::ScaleManipulator, OSG::RotateManipulatorBase, OSG::MoveManipulatorBase, OSG::Manipulator, OSG::ScaleManipulatorBase, OSG::RotateManipulator, OSG::ScreenLOD, OSG::ScreenLODBase, OSG::Stage, OSG::AlgorithmStageBase, OSG::SimpleStageBase, OSG::StageBase, OSG::AlgorithmStage, OSG::SimpleStage, OSG::DirectionalLightBase, OSG::PointLight, OSG::DirectionalLight, OSG::SpotLightBase, OSG::PointLightBase, OSG::SpotLight, OSG::ComponentTransform, OSG::DistanceLODBase, OSG::VisitSubTree, OSG::Billboard, OSG::SwitchBase, OSG::InverseTransformBase, OSG::TransformBase, OSG::Inline, OSG::VisitSubTreeBase, OSG::BillboardBase, OSG::ComponentTransformBase, OSG::ProxyGroup, OSG::InlineBase, OSG::ProxyGroupBase, OSG::DistanceLOD, OSG::Switch, OSG::InverseTransform, OSG::Transform, OSG::MultiCore, OSG::MultiCoreBase, OSG::HDRStageBase, OSG::HDRStage, OSG::GroupBase, OSG::MaterialGroupBase, OSG::Light, OSG::LightEnv, OSG::Group, OSG::LightBase, OSG::LightEnvBase, OSG::MaterialGroup, OSG::ChunkOverrideGroupBase, OSG::ChunkOverrideGroup, OSG::Drawable, OSG::MaterialDrawableBase, OSG::MaterialDrawable, OSG::DrawableBase, OSG::TiledQuadTreeTerrain, OSG::QuadTreeTerrainBase, OSG::QuadTreeTerrain, OSG::TiledQuadTreeTerrainBase, OSG::ParticlesBase, OSG::Particles, OSG::GeometryBase, OSG::Geometry, OSG::StageHandlerMixin< ContainerMixinHead< StageDesc > >, and OSG::ContainerMixinHead< StageDesc >.

Definition at line 70 of file OSGNodeCore.h.

typedef MFParentFieldContainerPtr OSG::NodeCore::ParentField

Definition at line 77 of file OSGNodeCore.h.

typedef const MFParentFieldContainerPtr* OSG::NodeCore::ParentFieldPtr

Definition at line 78 of file OSGNodeCore.h.

typedef MFParentFieldContainerPtr::const_iterator OSG::NodeCore::ParentFieldIt

Definition at line 79 of file OSGNodeCore.h.

Definition at line 70 of file OSGAttachmentContainer.h.

typedef FieldContainerAttachmentPtr OSG::AttachmentContainer::AttachmentObjPtr [inherited]

Definition at line 71 of file OSGAttachmentContainer.h.

typedef SFFieldContainerAttachmentPtrMap OSG::AttachmentContainer::SFAttachmentObjPtrMap [inherited]

Definition at line 72 of file OSGAttachmentContainer.h.

typedef SFAttachmentObjPtrMap::StoredType OSG::AttachmentContainer::AttachmentObjPtrMap [inherited]

Definition at line 74 of file OSGAttachmentContainer.h.

typedef AttachmentObjPtrMap::iterator OSG::AttachmentContainer::AttachmentObjPtrMapIt [inherited]

Definition at line 75 of file OSGAttachmentContainer.h.

Reimplemented in OSG::ManipulatorBase, OSG::RotateManipulatorBase, OSG::MoveManipulatorBase, OSG::ScaleManipulatorBase, OSG::LineChunkBase, OSG::TwoSidedLightingChunkBase, OSG::PointChunkBase, OSG::PolygonChunkBase, OSG::ColorMaskChunkBase, OSG::CubeTextureObjChunkBase, OSG::TextureTransformChunkBase, OSG::StencilChunkBase, OSG::DepthChunkBase, OSG::ClipPlaneChunkBase, OSG::TransformChunkBase, OSG::ShaderChunkBase, OSG::ShaderParameterChunkBase, OSG::SHLChunkBase, OSG::SHLParameterChunkBase, OSG::ShaderParameterMatrixBase, OSG::ShaderParameterVec2fBase, OSG::ShaderParameterMVec4fBase, OSG::ShaderParameterIntBase, OSG::ShaderParameterMRealBase, OSG::ShaderParameterMIntBase, OSG::ShaderParameterMVec3fBase, OSG::ShaderParameterBoolBase, OSG::ShaderParameterVec4fBase, OSG::ShaderParameterBase, OSG::ShaderParameterMVec2fBase, OSG::ShaderParameterStringBase, OSG::ShaderParameterVec3fBase, OSG::ShaderParameterMMatrixBase, OSG::ShaderParameterRealBase, OSG::TextureSelectChunkBase, OSG::TextureObjRefChunkBase, OSG::RegisterCombinersChunkBase, OSG::VertexProgramChunkBase, OSG::ProgramChunkBase, OSG::FragmentProgramChunkBase, OSG::SimpleShadowMapEngineDataBase, OSG::SimpleShadowMapEngineBase, OSG::ShadowMapEngineBase, OSG::ScreenLODBase, OSG::TextureBackgroundBase, OSG::PassiveBackgroundBase, OSG::DepthClearBackgroundBase, OSG::PolygonBackgroundBase, OSG::TextureGrabBackgroundBase, OSG::SkyBackgroundBase, OSG::GradientBackgroundBase, OSG::SolidBackgroundBase, OSG::StereoBufferViewportBase, OSG::ColorBufferViewportBase, OSG::PassiveViewportBase, OSG::ProjectionCameraDecoratorBase, OSG::PerspectiveCameraBase, OSG::OrthographicCameraBase, OSG::OffCenterPerspectiveCameraBase, OSG::TileCameraDecoratorBase, OSG::MatrixCameraBase, OSG::MatrixCameraDecoratorBase, OSG::ShearedStereoCameraDecoratorBase, OSG::TextureGrabForegroundBase, OSG::FileGrabForegroundBase, OSG::GrabForegroundBase, OSG::ImageForegroundBase, OSG::PolygonForegroundBase, OSG::GLUTWindowBase, OSG::AlgorithmBase, OSG::AlgorithmStageBase, OSG::SimpleStageBase, OSG::StageDataBase, OSG::StageBase, OSG::DirectionalLightBase, OSG::SpotLightBase, OSG::PointLightBase, OSG::DistanceLODBase, OSG::SwitchBase, OSG::InverseTransformBase, OSG::TransformBase, OSG::VisitSubTreeBase, OSG::BillboardBase, OSG::ComponentTransformBase, OSG::InlineBase, OSG::ProxyGroupBase, OSG::MultiCoreBase, OSG::HDRStageDataBase, OSG::HDRStageBase, OSG::XWindowBase, OSG::SimpleStatisticsForegroundBase, OSG::MultiDisplayWindowBase, OSG::ImageComposerBase, OSG::ClusterWindowBase, OSG::SortFirstWindowBase, OSG::BinarySwapComposerBase, OSG::ParallelComposerBase, OSG::SepiaComposerBase, OSG::SortLastWindowBase, OSG::PipelineComposerBase, OSG::BalancedMultiWindowBase, OSG::TexGenChunkBase, OSG::MaterialChunkBase, OSG::TextureEnvChunkBase, OSG::LightChunkBase, OSG::StateChunkBase, OSG::StateBase, OSG::TextureBaseChunkBase, OSG::BlendChunkBase, OSG::TextureObjChunkBase, OSG::LightEngineBase, OSG::GroupBase, OSG::MaterialGroupBase, OSG::LightBase, OSG::LightEnvBase, OSG::ChunkOverrideGroupBase, OSG::MaterialDrawableBase, OSG::DrawableBase, OSG::ImageBase, OSG::SimpleAttachment< AttachmentDescT >, OSG::StringAttributeMapBase, OSG::ContainerPoolBase, OSG::ForegroundBase, OSG::BackgroundBase, OSG::CameraDecoratorBase, OSG::ViewportBase, OSG::CameraBase, OSG::RenderOptionsBase, OSG::PassiveWindowBase, OSG::WindowBase, OSG::StereoCameraDecoratorBase, OSG::FrameBufferAttachmentBase, OSG::TextureBufferBase, OSG::FBOViewportBase, OSG::RenderBufferBase, OSG::FrameBufferObjectBase, OSG::CubeTextureChunkBase, OSG::TextureChunkBase, OSG::StatisticsForegroundBase, OSG::SimpleTexturedMaterialBase, OSG::SimpleMaterialBase, OSG::ChunkMaterialBase, OSG::MaterialBase, OSG::MultiPassMaterialBase, OSG::SwitchMaterialBase, OSG::QuadTreeTerrainBase, OSG::TiledQuadTreeTerrainBase, OSG::ParticlesBase, OSG::GeometryBase, OSG::GeoIntegralPropertyBase, OSG::TypedGeoIntegralProperty< GeoPropertyDesc >, OSG::GeoPropertyBase, OSG::GeoMultiPropertyDataBase, OSG::GeoMultiPropertyBase, OSG::GeoVectorPropertyBase, OSG::TypedGeoVectorProperty< GeoPropertyDesc >, OSG::GeoStatsAttachmentBase, and OSG::StatsAttachmentBase.

Definition at line 77 of file OSGReflexiveContainer.h.

typedef Field*(ReflexiveContainer::*) OSG::ReflexiveContainer::FieldEditMethod(void) [inherited]

Definition at line 79 of file OSGReflexiveContainer.h.

typedef const Field*(ReflexiveContainer::*) OSG::ReflexiveContainer::FieldGetMethod(void) const [inherited]

Definition at line 81 of file OSGReflexiveContainer.h.


Constructor & Destructor Documentation

NodeCore::NodeCore ( void   )  [protected]

Definition at line 85 of file OSGNodeCore.cpp.

00085                        :
00086      Inherited(),
00087     _mfParents()
00088 {
00089 }

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

Definition at line 91 of file OSGNodeCore.cpp.

00091                                          :
00092      Inherited(source           ),
00093     _mfParents(source._mfParents)
00094 {
00095 }

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

Definition at line 100 of file OSGNodeCore.cpp.

00101 {
00102 }


Member Function Documentation

OSG::NodeCore::OSG_GEN_INTERNALPTR ( NodeCore   ) 

OSG::NodeCore::OSG_RC_FIRST_FIELD_DECL ( Parents   ) 

OSG::NodeCore::OSG_RC_LAST_FIELD_DECL ( Parents   ) 

const MFParentFieldContainerPtr & NodeCore::getParents ( void   )  const

Definition at line 198 of file OSGNodeCore.cpp.

References _mfParents.

Referenced by OSG::TiledQuadTreeTerrain::changed(), OSG::Manipulator::changed(), and OSG::TiledQuadTreeTerrain::renderEnter().

00199 {
00200     return _mfParents;
00201 }

const MFParentFieldContainerPtr * NodeCore::getMFParents ( void   )  const

Definition at line 203 of file OSGNodeCore.cpp.

References _mfParents.

00204 {
00205     return &_mfParents;
00206 }

UInt32 NodeCore::getBinSize ( ConstFieldMaskArg  whichField  )  [virtual]

Reimplemented from OSG::AttachmentContainer.

Reimplemented in OSG::ManipulatorBase, OSG::RotateManipulatorBase, OSG::MoveManipulatorBase, OSG::ScaleManipulatorBase, OSG::ScreenLODBase, OSG::AlgorithmStageBase, OSG::SimpleStageBase, OSG::StageBase, OSG::DirectionalLightBase, OSG::SpotLightBase, OSG::PointLightBase, OSG::DistanceLODBase, OSG::SwitchBase, OSG::InverseTransformBase, OSG::TransformBase, OSG::VisitSubTreeBase, OSG::BillboardBase, OSG::ComponentTransformBase, OSG::InlineBase, OSG::ProxyGroupBase, OSG::MultiCoreBase, OSG::HDRStageBase, OSG::GroupBase, OSG::MaterialGroupBase, OSG::LightBase, OSG::LightEnvBase, OSG::ChunkOverrideGroupBase, OSG::MaterialDrawableBase, OSG::DrawableBase, OSG::QuadTreeTerrainBase, OSG::TiledQuadTreeTerrainBase, OSG::ParticlesBase, OSG::GeometryBase, and OSG::StageHandlerMixin< ContainerMixinHead< StageDesc > >.

Definition at line 153 of file OSGNodeCore.cpp.

References _mfParents, OSG::AttachmentContainer::getBinSize(), and OSG::FieldBits::NoField.

Referenced by OSG::TiledQuadTreeTerrainBase::getBinSize(), OSG::MaterialGroupBase::getBinSize(), OSG::LightEnvBase::getBinSize(), OSG::LightBase::getBinSize(), OSG::InlineBase::getBinSize(), OSG::GroupBase::getBinSize(), OSG::DrawableBase::getBinSize(), and OSG::ChunkOverrideGroupBase::getBinSize().

00154 {
00155     UInt32 returnValue = Inherited::getBinSize(whichField);
00156 
00157     if(FieldBits::NoField != (ParentsFieldMask & whichField))
00158     {
00159         returnValue += _mfParents.getBinSize();
00160     }
00161 
00162     return returnValue;
00163 }

void NodeCore::copyToBin ( BinaryDataHandler pMem,
ConstFieldMaskArg  whichField 
) [virtual]

void NodeCore::copyFromBin ( BinaryDataHandler pMem,
ConstFieldMaskArg  whichField 
) [virtual]

void NodeCore::accumulateMatrix ( Matrixr result  )  [virtual]

Reimplemented in OSG::Billboard, OSG::InverseTransform, OSG::Transform, and OSG::MultiCore.

Definition at line