osg::ShaderChunk Class Reference

ShaderChunk class. See PageSystemShaderChunk for a description.

#include <OSGShaderChunk.h>

Inheritance diagram for osg::ShaderChunk:

osg::ShaderChunkBase osg::ShaderParameterChunk osg::ShaderParameterChunkBase osg::StateChunk osg::StateChunkBase osg::Attachment osg::FieldContainer osg::SHLChunkBase osg::SHLChunk

List of all members.

General Fieldcontainer Declaration



virtual osg::FieldContainerPtr shallowCopy (void) const
static AttachmentPtr create (void)
static AttachmentPtr createEmpty (void)

Public Types

enum  { VertexProgramFieldId = Inherited::NextFieldId, FragmentProgramFieldId = VertexProgramFieldId + 1, GeometryProgramFieldId = FragmentProgramFieldId + 1, NextFieldId = GeometryProgramFieldId + 1 }
typedef ShaderChunkPtr Ptr
enum  { ParametersFieldId = Inherited::NextFieldId, NextFieldId = ParametersFieldId + 1 }
enum  { IgnoreFieldId = Inherited::NextFieldId, NextFieldId = IgnoreFieldId + 1 }
enum  { ParentsFieldId = Inherited::NextFieldId, InternalFieldId = ParentsFieldId + 1, NextFieldId = InternalFieldId + 1 }
enum  { NextFieldId = 1 }

Public Member Functions

Sync


virtual void changed (BitVector whichField, UInt32 origin)
Output


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


bool readVertexProgram (const char *file)
bool readVertexProgram (std::istream &stream)
bool readFragmentProgram (const char *file)
bool readFragmentProgram (std::istream &stream)
FieldContainer Get


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


SFString * getSFVertexProgram (void)
 Get the ShaderChunk::_sfVertexProgram field.
SFString * getSFFragmentProgram (void)
 Get the ShaderChunk::_sfFragmentProgram field.
SFString * getSFGeometryProgram (void)
 Get the ShaderChunk::_sfGeometryProgram field.
std::string & getVertexProgram (void)
 Get the value of the ShaderChunk::_sfVertexProgram field.
const std::string & getVertexProgram (void) const
 Get the value of the ShaderChunk::_sfVertexProgram field.
std::string & getFragmentProgram (void)
 Get the value of the ShaderChunk::_sfFragmentProgram field.
const std::string & getFragmentProgram (void) const
 Get the value of the ShaderChunk::_sfFragmentProgram field.
std::string & getGeometryProgram (void)
 Get the value of the ShaderChunk::_sfGeometryProgram field.
const std::string & getGeometryProgram (void) const
 Get the value of the ShaderChunk::_sfGeometryProgram field.
Field Set


void setVertexProgram (const std::string &value)
 Set the value of the ShaderChunk::_sfVertexProgram field.
void setFragmentProgram (const std::string &value)
 Set the value of the ShaderChunk::_sfFragmentProgram field.
void setGeometryProgram (const std::string &value)
 Set the value of the ShaderChunk::_sfGeometryProgram 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)
ShaderParameterChunk Access


bool setUniformParameter (const char *name, bool value)
bool setUniformParameter (const char *name, Int32 value)
bool setUniformParameter (const char *name, Real32 value)
bool setUniformParameter (const char *name, const Vec2f &value)
bool setUniformParameter (const char *name, const Vec3f &value)
bool setUniformParameter (const char *name, const Vec4f &value)
bool setUniformParameter (const char *name, const Matrix &value)
bool setUniformParameter (const char *name, const MFInt32 &value)
bool setUniformParameter (const char *name, const MFReal32 &value)
bool setUniformParameter (const char *name, const MFVec2f &value)
bool setUniformParameter (const char *name, const MFVec3f &value)
bool setUniformParameter (const char *name, const MFVec4f &value)
bool setUniformParameter (const char *name, const MFMatrix &value)
bool getUniformParameter (const char *name, bool &value)
bool getUniformParameter (const char *name, Int32 &value)
bool getUniformParameter (const char *name, Real32 &value)
bool getUniformParameter (const char *name, Vec2f &value)
bool getUniformParameter (const char *name, Vec3f &value)
bool getUniformParameter (const char *name, Vec4f &value)
bool getUniformParameter (const char *name, Matrix &value)
bool getUniformParameter (const char *name, MFInt32 &value)
bool getUniformParameter (const char *name, MFReal32 &value)
bool getUniformParameter (const char *name, MFVec2f &value)
bool getUniformParameter (const char *name, MFVec3f &value)
bool getUniformParameter (const char *name, MFVec4f &value)
bool getUniformParameter (const char *name, MFMatrix &value)
bool subUniformParameter (const char *name)
Field Get


MFShaderParameterPtr * getMFParameters (void)
 Get the ShaderParameterChunk::_mfParameters field.
ShaderParameterPtr & getParameters (const UInt32 index)
 Get the value of the index element the ShaderParameterChunk::_mfParameters field.
MFShaderParameterPtr & getParameters (void)
 Get the ShaderParameterChunk::_mfParameters field.
const MFShaderParameterPtr & getParameters (void) const
 Get the ShaderParameterChunk::_mfParameters field.
Chunk Class Access


UInt32 getClassId (void) const
virtual const StateChunkClass * getClass (void) const
State


virtual void update (DrawActionBase *action)
virtual void activate (DrawActionBase *action, UInt32 index=0)
virtual void changeFrom (DrawActionBase *action, StateChunk *old, UInt32 index=0)
virtual void deactivate (DrawActionBase *action, UInt32 index=0)
virtual bool isTransparent (void) const
Comparison


virtual Real32 switchCost (StateChunk *chunk)
virtual bool operator< (const StateChunk &other) const
virtual bool operator== (const StateChunk &other) const
virtual bool operator!= (const StateChunk &other) const
Field Get


SFBool * getSFIgnore (void)
 Get the StateChunk::_sfIgnore field.
bool & getIgnore (void)
 Get the value of the StateChunk::_sfIgnore field.
const bool & getIgnore (void) const
 Get the value of the StateChunk::_sfIgnore field.
Field Set


void setIgnore (const bool &value)
 Set the value of the StateChunk::_sfIgnore field.
Parents


MFFieldContainerPtr & getParents (void)
const MFFieldContainerPtr & getParents (void) const
MFFieldContainerPtr * getMFParents (void)
void addParent (FieldContainerPtr parent)
void subParent (FieldContainerPtr parent)
Int32 findParent (FieldContainerPtr parent)
Parents


SFBool & getInternal (void)
const SFBool & getInternal (void) const
SFBool * getSFInternal (void)
void setInternal (bool bVal)
Get Instance Type Information


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


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

Static Public Member Functions

Class Get


static FieldContainerType & getClassType (void)
 access the type of the class
static UInt32 getClassTypeId (void)
 access the numerical type of the class
Static Chunk Class Access


static UInt32 getStaticClassId (void)
static const StateChunkClass * getStaticClass (void)
Get Class Type Information


static UInt16 getClassGroupId (void)

Static Public Attributes

static const osg::BitVector VertexProgramFieldMask
static const osg::BitVector FragmentProgramFieldMask
static const osg::BitVector GeometryProgramFieldMask
static const osg::BitVector MTInfluenceMask
static const osg::BitVector ParametersFieldMask
static const osg::BitVector IgnoreFieldMask
static const BitVector InternalFieldMask = (1 << Attachment::InternalFieldId)
static const BitVector ParentsFieldMask = (1 << Attachment::ParentsFieldId)
static const BitVector NextFieldMask
CoredNodePtr helper


static const bool isNodeCore = false

Protected Member Functions

void onCreate (const ShaderParameterChunk *source=NULL)
void onDestroy (void)
Constructors


 ShaderChunk (void)
 ShaderChunk (const ShaderChunk &source)
Destructors


virtual ~ShaderChunk (void)
Sync


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


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


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


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


void executeSyncImpl (FieldContainer *pOther, const BitVector &whichField)
MT Construction


void onCreate (const FieldContainer *source=NULL)
void onCreateAspect (const FieldContainer *aspect0, const FieldContainer *source=NULL)
MT Edit


template<class FieldTypeT>
void beginEditX (const BitVector &whichField, FieldTypeT &field)
template<class FieldTypeT>
void endEditX (const BitVector &whichField, FieldTypeT &field)

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


SFString _sfVertexProgram
SFString _sfFragmentProgram
SFString _sfGeometryProgram
Parameter Access


ShaderParameterAccess * _parameter_access
Fields


MFShaderParameterPtr _mfParameters
Fields


SFBool _sfIgnore
Fields


SFBool _sfInternal
MFFieldContainerPtr _parents
Member


UInt32 _shares

Private Types

typedef ShaderChunkBase Inherited

Private Member Functions

void operator= (const ShaderChunk &source)

Static Private Member Functions

static void initMethod (void)

Friends

class FieldContainer
class ShaderChunkBase


Detailed Description

Definition at line 56 of file OSGShaderChunk.h.


Member Typedef Documentation

Reimplemented from osg::ShaderChunkBase.

Reimplemented in osg::SHLChunk, and osg::SHLChunkBase.

Definition at line 60 of file OSGShaderChunk.h.

Reimplemented from osg::ShaderParameterChunkBase.

Reimplemented in osg::SHLChunkBase.

Definition at line 92 of file OSGShaderChunkBase.h.


Member Enumeration Documentation

anonymous enum [inherited]

Enumerator:
VertexProgramFieldId 
FragmentProgramFieldId 
GeometryProgramFieldId 
NextFieldId 

Definition at line 94 of file OSGShaderChunkBase.h.

00095     {
00096         VertexProgramFieldId   = Inherited::NextFieldId,
00097         FragmentProgramFieldId = VertexProgramFieldId   + 1,
00098         GeometryProgramFieldId = FragmentProgramFieldId + 1,
00099         NextFieldId            = GeometryProgramFieldId + 1
00100     };

anonymous enum [inherited]

Enumerator:
ParametersFieldId 
NextFieldId 

Definition at line 92 of file OSGShaderParameterChunkBase.h.

anonymous enum [inherited]

Enumerator:
IgnoreFieldId 
NextFieldId 

Definition at line 92 of file OSGStateChunkBase.h.

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

anonymous enum [inherited]

Enumerator:
ParentsFieldId 
InternalFieldId 
NextFieldId 

Definition at line 86 of file OSGAttachmentImpl.h.

00087     { 
00088         ParentsFieldId     = Inherited::NextFieldId, 
00089         InternalFieldId    = ParentsFieldId  + 1,
00090         NextFieldId        = InternalFieldId + 1
00091     };

anonymous enum [inherited]

Enumerator:
NextFieldId 

Definition at line 73 of file OSGFieldContainerImpl.h.

00073 { NextFieldId = 1 };


Constructor & Destructor Documentation

ShaderChunk::ShaderChunk ( void   )  [protected]

Definition at line 83 of file OSGShaderChunk.cpp.

00083                              :
00084     Inherited()
00085 {
00086 }

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

Definition at line 88 of file OSGShaderChunk.cpp.

00088                                                   :
00089     Inherited(source)
00090 {
00091 }

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

Definition at line 93 of file OSGShaderChunk.cpp.

00094 {
00095 }


Member Function Documentation

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

Reimplemented from osg::ShaderParameterChunk.

Reimplemented in osg::SHLChunk.

Definition at line 99 of file OSGShaderChunk.cpp.

References osg::ShaderParameterChunk::changed().

Referenced by osg::SHLChunk::changed().

00100 {
00101     Inherited::changed(whichField, origin);
00102 }

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

Reimplemented from osg::ShaderParameterChunk.

Reimplemented in osg::SHLChunk.

Definition at line 104 of file OSGShaderChunk.cpp.

References SLOG.

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

bool ShaderChunk::readVertexProgram ( const char *  file  ) 

Read the program string from the given file

Definition at line 114 of file OSGShaderChunk.cpp.

References FWARNING.

00115 {
00116     std::ifstream s(file);
00117     
00118     if(s.good())
00119     {
00120         return readVertexProgram(s);
00121     }
00122     else
00123     {
00124         FWARNING(("ShaderChunk::readVertexProgram: couldn't open '%s' for reading!\n",
00125                   file));
00126         return false;
00127     }
00128 }

bool ShaderChunk::readVertexProgram ( std::istream &  stream  ) 

Read the program string from the given stream

Definition at line 132 of file OSGShaderChunk.cpp.

References BUFSIZE, FWARNING, and osg::ShaderChunkBase::getVertexProgram().

00133 {
00134 #define BUFSIZE 200
00135     
00136     getVertexProgram().erase();    
00137     char buf[BUFSIZE];
00138 
00139     if(!stream.good())
00140     {
00141         FWARNING(("SHLChunk::readVertexProgram: stream is not good!\n"));
00142         return false;
00143     }
00144     
00145     do
00146     {
00147         stream.read(buf, BUFSIZE);
00148         getVertexProgram().append(buf, stream.gcount());
00149     }
00150     while(!stream.eof());
00151     
00152     return true;
00153 }

bool ShaderChunk::readFragmentProgram ( const char *  file  ) 

Read the program string from the given file

Definition at line 157 of file OSGShaderChunk.cpp.

References FWARNING.

00158 {
00159     std::ifstream s(file);
00160     
00161     if(s.good())
00162     {
00163         return readFragmentProgram(s);
00164     }
00165     else
00166     {
00167         FWARNING(("ShaderChunk::readFragmentProgram: couldn't open '%s' for reading!\n",
00168                   file));
00169         return false;
00170     }
00171 }

bool ShaderChunk::readFragmentProgram ( std::istream &  stream  ) 

Read the program string from the given stream

Definition at line 175 of file OSGShaderChunk.cpp.

References BUFSIZE, FWARNING, and osg::ShaderChunkBase::getFragmentProgram().

00176 {
00177 #define BUFSIZE 200
00178     
00179     getFragmentProgram().erase();    
00180     char buf[BUFSIZE];
00181 
00182     if(!stream.good())
00183     {
00184         FWARNING(("SHLChunk::readFragmentProgram: stream is not good!\n"));
00185         return false;
00186     }
00187     
00188     do
00189     {
00190         stream.read(buf, BUFSIZE);
00191         getFragmentProgram().append(buf, stream.gcount());
00192     }
00193     while(!stream.eof());
00194     
00195     return true;
00196 }

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

Reimplemented from osg::ShaderParameterChunk.

Reimplemented in osg::SHLChunk.

Definition at line 68 of file OSGShaderChunk.cpp.

00069 {
00070 }

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

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

Reimplemented from osg::ShaderParameterChunkBase.

Reimplemented in osg::SHLChunkBase.

Definition at line 58 of file OSGShaderChunkBase.inl.

References osg::ShaderChunkBase::_type.

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::ShaderParameterChunkBase.

Reimplemented in osg::SHLChunkBase.

Definition at line 65 of file OSGShaderChunkBase.inl.

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

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

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

Reimplemented from osg::ShaderParameterChunkBase.

Reimplemented in osg::SHLChunkBase.

Definition at line 128 of file OSGShaderChunkBase.cpp.

References osg::ShaderChunkBase::_type.

00129 {
00130     return _type; 
00131 } 

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

Reimplemented from osg::ShaderParameterChunkBase.

Reimplemented in osg::SHLChunkBase.

Definition at line 133 of file OSGShaderChunkBase.cpp.

References osg::ShaderChunkBase::_type.

00134 {
00135     return _type;
00136 } 

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

Reimplemented from osg::ShaderParameterChunkBase.

Reimplemented in osg::SHLChunkBase.

Definition at line 139 of file OSGShaderChunkBase.cpp.

00140 { 
00141     return sizeof(ShaderChunk); 
00142 }

SFString * osg::ShaderChunkBase::getSFVertexProgram ( void   )  [inline, inherited]

Definition at line 75 of file OSGShaderChunkBase.inl.

References osg::ShaderChunkBase::_sfVertexProgram.

00076 {
00077     return &_sfVertexProgram;
00078 }

SFString * osg::ShaderChunkBase::getSFFragmentProgram ( void   )  [inline, inherited]

Definition at line 82 of file OSGShaderChunkBase.inl.

References osg::ShaderChunkBase::_sfFragmentProgram.

00083 {
00084     return &_sfFragmentProgram;
00085 }

SFString * osg::ShaderChunkBase::getSFGeometryProgram ( void   )  [inline, inherited]

Definition at line 89 of file OSGShaderChunkBase.inl.

References osg::ShaderChunkBase::_sfGeometryProgram.

00090 {
00091     return &_sfGeometryProgram;
00092 }

std::string & osg::ShaderChunkBase::getVertexProgram ( void   )  [inline, inherited]

const std::string & osg::ShaderChunkBase::getVertexProgram ( void   )  const [inline, inherited]

Definition at line 104 of file OSGShaderChunkBase.inl.

References osg::ShaderChunkBase::_sfVertexProgram, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00105 {
00106     return _sfVertexProgram.getValue();
00107 }

std::string & osg::ShaderChunkBase::getFragmentProgram ( void   )  [inline, inherited]

const std::string & osg::ShaderChunkBase::getFragmentProgram ( void   )  const [inline, inherited]

Definition at line 125 of file OSGShaderChunkBase.inl.

References osg::ShaderChunkBase::_sfFragmentProgram, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00126 {
00127     return _sfFragmentProgram.getValue();
00128 }

std::string & osg::ShaderChunkBase::getGeometryProgram ( void   )  [inline, inherited]

const std::string & osg::ShaderChunkBase::getGeometryProgram ( void   )  const [inline, inherited]

Definition at line 146 of file OSGShaderChunkBase.inl.

References osg::ShaderChunkBase::_sfGeometryProgram, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00147 {
00148     return _sfGeometryProgram.getValue();
00149 }

void osg::ShaderChunkBase::setVertexProgram ( const std::string &  value  )  [inline, inherited]

void osg::ShaderChunkBase::setFragmentProgram ( const std::string &  value  )  [inline, inherited]

void osg::ShaderChunkBase::setGeometryProgram ( const std::string &  value  )  [inline, inherited]

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

Reimplemented from osg::ShaderParameterChunkBase.

Reimplemented in osg::SHLChunkBase.

Definition at line 205 of file OSGShaderChunkBase.cpp.

References osg::ShaderChunkBase::_sfFragmentProgram, osg::ShaderChunkBase::_sfGeometryProgram, osg::ShaderChunkBase::_sfVertexProgram, osg::ShaderChunkBase::FragmentProgramFieldMask, osg::ShaderChunkBase::GeometryProgramFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::ShaderParameterChunkBase::getBinSize(), osg::FieldBits::NoField, and osg::ShaderChunkBase::VertexProgramFieldMask.

Referenced by osg::SHLChunkBase::getBinSize().

00206 {
00207     UInt32 returnValue = Inherited::getBinSize(whichField);
00208 
00209     if(FieldBits::NoField != (VertexProgramFieldMask & whichField))
00210     {
00211         returnValue += _sfVertexProgram.getBinSize();
00212     }
00213 
00214     if(FieldBits::NoField != (FragmentProgramFieldMask & whichField))
00215     {
00216         returnValue += _sfFragmentProgram.getBinSize();
00217     }
00218 
00219     if(FieldBits::NoField != (GeometryProgramFieldMask & whichField))
00220     {
00221         returnValue += _sfGeometryProgram.getBinSize();
00222     }
00223 
00224 
00225     return returnValue;
00226 }

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

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

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

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

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

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

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

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

Reimplemented from osg::ShaderParameterChunkBase.

Reimplemented in osg::SHLChunkBase.

Definition at line 146 of file OSGShaderChunkBase.cpp.

References osg::ShaderChunkBase::executeSyncImpl().

00148 {
00149     this->executeSyncImpl((ShaderChunkBase *) &other, whichField);
00150 }

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
bool  value 
) [inherited]

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
Int32  value 
) [inherited]

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
Real32  value 
) [inherited]

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
const Vec2f &  value 
) [inherited]

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
const Vec3f &  value 
) [inherited]

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
const Vec4f &  value 
) [inherited]

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
const Matrix &  value 
) [inherited]

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
const MFInt32 &  value 
) [inherited]

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
const MFReal32 &  value 
) [inherited]

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
const MFVec2f &  value 
) [inherited]

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
const MFVec3f &  value 
) [inherited]

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
const MFVec4f &  value 
) [inherited]

bool ShaderParameterChunk::setUniformParameter ( const char *  name,
const MFMatrix &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
bool &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
Int32 &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
Real32 &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
Vec2f &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
Vec3f &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
Vec4f &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
Matrix &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
MFInt32 &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
MFReal32 &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
MFVec2f &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
MFVec3f &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
MFVec4f &  value 
) [inherited]

bool ShaderParameterChunk::getUniformParameter ( const char *  name,
MFMatrix &  value 
) [inherited]

bool ShaderParameterChunk::subUniformParameter ( const char *  name  )  [inherited]

void ShaderParameterChunk::onCreate ( const ShaderParameterChunk *  source = NULL  )  [protected, inherited]

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 ShaderParameterChunk::onDestroy ( void   )  [protected, virtual, inherited]

Reimplemented from osg::Attachment.

Reimplemented in osg::SHLChunk.

Definition at line 127 of file OSGShaderParameterChunk.cpp.

References osg::ShaderParameterChunk::_parameter_access, and osg::Attachment::onDestroy().

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

00128 {
00129     Inherited::onDestroy();
00130 
00131     if(_parameter_access != NULL)
00132         delete _parameter_access;
00133 }

MFShaderParameterPtr * osg::ShaderParameterChunkBase::getMFParameters ( void   )  [inline, inherited]

Definition at line 75 of file OSGShaderParameterChunkBase.inl.

References osg::ShaderParameterChunkBase::_mfParameters.

00076 {
00077     return &_mfParameters;
00078 }

ShaderParameterPtr & osg::ShaderParameterChunkBase::getParameters ( const UInt32  index  )  [inline, inherited]

Definition at line 84 of file OSGShaderParameterChunkBase.inl.

References osg::ShaderParameterChunkBase::_mfParameters.

Referenced by osg::SHLParameterChunk::operator==(), and osg::SHLChunk::operator==().

00085 {
00086     return _mfParameters[index];
00087 }

MFShaderParameterPtr & osg::ShaderParameterChunkBase::getParameters ( void   )  [inline, inherited]

const MFShaderParameterPtr & osg::ShaderParameterChunkBase::getParameters ( void   )  const [inline, inherited]

Definition at line 98 of file OSGShaderParameterChunkBase.inl.

References osg::ShaderParameterChunkBase::_mfParameters.

00099 {
00100     return _mfParameters;
00101 }

UInt32 osg::StateChunk::getClassId ( void   )  const [inline, inherited]

Definition at line 48 of file OSGStateChunk.inl.

References osg::StateChunk::getClass(), and osg::StateChunkClass::getId().

00049 {
00050     return getClass()->getId();
00051 }

const StateChunkClass * StateChunk::getClass ( void   )  const [virtual, inherited]

UInt32 osg::StateChunk::getStaticClassId ( void   )  [inline, static, inherited]

const StateChunkClass * osg::StateChunk::getStaticClass ( void   )  [inline, static, inherited]

void StateChunk::update ( DrawActionBase *  action  )  [virtual, inherited]

Reimplemented in osg::SHLChunk.

Definition at line 311 of file OSGStateChunk.cpp.

00312 {
00313 }

void StateChunk::activate ( DrawActionBase *  action,
UInt32  index = 0 
) [virtual, inherited]

void StateChunk::changeFrom ( DrawActionBase *  action,
StateChunk *  old,
UInt32  index = 0 
) [virtual, inherited]

void StateChunk::deactivate ( DrawActionBase *  action,
UInt32  index = 0 
) [virtual, inherited]

bool StateChunk::isTransparent ( void   )  const [virtual, inherited]

Check if the chunk is transparent, i.e. needs to be rendered after the opaque objects.

Reimplemented in osg::BlendChunk, osg::MaterialChunk, osg::PointChunk, osg::ProgramChunk, osg::RegisterCombinersChunk, and osg::TextureChunk.

Definition at line 352 of file OSGStateChunk.cpp.

00353 {
00354     return false;
00355 }

Real32 StateChunk::switchCost ( StateChunk *  chunk  )  [virtual, inherited]

bool StateChunk::operator< ( const StateChunk &  other  )  const [virtual, inherited]

bool StateChunk::operator== ( const StateChunk &  other  )  const [virtual, inherited]

bool StateChunk::operator!= ( const StateChunk &  other  )  const [virtual, inherited]

SFBool * osg::StateChunkBase::getSFIgnore ( void   )  [inline, inherited]

Definition at line 75 of file OSGStateChunkBase.inl.

References osg::StateChunkBase::_sfIgnore.

00076 {
00077     return &_sfIgnore;
00078 }

bool & osg::StateChunkBase::getIgnore ( void   )  [inline, inherited]

Definition at line 83 of file OSGStateChunkBase.inl.

References osg::StateChunkBase::_sfIgnore, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00084 {
00085     return _sfIgnore.getValue();
00086 }

const bool & osg::StateChunkBase::getIgnore ( void   )  const [inline, inherited]

Definition at line 90 of file OSGStateChunkBase.inl.

References osg::StateChunkBase::_sfIgnore, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

void osg::StateChunkBase::setIgnore ( const bool &  value  )  [inline, inherited]

Definition at line 97 of file OSGStateChunkBase.inl.

References osg::StateChunkBase::_sfIgnore, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00098 {
00099     _sfIgnore.setValue(value);
00100 }

static AttachmentPtr osg::Attachment::create ( void   )  [static, inherited]

static AttachmentPtr osg::Attachment::createEmpty ( void   )  [static, inherited]

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

MFFieldContainerPtr & Attachment::getParents ( void   )  [inherited]

Definition at line 95 of file OSGAttachment.cpp.

00096 {
00097     return _parents;
00098 }

const MFFieldContainerPtr & Attachment::getParents ( void   )  const [inherited]

Definition at line 100 of file OSGAttachment.cpp.

References osg::Attachment::_parents.

00101 {
00102     return _parents;
00103 }

MFFieldContainerPtr * Attachment::getMFParents ( void   )  [inherited]

Definition at line 105 of file OSGAttachment.cpp.

References osg::Attachment::_parents.

Referenced by osg::DVRLookupTable::changed().

00106 {
00107     return &_parents;
00108 }

void Attachment::addParent ( FieldContainerPtr  parent  )  [inherited]

Definition at line 110 of file OSGAttachment.cpp.

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

00111 {
00112     _parents.push_back(parent);
00113 }

void Attachment::subParent ( FieldContainerPtr  parent  )  [inherited]

Int32 Attachment::findParent ( FieldContainerPtr  parent  )  [inherited]

Definition at line 125 of file OSGAttachment.cpp.

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

00126 {
00127     MFFieldContainerPtr::iterator parentIt = _parents.find(parent);
00128 
00129     if(parentIt != _parents.end())
00130     {
00131         return parentIt - _parents.begin();
00132     }
00133     else
00134     {
00135         return -1;
00136     }
00137 }

SFBool & Attachment::getInternal ( void   )  [inherited]

Definition at line 142 of file OSGAttachment.cpp.

References osg::Attachment::_sfInternal.

00143 {
00144     return _sfInternal;
00145 }

const SFBool & Attachment::getInternal ( void   )  const [inherited]

Definition at line 147 of file OSGAttachment.cpp.

References osg::Attachment::_sfInternal.

00148 {
00149     return _sfInternal;
00150 }

SFBool * Attachment::getSFInternal ( void   )  [inherited]

Definition at line 152 of file OSGAttachment.cpp.

References osg::Attachment::_sfInternal.

00153 {
00154     return &_sfInternal;
00155 }

void Attachment::setInternal ( bool  bVal  )  [inherited]

Definition at line 157 of file OSGAttachment.cpp.

References osg::Attachment::_sfInternal, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00158 {
00159     _sfInternal.setValue(bVal);
00160 }

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

Reimplemented in osg::SHLChunk, and osg::SHLChunkBase.

Definition at line 115 of file OSGShaderChunk.h.

friend class ShaderChunkBase [friend]

Definition at line 116 of file OSGShaderChunk.h.


Member Data Documentation

Initial value:

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

Reimplemented from osg::ShaderParameterChunkBase.

Reimplemented in osg::SHLChunkBase.

Definition at line 107 of file OSGShaderChunkBase.h.

std::string osg::ShaderChunkBase::_sfVertexProgram [protected, inherited]

std::string osg::ShaderChunkBase::_sfFragmentProgram [protected, inherited]

std::string osg::ShaderChunkBase::_sfGeometryProgram [protected, inherited]

bool osg::StateChunkBase::_sfIgnore [protected, inherited]

const BitVector Attachment::InternalFieldMask = (1 << Attachment::InternalFieldId) [static, inherited]

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

SFBool osg::Attachment::_sfInternal [protected, inherited]

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

Initial value:

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

Definition at line 75 of file OSGFieldContainerImpl.h.

const bool osg::FieldContainer::isNodeCore = false [static, inherited]

Reimplemented in osg::NodeCore.

Definition at line 181 of file OSGFieldContainerImpl.h.

UInt32 osg::FieldContainer::_shares [protected, inherited]

Definition at line 199 of file OSGFieldContainerImpl.h.


The documentation for this class was generated from the following files:

Generated on Mon Mar 17 11:25:46 2008 for OpenSG by  doxygen 1.5.5