osg::DVRVolume Class Reference

*put brief class description here* More...

#include <OSGDVRVolume.h>

Inheritance diagram for osg::DVRVolume:

osg::DVRVolumeBase osg::NodeCore osg::AttachmentContainer osg::FieldContainer

List of all members.

Public Types

enum  {
  AppearanceFieldId = Inherited::NextFieldId, GeometryFieldId = AppearanceFieldId + 1, ShaderFieldId = GeometryFieldId + 1, FileNameFieldId = ShaderFieldId + 1,
  SamplingFieldId = FileNameFieldId + 1, SamplingInteractiveFieldId = SamplingFieldId + 1, BaseAlphaFieldId = SamplingInteractiveFieldId + 1, DoTexturesFieldId = BaseAlphaFieldId + 1,
  BrickOverlapFieldId = DoTexturesFieldId + 1, Textures2DFieldId = BrickOverlapFieldId + 1, BrickStaticMemoryMBFieldId = Textures2DFieldId + 1, RenderMaterialFieldId = BrickStaticMemoryMBFieldId + 1,
  BrickingModeFieldId = RenderMaterialFieldId + 1, BrickStaticSubdivisionFieldId = BrickingModeFieldId + 1, BrickMaxSizeFieldId = BrickStaticSubdivisionFieldId + 1, ShowBricksFieldId = BrickMaxSizeFieldId + 1,
  DrawStyleFieldId = ShowBricksFieldId + 1, DrawStyleNamesFieldId = DrawStyleFieldId + 1, TextureStorageFieldId = DrawStyleNamesFieldId + 1, NextFieldId = TextureStorageFieldId + 1
}
typedef DVRVolumePtr 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

Field Set


void setAppearance (const DVRAppearancePtr &value)
void setGeometry (const DVRGeometryPtr &value)
void setShader (const DVRShaderPtr &value)
void setRenderMaterial (const MaterialPtr &value)
void setTextureStorage (const ChunkMaterialPtr &value)
Sync


virtual void changed (BitVector whichField, UInt32 from)
 react to field changes
Output


virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
 output the instance for debug purposes
Draw


Action::ResultE doDraw (Action *action)
 execute the OpenGL c to draw the geometry
Action::ResultE draw (DrawActionBase *action)
 low-level OpenGL calls, ignoring materials
Action::ResultE render (Action *action)
 generate draw tree
Volume Parameter


AttachmentPtr findParameter (const FieldContainerType &type, UInt16 binding=0)
 conveniance function for finding a specific attachment in the volume kit
AttachmentPtr findParameter (UInt32 groupId, UInt16 binding=0)
 conveniance function for finding a specific attachment in the volume kit
Volume


void buildDrawStyleList (Window *win=NULL)
 aquires DrawStyleNames and insert them into the name field
void initializeClipObjects (DrawActionBase *action, const Matrix &volumeToWorld)
 Prepare the clip objects for this volume.
TextureManager


TextureManagergetTextureManager (void)
TextureManager::TextureMode getTextureMode (Window *window)
 determine which texture mode to use
void reload (void)
 reinitialize inventor volume
FieldContainer Get


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


SFDVRAppearancePtrgetSFAppearance (void)
 Get the DVRVolume::_sfAppearance field.
SFDVRGeometryPtrgetSFGeometry (void)
 Get the DVRVolume::_sfGeometry field.
SFDVRShaderPtrgetSFShader (void)
 Get the DVRVolume::_sfShader field.
SFStringgetSFFileName (void)
 Get the DVRVolume::_sfFileName field.
SFReal32getSFSampling (void)
 Get the DVRVolume::_sfSampling field.
SFReal32getSFSamplingInteractive (void)
 Get the DVRVolume::_sfSamplingInteractive field.
SFReal32getSFBaseAlpha (void)
 Get the DVRVolume::_sfBaseAlpha field.
SFBoolgetSFDoTextures (void)
 Get the DVRVolume::_sfDoTextures field.
SFUInt32getSFBrickOverlap (void)
 Get the DVRVolume::_sfBrickOverlap field.
SFQBitgetSFTextures2D (void)
 Get the DVRVolume::_sfTextures2D field.
SFUInt16getSFBrickStaticMemoryMB (void)
 Get the DVRVolume::_sfBrickStaticMemoryMB field.
SFChunkMaterialPtrgetSFTextureStorage (void)
 Get the DVRVolume::_sfTextureStorage field.
DVRAppearancePtrgetAppearance (void)
 Get the value of the DVRVolume::_sfAppearance field.
const DVRAppearancePtrgetAppearance (void) const
 Get the value of the DVRVolume::_sfAppearance field.
DVRGeometryPtrgetGeometry (void)
 Get the value of the DVRVolume::_sfGeometry field.
const DVRGeometryPtrgetGeometry (void) const
 Get the value of the DVRVolume::_sfGeometry field.
DVRShaderPtrgetShader (void)
 Get the value of the DVRVolume::_sfShader field.
const DVRShaderPtrgetShader (void) const
 Get the value of the DVRVolume::_sfShader field.
std::string & getFileName (void)
 Get the value of the DVRVolume::_sfFileName field.
const std::string & getFileName (void) const
 Get the value of the DVRVolume::_sfFileName field.
Real32getSampling (void)
 Get the value of the DVRVolume::_sfSampling field.
const Real32getSampling (void) const
 Get the value of the DVRVolume::_sfSampling field.
Real32getSamplingInteractive (void)
 Get the value of the DVRVolume::_sfSamplingInteractive field.
const Real32getSamplingInteractive (void) const
 Get the value of the DVRVolume::_sfSamplingInteractive field.
Real32getBaseAlpha (void)
 Get the value of the DVRVolume::_sfBaseAlpha field.
const Real32getBaseAlpha (void) const
 Get the value of the DVRVolume::_sfBaseAlpha field.
bool & getDoTextures (void)
 Get the value of the DVRVolume::_sfDoTextures field.
const bool & getDoTextures (void) const
 Get the value of the DVRVolume::_sfDoTextures field.
UInt32getBrickOverlap (void)
 Get the value of the DVRVolume::_sfBrickOverlap field.
const UInt32getBrickOverlap (void) const
 Get the value of the DVRVolume::_sfBrickOverlap field.
QBitgetTextures2D (void)
 Get the value of the DVRVolume::_sfTextures2D field.
const QBitgetTextures2D (void) const
 Get the value of the DVRVolume::_sfTextures2D field.
UInt16getBrickStaticMemoryMB (void)
 Get the value of the DVRVolume::_sfBrickStaticMemoryMB field.
const UInt16getBrickStaticMemoryMB (void) const
 Get the value of the DVRVolume::_sfBrickStaticMemoryMB field.
ChunkMaterialPtrgetTextureStorage (void)
 Get the value of the DVRVolume::_sfTextureStorage field.
const ChunkMaterialPtrgetTextureStorage (void) const
 Get the value of the DVRVolume::_sfTextureStorage field.
Field Set


void setFileName (const std::string &value)
 Set the value of the DVRVolume::_sfFileName field.
void setSampling (const Real32 &value)
 Set the value of the DVRVolume::_sfSampling field.
void setSamplingInteractive (const Real32 &value)
 Set the value of the DVRVolume::_sfSamplingInteractive field.
void setBaseAlpha (const Real32 &value)
 Set the value of the DVRVolume::_sfBaseAlpha field.
void setDoTextures (const bool &value)
 Set the value of the DVRVolume::_sfDoTextures field.
void setBrickOverlap (const UInt32 &value)
 Set the value of the DVRVolume::_sfBrickOverlap field.
void setTextures2D (const QBit &value)
 Set the value of the DVRVolume::_sfTextures2D field.
void setBrickStaticMemoryMB (const UInt16 &value)
 Set the value of the DVRVolume::_sfBrickStaticMemoryMB 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 DVRVolumePtr create (void)
 create a new instance of the class
static DVRVolumePtr 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 AppearanceFieldMask
static const osg::BitVector GeometryFieldMask
static const osg::BitVector ShaderFieldMask
static const osg::BitVector FileNameFieldMask
static const osg::BitVector SamplingFieldMask
static const osg::BitVector SamplingInteractiveFieldMask
static const osg::BitVector BaseAlphaFieldMask
static const osg::BitVector DoTexturesFieldMask
static const osg::BitVector BrickOverlapFieldMask
static const osg::BitVector Textures2DFieldMask
static const osg::BitVector BrickStaticMemoryMBFieldMask
static const osg::BitVector RenderMaterialFieldMask
static const osg::BitVector BrickingModeFieldMask
static const osg::BitVector BrickStaticSubdivisionFieldMask
static const osg::BitVector BrickMaxSizeFieldMask
static const osg::BitVector ShowBricksFieldMask
static const osg::BitVector DrawStyleFieldMask
static const osg::BitVector DrawStyleNamesFieldMask
static const osg::BitVector TextureStorageFieldMask
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 Member Functions

Constructors


 DVRVolume (void)
 Constructor.
 DVRVolume (const DVRVolume &source)
 Copy Constructor.
Destructors


virtual ~DVRVolume (void)
 Destructor.
Volume


virtual void adjustVolume (Volume &volume)
 set the bounding volume of the node
Field Get


SFMaterialPtrgetSFRenderMaterial (void)
 Get the DVRVolume::_sfRenderMaterial field.
SFUInt16getSFBrickingMode (void)
 Get the DVRVolume::_sfBrickingMode field.
SFVec3fgetSFBrickStaticSubdivision (void)
 Get the DVRVolume::_sfBrickStaticSubdivision field.
SFVec3fgetSFBrickMaxSize (void)
 Get the DVRVolume::_sfBrickMaxSize field.
SFBoolgetSFShowBricks (void)
 Get the DVRVolume::_sfShowBricks field.
SFUInt32getSFDrawStyle (void)
 Get the DVRVolume::_sfDrawStyle field.
MFStringgetMFDrawStyleNames (void)
 Get the DVRVolume::_mfDrawStyleNames field.
MaterialPtrgetRenderMaterial (void)
 Get the value of the DVRVolume::_sfRenderMaterial field.
const MaterialPtrgetRenderMaterial (void) const
 Get the value of the DVRVolume::_sfRenderMaterial field.
UInt16getBrickingMode (void)
 Get the value of the DVRVolume::_sfBrickingMode field.
const UInt16getBrickingMode (void) const
 Get the value of the DVRVolume::_sfBrickingMode field.
Vec3fgetBrickStaticSubdivision (void)
 Get the value of the DVRVolume::_sfBrickStaticSubdivision field.
const Vec3fgetBrickStaticSubdivision (void) const
 Get the value of the DVRVolume::_sfBrickStaticSubdivision field.
Vec3fgetBrickMaxSize (void)
 Get the value of the DVRVolume::_sfBrickMaxSize field.
const Vec3fgetBrickMaxSize (void) const
 Get the value of the DVRVolume::_sfBrickMaxSize field.
bool & getShowBricks (void)
 Get the value of the DVRVolume::_sfShowBricks field.
const bool & getShowBricks (void) const
 Get the value of the DVRVolume::_sfShowBricks field.
UInt32getDrawStyle (void)
 Get the value of the DVRVolume::_sfDrawStyle field.
const UInt32getDrawStyle (void) const
 Get the value of the DVRVolume::_sfDrawStyle field.
std::string & getDrawStyleNames (UInt32 index)
 Get the value of the index element the DVRVolume::_mfDrawStyleNames field.
MFStringgetDrawStyleNames (void)
 Get the DVRVolume::_mfDrawStyleNames field.
const MFStringgetDrawStyleNames (void) const
 Get the DVRVolume::_mfDrawStyleNames field.
Field Set


void setBrickingMode (const UInt16 &value)
 Set the value of the DVRVolume::_sfBrickingMode field.
void setBrickStaticSubdivision (const Vec3f &value)
 Set the value of the DVRVolume::_sfBrickStaticSubdivision field.
void setBrickMaxSize (const Vec3f &value)
 Set the value of the DVRVolume::_sfBrickMaxSize field.
void setShowBricks (const bool &value)
 Set the value of the DVRVolume::_sfShowBricks field.
void setDrawStyle (const UInt32 &value)
 Set the value of the DVRVolume::_sfDrawStyle field.
Sync


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


SFDVRAppearancePtr _sfAppearance
SFDVRGeometryPtr _sfGeometry
SFDVRShaderPtr _sfShader
SFString _sfFileName
SFReal32 _sfSampling
SFReal32 _sfSamplingInteractive
SFReal32 _sfBaseAlpha
SFBool _sfDoTextures
SFUInt32 _sfBrickOverlap
SFQBit _sfTextures2D
SFUInt16 _sfBrickStaticMemoryMB
SFMaterialPtr _sfRenderMaterial
SFUInt16 _sfBrickingMode
SFVec3f _sfBrickStaticSubdivision
SFVec3f _sfBrickMaxSize
SFBool _sfShowBricks
SFUInt32 _sfDrawStyle
MFString _mfDrawStyleNames
SFChunkMaterialPtr _sfTextureStorage
Fields


MFNodePtr _parents
Fields


SFAttachmentMap _attachmentMap
Member


UInt32 _shares

Static Protected Attributes

GL


static UInt32 _extTex3D = Window::registerExtension( "GL_EXT_texture3D" )

Private Types

typedef DVRVolumeBase Inherited

Private Member Functions

void operator= (const DVRVolume &source)
void commonConstructor (void)
 used to initialize class to initialize member variables - method is called by every constructor
Action::ResultE intersect (Action *action)
 intersection test

Static Private Member Functions

static void initMethod (void)
 initialize the static features of the class, e.g. action callbacks

Private Attributes

Volume-Rendering


bool drawStyleListValid
TextureManager textureManager
bool shadingInitialized
DVRClipper clipper

Friends

class FieldContainer
class DVRVolumeBase
class TextureManager
 ! FIXME:


Detailed Description

OpenSG NodeCore for direct volume rendering

Definition at line 73 of file OSGDVRVolume.h.


Member Typedef Documentation

Reimplemented from osg::DVRVolumeBase.

Definition at line 77 of file OSGDVRVolume.h.

Definition at line 108 of file OSGDVRVolumeBase.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 [inherited]

Enumerator:
AppearanceFieldId 
GeometryFieldId 
ShaderFieldId 
FileNameFieldId 
SamplingFieldId 
SamplingInteractiveFieldId 
BaseAlphaFieldId 
DoTexturesFieldId 
BrickOverlapFieldId 
Textures2DFieldId 
BrickStaticMemoryMBFieldId 
RenderMaterialFieldId 
BrickingModeFieldId 
BrickStaticSubdivisionFieldId 
BrickMaxSizeFieldId 
ShowBricksFieldId 
DrawStyleFieldId 
DrawStyleNamesFieldId 
TextureStorageFieldId 
NextFieldId 

Definition at line 110 of file OSGDVRVolumeBase.h.

00111     {
00112         AppearanceFieldId             = Inherited::NextFieldId,
00113         GeometryFieldId               = AppearanceFieldId             + 1,
00114         ShaderFieldId                 = GeometryFieldId               + 1,
00115         FileNameFieldId               = ShaderFieldId                 + 1,
00116         SamplingFieldId               = FileNameFieldId               + 1,
00117         SamplingInteractiveFieldId    = SamplingFieldId               + 1,
00118         BaseAlphaFieldId              = SamplingInteractiveFieldId    + 1,
00119         DoTexturesFieldId             = BaseAlphaFieldId              + 1,
00120         BrickOverlapFieldId           = DoTexturesFieldId             + 1,
00121         Textures2DFieldId             = BrickOverlapFieldId           + 1,
00122         BrickStaticMemoryMBFieldId    = Textures2DFieldId             + 1,
00123         RenderMaterialFieldId         = BrickStaticMemoryMBFieldId    + 1,
00124         BrickingModeFieldId           = RenderMaterialFieldId         + 1,
00125         BrickStaticSubdivisionFieldId = BrickingModeFieldId           + 1,
00126         BrickMaxSizeFieldId           = BrickStaticSubdivisionFieldId + 1,
00127         ShowBricksFieldId             = BrickMaxSizeFieldId           + 1,
00128         DrawStyleFieldId              = ShowBricksFieldId             + 1,
00129         DrawStyleNamesFieldId         = DrawStyleFieldId              + 1,
00130         TextureStorageFieldId         = DrawStyleNamesFieldId         + 1,
00131         NextFieldId                   = TextureStorageFieldId         + 1
00132     };

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

DVRVolume::DVRVolume ( void   )  [protected]

Definition at line 81 of file OSGDVRVolume.cpp.

References commonConstructor(), and SINFO.

00081                          :
00082     Inherited         (     ),
00083     drawStyleListValid(false),
00084     textureManager    (this ),
00085     shadingInitialized(false)
00086 {
00087     SINFO << "DVRVolume::DVRVolume(void) this: " << this << std::endl;
00088 
00089     commonConstructor();
00090 }

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

! FIXME: ! This is only performed during instantiation of real objects ! Which is only done with the copy constructor ! ! Otherwise my code cores - (maybe the copy constructor of FCPtr is ! broken?!)

Definition at line 93 of file OSGDVRVolume.cpp.

References osg::beginEditCP(), commonConstructor(), osg::SimpleMaterialBase::create(), osg::endEditCP(), osg::DVRVolumeBase::RenderMaterialFieldMask, setRenderMaterial(), setTextureStorage(), SINFO, and osg::DVRVolumeBase::TextureStorageFieldMask.

00093                                             :
00094     Inherited         (source),
00095     drawStyleListValid(false ),
00096     textureManager    (this  ),
00097     shadingInitialized(false )
00098 {
00099     SINFO << "DVRVolume::DVRVolume(const DVRVolume &source) this: "
00100           << this << std::endl;
00101 
00108 
00109     DVRVolumePtr ptr(*this);
00110     
00111     // Fake material for render action
00112     SimpleMaterialPtr m = SimpleMaterial::create();
00113 
00114     beginEditCP(m);
00115     {
00116         m->setTransparency(0.001f                );
00117         m->setLit         (false                 );
00118         m->setDiffuse     (Color3f(1.0, 1.0, 1.0));
00119         m->setAmbient     (Color3f(1.0, 1.0, 1.0));
00120     }
00121     endEditCP(m);
00122     
00123     // Chunk material as storage fieldcontainer for textures
00124     ChunkMaterialPtr cm = SimpleMaterial::create();
00125 
00126     // Add all
00127     beginEditCP(ptr, RenderMaterialFieldMask | TextureStorageFieldMask);
00128     {
00129         setRenderMaterial(m );
00130         setTextureStorage(cm);
00131     }
00132     endEditCP  (ptr, RenderMaterialFieldMask | TextureStorageFieldMask);
00133 
00134     commonConstructor();
00135 }

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

Definition at line 142 of file OSGDVRVolume.cpp.

References osg::DVRVolumeBase::_sfAppearance, osg::DVRVolumeBase::_sfGeometry, osg::DVRVolumeBase::_sfRenderMaterial, osg::DVRVolumeBase::_sfShader, osg::DVRVolumeBase::_sfTextureStorage, osg::DVRVolumeBase::getAppearance(), osg::DVRVolumeBase::getRenderMaterial(), osg::DVRVolumeBase::getShader(), osg::DVRVolumeBase::getTextureStorage(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), SINFO, and osg::subRefCP().

00143 {
00144     SINFO << "~DVRVolume this: " 
00145           << this 
00146           << std::endl
00147           << "~DVRVolume appearance: "          
00148           << getAppearance() 
00149           << std::endl
00150           << "~DVRVolume::subRefCP(Appearance)" 
00151           << std::endl;
00152 
00153     subRefCP(_sfAppearance.getValue());
00154 
00155     SINFO << "~DVRVolume::subRefCP(Geometry)" 
00156           << std::endl;
00157 //        << "~DVRVolume geometry: " 
00158 //        << int(_sfGeometry.getValue()) 
00159 //        << std::endl;
00160 
00161     subRefCP(_sfGeometry.getValue());
00162 
00163     SINFO << "~DVRVolume::subRefCP(Shader)"                << std::endl;
00164     SINFO << "~DVRVolume shader: "          << getShader() << std::endl;
00165 
00166     subRefCP(_sfShader.getValue());
00167 
00168     SINFO << "~DVRVolume::subRefCP(RenderMaterial)" 
00169           << std::endl
00170           << "~DVRVolume renderMaterial: " 
00171           << getRenderMaterial() 
00172           << std::endl;
00173 
00174     subRefCP(_sfRenderMaterial.getValue());
00175 
00176     SINFO << "~DVRVolume::subRefCP(TextureStorage)"
00177           << std::endl
00178           << "~DVRVolume textureStorage: " 
00179           << getTextureStorage() 
00180           << std::endl;
00181 
00182     subRefCP(_sfTextureStorage.getValue());
00183 }


Member Function Documentation

void osg::DVRVolume::setAppearance ( const DVRAppearancePtr value  )  [inline]

Reimplemented from osg::DVRVolumeBase.

Definition at line 57 of file OSGDVRVolume.inl.

References osg::DVRVolumeBase::_sfAppearance, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::setRefdCP(), and SINFO.

00058 {
00059     SINFO << "DVRVolume::setAppearance this: " << this << std::endl;
00060 
00061 //  SINFO << "setRefdCP(" << _sfAppearance.getValue() 
00062 //        << ", " << value << std::endl;
00063 
00064     setRefdCP(_sfAppearance.getValue(), value);
00065 }

void osg::DVRVolume::setGeometry ( const DVRGeometryPtr value  )  [inline]

Reimplemented from osg::DVRVolumeBase.

Definition at line 68 of file OSGDVRVolume.inl.

References osg::DVRVolumeBase::_sfGeometry, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::setRefdCP(), and SINFO.

00069 {
00070     SINFO << "DVRVolume::setGeometry this: " << this << std::endl;
00071 //  SINFO << "setRefdCP(" << _sfGeometry.getValue() << ", " 
00072 //        << value << std::endl;
00073 
00074     setRefdCP(_sfGeometry.getValue(), value);
00075 }

void osg::DVRVolume::setShader ( const DVRShaderPtr value  )  [inline]

Reimplemented from osg::DVRVolumeBase.

Definition at line 78 of file OSGDVRVolume.inl.

References osg::DVRVolumeBase::_sfShader, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::setRefdCP(), and SINFO.

00079 {
00080     SINFO << "DVRVolume::setShader this: " << this << std::endl;
00081 //  SINFO << "setRefdCP(" << _sfShader.getValue() << ", " 
00082 //        << value << std::endl;
00083 
00084     setRefdCP(_sfShader.getValue(), value);
00085 }

void osg::DVRVolume::setRenderMaterial ( const MaterialPtr value  )  [inline]

Reimplemented from osg::DVRVolumeBase.

Definition at line 88 of file OSGDVRVolume.inl.

References osg::DVRVolumeBase::_sfRenderMaterial, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::setRefdCP(), and SINFO.

Referenced by DVRVolume().

00089 {
00090     SINFO << "DVRVolume::setRenderMaterial this: " 
00091           << this 
00092           << std::endl;
00093 
00094     SINFO << "setRefdCP(" 
00095           << _sfRenderMaterial.getValue() << ", " 
00096           << value << std::endl;
00097 
00098     SINFO << "---" << std::endl;
00099 
00100     setRefdCP(_sfRenderMaterial.getValue(), value);
00101 }

void osg::DVRVolume::setTextureStorage ( const ChunkMaterialPtr value  )  [inline]

Reimplemented from osg::DVRVolumeBase.

Definition at line 104 of file OSGDVRVolume.inl.

References osg::DVRVolumeBase::_sfTextureStorage, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::setRefdCP(), and SINFO.

Referenced by DVRVolume().

00105 {
00106     SINFO << "DVRVolume::setTextureStorage this: " 
00107           << this << std::endl;
00108     SINFO << "setRefdCP(" 
00109           << _sfTextureStorage.getValue() << ", " 
00110           << value << std::endl;
00111 
00112     SINFO << "---" << std::endl;
00113 
00114     setRefdCP(_sfTextureStorage.getValue(), value);
00115 }

void DVRVolume::changed ( BitVector  whichField,
UInt32  from 
) [virtual]

Reimplemented from osg::AttachmentContainer.

Definition at line 246 of file OSGDVRVolume.cpp.

References osg::DVRVolumeBase::_sfBrickStaticMemoryMB, osg::DVRVolumeBase::BrickStaticMemoryMBFieldMask, osg::AttachmentContainer::changed(), FDEBUG, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::SField< FieldTypeT, fieldNameSpace >::setValue(), osg::DVRVolumeBase::ShaderFieldMask, shadingInitialized, and osg::DVRVolumeBase::Textures2DFieldMask.

00247 {
00248     FDEBUG(("DVRVolume::changed\n"));
00249 
00250     if((whichField & BrickStaticMemoryMBFieldMask)) 
00251     {
00252         // override invalid value
00253         if(_sfBrickStaticMemoryMB.getValue() == 0)
00254         {
00255             _sfBrickStaticMemoryMB.setValue(1);
00256         }
00257     }
00258 
00259     if((whichField & ShaderFieldMask)) 
00260     {
00261         shadingInitialized = false;
00262     }
00263 
00264     if((whichField & Textures2DFieldMask)) 
00265     {
00266         shadingInitialized = false;
00267     }
00268 
00269     Inherited::changed(whichField, origin);
00270 }

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

Reimplemented from osg::NodeCore.

Definition at line 273 of file OSGDVRVolume.cpp.

References osg::FieldContainerPtrBase::dump(), osg::DVRVolumeBase::getRenderMaterial(), osg::DVRVolumeBase::getTextureStorage(), osg::indentLog(), osg::NullFC, PLOG, and osg::FCDumpFlags::RefCount.

Referenced by commonConstructor().

00275 {
00276     DVRVolumePtr thisP(*this);
00277 
00278     thisP.dump(uiIndent, FCDumpFlags::RefCount);
00279 
00280     indentLog(uiIndent, PLOG);
00281     PLOG << "DVRVolume at " << this << std::endl;
00282 
00283     indentLog(uiIndent, PLOG);
00284     PLOG << "\trenderMaterial: " << getRenderMaterial() << std::endl;
00285 
00286     if (getRenderMaterial() != NullFC)
00287         getRenderMaterial()->dump(uiIndent);
00288     
00289     indentLog(uiIndent, PLOG);
00290     PLOG << "\ttextureStorage: " << getTextureStorage() << std::endl;
00291 
00292     if (getTextureStorage() != NullFC)
00293         getTextureStorage()->dump(uiIndent);
00294     
00295 #if 0
00296     indentLog(uiIndent, PLOG);
00297     PLOG << "\tambient: " << getAmbient() << endl;
00298 
00299     indentLog(uiIndent, PLOG);
00300     PLOG << "\tdiffuse: " << getDiffuse()  << endl;
00301 
00302     indentLog(uiIndent, PLOG);
00303     PLOG << "\tspecular: " << getSpecular()  << endl;
00304 
00305     indentLog(uiIndent, PLOG);
00306     PLOG << "\tshininess: " << getShininess()  << endl;
00307 
00308     indentLog(uiIndent, PLOG);
00309     PLOG << "\temission: " << getEmission()  << endl;
00310 
00311     indentLog(uiIndent, PLOG);
00312     PLOG << "\ttransparency: " << getTransparency()  << endl;
00313 
00314     indentLog(uiIndent, PLOG);
00315     PLOG << "\tlit: " << getLit() << endl;
00316 
00317     indentLog(uiIndent, PLOG);
00318     PLOG << "\tChunks: " << endl;
00319 
00320     for(MFStateChunkPtr::const_iterator i = _mfChunks.begin();
00321             i != _mfChunks.end(); i++)
00322     {
00323         indentLog(uiIndent, PLOG);
00324         PLOG << "\t" << *i << endl;
00325     }
00326 #endif
00327     
00328     indentLog(uiIndent, PLOG);
00329     PLOG << "DVRVolume end " << this << std::endl;
00330 }

Action::ResultE DVRVolume::doDraw ( Action action  ) 

Definition at line 334 of file OSGDVRVolume.cpp.

References osg::Material::draw(), draw(), osg::DrawActionBase::getMaterial(), osg::osgTypedMethodFunctor1ObjPtr(), osg::Action::Skip, and SWARNING.

Referenced by initMethod().

00335 {
00336 //    FDEBUG(("DVRVolume::doDraw\n"));
00337 
00338     DrawAction *a = dynamic_cast<DrawAction*>(action);
00339 
00340     if(a == NULL) 
00341     {
00342         SWARNING << "DVRVolume::doDraw - unexpected action" << std::endl; 
00343         return Action::Skip;
00344     }
00345 
00346 #if 1
00347     Material::DrawFunctor func;
00348 
00349     func = osgTypedMethodFunctor1ObjPtr(this, &DVRVolume::draw);
00350     
00351     // implementation from OGSGeometry
00352     if(a->getMaterial() != NULL)
00353     {
00354         a->getMaterial()->draw( func, a );
00355     }
00356 //     else if ( getMaterial() != NullFC )
00357 //     {
00358 //         getMaterial()->draw( func );
00359 //     }
00360     else
00361     {
00362         draw(a);
00363     }
00364 
00365     return Action::Skip;
00366 
00367 #else
00368     return draw(a);
00369 #endif
00370 
00371 }

Action::ResultE DVRVolume::draw ( DrawActionBase action  ) 

! Shader::initialize may change the useMTSlabs() flag

! Rendering

Definition at line 374 of file OSGDVRVolume.cpp.

References osg::TextureManager::buildTextures(), osg::TextureManager::clearTextures(), clipper, osg::Brick::deactivateTexture(), FDEBUG, FINFO, osg::Action::getActNode(), osg::DrawActionBase::getCameraToWorld(), osg::DVRVolumeBase::getDoTextures(), osg::Brick::getNext(), osg::DVRVolumeBase::getShader(), osg::DVRVolumeBase::getShowBricks(), getTextureMode(), osg::DVRVolumeBase::getTextureStorage(), osg::DVRVolumeBase::getType(), osg::DrawActionBase::getWindow(), osg::DVRClipper::initialize(), osg::FieldContainerPtrBase::initialize(), initializeClipObjects(), osg::TransformationMatrix< ValueTypeT >::mult(), osg::NullFC, osg::Brick::renderBrick(), osg::DVRClipper::reset(), SFATAL, shadingInitialized, SINFO, osg::Action::Skip, osg::TextureManager::sortBricks(), osg::PointInterface< ValueTypeT, StorageInterfaceT >::subZero(), textureManager, osg::TextureManager::TM_2D_Multi, and osg::TextureManager::TM_3D.

Referenced by doDraw(), and render().

00375 {
00376     FINFO(("DVRVolume::draw\n"));
00377 
00378     Window *window = action->getWindow();
00379 
00380     if(getShader() != NullFC) 
00381     {
00382         // determine texture mode
00383         TextureManager::TextureMode mode = getTextureMode(window);
00384         
00385         FDEBUG(("DVRVolume::draw - using Shader: %s\n",
00386                 //getShader()->getClassname()));
00387                 getShader()->getType().getCName()));
00388 
00389         // initialization
00390         if(shadingInitialized == false) 
00391         {     
00392             // clear old texture chunks 
00393             textureManager.clearTextures( getTextureStorage() );
00394 
00395             // initialize shader 
00396             bool result = getShader()->initialize( this, action );
00397 
00398             if(result != true)
00399             {
00400                 SFATAL << "DVRVolume::draw - error initializing shader" 
00401                        << std::endl;
00402             }
00403 
00405             if(getShader()->useMTSlabs())
00406                 mode = TextureManager::TM_2D_Multi;
00407             
00408             // create texture chunks
00409             SINFO << "TextureMode = " << mode << std::endl;
00410 
00411             textureManager.buildTextures(getTextureStorage(), this, mode);
00412             
00413             // initialize slice clipper
00414             clipper.initialize(this);
00415             
00416             shadingInitialized = true;
00417         }
00418 
00419         // sort bricks
00420         Pnt3f eyePointWorld(0.f, 0.f, 0.f);
00421         action->getCameraToWorld().mult(eyePointWorld);
00422 
00423         Matrix modelMat = action->getActNode()->getToWorld();
00424       
00425         // SINFO << "DVRVolume::draw - modelMat " << modelMat << std::endl;
00426         // SINFO << "DVRVolume::draw - eyePoint " << eyePointWorld << std::endl;
00427         //Brick * first = textureManager.sortBricks(
00428         //    action,modelMat, eyePointWorld, this, mode);
00429 
00430         Brick *first = textureManager.sortBricks(
00431             action, modelMat, eyePointWorld.subZero(), this, mode);
00432 
00433         // render brick boundaries
00434 
00435         if(getShowBricks())
00436         {
00437             for(Brick *current  = first; 
00438                 current != NULL; 
00439                 current  = current->getNext())
00440             {
00441                 current->renderBrick();
00442             }
00443         }
00444         
00445         // initialize clipping
00446         initializeClipObjects(action, modelMat);
00447         
00448         // Texture_3D bricks need per brick clipping setup
00449         // whereas for Texture_2D bricks the clipper has to be initialized 
00450         // only once in that case the reset is done in Brick::render3DSlices(..)
00451         
00452         if(mode != TextureManager::TM_3D) 
00453             clipper.reset(this);
00454         
00456         if(first != NULL)
00457         {
00458             getShader()->activate(this, action);
00459             
00460             // for all bricks
00461             Brick *prev = NULL;
00462 
00463             for(Brick *current  = first;
00464                        current != NULL;
00465                        prev     = current, current = current->getNext())
00466             {
00467                 //FDEBUG(("DVRVolume::draw - render Brick: %d\n" i++));
00468                 
00469                 // switch to texture chunk
00470                 if(getDoTextures()) 
00471                 {
00472                     if (prev == NULL)
00473                     {
00474                         current->activateTexture(action);
00475                     }
00476                     else
00477                     {
00478                         current->changeFromTexture(action, prev);
00479                     }
00480                 }
00481                 
00482                 // activate shader
00483                 getShader()->brickActivate(this, action, current);
00484                 
00485                 // render slices
00486                 current->renderSlices(this, 
00487                                       action, 
00488                                       getShader(), 
00489                                       &clipper, 
00490                                       mode);
00491             }
00492             
00493             // deactivate last texture chunk
00494             prev->deactivateTexture(action);
00495             
00496             getShader()->deactivate(this, action);
00497         }
00498     }
00499     else
00500     {
00501         // Show some slices anyway
00502         Vec3f min, max;
00503 
00504         action->getActNode()->getVolume().getBounds(min, max);
00505         
00506         FDEBUG(("DVRVolume::draw dummy geometry - %f %f %f -> %f %f %f\n",
00507                 min[0], min[1], min[2], max[0], max[1], max[2]));
00508         
00509         // resolution of volume in voxel
00510         UInt32 res[3] = {64, 64, 64};
00511 
00512         // offset for slices
00513         Real32 offset[3] = {(max[0] - min[0]) / 2 / res[0],
00514                             (max[1] - min[1]) / 2 / res[1],
00515                             (max[2] - min[2]) / 2 / res[2]};
00516         // increment for slices
00517         Real32 inc[3] = {(max[0] - min[0]) / res[0],
00518                          (max[1] - min[1]) / res[1],
00519                          (max[2] - min[2]) / res[2]};
00520         
00521         // slices perpenticular to Z-axis
00522         Real32 value = min[2] + offset[2];
00523 
00524         for(UInt32 i = 0; i < res[2]; i++, value += inc[2])
00525         {
00526             
00527             glBegin(GL_LINE_LOOP); 
00528             {
00529                 glVertex3f(min[0] + offset[0], min[1] + offset[1], value);
00530                 glTexCoord2f(0.0f + offset[0],  0.0f + offset[1]);
00531                 
00532                 glVertex3f(max[0] - offset[0], min[1] + offset[1], value);
00533                 glTexCoord2f(1.0f - offset[0],  0.0f + offset[1]);
00534                 
00535                 glVertex3f(min[0] + offset[0],  max[1] - offset[1], value);
00536                 glTexCoord2f(0.0f + offset[0],  1.0f - offset[1]);
00537                 
00538                 glVertex3f(max[0] - offset[0],  max[1] - offset[1], value);
00539                 glTexCoord2f(1.0f - offset[0],  1.0f - offset[1]);
00540             } 
00541             glEnd();
00542         }
00543     }
00544     
00545     return Action::Skip;
00546 
00547     //return Geometry::draw(action);
00548 }

Action::ResultE DVRVolume::render ( Action action  ) 

Definition at line 552 of file OSGDVRVolume.cpp.

References osg::Action::Continue, draw(), osg::RenderAction::dropFunctor(), FDEBUG, osg::DVRVolumeBase::getRenderMaterial(), and osg::osgTypedMethodFunctor1ObjPtr().

Referenced by initMethod().

00553 {
00554     FDEBUG(("DVRVolume::render\n"));
00555 
00556     RenderAction *a = dynamic_cast<RenderAction *>(action);
00557 
00558     Material::DrawFunctor func;
00559 
00560     func = osgTypedMethodFunctor1ObjPtr(this, &DVRVolume::draw);
00561 
00562     a->dropFunctor(func, &(*getRenderMaterial()));
00563 
00564     return Action::Continue;
00565 }

AttachmentPtr DVRVolume::findParameter ( const FieldContainerType type,
UInt16  binding = 0 
)

Definition at line 608 of file OSGDVRVolume.cpp.

References osg::FieldContainerType::dump(), FDEBUG, osg::DVRVolumeBase::getAppearance(), osg::LOG_DEBUG, osg::NullFC, osg::osgLog(), and SWARNING.

00610 {
00611     DVRAppearancePtr app = getAppearance();
00612 
00613     if(osgLog().getLogLevel() == LOG_DEBUG)
00614     {
00615         FDEBUG(("DVRVolume::findParameter: \n"));
00616         type.dump();
00617     }
00618 
00619     if(app != NullFC) 
00620         return app->findAttachment(type, binding);
00621 
00622     SWARNING << "DVRVolume::findParameter - NO such parameter " << std::endl;
00623    
00624     return NullFC;
00625 }

AttachmentPtr DVRVolume::findParameter ( UInt32  groupId,
UInt16  binding = 0 
)

Definition at line 629 of file OSGDVRVolume.cpp.

References osg::DVRVolumeBase::getAppearance(), and osg::NullFC.

00630 {
00631     DVRAppearancePtr app = getAppearance();
00632 
00633     if(app != NullFC) 
00634         return app->findAttachment(groupId, binding);
00635 
00636     return NullFC;
00637 }

void DVRVolume::buildDrawStyleList ( Window win = NULL  ) 

Definition at line 641 of file OSGDVRVolume.cpp.

00642 {
00643 }

void DVRVolume::initializeClipObjects ( DrawActionBase action,
const Matrix volumeToWorld 
)

Definition at line 684 of file OSGDVRVolume.cpp.

References _extTex3D, clipper, DVRVOLUME_PARAMETER, osg::Slicer::getAASlicingDirection(), osg::DVRVolumeBase::getShader(), osg::Slicer::getSlicingDirection(), osg::DVRVolumeBase::getTextures2D(), osg::DrawActionBase::getWindow(), osg::Window::hasExtension(), osg::FieldContainerPtrBase::initialize(), osg::VectorInterface< ValueTypeT, StorageInterfaceT >::length(), osg::NullFC, osg::DVRClipObjects::Off, and osg::DVRClipper::setReferencePlane().

Referenced by draw().

00686 {
00687     DVRClipObjectsPtr clipObjects = DVRVOLUME_PARAMETER(this, DVRClipObjects);
00688   
00689     if(clipObjects                != NullFC && 
00690        clipObjects->getClipMode() != DVRClipObjects::Off)
00691     {
00692         
00693         DVRVolumeTexturePtr tex = DVRVOLUME_PARAMETER(this, DVRVolumeTexture);
00694 
00695         if(tex != NullFC) 
00696         {
00697             Vec3f &res   = tex->getResolution();
00698             Vec3f &slice = tex->getSliceThickness();
00699             
00700             Vec3f diag(res[0] * slice[0], 
00701                        res[1] * slice[1], 
00702                        res[2] * slice[2]);
00703             
00704             Vec3f sliceDir;
00705             
00706             if(getShader()->useMTSlabs())
00707             {
00708                 Slicer::getAASlicingDirection(action,&sliceDir);
00709             }
00710             else
00711             {  
00712                 switch (getTextures2D()) 
00713                 {
00714                     case 0: // 3D textures
00715                         Slicer::getSlicingDirection(action, &sliceDir);    
00716                         break;
00717 
00718                     case 1: // 2D textures  
00719                         Slicer::getAASlicingDirection(action, &sliceDir);
00720                         break;
00721 
00722                     default: // auto
00723                         Window *window = action->getWindow();
00724 
00725                         if(window->hasExtension(_extTex3D))
00726                             Slicer::getSlicingDirection(action, &sliceDir);
00727                         else
00728                             Slicer::getAASlicingDirection(action, &sliceDir);
00729                 }
00730             }
00731             
00732             Plane clipReferencePlane(sliceDir, -0.5f * diag.length());  
00733             
00734             clipObjects->initialize(volumeToWorld, clipReferencePlane);
00735 
00736             clipper.setReferencePlane(clipReferencePlane);
00737         }
00738     }
00739 }

TextureManager & osg::DVRVolume::getTextureManager ( void   )  [inline]

TextureManager::TextureMode DVRVolume::getTextureMode ( Window window  ) 

Definition at line 647 of file OSGDVRVolume.cpp.

References _extTex3D, osg::DVRVolumeBase::getShader(), osg::DVRVolumeBase::getTextures2D(), osg::Window::hasExtension(), osg::TextureManager::TM_2D, osg::TextureManager::TM_2D_Multi, and osg::TextureManager::TM_3D.

Referenced by osg::DVRSimpleLUTShader::activate(), osg::DVRSimpleLUTShader::brickActivate(), draw(), osg::DVRSimpleLUTShader::initialize(), and osg::DVRMtexLUTShader::initialize().

00648 {
00649     TextureManager::TextureMode mode;
00650     
00651     switch(getTextures2D()) 
00652     {
00653         case 0: // 3D textures
00654             mode = TextureManager::TM_3D;
00655             break;
00656 
00657         case 1: // 2D textures
00658             mode = TextureManager::TM_2D;
00659             break;
00660             
00661         default: // auto
00662             mode = window->hasExtension(_extTex3D) ?
00663                 TextureManager::TM_3D : TextureManager::TM_2D;
00664     }
00665 
00666     if(getShader()->useMTSlabs())
00667         mode = TextureManager::TM_2D_Multi;
00668 
00669     return mode;
00670 }

void DVRVolume::reload ( void   ) 

! FIXME: This methods are to be removed as soon as the node gets informed ! about modified attachments of the appearance

Definition at line 674 of file OSGDVRVolume.cpp.

References osg::TextureManager::clearTextures(), osg::DVRVolumeBase::getShader(), osg::DVRVolumeBase::getTextureStorage(), osg::NullFC, shadingInitialized, and textureManager.

00675 {
00676     if(getShader() != NullFC) 
00677     {
00678         textureManager.clearTextures(getTextureStorage());
00679 
00680         shadingInitialized = false;
00681     }
00682 }

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

Reimplemented from osg::NodeCore.

Definition at line 189 of file OSGDVRVolume.cpp.

References DVRVOLUME_PARAMETER, osg::Volume::extendBy(), osg::NullFC, osg::Volume::setEmpty(), and osg::Volume::setValid().

00190 {
00191     volume.setValid();
00192     volume.setEmpty();
00193     
00194     DVRVolumeTexturePtr tex = DVRVOLUME_PARAMETER(this, DVRVolumeTexture);
00195 
00196     if (tex != NullFC) 
00197     {
00198         Vec3f & res   = tex->getResolution    ();
00199         Vec3f & slice = tex->getSliceThickness();
00200     
00201         Vec3f minBB(-0.5f * res[0] * slice[0],
00202                     -0.5f * res[1] * slice[1],
00203                     -0.5f * res[2] * slice[2]);
00204 
00205         Vec3f maxBB(-minBB);
00206     
00207         volume.extendBy(minBB);
00208         volume.extendBy(maxBB);
00209     }    
00210     else 
00211     {
00212         // something wrong with initialization - show boundingbox either
00213         Vec3f minBB(-0.5, -0.5, -0.5);
00214         Vec3f maxBB( 0.5,  0.5,  0.5);
00215         
00216         volume.extendBy(minBB);
00217         volume.extendBy(maxBB);
00218     }
00219 }

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

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

void DVRVolume::commonConstructor ( void   )  [private]

used to initialize member variables - called by every constructor

Definition at line 569 of file OSGDVRVolume.cpp.

References drawStyleListValid, dump(), FDEBUG, osg::LOG_DEBUG, osg::osgLog(), and shadingInitialized.

Referenced by DVRVolume().

00570 {
00571     drawStyleListValid = false;
00572     shadingInitialized = false;
00573 
00574     if(osgLog().getLogLevel() == LOG_DEBUG)
00575     {
00576         FDEBUG(("DVRVolume::commonConstructor: \n"));
00577         dump();
00578     }
00579 }

Action::ResultE DVRVolume::intersect ( Action action  )  [private]

! FIXME: simulate hit when bounding volume is hit

Definition at line 583 of file OSGDVRVolume.cpp.

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

Referenced by initMethod().

00584 { 
00585     FDEBUG(("DVRVolume::intersect\n"));
00586 
00587           IntersectAction *ia = dynamic_cast<IntersectAction*>(action);
00588     const DynamicVolume   &dv = ia->getActNode()->getVolume();
00589     
00590     if(dv.isValid() && !dv.intersect(ia->getLine()))
00591     {
00592         return Action::Skip; //bv missed -> can not hit children
00593     }
00594 
00596 
00597     Real32 t, v;
00598     Vec3f  norm;
00599 
00600     if(dv.intersect(ia->getLine(), t, v))
00601         ia->setHit(t, ia->getActNode(), 0, norm);
00602     
00603     return Action::Continue;
00604 }

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

Reimplemented from osg::NodeCore.

Definition at line 58 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_type.

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

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::NodeCore.

Definition at line 65 of file OSGDVRVolumeBase.inl.

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

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

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

Reimplemented from osg::NodeCore.

Definition at line 305 of file OSGDVRVolumeBase.cpp.

References osg::DVRVolumeBase::_type.

Referenced by draw().

00306 {
00307     return _type; 
00308 } 

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

Reimplemented from osg::NodeCore.

Definition at line 310 of file OSGDVRVolumeBase.cpp.

References osg::DVRVolumeBase::_type.

00311 {
00312     return _type;
00313 } 

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

Reimplemented from osg::NodeCore.

Definition at line 325 of file OSGDVRVolumeBase.cpp.

00326 { 
00327     return sizeof(DVRVolume); 
00328 }

SFDVRAppearancePtr * osg::DVRVolumeBase::getSFAppearance ( void   )  [inline, inherited]

Definition at line 101 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfAppearance.

00102 {
00103     return &_sfAppearance;
00104 }

SFDVRGeometryPtr * osg::DVRVolumeBase::getSFGeometry ( void   )  [inline, inherited]

Definition at line 108 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfGeometry.

00109 {
00110     return &_sfGeometry;
00111 }

SFDVRShaderPtr * osg::DVRVolumeBase::getSFShader ( void   )  [inline, inherited]

Definition at line 115 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfShader.

00116 {
00117     return &_sfShader;
00118 }

SFString * osg::DVRVolumeBase::getSFFileName ( void   )  [inline, inherited]

Definition at line 122 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfFileName.

00123 {
00124     return &_sfFileName;
00125 }

SFReal32 * osg::DVRVolumeBase::getSFSampling ( void   )  [inline, inherited]

Definition at line 129 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfSampling.

00130 {
00131     return &_sfSampling;
00132 }

SFReal32 * osg::DVRVolumeBase::getSFSamplingInteractive ( void   )  [inline, inherited]

Definition at line 136 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfSamplingInteractive.

00137 {
00138     return &_sfSamplingInteractive;
00139 }

SFReal32 * osg::DVRVolumeBase::getSFBaseAlpha ( void   )  [inline, inherited]

Definition at line 143 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBaseAlpha.

00144 {
00145     return &_sfBaseAlpha;
00146 }

SFBool * osg::DVRVolumeBase::getSFDoTextures ( void   )  [inline, inherited]

Definition at line 150 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfDoTextures.

00151 {
00152     return &_sfDoTextures;
00153 }

SFUInt32 * osg::DVRVolumeBase::getSFBrickOverlap ( void   )  [inline, inherited]

Definition at line 157 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBrickOverlap.

00158 {
00159     return &_sfBrickOverlap;
00160 }

SFQBit * osg::DVRVolumeBase::getSFTextures2D ( void   )  [inline, inherited]

Definition at line 164 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfTextures2D.

00165 {
00166     return &_sfTextures2D;
00167 }

SFUInt16 * osg::DVRVolumeBase::getSFBrickStaticMemoryMB ( void   )  [inline, inherited]

Definition at line 171 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBrickStaticMemoryMB.

00172 {
00173     return &_sfBrickStaticMemoryMB;
00174 }

SFChunkMaterialPtr * osg::DVRVolumeBase::getSFTextureStorage ( void   )  [inline, inherited]

Definition at line 227 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfTextureStorage.

00228 {
00229     return &_sfTextureStorage;
00230 }

DVRAppearancePtr & osg::DVRVolumeBase::getAppearance ( void   )  [inline, inherited]

Definition at line 235 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfAppearance, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by findParameter(), and ~DVRVolume().

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

const DVRAppearancePtr & osg::DVRVolumeBase::getAppearance ( void   )  const [inline, inherited]

Definition at line 242 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfAppearance, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

DVRGeometryPtr & osg::DVRVolumeBase::getGeometry ( void   )  [inline, inherited]

Definition at line 256 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfGeometry, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

const DVRGeometryPtr & osg::DVRVolumeBase::getGeometry ( void   )  const [inline, inherited]

Definition at line 263 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfGeometry, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

DVRShaderPtr & osg::DVRVolumeBase::getShader ( void   )  [inline, inherited]

Definition at line 277 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfShader, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by draw(), getTextureMode(), initializeClipObjects(), reload(), and ~DVRVolume().

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

const DVRShaderPtr & osg::DVRVolumeBase::getShader ( void   )  const [inline, inherited]

Definition at line 284 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfShader, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

std::string & osg::DVRVolumeBase::getFileName ( void   )  [inline, inherited]

Definition at line 298 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfFileName, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

const std::string & osg::DVRVolumeBase::getFileName ( void   )  const [inline, inherited]

Definition at line 305 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfFileName, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

Real32 & osg::DVRVolumeBase::getSampling ( void   )  [inline, inherited]

const Real32 & osg::DVRVolumeBase::getSampling ( void   )  const [inline, inherited]

Definition at line 326 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfSampling, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

Real32 & osg::DVRVolumeBase::getSamplingInteractive ( void   )  [inline, inherited]

const Real32 & osg::DVRVolumeBase::getSamplingInteractive ( void   )  const [inline, inherited]

Real32 & osg::DVRVolumeBase::getBaseAlpha ( void   )  [inline, inherited]

Definition at line 361 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBaseAlpha, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::Brick::render3DSlices().

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

const Real32 & osg::DVRVolumeBase::getBaseAlpha ( void   )  const [inline, inherited]

Definition at line 368 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBaseAlpha, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00369 {
00370     return _sfBaseAlpha.getValue();
00371 }

bool & osg::DVRVolumeBase::getDoTextures ( void   )  [inline, inherited]

const bool & osg::DVRVolumeBase::getDoTextures ( void   )  const [inline, inherited]

Definition at line 389 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfDoTextures, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00390 {
00391     return _sfDoTextures.getValue();
00392 }

UInt32 & osg::DVRVolumeBase::getBrickOverlap ( void   )  [inline, inherited]

Definition at line 403 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBrickOverlap, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::TextureManager::buildTextures().

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

const UInt32 & osg::DVRVolumeBase::getBrickOverlap ( void   )  const [inline, inherited]

Definition at line 410 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBrickOverlap, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00411 {
00412     return _sfBrickOverlap.getValue();
00413 }

QBit & osg::DVRVolumeBase::getTextures2D ( void   )  [inline, inherited]

const QBit & osg::DVRVolumeBase::getTextures2D ( void   )  const [inline, inherited]

Definition at line 431 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfTextures2D, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00432 {
00433     return _sfTextures2D.getValue();
00434 }

UInt16 & osg::DVRVolumeBase::getBrickStaticMemoryMB ( void   )  [inline, inherited]

const UInt16 & osg::DVRVolumeBase::getBrickStaticMemoryMB ( void   )  const [inline, inherited]

ChunkMaterialPtr & osg::DVRVolumeBase::getTextureStorage ( void   )  [inline, inherited]

Definition at line 592 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfTextureStorage, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by draw(), dump(), reload(), and ~DVRVolume().

00593 {
00594     return _sfTextureStorage.getValue();
00595 }

const ChunkMaterialPtr & osg::DVRVolumeBase::getTextureStorage ( void   )  const [inline, inherited]

Definition at line 599 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfTextureStorage, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00600 {
00601     return _sfTextureStorage.getValue();
00602 }

void osg::DVRVolumeBase::setFileName ( const std::string &  value  )  [inline, inherited]

Definition at line 312 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfFileName, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00313 {
00314     _sfFileName.setValue(value);
00315 }

void osg::DVRVolumeBase::setSampling ( const Real32 value  )  [inline, inherited]

Definition at line 333 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfSampling, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00334 {
00335     _sfSampling.setValue(value);
00336 }

void osg::DVRVolumeBase::setSamplingInteractive ( const Real32 value  )  [inline, inherited]

void osg::DVRVolumeBase::setBaseAlpha ( const Real32 value  )  [inline, inherited]

Definition at line 375 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBaseAlpha, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00376 {
00377     _sfBaseAlpha.setValue(value);
00378 }

void osg::DVRVolumeBase::setDoTextures ( const bool &  value  )  [inline, inherited]

Definition at line 396 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfDoTextures, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00397 {
00398     _sfDoTextures.setValue(value);
00399 }

void osg::DVRVolumeBase::setBrickOverlap ( const UInt32 value  )  [inline, inherited]

void osg::DVRVolumeBase::setTextures2D ( const QBit value  )  [inline, inherited]

Definition at line 438 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfTextures2D, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00439 {
00440     _sfTextures2D.setValue(value);
00441 }

void osg::DVRVolumeBase::setBrickStaticMemoryMB ( const UInt16 value  )  [inline, inherited]

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

Reimplemented from osg::NodeCore.

Definition at line 424 of file OSGDVRVolumeBase.cpp.

References osg::DVRVolumeBase::_mfDrawStyleNames, osg::DVRVolumeBase::_sfAppearance, osg::DVRVolumeBase::_sfBaseAlpha, osg::DVRVolumeBase::_sfBrickingMode, osg::DVRVolumeBase::_sfBrickMaxSize, osg::DVRVolumeBase::_sfBrickOverlap, osg::DVRVolumeBase::_sfBrickStaticMemoryMB, osg::DVRVolumeBase::_sfBrickStaticSubdivision, osg::DVRVolumeBase::_sfDoTextures, osg::DVRVolumeBase::_sfDrawStyle, osg::DVRVolumeBase::_sfFileName, osg::DVRVolumeBase::_sfGeometry, osg::DVRVolumeBase::_sfRenderMaterial, osg::DVRVolumeBase::_sfSampling, osg::DVRVolumeBase::_sfSamplingInteractive, osg::DVRVolumeBase::_sfShader, osg::DVRVolumeBase::_sfShowBricks, osg::DVRVolumeBase::_sfTextures2D, osg::DVRVolumeBase::_sfTextureStorage, osg::DVRVolumeBase::AppearanceFieldMask, osg::DVRVolumeBase::BaseAlphaFieldMask, osg::DVRVolumeBase::BrickingModeFieldMask, osg::DVRVolumeBase::BrickMaxSizeFieldMask, osg::DVRVolumeBase::BrickOverlapFieldMask, osg::DVRVolumeBase::BrickStaticMemoryMBFieldMask, osg::DVRVolumeBase::BrickStaticSubdivisionFieldMask, osg::DVRVolumeBase::DoTexturesFieldMask, osg::DVRVolumeBase::DrawStyleFieldMask, osg::DVRVolumeBase::DrawStyleNamesFieldMask, osg::DVRVolumeBase::FileNameFieldMask, osg::DVRVolumeBase::GeometryFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::NodeCore::getBinSize(), osg::FieldBits::NoField, osg::DVRVolumeBase::RenderMaterialFieldMask, osg::DVRVolumeBase::SamplingFieldMask, osg::DVRVolumeBase::SamplingInteractiveFieldMask, osg::DVRVolumeBase::ShaderFieldMask, osg::DVRVolumeBase::ShowBricksFieldMask, osg::DVRVolumeBase::Textures2DFieldMask, and osg::DVRVolumeBase::TextureStorageFieldMask.

00425 {
00426     UInt32 returnValue = Inherited::getBinSize(whichField);
00427 
00428     if(FieldBits::NoField != (AppearanceFieldMask & whichField))
00429     {
00430         returnValue += _sfAppearance.getBinSize();
00431     }
00432 
00433     if(FieldBits::NoField != (GeometryFieldMask & whichField))
00434     {
00435         returnValue += _sfGeometry.getBinSize();
00436     }
00437 
00438     if(FieldBits::NoField != (ShaderFieldMask & whichField))
00439     {
00440         returnValue += _sfShader.getBinSize();
00441     }
00442 
00443     if(FieldBits::NoField != (FileNameFieldMask & whichField))
00444     {
00445         returnValue += _sfFileName.getBinSize();
00446     }
00447 
00448     if(FieldBits::NoField != (SamplingFieldMask & whichField))
00449     {
00450         returnValue += _sfSampling.getBinSize();
00451     }
00452 
00453     if(FieldBits::NoField != (SamplingInteractiveFieldMask & whichField))
00454     {
00455         returnValue += _sfSamplingInteractive.getBinSize();
00456     }
00457 
00458     if(FieldBits::NoField != (BaseAlphaFieldMask & whichField))
00459     {
00460         returnValue += _sfBaseAlpha.getBinSize();
00461     }
00462 
00463     if(FieldBits::NoField != (DoTexturesFieldMask & whichField))
00464     {
00465         returnValue += _sfDoTextures.getBinSize();
00466     }
00467 
00468     if(FieldBits::NoField != (BrickOverlapFieldMask & whichField))
00469     {
00470         returnValue += _sfBrickOverlap.getBinSize();
00471     }
00472 
00473     if(FieldBits::NoField != (Textures2DFieldMask & whichField))
00474     {
00475         returnValue += _sfTextures2D.getBinSize();
00476     }
00477 
00478     if(FieldBits::NoField != (BrickStaticMemoryMBFieldMask & whichField))
00479     {
00480         returnValue += _sfBrickStaticMemoryMB.getBinSize();
00481     }
00482 
00483     if(FieldBits::NoField != (RenderMaterialFieldMask & whichField))
00484     {
00485         returnValue += _sfRenderMaterial.getBinSize();
00486     }
00487 
00488     if(FieldBits::NoField != (BrickingModeFieldMask & whichField))
00489     {
00490         returnValue += _sfBrickingMode.getBinSize();
00491     }
00492 
00493     if(FieldBits::NoField != (BrickStaticSubdivisionFieldMask & whichField))
00494     {
00495         returnValue += _sfBrickStaticSubdivision.getBinSize();
00496     }
00497 
00498     if(FieldBits::NoField != (BrickMaxSizeFieldMask & whichField))
00499     {
00500         returnValue += _sfBrickMaxSize.getBinSize();
00501     }
00502 
00503     if(FieldBits::NoField != (ShowBricksFieldMask & whichField))
00504     {
00505         returnValue += _sfShowBricks.getBinSize();
00506     }
00507 
00508     if(FieldBits::NoField != (DrawStyleFieldMask & whichField))
00509     {
00510         returnValue += _sfDrawStyle.getBinSize();
00511     }
00512 
00513     if(FieldBits::NoField != (DrawStyleNamesFieldMask & whichField))
00514     {
00515         returnValue += _mfDrawStyleNames.getBinSize();
00516     }
00517 
00518     if(FieldBits::NoField != (TextureStorageFieldMask & whichField))
00519     {
00520         returnValue += _sfTextureStorage.getBinSize();
00521     }
00522 
00523 
00524     return returnValue;
00525 }

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

Reimplemented from osg::NodeCore.

Definition at line 527 of file OSGDVRVolumeBase.cpp.

References osg::DVRVolumeBase::_mfDrawStyleNames, osg::DVRVolumeBase::_sfAppearance, osg::DVRVolumeBase::_sfBaseAlpha, osg::DVRVolumeBase::_sfBrickingMode, osg::DVRVolumeBase::_sfBrickMaxSize, osg::DVRVolumeBase::_sfBrickOverlap, osg::DVRVolumeBase::_sfBrickStaticMemoryMB, osg::DVRVolumeBase::_sfBrickStaticSubdivision, osg::DVRVolumeBase::_sfDoTextures, osg::DVRVolumeBase::_sfDrawStyle, osg::DVRVolumeBase::_sfFileName, osg::DVRVolumeBase::_sfGeometry, osg::DVRVolumeBase::_sfRenderMaterial, osg::DVRVolumeBase::_sfSampling, osg::DVRVolumeBase::_sfSamplingInteractive, osg::DVRVolumeBase::_sfShader, osg::DVRVolumeBase::_sfShowBricks, osg::DVRVolumeBase::_sfTextures2D, osg::DVRVolumeBase::_sfTextureStorage, osg::DVRVolumeBase::AppearanceFieldMask, osg::DVRVolumeBase::BaseAlphaFieldMask, osg::DVRVolumeBase::BrickingModeFieldMask, osg::DVRVolumeBase::BrickMaxSizeFieldMask, osg::DVRVolumeBase::BrickOverlapFieldMask, osg::DVRVolumeBase::BrickStaticMemoryMBFieldMask, osg::DVRVolumeBase::BrickStaticSubdivisionFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::NodeCore::copyToBin(), osg::DVRVolumeBase::DoTexturesFieldMask, osg::DVRVolumeBase::DrawStyleFieldMask, osg::DVRVolumeBase::DrawStyleNamesFieldMask, osg::DVRVolumeBase::FileNameFieldMask, osg::DVRVolumeBase::GeometryFieldMask, osg::FieldBits::NoField, osg::DVRVolumeBase::RenderMaterialFieldMask, osg::DVRVolumeBase::SamplingFieldMask, osg::DVRVolumeBase::SamplingInteractiveFieldMask, osg::DVRVolumeBase::ShaderFieldMask, osg::DVRVolumeBase::ShowBricksFieldMask, osg::DVRVolumeBase::Textures2DFieldMask, and osg::DVRVolumeBase::TextureStorageFieldMask.

00529 {
00530     Inherited::copyToBin(pMem, whichField);
00531 
00532     if(FieldBits::NoField != (AppearanceFieldMask & whichField))
00533     {
00534         _sfAppearance.copyToBin(pMem);
00535     }
00536 
00537     if(FieldBits::NoField != (GeometryFieldMask & whichField))
00538     {
00539         _sfGeometry.copyToBin(pMem);
00540     }
00541 
00542     if(FieldBits::NoField != (ShaderFieldMask & whichField))
00543     {
00544         _sfShader.copyToBin(pMem);
00545     }
00546 
00547     if(FieldBits::NoField != (FileNameFieldMask & whichField))
00548     {
00549         _sfFileName.copyToBin(pMem);
00550     }
00551 
00552     if(FieldBits::NoField != (SamplingFieldMask & whichField))
00553     {
00554         _sfSampling.copyToBin(pMem);
00555     }
00556 
00557     if(FieldBits::NoField != (SamplingInteractiveFieldMask & whichField))
00558     {
00559         _sfSamplingInteractive.copyToBin(pMem);
00560     }
00561 
00562     if(FieldBits::NoField != (BaseAlphaFieldMask & whichField))
00563     {
00564         _sfBaseAlpha.copyToBin(pMem);
00565     }
00566 
00567     if(FieldBits::NoField != (DoTexturesFieldMask & whichField))
00568     {
00569         _sfDoTextures.copyToBin(pMem);
00570     }
00571 
00572     if(FieldBits::NoField != (BrickOverlapFieldMask & whichField))
00573     {
00574         _sfBrickOverlap.copyToBin(pMem);
00575     }
00576 
00577     if(FieldBits::NoField != (Textures2DFieldMask & whichField))
00578     {
00579         _sfTextures2D.copyToBin(pMem);
00580     }
00581 
00582     if(FieldBits::NoField != (BrickStaticMemoryMBFieldMask & whichField))
00583     {
00584         _sfBrickStaticMemoryMB.copyToBin(pMem);
00585     }
00586 
00587     if(FieldBits::NoField != (RenderMaterialFieldMask & whichField))
00588     {
00589         _sfRenderMaterial.copyToBin(pMem);
00590     }
00591 
00592     if(FieldBits::NoField != (BrickingModeFieldMask & whichField))
00593     {
00594         _sfBrickingMode.copyToBin(pMem);
00595     }
00596 
00597     if(FieldBits::NoField != (BrickStaticSubdivisionFieldMask & whichField))
00598     {
00599         _sfBrickStaticSubdivision.copyToBin(pMem);
00600     }
00601 
00602     if(FieldBits::NoField != (BrickMaxSizeFieldMask & whichField))
00603     {
00604         _sfBrickMaxSize.copyToBin(pMem);
00605     }
00606 
00607     if(FieldBits::NoField != (ShowBricksFieldMask & whichField))
00608     {
00609         _sfShowBricks.copyToBin(pMem);
00610     }
00611 
00612     if(FieldBits::NoField != (DrawStyleFieldMask & whichField))
00613     {
00614         _sfDrawStyle.copyToBin(pMem);
00615     }
00616 
00617     if(FieldBits::NoField != (DrawStyleNamesFieldMask & whichField))
00618     {
00619         _mfDrawStyleNames.copyToBin(pMem);
00620     }
00621 
00622     if(FieldBits::NoField != (TextureStorageFieldMask & whichField))
00623     {
00624         _sfTextureStorage.copyToBin(pMem);
00625     }
00626 
00627 
00628 }

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

Reimplemented from osg::NodeCore.

Definition at line 630 of file OSGDVRVolumeBase.cpp.

References osg::DVRVolumeBase::_mfDrawStyleNames, osg::DVRVolumeBase::_sfAppearance, osg::DVRVolumeBase::_sfBaseAlpha, osg::DVRVolumeBase::_sfBrickingMode, osg::DVRVolumeBase::_sfBrickMaxSize, osg::DVRVolumeBase::_sfBrickOverlap, osg::DVRVolumeBase::_sfBrickStaticMemoryMB, osg::DVRVolumeBase::_sfBrickStaticSubdivision, osg::DVRVolumeBase::_sfDoTextures, osg::DVRVolumeBase::_sfDrawStyle, osg::DVRVolumeBase::_sfFileName, osg::DVRVolumeBase::_sfGeometry, osg::DVRVolumeBase::_sfRenderMaterial, osg::DVRVolumeBase::_sfSampling, osg::DVRVolumeBase::_sfSamplingInteractive, osg::DVRVolumeBase::_sfShader, osg::DVRVolumeBase::_sfShowBricks, osg::DVRVolumeBase::_sfTextures2D, osg::DVRVolumeBase::_sfTextureStorage, osg::DVRVolumeBase::AppearanceFieldMask, osg::DVRVolumeBase::BaseAlphaFieldMask, osg::DVRVolumeBase::BrickingModeFieldMask, osg::DVRVolumeBase::BrickMaxSizeFieldMask, osg::DVRVolumeBase::BrickOverlapFieldMask, osg::DVRVolumeBase::BrickStaticMemoryMBFieldMask, osg::DVRVolumeBase::BrickStaticSubdivisionFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::NodeCore::copyFromBin(), osg::DVRVolumeBase::DoTexturesFieldMask, osg::DVRVolumeBase::DrawStyleFieldMask, osg::DVRVolumeBase::DrawStyleNamesFieldMask, osg::DVRVolumeBase::FileNameFieldMask, osg::DVRVolumeBase::GeometryFieldMask, osg::FieldBits::NoField, osg::DVRVolumeBase::RenderMaterialFieldMask, osg::DVRVolumeBase::SamplingFieldMask, osg::DVRVolumeBase::SamplingInteractiveFieldMask, osg::DVRVolumeBase::ShaderFieldMask, osg::DVRVolumeBase::ShowBricksFieldMask, osg::DVRVolumeBase::Textures2DFieldMask, and osg::DVRVolumeBase::TextureStorageFieldMask.

00632 {
00633     Inherited::copyFromBin(pMem, whichField);
00634 
00635     if(FieldBits::NoField != (AppearanceFieldMask & whichField))
00636     {
00637         _sfAppearance.copyFromBin(pMem);
00638     }
00639 
00640     if(FieldBits::NoField != (GeometryFieldMask & whichField))
00641     {
00642         _sfGeometry.copyFromBin(pMem);
00643     }
00644 
00645     if(FieldBits::NoField != (ShaderFieldMask & whichField))
00646     {
00647         _sfShader.copyFromBin(pMem);
00648     }
00649 
00650     if(FieldBits::NoField != (FileNameFieldMask & whichField))
00651     {
00652         _sfFileName.copyFromBin(pMem);
00653     }
00654 
00655     if(FieldBits::NoField != (SamplingFieldMask & whichField))
00656     {
00657         _sfSampling.copyFromBin(pMem);
00658     }
00659 
00660     if(FieldBits::NoField != (SamplingInteractiveFieldMask & whichField))
00661     {
00662         _sfSamplingInteractive.copyFromBin(pMem);
00663     }
00664 
00665     if(FieldBits::NoField != (BaseAlphaFieldMask & whichField))
00666     {
00667         _sfBaseAlpha.copyFromBin(pMem);
00668     }
00669 
00670     if(FieldBits::NoField != (DoTexturesFieldMask & whichField))
00671     {
00672         _sfDoTextures.copyFromBin(pMem);
00673     }
00674 
00675     if(FieldBits::NoField != (BrickOverlapFieldMask & whichField))
00676     {
00677         _sfBrickOverlap.copyFromBin(pMem);
00678     }
00679 
00680     if(FieldBits::NoField != (Textures2DFieldMask & whichField))
00681     {
00682         _sfTextures2D.copyFromBin(pMem);
00683     }
00684 
00685     if(FieldBits::NoField != (BrickStaticMemoryMBFieldMask & whichField))
00686     {
00687         _sfBrickStaticMemoryMB.copyFromBin(pMem);
00688     }
00689 
00690     if(FieldBits::NoField != (RenderMaterialFieldMask & whichField))
00691     {
00692         _sfRenderMaterial.copyFromBin(pMem);
00693     }
00694 
00695     if(FieldBits::NoField != (BrickingModeFieldMask & whichField))
00696     {
00697         _sfBrickingMode.copyFromBin(pMem);
00698     }
00699 
00700     if(FieldBits::NoField != (BrickStaticSubdivisionFieldMask & whichField))
00701     {
00702         _sfBrickStaticSubdivision.copyFromBin(pMem);
00703     }
00704 
00705     if(FieldBits::NoField != (BrickMaxSizeFieldMask & whichField))
00706     {
00707         _sfBrickMaxSize.copyFromBin(pMem);
00708     }
00709 
00710     if(FieldBits::NoField != (ShowBricksFieldMask & whichField))
00711     {
00712         _sfShowBricks.copyFromBin(pMem);
00713     }
00714 
00715     if(FieldBits::NoField != (DrawStyleFieldMask & whichField))
00716     {
00717         _sfDrawStyle.copyFromBin(pMem);
00718     }
00719 
00720     if(FieldBits::NoField != (DrawStyleNamesFieldMask & whichField))
00721     {
00722         _mfDrawStyleNames.copyFromBin(pMem);
00723     }
00724 
00725     if(FieldBits::NoField != (TextureStorageFieldMask & whichField))
00726     {
00727         _sfTextureStorage.copyFromBin(pMem);
00728     }
00729 
00730 
00731 }

DVRVolumePtr osg::DVRVolumeBase::create ( void   )  [inline, static, inherited]

Definition at line 72 of file OSGDVRVolumeBase.inl.

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

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

DVRVolumePtr osg::DVRVolumeBase::createEmpty ( void   )  [inline, static, inherited]

Definition at line 87 of file OSGDVRVolumeBase.inl.

References osg::FieldContainer::newPtr().

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

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

Implements osg::FieldContainer.

Definition at line 316 of file OSGDVRVolumeBase.cpp.

References osg::FieldContainer::newPtr().

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

00317 { 
00318     DVRVolumePtr returnValue; 
00319 
00320     newPtr(returnValue, dynamic_cast<const DVRVolume *>(this)); 
00321 
00322     return returnValue; 
00323 }

SFMaterialPtr * osg::DVRVolumeBase::getSFRenderMaterial ( void   )  [inline, protected, inherited]

Definition at line 178 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfRenderMaterial.

00179 {
00180     return &_sfRenderMaterial;
00181 }

SFUInt16 * osg::DVRVolumeBase::getSFBrickingMode ( void   )  [inline, protected, inherited]

Definition at line 185 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBrickingMode.

00186 {
00187     return &_sfBrickingMode;
00188 }

SFVec3f * osg::DVRVolumeBase::getSFBrickStaticSubdivision ( void   )  [inline, protected, inherited]

Definition at line 192 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBrickStaticSubdivision.

00193 {
00194     return &_sfBrickStaticSubdivision;
00195 }

SFVec3f * osg::DVRVolumeBase::getSFBrickMaxSize ( void   )  [inline, protected, inherited]

Definition at line 199 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBrickMaxSize.

00200 {
00201     return &_sfBrickMaxSize;
00202 }

SFBool * osg::DVRVolumeBase::getSFShowBricks ( void   )  [inline, protected, inherited]

Definition at line 206 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfShowBricks.

00207 {
00208     return &_sfShowBricks;
00209 }

SFUInt32 * osg::DVRVolumeBase::getSFDrawStyle ( void   )  [inline, protected, inherited]

Definition at line 213 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfDrawStyle.

00214 {
00215     return &_sfDrawStyle;
00216 }

MFString * osg::DVRVolumeBase::getMFDrawStyleNames ( void   )  [inline, protected, inherited]

Definition at line 220 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_mfDrawStyleNames.

00221 {
00222     return &_mfDrawStyleNames;
00223 }

MaterialPtr & osg::DVRVolumeBase::getRenderMaterial ( void   )  [inline, protected, inherited]

Definition at line 466 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfRenderMaterial, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by dump(), render(), and ~DVRVolume().

00467 {
00468     return _sfRenderMaterial.getValue();
00469 }

const MaterialPtr & osg::DVRVolumeBase::getRenderMaterial ( void   )  const [inline, protected, inherited]

Definition at line 473 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfRenderMaterial, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00474 {
00475     return _sfRenderMaterial.getValue();
00476 }

UInt16 & osg::DVRVolumeBase::getBrickingMode ( void   )  [inline, protected, inherited]

const UInt16 & osg::DVRVolumeBase::getBrickingMode ( void   )  const [inline, protected, inherited]

Definition at line 494 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBrickingMode, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00495 {
00496     return _sfBrickingMode.getValue();
00497 }

Vec3f & osg::DVRVolumeBase::getBrickStaticSubdivision ( void   )  [inline, protected, inherited]

const Vec3f & osg::DVRVolumeBase::getBrickStaticSubdivision ( void   )  const [inline, protected, inherited]

Vec3f & osg::DVRVolumeBase::getBrickMaxSize ( void   )  [inline, protected, inherited]

const Vec3f & osg::DVRVolumeBase::getBrickMaxSize ( void   )  const [inline, protected, inherited]

Definition at line 536 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfBrickMaxSize, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00537 {
00538     return _sfBrickMaxSize.getValue();
00539 }

bool & osg::DVRVolumeBase::getShowBricks ( void   )  [inline, protected, inherited]

Definition at line 550 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfShowBricks, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by draw().

00551 {
00552     return _sfShowBricks.getValue();
00553 }

const bool & osg::DVRVolumeBase::getShowBricks ( void   )  const [inline, protected, inherited]

Definition at line 557 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfShowBricks, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00558 {
00559     return _sfShowBricks.getValue();
00560 }

UInt32 & osg::DVRVolumeBase::getDrawStyle ( void   )  [inline, protected, inherited]

Definition at line 571 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfDrawStyle, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00572 {
00573     return _sfDrawStyle.getValue();
00574 }

const UInt32 & osg::DVRVolumeBase::getDrawStyle ( void   )  const [inline, protected, inherited]

Definition at line 578 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfDrawStyle, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00579 {
00580     return _sfDrawStyle.getValue();
00581 }

std::string & osg::DVRVolumeBase::getDrawStyleNames ( UInt32  index  )  [inline, protected, inherited]

Definition at line 614 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_mfDrawStyleNames.

00615 {
00616     return _mfDrawStyleNames[index];
00617 }

MFString & osg::DVRVolumeBase::getDrawStyleNames ( void   )  [inline, protected, inherited]

Definition at line 621 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_mfDrawStyleNames.

00622 {
00623     return _mfDrawStyleNames;
00624 }

const MFString & osg::DVRVolumeBase::getDrawStyleNames ( void   )  const [inline, protected, inherited]

Definition at line 628 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_mfDrawStyleNames.

00629 {
00630     return _mfDrawStyleNames;
00631 }

void osg::DVRVolumeBase::setBrickingMode ( const UInt16 value  )  [inline, protected, inherited]

void osg::DVRVolumeBase::setBrickStaticSubdivision ( const Vec3f value  )  [inline, protected, inherited]

void osg::DVRVolumeBase::setBrickMaxSize ( const Vec3f value  )  [inline, protected, inherited]

void osg::DVRVolumeBase::setShowBricks ( const bool &  value  )  [inline, protected, inherited]

Definition at line 564 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfShowBricks, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00565 {
00566     _sfShowBricks.setValue(value);
00567 }

void osg::DVRVolumeBase::setDrawStyle ( const UInt32 value  )  [inline, protected, inherited]

Definition at line 585 of file OSGDVRVolumeBase.inl.

References osg::DVRVolumeBase::_sfDrawStyle, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00586 {
00587     _sfDrawStyle.setValue(value);
00588 }

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

Definition at line 734 of file OSGDVRVolumeBase.cpp.

References osg::DVRVolumeBase::_mfDrawStyleNames, osg::DVRVolumeBase::_sfAppearance, osg::DVRVolumeBase::_sfBaseAlpha, osg::DVRVolumeBase::_sfBrickingMode, osg::DVRVolumeBase::_sfBrickMaxSize, osg::DVRVolumeBase::_sfBrickOverlap, osg::DVRVolumeBase::_sfBrickStaticMemoryMB, osg::DVRVolumeBase::_sfBrickStaticSubdivision, osg::DVRVolumeBase::_sfDoTextures, osg::DVRVolumeBase::_sfDrawStyle, osg::DVRVolumeBase::_sfFileName, osg::DVRVolumeBase::_sfGeometry, osg::DVRVolumeBase::_sfRenderMaterial, osg::DVRVolumeBase::_sfSampling, osg::DVRVolumeBase::_sfSamplingInteractive, osg::DVRVolumeBase::_sfShader, osg::DVRVolumeBase::_sfShowBricks, osg::DVRVolumeBase::_sfTextures2D, osg::DVRVolumeBase::_sfTextureStorage, osg::DVRVolumeBase::AppearanceFieldMask, osg::DVRVolumeBase::BaseAlphaFieldMask, osg::DVRVolumeBase::BrickingModeFieldMask, osg::DVRVolumeBase::BrickMaxSizeFieldMask, osg::DVRVolumeBase::BrickOverlapFieldMask, osg::DVRVolumeBase::BrickStaticMemoryMBFieldMask, osg::DVRVolumeBase::BrickStaticSubdivisionFieldMask, osg::DVRVolumeBase::DoTexturesFieldMask, osg::DVRVolumeBase::DrawStyleFieldMask, osg::DVRVolumeBase::DrawStyleNamesFieldMask, osg::NodeCore::executeSyncImpl(), osg::DVRVolumeBase::FileNameFieldMask, osg::DVRVolumeBase::GeometryFieldMask, osg::FieldBits::NoField, osg::DVRVolumeBase::RenderMaterialFieldMask, osg::DVRVolumeBase::SamplingFieldMask, osg::DVRVolumeBase::SamplingInteractiveFieldMask, osg::DVRVolumeBase::ShaderFieldMask, osg::DVRVolumeBase::ShowBricksFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::syncWith(), osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), osg::DVRVolumeBase::Textures2DFieldMask, and osg::DVRVolumeBase::TextureStorageFieldMask.

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

00736 {
00737 
00738     Inherited::executeSyncImpl(pOther, whichField);
00739 
00740     if(FieldBits::NoField != (AppearanceFieldMask & whichField))
00741         _sfAppearance.syncWith(pOther->_sfAppearance);
00742 
00743     if(FieldBits::NoField != (GeometryFieldMask & whichField))
00744         _sfGeometry.syncWith(pOther->_sfGeometry);
00745 
00746     if(FieldBits::NoField != (ShaderFieldMask & whichField))
00747         _sfShader.syncWith(pOther->_sfShader);
00748 
00749     if(FieldBits::NoField != (FileNameFieldMask & whichField))
00750         _sfFileName.syncWith(pOther->_sfFileName);
00751 
00752     if(FieldBits::NoField != (SamplingFieldMask & whichField))
00753         _sfSampling.syncWith(pOther->_sfSampling);
00754 
00755     if(FieldBits::NoField != (SamplingInteractiveFieldMask & whichField))
00756         _sfSamplingInteractive.syncWith(pOther->_sfSamplingInteractive);
00757 
00758     if(FieldBits::NoField != (BaseAlphaFieldMask & whichField))
00759         _sfBaseAlpha.syncWith(pOther->_sfBaseAlpha);
00760 
00761     if(FieldBits::NoField != (DoTexturesFieldMask & whichField))
00762         _sfDoTextures.syncWith(pOther->_sfDoTextures);
00763 
00764     if(FieldBits::NoField != (BrickOverlapFieldMask & whichField))
00765         _sfBrickOverlap.syncWith(pOther->_sfBrickOverlap);
00766 
00767     if(FieldBits::NoField != (Textures2DFieldMask & whichField))
00768         _sfTextures2D.syncWith(pOther->_sfTextures2D);
00769 
00770     if(FieldBits::NoField != (BrickStaticMemoryMBFieldMask & whichField))
00771         _sfBrickStaticMemoryMB.syncWith(pOther->_sfBrickStaticMemoryMB);
00772 
00773     if(FieldBits::NoField != (RenderMaterialFieldMask & whichField))
00774         _sfRenderMaterial.syncWith(pOther->_sfRenderMaterial);
00775 
00776     if(FieldBits::NoField != (BrickingModeFieldMask & whichField))
00777         _sfBrickingMode.syncWith(pOther->_sfBrickingMode);
00778 
00779     if(FieldBits::NoField != (BrickStaticSubdivisionFieldMask & whichField))
00780         _sfBrickStaticSubdivision.syncWith(pOther->_sfBrickStaticSubdivision);
00781 
00782     if(FieldBits::NoField != (BrickMaxSizeFieldMask & whichField))
00783         _sfBrickMaxSize.syncWith(pOther->_sfBrickMaxSize);
00784 
00785     if(FieldBits::NoField != (ShowBricksFieldMask & whichField))
00786         _sfShowBricks.syncWith(pOther->_sfShowBricks);
00787 
00788     if(FieldBits::NoField != (DrawStyleFieldMask & whichField))
00789         _sfDrawStyle.syncWith(pOther->_sfDrawStyle);
00790 
00791     if(FieldBits::NoField != (DrawStyleNamesFieldMask & whichField))
00792         _mfDrawStyleNames.syncWith(pOther->_mfDrawStyleNames);
00793 
00794     if(FieldBits::NoField != (TextureStorageFieldMask & whichField))
00795         _sfTextureStorage.syncWith(pOther->_sfTextureStorage);
00796 
00797 
00798 }

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 DVRVolumeBase::executeSync ( FieldContainer other,
const BitVector whichField 
) [protected, virtual, inherited]

Reimplemented from osg::NodeCore.

Definition at line 332 of file OSGDVRVolumeBase.cpp.

References osg::DVRVolumeBase::executeSyncImpl().

00334 {
00335     this->executeSyncImpl((DVRVolumeBase *) &other, whichField);
00336 }

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

Definition at line 196 of file OSGDVRVolume.h.

friend class DVRVolumeBase [friend]

Definition at line 197 of file OSGDVRVolume.h.

friend class TextureManager [friend]

Definition at line 230 of file OSGDVRVolume.h.


Member Data Documentation

UInt32 DVRVolume::_extTex3D = Window::registerExtension( "GL_EXT_texture3D" ) [static, protected]

Definition at line 189 of file OSGDVRVolume.h.

Referenced by getTextureMode(), and initializeClipObjects().

Definition at line 221 of file OSGDVRVolume.h.

Referenced by commonConstructor().

Definition at line 222 of file OSGDVRVolume.h.

Referenced by draw(), getTextureManager(), and reload().

Definition at line 223 of file OSGDVRVolume.h.

Referenced by changed(), commonConstructor(), draw(), and reload().

Definition at line 225 of file OSGDVRVolume.h.

Referenced by draw(), and initializeClipObjects().

Initial value:

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

Reimplemented from osg::FieldContainer.

Definition at line 155 of file OSGDVRVolumeBase.h.

DVRShaderPtr DVRVolumeBase::_sfShader [protected, inherited]

std::string DVRVolumeBase::_sfFileName [protected, inherited]

Real32 DVRVolumeBase::_sfSampling [protected, inherited]

Real32 DVRVolumeBase::_sfBaseAlpha [protected, inherited]

bool DVRVolumeBase::_sfDoTextures [protected, inherited]

UInt32 DVRVolumeBase::_sfBrickOverlap [protected, inherited]

QBit DVRVolumeBase::_sfTextures2D [protected, inherited]

UInt16 DVRVolumeBase::_sfBrickingMode [protected, inherited]

Vec3f DVRVolumeBase::_sfBrickMaxSize [protected, inherited]

bool DVRVolumeBase::_sfShowBricks [protected, inherited]

UInt32 DVRVolumeBase::_sfDrawStyle [protected, inherited]

std::string DVRVolumeBase::_mfDrawStyleNames [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 11:14:44 2008 for OpenSG by  doxygen 1.5.5