osg::PointChunk Class Reference
[OpenGL State Handling]

PointChunk class. See PointChunk for a description. More...

#include <OSGPointChunk.h>

Inheritance diagram for osg::PointChunk:

osg::PointChunkBase osg::StateChunk osg::StateChunkBase osg::Attachment osg::FieldContainer

List of all members.

Public Types

enum  {
  SizeFieldId = Inherited::NextFieldId, SmoothFieldId = SizeFieldId + 1, MinSizeFieldId = SmoothFieldId + 1, MaxSizeFieldId = MinSizeFieldId + 1,
  ConstantAttenuationFieldId = MaxSizeFieldId + 1, LinearAttenuationFieldId = ConstantAttenuationFieldId + 1, QuadraticAttenuationFieldId = LinearAttenuationFieldId + 1, FadeThresholdFieldId = QuadraticAttenuationFieldId + 1,
  SpriteFieldId = FadeThresholdFieldId + 1, RModeFieldId = SpriteFieldId + 1, NextFieldId = RModeFieldId + 1
}
typedef PointChunkPtr Ptr
enum  { IgnoreFieldId = Inherited::NextFieldId, NextFieldId = IgnoreFieldId + 1 }
enum  { ParentsFieldId = Inherited::NextFieldId, InternalFieldId = ParentsFieldId + 1, NextFieldId = InternalFieldId + 1 }
enum  { NextFieldId = 1 }

Public Member Functions

Chunk Class Access


virtual const StateChunkClassgetClass (void) const
Sync


virtual void changed (BitVector whichField, UInt32 origin)
Output


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


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
FieldContainer Get


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


SFReal32getSFSize (void)
 Get the PointChunk::_sfSize field.
SFBoolgetSFSmooth (void)
 Get the PointChunk::_sfSmooth field.
SFReal32getSFMinSize (void)
 Get the PointChunk::_sfMinSize field.
SFReal32getSFMaxSize (void)
 Get the PointChunk::_sfMaxSize field.
SFReal32getSFConstantAttenuation (void)
 Get the PointChunk::_sfConstantAttenuation field.
SFReal32getSFLinearAttenuation (void)
 Get the PointChunk::_sfLinearAttenuation field.
SFReal32getSFQuadraticAttenuation (void)
 Get the PointChunk::_sfQuadraticAttenuation field.
SFReal32getSFFadeThreshold (void)
 Get the PointChunk::_sfFadeThreshold field.
SFBoolgetSFSprite (void)
 Get the PointChunk::_sfSprite field.
SFGLenumgetSFRMode (void)
 Get the PointChunk::_sfRMode field.
Real32getSize (void)
 Get the value of the PointChunk::_sfSize field.
const Real32getSize (void) const
 Get the value of the PointChunk::_sfSize field.
bool & getSmooth (void)
 Get the value of the PointChunk::_sfSmooth field.
const bool & getSmooth (void) const
 Get the value of the PointChunk::_sfSmooth field.
Real32getMinSize (void)
 Get the value of the PointChunk::_sfMinSize field.
const Real32getMinSize (void) const
 Get the value of the PointChunk::_sfMinSize field.
Real32getMaxSize (void)
 Get the value of the PointChunk::_sfMaxSize field.
const Real32getMaxSize (void) const
 Get the value of the PointChunk::_sfMaxSize field.
Real32getConstantAttenuation (void)
 Get the value of the PointChunk::_sfConstantAttenuation field.
const Real32getConstantAttenuation (void) const
 Get the value of the PointChunk::_sfConstantAttenuation field.
Real32getLinearAttenuation (void)
 Get the value of the PointChunk::_sfLinearAttenuation field.
const Real32getLinearAttenuation (void) const
 Get the value of the PointChunk::_sfLinearAttenuation field.
Real32getQuadraticAttenuation (void)
 Get the value of the PointChunk::_sfQuadraticAttenuation field.
const Real32getQuadraticAttenuation (void) const
 Get the value of the PointChunk::_sfQuadraticAttenuation field.
Real32getFadeThreshold (void)
 Get the value of the PointChunk::_sfFadeThreshold field.
const Real32getFadeThreshold (void) const
 Get the value of the PointChunk::_sfFadeThreshold field.
bool & getSprite (void)
 Get the value of the PointChunk::_sfSprite field.
const bool & getSprite (void) const
 Get the value of the PointChunk::_sfSprite field.
GLenum & getRMode (void)
 Get the value of the PointChunk::_sfRMode field.
const GLenum & getRMode (void) const
 Get the value of the PointChunk::_sfRMode field.
Field Set


void setSize (const Real32 &value)
 Set the value of the PointChunk::_sfSize field.
void setSmooth (const bool &value)
 Set the value of the PointChunk::_sfSmooth field.
void setMinSize (const Real32 &value)
 Set the value of the PointChunk::_sfMinSize field.
void setMaxSize (const Real32 &value)
 Set the value of the PointChunk::_sfMaxSize field.
void setConstantAttenuation (const Real32 &value)
 Set the value of the PointChunk::_sfConstantAttenuation field.
void setLinearAttenuation (const Real32 &value)
 Set the value of the PointChunk::_sfLinearAttenuation field.
void setQuadraticAttenuation (const Real32 &value)
 Set the value of the PointChunk::_sfQuadraticAttenuation field.
void setFadeThreshold (const Real32 &value)
 Set the value of the PointChunk::_sfFadeThreshold field.
void setSprite (const bool &value)
 Set the value of the PointChunk::_sfSprite field.
void setRMode (const GLenum &value)
 Set the value of the PointChunk::_sfRMode 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
Chunk Class Access


UInt32 getClassId (void) const
State


virtual void update (DrawActionBase *action)
Field Get


SFBoolgetSFIgnore (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


MFFieldContainerPtrgetParents (void)
const MFFieldContainerPtrgetParents (void) const
MFFieldContainerPtrgetMFParents (void)
void addParent (FieldContainerPtr parent)
void subParent (FieldContainerPtr parent)
Int32 findParent (FieldContainerPtr parent)
Parents


SFBoolgetInternal (void)
const SFBoolgetInternal (void) const
SFBoolgetSFInternal (void)
void setInternal (bool bVal)
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

Static Chunk Class Access


static UInt32 getStaticClassId (void)
static const StateChunkClassgetStaticClass (void)
Class Get


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


static PointChunkPtr create (void)
 create a new instance of the class
static PointChunkPtr 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 SizeFieldMask
static const osg::BitVector SmoothFieldMask
static const osg::BitVector MinSizeFieldMask
static const osg::BitVector MaxSizeFieldMask
static const osg::BitVector ConstantAttenuationFieldMask
static const osg::BitVector LinearAttenuationFieldMask
static const osg::BitVector QuadraticAttenuationFieldMask
static const osg::BitVector FadeThresholdFieldMask
static const osg::BitVector SpriteFieldMask
static const osg::BitVector RModeFieldMask
static const osg::BitVector MTInfluenceMask
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

Constructors


 PointChunk (void)
 PointChunk (const PointChunk &source)
Destructors


virtual ~PointChunk (void)
Sync


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


virtual void onDestroy (void)
MT Edit


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


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

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


SFReal32 _sfSize
SFBool _sfSmooth
SFReal32 _sfMinSize
SFReal32 _sfMaxSize
SFReal32 _sfConstantAttenuation
SFReal32 _sfLinearAttenuation
SFReal32 _sfQuadraticAttenuation
SFReal32 _sfFadeThreshold
SFBool _sfSprite
SFGLenum _sfRMode
Fields


SFBool _sfIgnore
Fields


SFBool _sfInternal
MFFieldContainerPtr _parents
Member


UInt32 _shares

Private Types

typedef PointChunkBase Inherited

Private Member Functions

void operator= (const PointChunk &source)

Static Private Member Functions

static void initMethod (void)

Static Private Attributes

static StateChunkClass _class
OpenGL Extension Handling


static UInt32 _arbPointParameters
static UInt32 _nvPointSprite
static UInt32 _funcPointParameterf
static UInt32 _funcPointParameterfv

Friends

class FieldContainer
class PointChunkBase


Detailed Description

See PointChunk for a description.

This chunk wraps glPointSize() (osg::PointChunk::_sfSize) and glEnable(GL_POINT_SMOOTH) (osg::PointChunk::_sfSmooth). It encompasses the ARB_point_parameters extension (osg::PointChunk::_sfMinSize, osg::PointChunk::_sfMaxSize, osg::PointChunk::_sfFadeThreshold, osg::PointChunk::_sfConstantAttenuation, osg::PointChunk::_sfLinearAttenuation, osg::PointChunk::_sfQuadraticAttenuation) and NV_point_sprite (osg::PointChunk::_sfSprite, osg::PointChunk::_sfRMode).

Definition at line 54 of file OSGPointChunk.h.


Member Typedef Documentation

Reimplemented from osg::PointChunkBase.

Definition at line 58 of file OSGPointChunk.h.

Reimplemented from osg::StateChunkBase.

Definition at line 99 of file OSGPointChunkBase.h.


Member Enumeration Documentation

anonymous enum [inherited]

Enumerator:
SizeFieldId 
SmoothFieldId 
MinSizeFieldId 
MaxSizeFieldId 
ConstantAttenuationFieldId 
LinearAttenuationFieldId 
QuadraticAttenuationFieldId 
FadeThresholdFieldId 
SpriteFieldId 
RModeFieldId 
NextFieldId 

Definition at line 101 of file OSGPointChunkBase.h.

00102     {
00103         SizeFieldId                 = Inherited::NextFieldId,
00104         SmoothFieldId               = SizeFieldId                 + 1,
00105         MinSizeFieldId              = SmoothFieldId               + 1,
00106         MaxSizeFieldId              = MinSizeFieldId              + 1,
00107         ConstantAttenuationFieldId  = MaxSizeFieldId              + 1,
00108         LinearAttenuationFieldId    = ConstantAttenuationFieldId  + 1,
00109         QuadraticAttenuationFieldId = LinearAttenuationFieldId    + 1,
00110         FadeThresholdFieldId        = QuadraticAttenuationFieldId + 1,
00111         SpriteFieldId               = FadeThresholdFieldId        + 1,
00112         RModeFieldId                = SpriteFieldId               + 1,
00113         NextFieldId                 = RModeFieldId                + 1
00114     };

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

PointChunk::PointChunk ( void   )  [protected]

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

Definition at line 126 of file OSGPointChunk.cpp.

00126                                                :
00127     Inherited(source)
00128 {
00129 }

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

Definition at line 131 of file OSGPointChunk.cpp.

00132 {
00133 }


Member Function Documentation

const StateChunkClass * PointChunk::getClass ( void   )  const [virtual]

Reimplemented from osg::StateChunk.

Definition at line 137 of file OSGPointChunk.cpp.

References _class.

00138 {
00139     return &_class;
00140 }

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

Reimplemented from osg::StateChunk.

Definition at line 46 of file OSGPointChunk.inl.

References osg::StateChunkClass::getId(), and getStaticClass().

00047 {
00048     return getStaticClass()->getId();
00049 }

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

Reimplemented from osg::StateChunk.

Definition at line 52 of file OSGPointChunk.inl.

References _class.

Referenced by getStaticClassId().

00053 {
00054     return &PointChunk::_class;
00055 }

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

Reimplemented from osg::StateChunk.

Definition at line 144 of file OSGPointChunk.cpp.

References osg::StateChunk::changed().

00145 {
00146     Inherited::changed(whichField, origin);
00147 }

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

Reimplemented from osg::StateChunk.

Definition at line 149 of file OSGPointChunk.cpp.

References SLOG.

00151 {
00152     SLOG << "Dump PointChunk NI" << std::endl;
00153 }

void PointChunk::activate ( DrawActionBase action,
UInt32  index = 0 
) [virtual]

Reimplemented from osg::StateChunk.

Definition at line 157 of file OSGPointChunk.cpp.

References _arbPointParameters, _funcPointParameterf, _funcPointParameterfv, _nvPointSprite, osg::PointChunkBase::getConstantAttenuation(), osg::PointChunkBase::getFadeThreshold(), osg::Window::getFunction(), osg::PointChunkBase::getLinearAttenuation(), osg::PointChunkBase::getMaxSize(), osg::PointChunkBase::getMinSize(), osg::PointChunkBase::getQuadraticAttenuation(), osg::PointChunkBase::getRMode(), osg::PointChunkBase::getSize(), osg::PointChunkBase::getSmooth(), osg::PointChunkBase::getSprite(), osg::DrawActionBase::getWindow(), GL_POINT_DISTANCE_ATTENUATION_ARB, GL_POINT_FADE_THRESHOLD_SIZE_ARB, GL_POINT_SIZE_MAX_ARB, GL_POINT_SIZE_MIN_ARB, GL_POINT_SPRITE_NV, GL_POINT_SPRITE_R_MODE_NV, GLenum, osg::Window::hasExtension(), and OSG_APIENTRY.

00158 {
00159     if(getSize() != 1.f)
00160         glPointSize(getSize());
00161     
00162     if(getSmooth())
00163         glEnable(GL_POINT_SMOOTH);
00164 
00165 #if GL_ARB_point_parameters
00166     if(getMinSize() >= 0.f)
00167     {
00168         if(action->getWindow()->hasExtension(_arbPointParameters))
00169         {
00170             // get "glPointParameterfARB" function pointer
00171             void (OSG_APIENTRY*pointparameterf)(GLenum pname, GLfloat param) =
00172                   (void (OSG_APIENTRY*)(GLenum pname, GLfloat param))
00173                   action->getWindow()->getFunction( _funcPointParameterf );
00174             // get "glPointParameterfvARB" function pointer
00175             void (OSG_APIENTRY*pointparameterfv)(GLenum pname, 
00176                   const GLfloat *param) =
00177                   (void (OSG_APIENTRY*)(GLenum pname, const GLfloat *param))
00178                   action->getWindow()->getFunction( _funcPointParameterfv );
00179 
00180             pointparameterf(GL_POINT_SIZE_MIN_ARB, getMinSize());
00181             pointparameterf(GL_POINT_SIZE_MAX_ARB, getMaxSize());
00182             pointparameterf(GL_POINT_FADE_THRESHOLD_SIZE_ARB, 
00183                             getFadeThreshold());
00184             
00185             GLfloat att[3] = { getConstantAttenuation(),
00186                                getLinearAttenuation(),
00187                                getQuadraticAttenuation() };
00188             
00189             pointparameterfv(GL_POINT_DISTANCE_ATTENUATION_ARB, att);
00190         }
00191         
00192     }
00193 #endif
00194 
00195 #if GL_NV_point_sprite
00196     if(getSprite())
00197     {
00198         if(action->getWindow()->hasExtension(_nvPointSprite))
00199         {
00200             // get "glPointParameterfARB" function pointer
00201             void (OSG_APIENTRY*pointparameterf)(GLenum pname, GLfloat param) =
00202                   (void (OSG_APIENTRY*)(GLenum pname, GLfloat param))
00203                   action->getWindow()->getFunction( _funcPointParameterf );
00204 
00205             pointparameterf(GL_POINT_SPRITE_R_MODE_NV, Real32(getRMode()));
00206             
00207             glEnable(GL_POINT_SPRITE_NV);
00208         }
00209         
00210     }
00211 #endif
00212 
00213 #if ! defined(GL_ARB_point_parameters) && ! defined(GL_NV_point_sprite)
00214     action;
00215 #endif
00216 }

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

Reimplemented from osg::StateChunk.

Definition at line 218 of file OSGPointChunk.cpp.

References _arbPointParameters, _funcPointParameterf, _funcPointParameterfv, _nvPointSprite, osg::PointChunkBase::getConstantAttenuation(), osg::PointChunkBase::getFadeThreshold(), osg::Window::getFunction(), osg::PointChunkBase::getLinearAttenuation(), osg::PointChunkBase::getMaxSize(), osg::PointChunkBase::getMinSize(), osg::PointChunkBase::getQuadraticAttenuation(), osg::PointChunkBase::getRMode(), osg::PointChunkBase::getSize(), osg::PointChunkBase::getSmooth(), osg::PointChunkBase::getSprite(), osg::DrawActionBase::getWindow(), GL_POINT_DISTANCE_ATTENUATION_ARB, GL_POINT_FADE_THRESHOLD_SIZE_ARB, GL_POINT_SIZE_MAX_ARB, GL_POINT_SIZE_MIN_ARB, GL_POINT_SPRITE_NV, GL_POINT_SPRITE_R_MODE_NV, GLenum, osg::Window::hasExtension(), and OSG_APIENTRY.

00221 {
00222     PointChunk *old = dynamic_cast<PointChunk *>(old_chunk);
00223 
00224     if(getSize() != old->getSize())
00225         glPointSize(getSize());
00226     
00227     if(getSmooth() && !old->getSmooth())
00228     {
00229         glEnable(GL_POINT_SMOOTH);
00230     }
00231     else if(!getSmooth() && old->getSmooth())
00232     {
00233         glDisable(GL_POINT_SMOOTH);
00234     }
00235     
00236 #if GL_ARB_point_parameters
00237     if(getMinSize() >= 0.f)
00238     {
00239         if(action->getWindow()->hasExtension(_arbPointParameters))
00240         {
00241             // get "glPointParameterfARB" function pointer
00242             void (OSG_APIENTRY*pointparameterf)(GLenum pname, GLfloat param) =
00243                   (void (OSG_APIENTRY*)(GLenum pname, GLfloat param))
00244                   action->getWindow()->getFunction( _funcPointParameterf );
00245             // get "glPointParameterfvARB" function pointer
00246             void (OSG_APIENTRY*pointparameterfv)(GLenum pname, 
00247                   const GLfloat *param) =
00248                   (void (OSG_APIENTRY*)(GLenum pname, const GLfloat *param))
00249                   action->getWindow()->getFunction( _funcPointParameterfv );
00250 
00251             pointparameterf(GL_POINT_SIZE_MIN_ARB, getMinSize());
00252             pointparameterf(GL_POINT_SIZE_MAX_ARB, getMaxSize());
00253             pointparameterf(GL_POINT_FADE_THRESHOLD_SIZE_ARB, 
00254                             getFadeThreshold());
00255             
00256             GLfloat att[3] = { getConstantAttenuation(),
00257                                getLinearAttenuation(),
00258                                getQuadraticAttenuation() };
00259             
00260             pointparameterfv(GL_POINT_DISTANCE_ATTENUATION_ARB, att);
00261         }
00262         
00263     }
00264     else if(old->getMinSize() >= 0.f)
00265     {
00266         if(action->getWindow()->hasExtension(_arbPointParameters))
00267         {
00268             // get "glPointParameterfARB" function pointer
00269             void (OSG_APIENTRY*pointparameterf)(GLenum pname, GLfloat param) =
00270                   (void (OSG_APIENTRY*)(GLenum pname, GLfloat param))
00271                   action->getWindow()->getFunction( _funcPointParameterf );
00272             // get "glPointParameterfvARB" function pointer
00273             void (OSG_APIENTRY*pointparameterfv)(GLenum pname, 
00274                   const GLfloat *param) =
00275                   (void (OSG_APIENTRY*)(GLenum pname, const GLfloat *param))
00276                   action->getWindow()->getFunction( _funcPointParameterfv );
00277 
00278             pointparameterf(GL_POINT_SIZE_MIN_ARB, 0);
00279             pointparameterf(GL_POINT_SIZE_MAX_ARB, 1e10);
00280             pointparameterf(GL_POINT_FADE_THRESHOLD_SIZE_ARB, 1);
00281             
00282             GLfloat att[3] = { 1, 0, 0 };
00283             
00284             pointparameterfv(GL_POINT_DISTANCE_ATTENUATION_ARB, att);
00285         }
00286     }
00287 #endif
00288 
00289 #if GL_NV_point_sprite
00290     if(getSprite() && !old->getSprite())
00291     {
00292         if(action->getWindow()->hasExtension(_nvPointSprite))
00293         {
00294             // get "glPointParameterfARB" function pointer
00295             void (OSG_APIENTRY*pointparameterf)(GLenum pname, GLfloat param) =
00296                   (void (OSG_APIENTRY*)(GLenum pname, GLfloat param))
00297                   action->getWindow()->getFunction( _funcPointParameterf );
00298 
00299             pointparameterf(GL_POINT_SPRITE_R_MODE_NV, Real32(getRMode()));
00300             
00301             glEnable(GL_POINT_SPRITE_NV);
00302         }
00303         
00304     }
00305     else if(!getSprite() && old->getSprite())
00306     {
00307         if(action->getWindow()->hasExtension(_nvPointSprite))
00308         {
00309            glDisable(GL_POINT_SPRITE_NV);
00310         }
00311         
00312     }
00313 #endif
00314 
00315 #if ! defined(GL_ARB_point_parameters) && ! defined(GL_NV_point_sprite)
00316     action;
00317 #endif
00318 }

void PointChunk::deactivate ( DrawActionBase action,
UInt32  index = 0 
) [virtual]

Reimplemented from osg::StateChunk.

Definition at line 320 of file OSGPointChunk.cpp.

References _arbPointParameters, _funcPointParameterf, _funcPointParameterfv, _nvPointSprite, osg::Window::getFunction(), osg::PointChunkBase::getMinSize(), osg::PointChunkBase::getSize(), osg::PointChunkBase::getSmooth(), osg::PointChunkBase::getSprite(), osg::DrawActionBase::getWindow(), GL_POINT_DISTANCE_ATTENUATION_ARB, GL_POINT_FADE_THRESHOLD_SIZE_ARB, GL_POINT_SIZE_MAX_ARB, GL_POINT_SIZE_MIN_ARB, GL_POINT_SPRITE_NV, GLenum, osg::Window::hasExtension(), and OSG_APIENTRY.

00321 {
00322     if(getSize() != 1.f)
00323         glPointSize(1.f);
00324     
00325     if(getSmooth())
00326         glDisable(GL_POINT_SMOOTH);
00327 
00328 #if GL_ARB_point_parameters
00329     if(getMinSize() >= 0.f)
00330     {
00331         if(action->getWindow()->hasExtension(_arbPointParameters))
00332         {
00333             // get "glPointParameterfARB" function pointer
00334             void (OSG_APIENTRY*pointparameterf)(GLenum pname, GLfloat param) =
00335                   (void (OSG_APIENTRY*)(GLenum pname, GLfloat param))
00336                   action->getWindow()->getFunction( _funcPointParameterf );
00337             // get "glPointParameterfvARB" function pointer
00338             void (OSG_APIENTRY*pointparameterfv)(GLenum pname, 
00339                   const GLfloat *param) =
00340                   (void (OSG_APIENTRY*)(GLenum pname, const GLfloat *param))
00341                   action->getWindow()->getFunction( _funcPointParameterfv );
00342 
00343             pointparameterf(GL_POINT_SIZE_MIN_ARB, 0);
00344             pointparameterf(GL_POINT_SIZE_MAX_ARB, 1e10);
00345             pointparameterf(GL_POINT_FADE_THRESHOLD_SIZE_ARB, 1);
00346             
00347             GLfloat att[3] = { 1, 0, 0 };
00348             
00349             pointparameterfv(GL_POINT_DISTANCE_ATTENUATION_ARB, att);
00350         }
00351         
00352     }
00353 #endif
00354 
00355 #if GL_NV_point_sprite
00356     if(getSprite())
00357     {
00358         if(action->getWindow()->hasExtension(_nvPointSprite))
00359         {
00360             glDisable(GL_POINT_SPRITE_NV);
00361         }
00362         
00363     }
00364 #endif
00365 
00366 #if ! defined(GL_ARB_point_parameters) && ! defined(GL_NV_point_sprite)
00367     action;
00368 #endif
00369 }

bool PointChunk::isTransparent ( void   )  const [virtual]

Reimplemented from osg::StateChunk.

Definition at line 373 of file OSGPointChunk.cpp.

References osg::PointChunkBase::getMinSize().

00374 {
00375     return getMinSize() >= 0.f;
00376 }

Real32 PointChunk::switchCost ( StateChunk chunk  )  [virtual]

Reimplemented from osg::StateChunk.

Definition at line 378 of file OSGPointChunk.cpp.

00379 {
00380     return 0;
00381 }

bool PointChunk::operator< ( const StateChunk other  )  const [virtual]

Reimplemented from osg::StateChunk.

Definition at line 383 of file OSGPointChunk.cpp.

00384 {
00385     return this < &other;
00386 }

bool PointChunk::operator== ( const StateChunk other  )  const [virtual]

Reimplemented from osg::StateChunk.

Definition at line 388 of file OSGPointChunk.cpp.

References osg::PointChunkBase::getConstantAttenuation(), osg::PointChunkBase::getFadeThreshold(), osg::PointChunkBase::getLinearAttenuation(), osg::PointChunkBase::getMaxSize(), osg::PointChunkBase::getMinSize(), osg::PointChunkBase::getQuadraticAttenuation(), osg::PointChunkBase::getRMode(), osg::PointChunkBase::getSize(), osg::PointChunkBase::getSmooth(), and osg::PointChunkBase::getSprite().

00389 {
00390     PointChunk const *tother = dynamic_cast<PointChunk const*>(&other);
00391 
00392     if(!tother)
00393         return false;
00394 
00395     if(tother == this)
00396         return true;
00397 
00398     if(getSize()                    != tother->getSize()                    ||
00399        getSmooth()                  != tother->getSmooth()                  ||
00400        getMinSize()                 != tother->getMinSize()                 ||
00401        getMaxSize()                 != tother->getMaxSize()                 ||
00402        getConstantAttenuation()     != tother->getConstantAttenuation()     ||
00403        getLinearAttenuation()       != tother->getLinearAttenuation()       ||
00404        getQuadraticAttenuation()    != tother->getQuadraticAttenuation()    ||
00405        getFadeThreshold()           != tother->getFadeThreshold()           ||
00406        getSprite()                  != tother->getSprite()                  ||
00407        getRMode()                   != tother->getRMode()
00408       )
00409         return false;
00410 
00411     return true;
00412 }

bool PointChunk::operator!= ( const StateChunk other  )  const [virtual]

Reimplemented from osg::StateChunk.

Definition at line 414 of file OSGPointChunk.cpp.

00415 {
00416     return ! (*this == other);
00417 }

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

Reimplemented from osg::StateChunk.

Definition at line 89 of file OSGPointChunk.cpp.

00090 {
00091 }

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

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

Reimplemented from osg::StateChunkBase.

Definition at line 58 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_type.

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

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::StateChunkBase.

Definition at line 65 of file OSGPointChunkBase.inl.

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

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

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

Reimplemented from osg::StateChunkBase.

Definition at line 208 of file OSGPointChunkBase.cpp.

References osg::PointChunkBase::_type.

00209 {
00210     return _type; 
00211 } 

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

Reimplemented from osg::StateChunkBase.

Definition at line 213 of file OSGPointChunkBase.cpp.

References osg::PointChunkBase::_type.

00214 {
00215     return _type;
00216 } 

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

Reimplemented from osg::StateChunkBase.

Definition at line 228 of file OSGPointChunkBase.cpp.

00229 { 
00230     return sizeof(PointChunk); 
00231 }

SFReal32 * osg::PointChunkBase::getSFSize ( void   )  [inline, inherited]

Definition at line 101 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfSize.

00102 {
00103     return &_sfSize;
00104 }

SFBool * osg::PointChunkBase::getSFSmooth ( void   )  [inline, inherited]

Definition at line 108 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfSmooth.

00109 {
00110     return &_sfSmooth;
00111 }

SFReal32 * osg::PointChunkBase::getSFMinSize ( void   )  [inline, inherited]

Definition at line 115 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfMinSize.

00116 {
00117     return &_sfMinSize;
00118 }

SFReal32 * osg::PointChunkBase::getSFMaxSize ( void   )  [inline, inherited]

Definition at line 122 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfMaxSize.

00123 {
00124     return &_sfMaxSize;
00125 }

SFReal32 * osg::PointChunkBase::getSFConstantAttenuation ( void   )  [inline, inherited]

Definition at line 129 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfConstantAttenuation.

00130 {
00131     return &_sfConstantAttenuation;
00132 }

SFReal32 * osg::PointChunkBase::getSFLinearAttenuation ( void   )  [inline, inherited]

Definition at line 136 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfLinearAttenuation.

00137 {
00138     return &_sfLinearAttenuation;
00139 }

SFReal32 * osg::PointChunkBase::getSFQuadraticAttenuation ( void   )  [inline, inherited]

Definition at line 143 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfQuadraticAttenuation.

00144 {
00145     return &_sfQuadraticAttenuation;
00146 }

SFReal32 * osg::PointChunkBase::getSFFadeThreshold ( void   )  [inline, inherited]

Definition at line 150 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfFadeThreshold.

00151 {
00152     return &_sfFadeThreshold;
00153 }

SFBool * osg::PointChunkBase::getSFSprite ( void   )  [inline, inherited]

Definition at line 157 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfSprite.

00158 {
00159     return &_sfSprite;
00160 }

SFGLenum * osg::PointChunkBase::getSFRMode ( void   )  [inline, inherited]

Definition at line 164 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfRMode.

00165 {
00166     return &_sfRMode;
00167 }

Real32 & osg::PointChunkBase::getSize ( void   )  [inline, inherited]

Definition at line 172 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfSize, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by activate(), changeFrom(), deactivate(), and operator==().

00173 {
00174     return _sfSize.getValue();
00175 }

const Real32 & osg::PointChunkBase::getSize ( void   )  const [inline, inherited]

Definition at line 179 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfSize, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00180 {
00181     return _sfSize.getValue();
00182 }

bool & osg::PointChunkBase::getSmooth ( void   )  [inline, inherited]

Definition at line 193 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfSmooth, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by activate(), changeFrom(), deactivate(), and operator==().

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

const bool & osg::PointChunkBase::getSmooth ( void   )  const [inline, inherited]

Definition at line 200 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfSmooth, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00201 {
00202     return _sfSmooth.getValue();
00203 }

Real32 & osg::PointChunkBase::getMinSize ( void   )  [inline, inherited]

Definition at line 214 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfMinSize, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by activate(), changeFrom(), deactivate(), isTransparent(), and operator==().

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

const Real32 & osg::PointChunkBase::getMinSize ( void   )  const [inline, inherited]

Definition at line 221 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfMinSize, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00222 {
00223     return _sfMinSize.getValue();
00224 }

Real32 & osg::PointChunkBase::getMaxSize ( void   )  [inline, inherited]

Definition at line 235 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfMaxSize, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by activate(), changeFrom(), and operator==().

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

const Real32 & osg::PointChunkBase::getMaxSize ( void   )  const [inline, inherited]

Definition at line 242 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfMaxSize, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

Real32 & osg::PointChunkBase::getConstantAttenuation ( void   )  [inline, inherited]

const Real32 & osg::PointChunkBase::getConstantAttenuation ( void   )  const [inline, inherited]

Real32 & osg::PointChunkBase::getLinearAttenuation ( void   )  [inline, inherited]

Definition at line 277 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfLinearAttenuation, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by activate(), changeFrom(), and operator==().

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

const Real32 & osg::PointChunkBase::getLinearAttenuation ( void   )  const [inline, inherited]

Definition at line 284 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfLinearAttenuation, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

Real32 & osg::PointChunkBase::getQuadraticAttenuation ( void   )  [inline, inherited]

const Real32 & osg::PointChunkBase::getQuadraticAttenuation ( void   )  const [inline, inherited]

Real32 & osg::PointChunkBase::getFadeThreshold ( void   )  [inline, inherited]

Definition at line 319 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfFadeThreshold, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by activate(), changeFrom(), and operator==().

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

const Real32 & osg::PointChunkBase::getFadeThreshold ( void   )  const [inline, inherited]

Definition at line 326 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfFadeThreshold, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

bool & osg::PointChunkBase::getSprite ( void   )  [inline, inherited]

Definition at line 340 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfSprite, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by activate(), changeFrom(), deactivate(), and operator==().

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

const bool & osg::PointChunkBase::getSprite ( void   )  const [inline, inherited]

Definition at line 347 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfSprite, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00348 {
00349     return _sfSprite.getValue();
00350 }

GLenum & osg::PointChunkBase::getRMode ( void   )  [inline, inherited]

Definition at line 361 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfRMode, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by activate(), changeFrom(), and operator==().

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

const GLenum & osg::PointChunkBase::getRMode ( void   )  const [inline, inherited]

Definition at line 368 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfRMode, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

void osg::PointChunkBase::setSize ( const Real32 value  )  [inline, inherited]

Definition at line 186 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfSize, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00187 {
00188     _sfSize.setValue(value);
00189 }

void osg::PointChunkBase::setSmooth ( const bool &  value  )  [inline, inherited]

Definition at line 207 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfSmooth, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00208 {
00209     _sfSmooth.setValue(value);
00210 }

void osg::PointChunkBase::setMinSize ( const Real32 value  )  [inline, inherited]

Definition at line 228 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfMinSize, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00229 {
00230     _sfMinSize.setValue(value);
00231 }

void osg::PointChunkBase::setMaxSize ( const Real32 value  )  [inline, inherited]

Definition at line 249 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfMaxSize, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00250 {
00251     _sfMaxSize.setValue(value);
00252 }

void osg::PointChunkBase::setConstantAttenuation ( const Real32 value  )  [inline, inherited]

void osg::PointChunkBase::setLinearAttenuation ( const Real32 value  )  [inline, inherited]

void osg::PointChunkBase::setQuadraticAttenuation ( const Real32 value  )  [inline, inherited]

void osg::PointChunkBase::setFadeThreshold ( const Real32 value  )  [inline, inherited]

void osg::PointChunkBase::setSprite ( const bool &  value  )  [inline, inherited]

Definition at line 354 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfSprite, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00355 {
00356     _sfSprite.setValue(value);
00357 }

void osg::PointChunkBase::setRMode ( const GLenum &  value  )  [inline, inherited]

Definition at line 375 of file OSGPointChunkBase.inl.

References osg::PointChunkBase::_sfRMode, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

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

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

Reimplemented from osg::StateChunkBase.

Definition at line 308 of file OSGPointChunkBase.cpp.

References osg::PointChunkBase::_sfConstantAttenuation, osg::PointChunkBase::_sfFadeThreshold, osg::PointChunkBase::_sfLinearAttenuation, osg::PointChunkBase::_sfMaxSize, osg::PointChunkBase::_sfMinSize, osg::PointChunkBase::_sfQuadraticAttenuation, osg::PointChunkBase::_sfRMode, osg::PointChunkBase::_sfSize, osg::PointChunkBase::_sfSmooth, osg::PointChunkBase::_sfSprite, osg::PointChunkBase::ConstantAttenuationFieldMask, osg::PointChunkBase::FadeThresholdFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::StateChunkBase::getBinSize(), osg::PointChunkBase::LinearAttenuationFieldMask, osg::PointChunkBase::MaxSizeFieldMask, osg::PointChunkBase::MinSizeFieldMask, osg::FieldBits::NoField, osg::PointChunkBase::QuadraticAttenuationFieldMask, osg::PointChunkBase::RModeFieldMask, osg::PointChunkBase::SizeFieldMask, osg::PointChunkBase::SmoothFieldMask, and osg::PointChunkBase::SpriteFieldMask.

00309 {
00310     UInt32 returnValue = Inherited::getBinSize(whichField);
00311 
00312     if(FieldBits::NoField != (SizeFieldMask & whichField))
00313     {
00314         returnValue += _sfSize.getBinSize();
00315     }
00316 
00317     if(FieldBits::NoField != (SmoothFieldMask & whichField))
00318     {
00319         returnValue += _sfSmooth.getBinSize();
00320     }
00321 
00322     if(FieldBits::NoField != (MinSizeFieldMask & whichField))
00323     {
00324         returnValue += _sfMinSize.getBinSize();
00325     }
00326 
00327     if(FieldBits::NoField != (MaxSizeFieldMask & whichField))
00328     {
00329         returnValue += _sfMaxSize.getBinSize();
00330     }
00331 
00332     if(FieldBits::NoField != (ConstantAttenuationFieldMask & whichField))
00333     {
00334         returnValue += _sfConstantAttenuation.getBinSize();
00335     }
00336 
00337     if(FieldBits::NoField != (LinearAttenuationFieldMask & whichField))
00338     {
00339         returnValue += _sfLinearAttenuation.getBinSize();
00340     }
00341 
00342     if(FieldBits::NoField != (QuadraticAttenuationFieldMask & whichField))
00343     {
00344         returnValue += _sfQuadraticAttenuation.getBinSize();
00345     }
00346 
00347     if(FieldBits::NoField != (FadeThresholdFieldMask & whichField))
00348     {
00349         returnValue += _sfFadeThreshold.getBinSize();
00350     }
00351 
00352     if(FieldBits::NoField != (SpriteFieldMask & whichField))
00353     {
00354         returnValue += _sfSprite.getBinSize();
00355     }
00356 
00357     if(FieldBits::NoField != (RModeFieldMask & whichField))
00358     {
00359         returnValue += _sfRMode.getBinSize();
00360     }
00361 
00362 
00363     return returnValue;
00364 }

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

Reimplemented from osg::StateChunkBase.

Definition at line 366 of file OSGPointChunkBase.cpp.

References osg::PointChunkBase::_sfConstantAttenuation, osg::PointChunkBase::_sfFadeThreshold, osg::PointChunkBase::_sfLinearAttenuation, osg::PointChunkBase::_sfMaxSize, osg::PointChunkBase::_sfMinSize, osg::PointChunkBase::_sfQuadraticAttenuation, osg::PointChunkBase::_sfRMode, osg::PointChunkBase::_sfSize, osg::PointChunkBase::_sfSmooth, osg::PointChunkBase::_sfSprite, osg::PointChunkBase::ConstantAttenuationFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::StateChunkBase::copyToBin(), osg::PointChunkBase::FadeThresholdFieldMask, osg::PointChunkBase::LinearAttenuationFieldMask, osg::PointChunkBase::MaxSizeFieldMask, osg::PointChunkBase::MinSizeFieldMask, osg::FieldBits::NoField, osg::PointChunkBase::QuadraticAttenuationFieldMask, osg::PointChunkBase::RModeFieldMask, osg::PointChunkBase::SizeFieldMask, osg::PointChunkBase::SmoothFieldMask, and osg::PointChunkBase::SpriteFieldMask.

00368 {
00369     Inherited::copyToBin(pMem, whichField);
00370 
00371     if(FieldBits::NoField != (SizeFieldMask & whichField))
00372     {
00373         _sfSize.copyToBin(pMem);
00374     }
00375 
00376     if(FieldBits::NoField != (SmoothFieldMask & whichField))
00377     {
00378         _sfSmooth.copyToBin(pMem);
00379     }
00380 
00381     if(FieldBits::NoField != (MinSizeFieldMask & whichField))
00382     {
00383         _sfMinSize.copyToBin(pMem);
00384     }
00385 
00386     if(FieldBits::NoField != (MaxSizeFieldMask & whichField))
00387     {
00388         _sfMaxSize.copyToBin(pMem);
00389     }
00390 
00391     if(FieldBits::NoField != (ConstantAttenuationFieldMask & whichField))
00392     {
00393         _sfConstantAttenuation.copyToBin(pMem);
00394     }
00395 
00396     if(FieldBits::NoField != (LinearAttenuationFieldMask & whichField))
00397     {
00398         _sfLinearAttenuation.copyToBin(pMem);
00399     }
00400 
00401     if(FieldBits::NoField != (QuadraticAttenuationFieldMask & whichField))
00402     {
00403         _sfQuadraticAttenuation.copyToBin(pMem);
00404     }
00405 
00406     if(FieldBits::NoField != (FadeThresholdFieldMask & whichField))
00407     {
00408         _sfFadeThreshold.copyToBin(pMem);
00409     }
00410 
00411     if(FieldBits::NoField != (SpriteFieldMask & whichField))
00412     {
00413         _sfSprite.copyToBin(pMem);
00414     }
00415 
00416     if(FieldBits::NoField != (RModeFieldMask & whichField))
00417     {
00418         _sfRMode.copyToBin(pMem);
00419     }
00420 
00421 
00422 }

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

Reimplemented from osg::StateChunkBase.

Definition at line 424 of file OSGPointChunkBase.cpp.

References osg::PointChunkBase::_sfConstantAttenuation, osg::PointChunkBase::_sfFadeThreshold, osg::PointChunkBase::_sfLinearAttenuation, osg::PointChunkBase::_sfMaxSize, osg::PointChunkBase::_sfMinSize, osg::PointChunkBase::_sfQuadraticAttenuation, osg::PointChunkBase::_sfRMode, osg::PointChunkBase::_sfSize, osg::PointChunkBase::_sfSmooth, osg::PointChunkBase::_sfSprite, osg::PointChunkBase::ConstantAttenuationFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::StateChunkBase::copyFromBin(), osg::PointChunkBase::FadeThresholdFieldMask, osg::PointChunkBase::LinearAttenuationFieldMask, osg::PointChunkBase::MaxSizeFieldMask, osg::PointChunkBase::MinSizeFieldMask, osg::FieldBits::NoField, osg::PointChunkBase::QuadraticAttenuationFieldMask, osg::PointChunkBase::RModeFieldMask, osg::PointChunkBase::SizeFieldMask, osg::PointChunkBase::SmoothFieldMask, and osg::PointChunkBase::SpriteFieldMask.

00426 {
00427     Inherited::copyFromBin(pMem, whichField);
00428 
00429     if(FieldBits::NoField != (SizeFieldMask & whichField))
00430     {
00431         _sfSize.copyFromBin(pMem);
00432     }
00433 
00434     if(FieldBits::NoField != (SmoothFieldMask & whichField))
00435     {
00436         _sfSmooth.copyFromBin(pMem);
00437     }
00438 
00439     if(FieldBits::NoField != (MinSizeFieldMask & whichField))
00440     {
00441         _sfMinSize.copyFromBin(pMem);
00442     }
00443 
00444     if(FieldBits::NoField != (MaxSizeFieldMask & whichField))
00445     {
00446         _sfMaxSize.copyFromBin(pMem);
00447     }
00448 
00449     if(FieldBits::NoField != (ConstantAttenuationFieldMask & whichField))
00450     {
00451         _sfConstantAttenuation.copyFromBin(pMem);
00452     }
00453 
00454     if(FieldBits::NoField != (LinearAttenuationFieldMask & whichField))
00455     {
00456         _sfLinearAttenuation.copyFromBin(pMem);
00457     }
00458 
00459     if(FieldBits::NoField != (QuadraticAttenuationFieldMask & whichField))
00460     {
00461         _sfQuadraticAttenuation.copyFromBin(pMem);
00462     }
00463 
00464     if(FieldBits::NoField != (FadeThresholdFieldMask & whichField))
00465     {
00466         _sfFadeThreshold.copyFromBin(pMem);
00467     }
00468 
00469     if(FieldBits::NoField != (SpriteFieldMask & whichField))
00470     {
00471         _sfSprite.copyFromBin(pMem);
00472     }
00473 
00474     if(FieldBits::NoField != (RModeFieldMask & whichField))
00475     {
00476         _sfRMode.copyFromBin(pMem);
00477     }
00478 
00479 
00480 }

PointChunkPtr osg::PointChunkBase::create ( void   )  [inline, static, inherited]

Reimplemented from osg::Attachment.

Definition at line 72 of file OSGPointChunkBase.inl.

References osg::AttachmentPtr::dcast(), osg::PointChunkBase::getClassType(), osg::NullFC, and osg::PointChunkBase::shallowCopy().

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

PointChunkPtr osg::PointChunkBase::createEmpty ( void   )  [inline, static, inherited]

Reimplemented from osg::Attachment.

Definition at line 87 of file OSGPointChunkBase.inl.

References osg::FieldContainer::newPtr().

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

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

Reimplemented from osg::Attachment.

Definition at line 219 of file OSGPointChunkBase.cpp.

References osg::FieldContainer::newPtr().

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

00220 { 
00221     PointChunkPtr returnValue; 
00222 
00223     newPtr(returnValue, dynamic_cast<const PointChunk *>(this)); 
00224 
00225     return returnValue; 
00226 }

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

Definition at line 483 of file OSGPointChunkBase.cpp.

References osg::PointChunkBase::_sfConstantAttenuation, osg::PointChunkBase::_sfFadeThreshold, osg::PointChunkBase::_sfLinearAttenuation, osg::PointChunkBase::_sfMaxSize, osg::PointChunkBase::_sfMinSize, osg::PointChunkBase::_sfQuadraticAttenuation, osg::PointChunkBase::_sfRMode, osg::PointChunkBase::_sfSize, osg::PointChunkBase::_sfSmooth, osg::PointChunkBase::_sfSprite, osg::PointChunkBase::ConstantAttenuationFieldMask, osg::StateChunkBase::executeSyncImpl(), osg::PointChunkBase::FadeThresholdFieldMask, osg::PointChunkBase::LinearAttenuationFieldMask, osg::PointChunkBase::MaxSizeFieldMask, osg::PointChunkBase::MinSizeFieldMask, osg::FieldBits::NoField, osg::PointChunkBase::QuadraticAttenuationFieldMask, osg::PointChunkBase::RModeFieldMask, osg::PointChunkBase::SizeFieldMask, osg::PointChunkBase::SmoothFieldMask, osg::PointChunkBase::SpriteFieldMask, and osg::SField< FieldTypeT, fieldNameSpace >::syncWith().

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

00485 {
00486 
00487     Inherited::executeSyncImpl(pOther, whichField);
00488 
00489     if(FieldBits::NoField != (SizeFieldMask & whichField))
00490         _sfSize.syncWith(pOther->_sfSize);
00491 
00492     if(FieldBits::NoField != (SmoothFieldMask & whichField))
00493         _sfSmooth.syncWith(pOther->_sfSmooth);
00494 
00495     if(FieldBits::NoField != (MinSizeFieldMask & whichField))
00496         _sfMinSize.syncWith(pOther->_sfMinSize);
00497 
00498     if(FieldBits::NoField != (MaxSizeFieldMask & whichField))
00499         _sfMaxSize.syncWith(pOther->_sfMaxSize);
00500 
00501     if(FieldBits::NoField != (ConstantAttenuationFieldMask & whichField))
00502         _sfConstantAttenuation.syncWith(pOther->_sfConstantAttenuation);
00503 
00504     if(FieldBits::NoField != (LinearAttenuationFieldMask & whichField))
00505         _sfLinearAttenuation.syncWith(pOther->_sfLinearAttenuation);
00506 
00507     if(FieldBits::NoField != (QuadraticAttenuationFieldMask & whichField))
00508         _sfQuadraticAttenuation.syncWith(pOther->_sfQuadraticAttenuation);
00509 
00510     if(FieldBits::NoField != (FadeThresholdFieldMask & whichField))
00511         _sfFadeThreshold.syncWith(pOther->_sfFadeThreshold);
00512 
00513     if(FieldBits::NoField != (SpriteFieldMask & whichField))
00514         _sfSprite.syncWith(pOther->_sfSprite);
00515 
00516     if(FieldBits::NoField != (RModeFieldMask & whichField))
00517         _sfRMode.syncWith(pOther->_sfRMode);
00518 
00519 
00520 }

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

Reimplemented from osg::StateChunkBase.

Definition at line 235 of file OSGPointChunkBase.cpp.

References osg::PointChunkBase::executeSyncImpl().

00237 {
00238     this->executeSyncImpl((PointChunkBase *) &other, whichField);
00239 }

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 }

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

Reimplemented in osg::SHLChunk.

Definition at line 311 of file OSGStateChunk.cpp.

00312 {
00313 }

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 }

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 }

void Attachment::onDestroy ( void   )  [protected, virtual, inherited]

UInt16 osg::FieldContainer::getClassGroupId ( void   )  [inline, static, inherited]

Definition at line 71 of file OSGFieldContainerImpl.inl.

References osg::FieldContainer::_type, and osg::FieldContainerType::getGroupId().

00072 {
00073     return _type.getGroupId();
00074 }

UInt32 osg::FieldContainer::getTypeId ( void   )  const [inline, inherited]

Definition at line 77 of file OSGFieldContainerImpl.inl.

References osg::TypeBase::getId(), and osg::FieldContainer::getType().

Referenced by osg::TextureChunk::changeFrom(), and osg::CubeTextureChunk::changeFrom().

00078 {
00079     return getType().getId();
00080 }

UInt16 osg::FieldContainer::getGroupId ( void   )  const [inline, inherited]

const Char8 * osg::FieldContainer::getTypeName ( void   )  const [inline, inherited]

Definition at line 89 of file OSGFieldContainerImpl.inl.

References osg::TypeBase::getCName(), and osg::FieldContainer::getType().

00090 {
00091     return getType().getCName();
00092 }

Field * osg::FieldContainer::getField ( UInt32  fieldId  )  [inline, inherited]

Generic Field Access

Definition at line 95 of file OSGFieldContainerImpl.inl.

References osg::FieldDescription::getField(), osg::FieldContainerType::getFieldDescription(), and osg::FieldContainer::getType().

Referenced by osg::QFCItem::expand(), osg::VRMLShapeDesc::getFieldAndDesc(), osg::QFieldViewBase::getFieldPtr(), osg::QFieldEditorBase::getFieldPtr(), osg::getParentsField(), and osg::QFCItem::setup().

00096 {
00097     const FieldDescription *desc = getType().getFieldDescription(fieldId);
00098 
00099     return desc ? desc->getField(*this) : NULL;
00100 }

Field * osg::FieldContainer::getField ( const Char8 fieldName  )  [inline, inherited]

Generic Field Access

Definition at line 103 of file OSGFieldContainerImpl.inl.

References osg::FieldContainerType::findFieldDescription(), osg::FieldDescription::getField(), and osg::FieldContainer::getType().

00104 {
00105     const FieldDescription *desc =getType().findFieldDescription(fieldName);
00106 
00107     return desc ? desc->getField(*this) : NULL;
00108 }

template<class ObjectPtrT>
void osg::FieldContainer::newPtr ( ObjectPtrT &  result,
const typename ObjectPtrT::StoredObjectType *  prototypeP 
) [inline, static, protected, inherited]

Definition at line 138 of file OSGFieldContainerImpl.inl.

References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().

Referenced by osg::XWindowBase::createEmpty(), osg::WIN32WindowBase::createEmpty(), osg::ViewportBase::createEmpty(), osg::VertexProgramChunkBase::createEmpty(), osg::TwoSidedLightingChunkBase::createEmpty(), osg::TransformChunkBase::createEmpty(), osg::TransformBase::createEmpty(), osg::TileCameraDecoratorBase::createEmpty(), osg::TextureTransformChunkBase::createEmpty(), osg::TextureGrabForegroundBase::createEmpty(), osg::TextureGrabBackgroundBase::createEmpty(), osg::TextureChunkBase::createEmpty(), osg::TextureBackgroundBase::createEmpty(), osg::TexGenChunkBase::createEmpty(), osg::SwitchMaterialBase::createEmpty(), osg::SwitchBase::createEmpty(), osg::SurfaceBase::createEmpty(), osg::StringAttributeMapBase::createEmpty(), osg::StereoBufferViewportBase::createEmpty(), osg::StencilChunkBase::createEmpty(), osg::StateSortingGroupBase::createEmpty(), osg::StateBase::createEmpty(), osg::SpotLightBase::createEmpty(), osg::SortFirstWindowBase::createEmpty(), osg::SolidBackgroundBase::createEmpty(), osg::SlicesBase::createEmpty(), osg::SkyBackgroundBase::createEmpty(), osg::SimpleTexturedMaterialBase::createEmpty(), osg::SimpleStatisticsForegroundBase::createEmpty(), osg::SimpleMaterialBase::createEmpty(), osg::SHLParameterChunkBase::createEmpty(), osg::SHLChunkBase::createEmpty(), osg::ShearedStereoCameraDecoratorBase::createEmpty(), osg::ShaderParameterVec4fBase::createEmpty(), osg::ShaderParameterVec3fBase::createEmpty(), osg::ShaderParameterVec2fBase::createEmpty(), osg::ShaderParameterStringBase::createEmpty(), osg::ShaderParameterRealBase::createEmpty(), osg::ShaderParameterMVec4fBase::createEmpty(), osg::ShaderParameterMVec3fBase::createEmpty(), osg::ShaderParameterMVec2fBase::createEmpty(), osg::ShaderParameterMRealBase::createEmpty(), osg::ShaderParameterMMatrixBase::createEmpty(), osg::ShaderParameterMIntBase::createEmpty(), osg::ShaderParameterMatrixBase::createEmpty(), osg::ShaderParameterIntBase::createEmpty(), osg::ShaderParameterBoolBase::createEmpty(), osg::ScreenGroupBase::createEmpty(), osg::SClipPlaneChunkBase::createEmpty(), osg::ResolutionDisplayFilterBase::createEmpty(), osg::RenderOptionsBase::createEmpty(), osg::RegisterCombinersChunkBase::createEmpty(), osg::QTWindowBase::createEmpty(), osg::ProxyGroupBase::createEmpty(), osg::ProjectionCameraDecoratorBase::createEmpty(), osg::PolygonForegroundBase::createEmpty(), osg::PolygonChunkBase::createEmpty(), osg::PolygonBackgroundBase::createEmpty(), osg::PointLightBase::createEmpty(), osg::PointChunkBase::createEmpty(), osg::PhongMaterialBase::createEmpty(), osg::PerspectiveCameraBase::createEmpty(), osg::PassiveWindowBase::createEmpty(), osg::PassiveViewportBase::createEmpty(), osg::PassiveBackgroundBase::createEmpty(), osg::ParticlesBase::createEmpty(), osg::OrthographicCameraBase::createEmpty(), osg::OffCenterPerspectiveCameraBase::createEmpty(), osg::MultiPassMaterialBase::createEmpty(), osg::MultiDisplayWindowBase::createEmpty(), osg::MatrixCameraDecoratorBase::createEmpty(), osg::MatrixCameraBase::createEmpty(), osg::MaterialPoolBase::createEmpty(), osg::MaterialGroupBase::createEmpty(), osg::MaterialChunkBase::createEmpty(), osg::LogicOpChunkBase::createEmpty(), osg::LineChunkBase::createEmpty(), osg::LightModelChunkBase::createEmpty(), osg::LightEnvBase::createEmpty(), osg::LightChunkBase::createEmpty(), osg::InverseTransformBase::createEmpty(), osg::InlineBase::createEmpty(), osg::ImageForegroundBase::createEmpty(), osg::ImageBase::createEmpty(), osg::ImageBackgroundBase::createEmpty(), osg::GroupBase::createEmpty(), osg::GraphicStatisticsForegroundBase::createEmpty(), osg::GradientBackgroundBase::createEmpty(), osg::GrabForegroundBase::createEmpty(), osg::GLUTWindowBase::createEmpty(), osg::GeometryBase::createEmpty(), osg::FresnelMaterialBase::createEmpty(), osg::FragmentProgramChunkBase::createEmpty(), osg::FileGrabForegroundBase::createEmpty(), osg::FCPtrAttributeMapBase::createEmpty(), osg::FBOViewportBase::createEmpty(), osg::FatBorderChunkBase::createEmpty(), osg::DVRVolumeTextureBase::createEmpty(), osg::DVRVolumeBase::createEmpty(), osg::DVRSimpleShaderBase::createEmpty(), osg::DVRSimpleLUTShaderBase::createEmpty(), osg::DVRMtexLUTShaderBase::createEmpty(), osg::DVRLookupTableBase::createEmpty(), osg::DVRIsoSurfaceBase::createEmpty(), osg::DVRIsoShaderBase::createEmpty(), osg::DVRGeometryBase::createEmpty(), osg::DVRClipObjectsBase::createEmpty(), osg::DVRClipGeometryBase::createEmpty(), osg::DVRAppearanceBase::createEmpty(), osg::DistortionDisplayFilterBase::createEmpty(), osg::DistanceLODBase::createEmpty(), osg::DisplayFilterForegroundBase::createEmpty(), osg::DisplayCalibrationBase::createEmpty(), osg::DirectionalLightBase::createEmpty(), osg::DepthClearBackgroundBase::createEmpty(), osg::DepthChunkBase::createEmpty(), osg::CubeTextureChunkBase::createEmpty(), osg::ComponentTransformBase::createEmpty(), osg::ColorMaskChunkBase::createEmpty(), osg::ColorDisplayFilterBase::createEmpty(), osg::ColorBufferViewportBase::createEmpty(), osg::ClusterWindowBase::createEmpty(), osg::ClipPlaneChunkBase::createEmpty(), osg::ClipPlaneBase::createEmpty(), osg::ChunkMaterialBase::createEmpty(), osg::BlendChunkBase::createEmpty(), osg::BillboardBase::createEmpty(), osg::XWindowBase::shallowCopy(), osg::WIN32WindowBase::shallowCopy(), osg::ViewportBase::shallowCopy(), osg::VertexProgramChunkBase::shallowCopy(), osg::TwoSidedLightingChunkBase::shallowCopy(), osg::TransformChunkBase::shallowCopy(), osg::TransformBase::shallowCopy(), osg::TileCameraDecoratorBase::shallowCopy(), osg::TextureTransformChunkBase::shallowCopy(), osg::TextureGrabForegroundBase::shallowCopy(), osg::TextureGrabBackgroundBase::shallowCopy(), osg::TextureChunkBase::shallowCopy(), osg::TextureBackgroundBase::shallowCopy(), osg::TexGenChunkBase::shallowCopy(), osg::SwitchMaterialBase::shallowCopy(), osg::SwitchBase::shallowCopy(), osg::SurfaceBase::shallowCopy(), osg::StringAttributeMapBase::shallowCopy(), osg::StereoBufferViewportBase::shallowCopy(), osg::StencilChunkBase::shallowCopy(), osg::StateSortingGroupBase::shallowCopy(), osg::StateBase::shallowCopy(), osg::SpotLightBase::shallowCopy(), osg::SortFirstWindowBase::shallowCopy(), osg::SolidBackgroundBase::shallowCopy(), osg::SlicesBase::shallowCopy(), osg::SkyBackgroundBase::shallowCopy(), osg::SimpleTexturedMaterialBase::shallowCopy(), osg::SimpleStatisticsForegroundBase::shallowCopy(), osg::SimpleMaterialBase::shallowCopy(), osg::SHLParameterChunkBase::shallowCopy(), osg::SHLChunkBase::shallowCopy(), osg::ShearedStereoCameraDecoratorBase::shallowCopy(), osg::ShaderParameterVec4fBase::shallowCopy(), osg::ShaderParameterVec3fBase::shallowCopy(), osg::ShaderParameterVec2fBase::shallowCopy(), osg::ShaderParameterStringBase::shallowCopy(), osg::ShaderParameterRealBase::shallowCopy(), osg::ShaderParameterMVec4fBase::shallowCopy(), osg::ShaderParameterMVec3fBase::shallowCopy(), osg::ShaderParameterMVec2fBase::shallowCopy(), osg::ShaderParameterMRealBase::shallowCopy(), osg::ShaderParameterMMatrixBase::shallowCopy(), osg::ShaderParameterMIntBase::shallowCopy(), osg::ShaderParameterMatrixBase::shallowCopy(), osg::ShaderParameterIntBase::shallowCopy(), osg::ShaderParameterBoolBase::shallowCopy(), osg::ScreenGroupBase::shallowCopy(), osg::SClipPlaneChunkBase::shallowCopy(), osg::ResolutionDisplayFilterBase::shallowCopy(), osg::RenderOptionsBase::shallowCopy(), osg::RegisterCombinersChunkBase::shallowCopy(), osg::QTWindowBase::shallowCopy(), osg::ProxyGroupBase::shallowCopy(), osg::ProjectionCameraDecoratorBase::shallowCopy(), osg::PolygonForegroundBase::shallowCopy(), osg::PolygonChunkBase::shallowCopy(), osg::PolygonBackgroundBase::shallowCopy(), osg::PointLightBase::shallowCopy(), osg::PointChunkBase::shallowCopy(), osg::PhongMaterialBase::shallowCopy(), osg::PerspectiveCameraBase::shallowCopy(), osg::PassiveWindowBase::shallowCopy(), osg::PassiveViewportBase::shallowCopy(), osg::PassiveBackgroundBase::shallowCopy(), osg::ParticlesBase::shallowCopy(), osg::OrthographicCameraBase::shallowCopy(), osg::OffCenterPerspectiveCameraBase::shallowCopy(), osg::MultiPassMaterialBase::shallowCopy(), osg::MultiDisplayWindowBase::shallowCopy(), osg::MatrixCameraDecoratorBase::shallowCopy(), osg::MatrixCameraBase::shallowCopy(), osg::MaterialPoolBase::shallowCopy(), osg::MaterialGroupBase::shallowCopy(), osg::MaterialChunkBase::shallowCopy(), osg::LogicOpChunkBase::shallowCopy(), osg::LineChunkBase::shallowCopy(), osg::LightModelChunkBase::shallowCopy(), osg::LightEnvBase::shallowCopy(), osg::LightChunkBase::shallowCopy(), osg::InverseTransformBase::shallowCopy(), osg::InlineBase::shallowCopy(), osg::ImageForegroundBase::shallowCopy(), osg::ImageBase::shallowCopy(), osg::ImageBackgroundBase::shallowCopy(), osg::GroupBase::shallowCopy(), osg::GraphicStatisticsForegroundBase::shallowCopy(), osg::GradientBackgroundBase::shallowCopy(), osg::GrabForegroundBase::shallowCopy(), osg::GLUTWindowBase::shallowCopy(), osg::GeometryBase::shallowCopy(), osg::FresnelMaterialBase::shallowCopy(), osg::FragmentProgramChunkBase::shallowCopy(), osg::FileGrabForegroundBase::shallowCopy(), osg::FCPtrAttributeMapBase::shallowCopy(), osg::FBOViewportBase::shallowCopy(), osg::FatBorderChunkBase::shallowCopy(), osg::DVRVolumeTextureBase::shallowCopy(), osg::DVRVolumeBase::shallowCopy(), osg::DVRSimpleShaderBase::shallowCopy(), osg::DVRSimpleLUTShaderBase::shallowCopy(), osg::DVRMtexLUTShaderBase::shallowCopy(), osg::DVRLookupTableBase::shallowCopy(), osg::DVRIsoSurfaceBase::shallowCopy(), osg::DVRIsoShaderBase::shallowCopy(), osg::DVRGeometryBase::shallowCopy(), osg::DVRClipObjectsBase::shallowCopy(), osg::DVRClipGeometryBase::shallowCopy(), osg::DVRAppearanceBase::shallowCopy(), osg::DistortionDisplayFilterBase::shallowCopy(), osg::DistanceLODBase::shallowCopy(), osg::DisplayFilterForegroundBase::shallowCopy(), osg::DisplayCalibrationBase::shallowCopy(), osg::DirectionalLightBase::shallowCopy(), osg::DepthClearBackgroundBase::shallowCopy(), osg::DepthChunkBase::shallowCopy(), osg::CubeTextureChunkBase::shallowCopy(), osg::ComponentTransformBase::shallowCopy(), osg::ColorMaskChunkBase::shallowCopy(), osg::ColorDisplayFilterBase::shallowCopy(), osg::ColorBufferViewportBase::shallowCopy(), osg::ClusterWindowBase::shallowCopy(), osg::ClipPlaneChunkBase::shallowCopy(), osg::ClipPlaneBase::shallowCopy(), osg::ChunkMaterialBase::shallowCopy(), osg::BlendChunkBase::shallowCopy(), and osg::BillboardBase::shallowCopy().

00141 {
00142     typedef typename ObjectPtrT::StoredObjectType ObjectType;
00143     
00144     UInt8 *pTmp;
00145     
00146     result._containerSize = sizeof(ObjectType);
00147     
00148     pTmp        = 
00149         static_cast<UInt8 *>(operator new(
00150             sizeof(Int32)      + // ReferenceCount
00151             sizeof(UInt32)     + // ContainerId
00152             sizeof(ObjectType) * ThreadManager::getNumAspects()));
00153     
00154     *(reinterpret_cast<Int32 *>(pTmp)) = 0;
00155     
00156     pTmp += sizeof(Int32);
00157     
00158     result._storeP = (pTmp + sizeof(UInt32));
00159 
00160 #ifdef OSG_DEBUG_FCPTR
00161     result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP);
00162 #endif
00163 
00164     *(reinterpret_cast<UInt32 *>(pTmp)) = 
00165         FieldContainerFactory::the()->registerFieldContainer(result);
00166     
00167     Thread::getCurrentChangeList()->addCreated(
00168         *(reinterpret_cast<UInt32 *>(pTmp)));
00169     
00170     pTmp += sizeof(UInt32);
00171     
00172     ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp);
00173 
00174     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00175     {
00176         pTmp = 
00177             reinterpret_cast<UInt8 *>(new (pTmp) ObjectType(*prototypeP));
00178         
00179         pTmp += sizeof(ObjectType);
00180     }
00181     
00182     result->onCreate(prototypeP);
00183 
00184     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00185     {
00186         aObject[i].onCreateAspect(aObject, prototypeP);
00187     }
00188 
00189 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM)
00190 
00191     fprintf(stderr, "GV_MEM_FC_DBG : (%u) cc (%p|%u)\n", 
00192             Thread::getAspect(),
00193             result._storeP,
00194 //            ObjectType::getClassType().getCName(),
00195             ObjectType::getClassType().getId());
00196 #endif
00197 
00198 #ifdef OSG_DEBUG_TYPED_FCPTR
00199     result.updateTypedStore();
00200 #endif
00201 }

template<class ObjectPtrT>
void osg::FieldContainer::newPtr ( ObjectPtrT &  result  )  [inline, static, protected, inherited]

Definition at line 204 of file OSGFieldContainerImpl.inl.

References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().

00205 {
00206     typedef typename ObjectPtrT::StoredObjectType ObjectType;
00207     
00208     UInt8 *pTmp;
00209     
00210     result._containerSize = sizeof(ObjectType);
00211     
00212     pTmp        =             
00213         static_cast<UInt8 *>(operator new(
00214             sizeof(Int32)      + // ReferenceCount
00215             sizeof(UInt32)     + // ContainerId
00216             sizeof(ObjectType) * ThreadManager::getNumAspects()));
00217     
00218     *(reinterpret_cast<Int32 *>(pTmp)) = 0;
00219     
00220     pTmp  += sizeof(Int32);
00221     
00222     result._storeP = (pTmp + sizeof(UInt32));
00223     
00224 #ifdef OSG_DEBUG_FCPTR
00225     result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP);
00226 #endif
00227 
00228     *(reinterpret_cast<UInt32 *>(pTmp)) = 
00229         FieldContainerFactory::the()->registerFieldContainer(result);
00230     
00231     Thread::getCurrentChangeList()->addCreated(
00232         *(reinterpret_cast<UInt32 *>(pTmp)));
00233     
00234     pTmp += sizeof(UInt32);
00235     
00236     ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp);
00237 
00238     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00239     {
00240         pTmp = reinterpret_cast<UInt8 *>(new (pTmp) ObjectType());
00241         
00242         pTmp += sizeof(ObjectType);
00243     }
00244     
00245     result->onCreate();
00246     
00247     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00248     {
00249         aObject[i].onCreateAspect(aObject);
00250     }
00251 
00252 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM)
00253     fprintf(stderr, "GV_MEM_FC_DBG : (%u) c (%p|%u)\n", 
00254             Thread::getAspect(),
00255             result._storeP,
00256 //            ObjectType::getClassType().getCName(),
00257             ObjectType::getClassType().getId());
00258 #endif
00259     
00260 #ifdef OSG_DEBUG_TYPED_FCPTR
00261     result.updateTypedStore();
00262 #endif
00263 }

template<class FieldTypeT>
void osg::FieldContainer::beginEditX ( const BitVector whichField,
FieldTypeT &  field 
) [inline, protected, inherited]

Definition at line 285 of file OSGFieldContainerImpl.inl.

00286 {
00287 //    fieldR.beginEdit();
00288 }

template<class FieldTypeT>
void osg::FieldContainer::endEditX ( const BitVector whichField,
FieldTypeT &  field 
) [inline, protected, inherited]

Definition at line 291 of file OSGFieldContainerImpl.inl.

References osg::endEditCP().

00292 {
00293     FieldContainerPtr tmpPtr(this);
00294     endEditCP(tmpPtr, whichField);
00295 }

void osg::FieldContainer::onCreate ( const FieldContainer source = NULL  )  [inline, protected, inherited]

Definition at line 318 of file OSGFieldContainerImpl.inl.

Referenced by osg::ShaderParameterChunk::onCreate().

00319 {
00320 }

void osg::FieldContainer::onCreateAspect ( const FieldContainer aspect0,
const FieldContainer source = NULL 
) [inline, protected, inherited]

Definition at line 323 of file OSGFieldContainerImpl.inl.

00325 {
00326 }


Friends And Related Function Documentation

friend class FieldContainer [friend]

Reimplemented from osg::PointChunkBase.

Definition at line 143 of file OSGPointChunk.h.

friend class PointChunkBase [friend]

Definition at line 144 of file OSGPointChunk.h.


Member Data Documentation

Definition at line 146 of file OSGPointChunk.h.

Referenced by getClass(), and getStaticClass().

Definition at line 152 of file OSGPointChunk.h.

Referenced by activate(), changeFrom(), deactivate(), and PointChunk().

Definition at line 153 of file OSGPointChunk.h.

Referenced by activate(), changeFrom(), deactivate(), and PointChunk().

Definition at line 154 of file OSGPointChunk.h.

Referenced by activate(), changeFrom(), deactivate(), and PointChunk().

Definition at line 155 of file OSGPointChunk.h.

Referenced by activate(), changeFrom(), deactivate(), and PointChunk().

const osg::BitVector PointChunkBase::SizeFieldMask [static, inherited]

Initial value:

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

Reimplemented from osg::StateChunkBase.

Definition at line 128 of file OSGPointChunkBase.h.

Real32 PointChunkBase::_sfSize [protected, inherited]

bool PointChunkBase::_sfSmooth [protected, inherited]

Real32 PointChunkBase::_sfMinSize [protected, inherited]

Real32 PointChunkBase::_sfMaxSize [protected, inherited]

Real32 PointChunkBase::_sfFadeThreshold [protected, inherited]

bool PointChunkBase::_sfSprite [protected, inherited]

GLenum PointChunkBase::_sfRMode [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:17:57 2008 for OpenSG by  doxygen 1.5.5