osg::TexGenChunk Class Reference
[OpenGL State Handling]

State chunk for texture coordinate generation. See TexGenChunk for a description. More...

#include <OSGTexGenChunk.h>

Inheritance diagram for osg::TexGenChunk:

osg::TexGenChunkBase osg::StateChunk osg::StateChunkBase osg::Attachment osg::FieldContainer

List of all members.

Public Types

enum  {
  GenFuncSFieldId = Inherited::NextFieldId, GenFuncTFieldId = GenFuncSFieldId + 1, GenFuncRFieldId = GenFuncTFieldId + 1, GenFuncQFieldId = GenFuncRFieldId + 1,
  GenFuncSPlaneFieldId = GenFuncQFieldId + 1, GenFuncTPlaneFieldId = GenFuncSPlaneFieldId + 1, GenFuncRPlaneFieldId = GenFuncTPlaneFieldId + 1, GenFuncQPlaneFieldId = GenFuncRPlaneFieldId + 1,
  SBeaconFieldId = GenFuncQPlaneFieldId + 1, TBeaconFieldId = SBeaconFieldId + 1, RBeaconFieldId = TBeaconFieldId + 1, QBeaconFieldId = RBeaconFieldId + 1,
  NextFieldId = QBeaconFieldId + 1
}
typedef TexGenChunkPtr 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 from)
Output


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


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)
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


SFGLenumgetSFGenFuncS (void)
 Get the TexGenChunk::_sfGenFuncS field.
SFGLenumgetSFGenFuncT (void)
 Get the TexGenChunk::_sfGenFuncT field.
SFGLenumgetSFGenFuncR (void)
 Get the TexGenChunk::_sfGenFuncR field.
SFGLenumgetSFGenFuncQ (void)
 Get the TexGenChunk::_sfGenFuncQ field.
SFVec4fgetSFGenFuncSPlane (void)
 Get the TexGenChunk::_sfGenFuncSPlane field.
SFVec4fgetSFGenFuncTPlane (void)
 Get the TexGenChunk::_sfGenFuncTPlane field.
SFVec4fgetSFGenFuncRPlane (void)
 Get the TexGenChunk::_sfGenFuncRPlane field.
SFVec4fgetSFGenFuncQPlane (void)
 Get the TexGenChunk::_sfGenFuncQPlane field.
SFNodePtrgetSFSBeacon (void)
 Get the TexGenChunk::_sfSBeacon field.
SFNodePtrgetSFTBeacon (void)
 Get the TexGenChunk::_sfTBeacon field.
SFNodePtrgetSFRBeacon (void)
 Get the TexGenChunk::_sfRBeacon field.
SFNodePtrgetSFQBeacon (void)
 Get the TexGenChunk::_sfQBeacon field.
GLenum & getGenFuncS (void)
 Get the value of the TexGenChunk::_sfGenFuncS field.
const GLenum & getGenFuncS (void) const
 Get the value of the TexGenChunk::_sfGenFuncS field.
GLenum & getGenFuncT (void)
 Get the value of the TexGenChunk::_sfGenFuncT field.
const GLenum & getGenFuncT (void) const
 Get the value of the TexGenChunk::_sfGenFuncT field.
GLenum & getGenFuncR (void)
 Get the value of the TexGenChunk::_sfGenFuncR field.
const GLenum & getGenFuncR (void) const
 Get the value of the TexGenChunk::_sfGenFuncR field.
GLenum & getGenFuncQ (void)
 Get the value of the TexGenChunk::_sfGenFuncQ field.
const GLenum & getGenFuncQ (void) const
 Get the value of the TexGenChunk::_sfGenFuncQ field.
Vec4fgetGenFuncSPlane (void)
 Get the value of the TexGenChunk::_sfGenFuncSPlane field.
const Vec4fgetGenFuncSPlane (void) const
 Get the value of the TexGenChunk::_sfGenFuncSPlane field.
Vec4fgetGenFuncTPlane (void)
 Get the value of the TexGenChunk::_sfGenFuncTPlane field.
const Vec4fgetGenFuncTPlane (void) const
 Get the value of the TexGenChunk::_sfGenFuncTPlane field.
Vec4fgetGenFuncRPlane (void)
 Get the value of the TexGenChunk::_sfGenFuncRPlane field.
const Vec4fgetGenFuncRPlane (void) const
 Get the value of the TexGenChunk::_sfGenFuncRPlane field.
Vec4fgetGenFuncQPlane (void)
 Get the value of the TexGenChunk::_sfGenFuncQPlane field.
const Vec4fgetGenFuncQPlane (void) const
 Get the value of the TexGenChunk::_sfGenFuncQPlane field.
NodePtrgetSBeacon (void)
 Get the value of the TexGenChunk::_sfSBeacon field.
const NodePtrgetSBeacon (void) const
 Get the value of the TexGenChunk::_sfSBeacon field.
NodePtrgetTBeacon (void)
 Get the value of the TexGenChunk::_sfTBeacon field.
const NodePtrgetTBeacon (void) const
 Get the value of the TexGenChunk::_sfTBeacon field.
NodePtrgetRBeacon (void)
 Get the value of the TexGenChunk::_sfRBeacon field.
const NodePtrgetRBeacon (void) const
 Get the value of the TexGenChunk::_sfRBeacon field.
NodePtrgetQBeacon (void)
 Get the value of the TexGenChunk::_sfQBeacon field.
const NodePtrgetQBeacon (void) const
 Get the value of the TexGenChunk::_sfQBeacon field.
Field Set


void setGenFuncS (const GLenum &value)
 Set the value of the TexGenChunk::_sfGenFuncS field.
void setGenFuncT (const GLenum &value)
 Set the value of the TexGenChunk::_sfGenFuncT field.
void setGenFuncR (const GLenum &value)
 Set the value of the TexGenChunk::_sfGenFuncR field.
void setGenFuncQ (const GLenum &value)
 Set the value of the TexGenChunk::_sfGenFuncQ field.
void setGenFuncSPlane (const Vec4f &value)
 Set the value of the TexGenChunk::_sfGenFuncSPlane field.
void setGenFuncTPlane (const Vec4f &value)
 Set the value of the TexGenChunk::_sfGenFuncTPlane field.
void setGenFuncRPlane (const Vec4f &value)
 Set the value of the TexGenChunk::_sfGenFuncRPlane field.
void setGenFuncQPlane (const Vec4f &value)
 Set the value of the TexGenChunk::_sfGenFuncQPlane field.
void setSBeacon (const NodePtr &value)
 Set the value of the TexGenChunk::_sfSBeacon field.
void setTBeacon (const NodePtr &value)
 Set the value of the TexGenChunk::_sfTBeacon field.
void setRBeacon (const NodePtr &value)
 Set the value of the TexGenChunk::_sfRBeacon field.
void setQBeacon (const NodePtr &value)
 Set the value of the TexGenChunk::_sfQBeacon 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)
virtual bool isTransparent (void) const
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 TexGenChunkPtr create (void)
 create a new instance of the class
static TexGenChunkPtr 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 GenFuncSFieldMask
static const osg::BitVector GenFuncTFieldMask
static const osg::BitVector GenFuncRFieldMask
static const osg::BitVector GenFuncQFieldMask
static const osg::BitVector GenFuncSPlaneFieldMask
static const osg::BitVector GenFuncTPlaneFieldMask
static const osg::BitVector GenFuncRPlaneFieldMask
static const osg::BitVector GenFuncQPlaneFieldMask
static const osg::BitVector SBeaconFieldMask
static const osg::BitVector TBeaconFieldMask
static const osg::BitVector RBeaconFieldMask
static const osg::BitVector QBeaconFieldMask
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


 TexGenChunk (void)
 TexGenChunk (const TexGenChunk &source)
Destructors


virtual ~TexGenChunk (void)
Sync


void executeSyncImpl (TexGenChunkBase *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


SFGLenum _sfGenFuncS
SFGLenum _sfGenFuncT
SFGLenum _sfGenFuncR
SFGLenum _sfGenFuncQ
SFVec4f _sfGenFuncSPlane
SFVec4f _sfGenFuncTPlane
SFVec4f _sfGenFuncRPlane
SFVec4f _sfGenFuncQPlane
SFNodePtr _sfSBeacon
SFNodePtr _sfTBeacon
SFNodePtr _sfRBeacon
SFNodePtr _sfQBeacon
Fields


SFBool _sfIgnore
Fields


SFBool _sfInternal
MFFieldContainerPtr _parents
Member


UInt32 _shares

Private Types

typedef TexGenChunkBase Inherited

Private Member Functions

void operator= (const TexGenChunk &source)

Static Private Member Functions

static void initMethod (void)

Static Private Attributes

static StateChunkClass _class

Friends

class FieldContainer
class TexGenChunkBase


Detailed Description

See TexGenChunk for a description.

This chunk wraps glTexGen(). All 4 coordinates are wrapped in a single chunk by using separate gen funcs for each variable (osg::TexGenChunk::_sfGenFuncS, osg::TexGenChunk::_sfGenFuncT, osg::TexGenChunk::_sfGenFuncR, osg::TexGenChunk::_sfGenFuncQ). The default for each of these is GL_NONE, or off. The optional plane parameters are stored in osg::TexGenChunk::_sfGenFuncSPlane, osg::TexGenChunk::_sfGenFuncTPlane, osg::TexGenChunk::_sfGenFuncRPlane and osg::TexGenChunk::_sfGenFuncQPlane.

Definition at line 56 of file OSGTexGenChunk.h.


Member Typedef Documentation

Reimplemented from osg::TexGenChunkBase.

Definition at line 143 of file OSGTexGenChunk.h.

Reimplemented from osg::StateChunkBase.

Definition at line 101 of file OSGTexGenChunkBase.h.


Member Enumeration Documentation

anonymous enum [inherited]

Enumerator:
GenFuncSFieldId 
GenFuncTFieldId 
GenFuncRFieldId 
GenFuncQFieldId 
GenFuncSPlaneFieldId 
GenFuncTPlaneFieldId 
GenFuncRPlaneFieldId 
GenFuncQPlaneFieldId 
SBeaconFieldId 
TBeaconFieldId 
RBeaconFieldId 
QBeaconFieldId 
NextFieldId 

Definition at line 103 of file OSGTexGenChunkBase.h.

00104     {
00105         GenFuncSFieldId      = Inherited::NextFieldId,
00106         GenFuncTFieldId      = GenFuncSFieldId      + 1,
00107         GenFuncRFieldId      = GenFuncTFieldId      + 1,
00108         GenFuncQFieldId      = GenFuncRFieldId      + 1,
00109         GenFuncSPlaneFieldId = GenFuncQFieldId      + 1,
00110         GenFuncTPlaneFieldId = GenFuncSPlaneFieldId + 1,
00111         GenFuncRPlaneFieldId = GenFuncTPlaneFieldId + 1,
00112         GenFuncQPlaneFieldId = GenFuncRPlaneFieldId + 1,
00113         SBeaconFieldId       = GenFuncQPlaneFieldId + 1,
00114         TBeaconFieldId       = SBeaconFieldId       + 1,
00115         RBeaconFieldId       = TBeaconFieldId       + 1,
00116         QBeaconFieldId       = RBeaconFieldId       + 1,
00117         NextFieldId          = QBeaconFieldId       + 1
00118     };

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

TexGenChunk::TexGenChunk ( void   )  [protected]

Definition at line 103 of file OSGTexGenChunk.cpp.

00103                              :
00104     Inherited()
00105 {
00106 }

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

Definition at line 108 of file OSGTexGenChunk.cpp.

00108                                                   :
00109     Inherited(source)
00110 {
00111 }

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

Definition at line 113 of file OSGTexGenChunk.cpp.

00114 {
00115 }


Member Function Documentation

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

Reimplemented from osg::StateChunk.

Definition at line 119 of file OSGTexGenChunk.cpp.

References _class.

00120 {
00121     return &_class;
00122 }

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

Reimplemented from osg::StateChunk.

Definition at line 46 of file OSGTexGenChunk.inl.

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

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

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

Reimplemented from osg::StateChunk.

Definition at line 52 of file OSGTexGenChunk.inl.

References _class.

Referenced by getStaticClassId().

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

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

Reimplemented from osg::StateChunk.

Definition at line 126 of file OSGTexGenChunk.cpp.

References osg::StateChunk::changed().

00127 {
00128     Inherited::changed(whichField, origin);
00129 }

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

Reimplemented from osg::StateChunk.

Definition at line 133 of file OSGTexGenChunk.cpp.

References SLOG.

00135 {
00136     SLOG << "Dump TexGenChunk NI" << std::endl;
00137 }

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

Reimplemented from osg::StateChunk.

Definition at line 179 of file OSGTexGenChunk.cpp.

References osg::TextureChunk::activateTexture(), FDEBUG, FWARNING, osg::DrawActionBase::getCamera(), osg::Window::getConstantValue(), osg::TexGenChunkBase::getGenFuncQ(), osg::TexGenChunkBase::getGenFuncQPlane(), osg::TexGenChunkBase::getGenFuncR(), osg::TexGenChunkBase::getGenFuncRPlane(), osg::TexGenChunkBase::getGenFuncS(), osg::TexGenChunkBase::getGenFuncSPlane(), osg::TexGenChunkBase::getGenFuncT(), osg::TexGenChunkBase::getGenFuncTPlane(), osg::Viewport::getPixelHeight(), osg::Viewport::getPixelWidth(), osg::TexGenChunkBase::getQBeacon(), osg::TexGenChunkBase::getRBeacon(), osg::TexGenChunkBase::getSBeacon(), osg::TexGenChunkBase::getTBeacon(), osg::Camera::getViewing(), osg::DrawActionBase::getViewport(), osg::DrawActionBase::getWindow(), GL_MAX_TEXTURE_COORDS_ARB, GL_MAX_TEXTURE_UNITS_ARB, glErr, setGenFunc(), and osg::Window::unknownConstant.

Referenced by changeFrom().

00180 {
00181     glErr("TexGenChunk::activate precheck");
00182  
00183     Window *win = action->getWindow();   
00184 
00185     Real32 ntexcoords;
00186     if((ntexcoords = win->getConstantValue(GL_MAX_TEXTURE_COORDS_ARB)) ==
00187        Window::unknownConstant
00188       )
00189     {
00190         ntexcoords = win->getConstantValue(GL_MAX_TEXTURE_UNITS_ARB);
00191         // sgi doesn't support GL_MAX_TEXTURE_UNITS_ARB!
00192         if(ntexcoords == Window::unknownConstant)
00193             ntexcoords = 1.0f;
00194     }
00195 
00196     if(idx >= static_cast<UInt32>(ntexcoords))
00197     {
00198 #ifdef OSG_DEBUG
00199         FWARNING(("TexGenChunk::activate: Trying to bind texcoord unit %d,"
00200                   " but Window %p only supports %d!\n",
00201                   idx, win, ntexcoords));
00202 #endif
00203         return;        
00204     }
00205         
00206     TextureChunk::activateTexture(win, idx);
00207 
00208     FDEBUG(("TexGenChunk::activate\n"));
00209 
00210     Matrix cameraMat;   
00211     Viewport *vp = action->getViewport();
00212     if(vp != NULL && action->getCamera() != NULL)
00213     {
00214         action->getCamera()->getViewing(cameraMat, vp->getPixelWidth(), 
00215                                         vp->getPixelHeight());
00216     }
00217 
00218     // genfuncs
00219     setGenFunc(GL_S, GL_TEXTURE_GEN_S, getGenFuncS(), getGenFuncSPlane(),
00220                 getSBeacon(), cameraMat);
00221     glErr("TexGenChunk::activateS");
00222     setGenFunc(GL_T, GL_TEXTURE_GEN_T, getGenFuncT(), getGenFuncTPlane(),
00223                 getTBeacon(), cameraMat);
00224     glErr("TexGenChunk::activateT");
00225     setGenFunc(GL_R, GL_TEXTURE_GEN_R, getGenFuncR(), getGenFuncRPlane(),
00226                 getRBeacon(), cameraMat);
00227     glErr("TexGenChunk::activateR");
00228     setGenFunc(GL_Q, GL_TEXTURE_GEN_Q, getGenFuncQ(), getGenFuncQPlane(),
00229                 getQBeacon(), cameraMat);
00230     glErr("TexGenChunk::activateQ");
00231 }

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

Reimplemented from osg::StateChunk.

Definition at line 267 of file OSGTexGenChunk.cpp.

References activate(), osg::TextureChunk::activateTexture(), changeGenFunc(), osg::StateChunk::deactivate(), FWARNING, osg::DrawActionBase::getCamera(), osg::Window::getConstantValue(), osg::TexGenChunkBase::getGenFuncQ(), osg::TexGenChunkBase::getGenFuncQPlane(), osg::TexGenChunkBase::getGenFuncR(), osg::TexGenChunkBase::getGenFuncRPlane(), osg::TexGenChunkBase::getGenFuncS(), osg::TexGenChunkBase::getGenFuncSPlane(), osg::TexGenChunkBase::getGenFuncT(), osg::TexGenChunkBase::getGenFuncTPlane(), osg::Viewport::getPixelHeight(), osg::Viewport::getPixelWidth(), osg::TexGenChunkBase::getQBeacon(), osg::TexGenChunkBase::getRBeacon(), osg::TexGenChunkBase::getSBeacon(), osg::TexGenChunkBase::getTBeacon(), osg::Camera::getViewing(), osg::DrawActionBase::getViewport(), osg::DrawActionBase::getWindow(), GL_MAX_TEXTURE_COORDS_ARB, GL_MAX_TEXTURE_UNITS_ARB, glErr, and osg::Window::unknownConstant.

00270 {
00271     // change from me to me?
00272     // this assumes I haven't changed in the meantime. 
00273     // is that a valid assumption?
00274     // No, for TexGen it's not, as TexGen depends on the current 
00275     // toWorld matrix!!!
00276     // if(old == this)
00277     //     return;
00278 
00279     TexGenChunk *oldp      = dynamic_cast<TexGenChunk *>(old);
00280     
00281     // If the old one is not a texgen chunk, deactivate it and activate
00282     // ourselves
00283     if(!oldp)
00284     {
00285         old->deactivate(action, idx);
00286         activate(action, idx);
00287         return;
00288     }
00289 
00290     glErr("TexGenChunk::changeFrom precheck");
00291 
00292     Window *win = action->getWindow();   
00293 
00294     Real32 ntexcoords;
00295     if((ntexcoords = win->getConstantValue(GL_MAX_TEXTURE_COORDS_ARB)) ==
00296        Window::unknownConstant
00297       )
00298     {
00299         ntexcoords = win->getConstantValue(GL_MAX_TEXTURE_UNITS_ARB);
00300         // sgi doesn't support GL_MAX_TEXTURE_UNITS_ARB!
00301         if(ntexcoords == Window::unknownConstant)
00302             ntexcoords = 1.0f;
00303     }
00304 
00305     if(idx >= static_cast<UInt32>(ntexcoords))
00306     {
00307 #ifdef OSG_DEBUG
00308         FWARNING(("TexGenChunk::changeFrom: Trying to bind texcoord unit "
00309                   "%d, but Window %p only supports %d!\n",
00310                   idx, win, ntexcoords));
00311 #endif
00312         return;        
00313     }
00314  
00315     Matrix cameraMat;   
00316     Viewport *vp = action->getViewport();
00317     if(vp != NULL && action->getCamera() != NULL)
00318     {
00319         action->getCamera()->getViewing(cameraMat, vp->getPixelWidth(), 
00320                                         vp->getPixelHeight());
00321     }
00322 
00323     TextureChunk::activateTexture(win, idx);
00324 
00325     changeGenFunc(oldp->getGenFuncS(), oldp->getSBeacon(), GL_S, 
00326                 GL_TEXTURE_GEN_S, 
00327                 getGenFuncS(), getGenFuncSPlane(), getSBeacon(), cameraMat);
00328     changeGenFunc(oldp->getGenFuncT(), oldp->getTBeacon(), GL_T, 
00329                 GL_TEXTURE_GEN_T, 
00330                 getGenFuncT(), getGenFuncTPlane(), getTBeacon(), cameraMat);
00331     changeGenFunc(oldp->getGenFuncR(), oldp->getRBeacon(), GL_R, 
00332                 GL_TEXTURE_GEN_R, 
00333                 getGenFuncR(), getGenFuncRPlane(), getRBeacon(), cameraMat);
00334     changeGenFunc(oldp->getGenFuncQ(), oldp->getQBeacon(), GL_Q, 
00335                 GL_TEXTURE_GEN_Q, 
00336                 getGenFuncQ(), getGenFuncQPlane(), getQBeacon(), cameraMat);
00337 
00338     glErr("TexGenChunk::changeFrom");
00339 }

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

Reimplemented from osg::StateChunk.

Definition at line 341 of file OSGTexGenChunk.cpp.

References osg::TextureChunk::activateTexture(), FWARNING, osg::Window::getConstantValue(), osg::TexGenChunkBase::getGenFuncQ(), osg::TexGenChunkBase::getGenFuncR(), osg::TexGenChunkBase::getGenFuncS(), osg::TexGenChunkBase::getGenFuncT(), osg::TexGenChunkBase::getQBeacon(), osg::TexGenChunkBase::getRBeacon(), osg::TexGenChunkBase::getSBeacon(), osg::TexGenChunkBase::getTBeacon(), osg::DrawActionBase::getWindow(), GL_MAX_TEXTURE_COORDS_ARB, GL_MAX_TEXTURE_UNITS_ARB, glErr, osg::NullFC, and osg::Window::unknownConstant.

00342 {
00343     glErr("TexGenChunk::deactivate precheck");
00344 
00345     Window *win = action->getWindow();   
00346 
00347     Real32 ntexcoords;
00348     if((ntexcoords = win->getConstantValue(GL_MAX_TEXTURE_COORDS_ARB)) ==
00349        Window::unknownConstant
00350       )
00351     {
00352         ntexcoords = win->getConstantValue(GL_MAX_TEXTURE_UNITS_ARB);
00353         // sgi doesn't support GL_MAX_TEXTURE_UNITS_ARB!
00354         if(ntexcoords == Window::unknownConstant)
00355             ntexcoords = 1.0f;
00356     }
00357 
00358     if(idx >= static_cast<UInt32>(ntexcoords))
00359     {
00360 #ifdef OSG_DEBUG
00361         FWARNING(("TexGenChunk::deactivate: Trying to bind texcoord unit %d,"
00362                   " but Window %p only supports %d!\n",
00363                   idx, win, ntexcoords));
00364 #endif
00365         return;        
00366     }
00367 
00368     TextureChunk::activateTexture(win, idx);
00369 
00370     if(getGenFuncS() != GL_NONE || getSBeacon() != NullFC)
00371         glDisable(GL_TEXTURE_GEN_S);
00372 
00373     if(getGenFuncT() != GL_NONE || getTBeacon() != NullFC)
00374         glDisable(GL_TEXTURE_GEN_T);
00375 
00376     if(getGenFuncR() != GL_NONE || getRBeacon() != NullFC)
00377         glDisable(GL_TEXTURE_GEN_R);
00378 
00379     if(getGenFuncQ() != GL_NONE || getQBeacon() != NullFC)
00380         glDisable(GL_TEXTURE_GEN_Q);
00381 
00382     glErr("TexGenChunk::deactivate");
00383 }

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

Reimplemented from osg::StateChunk.

Definition at line 387 of file OSGTexGenChunk.cpp.

00388 {
00389     return 0;
00390 }

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

Reimplemented from osg::StateChunk.

Definition at line 392 of file OSGTexGenChunk.cpp.

00393 {
00394     return this < &other;
00395 }

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

Reimplemented from osg::StateChunk.

Definition at line 397 of file OSGTexGenChunk.cpp.

References osg::TexGenChunkBase::getGenFuncQ(), osg::TexGenChunkBase::getGenFuncQPlane(), osg::TexGenChunkBase::getGenFuncR(), osg::TexGenChunkBase::getGenFuncRPlane(), osg::TexGenChunkBase::getGenFuncS(), osg::TexGenChunkBase::getGenFuncSPlane(), osg::TexGenChunkBase::getGenFuncT(), and osg::TexGenChunkBase::getGenFuncTPlane().

00398 {
00399     TexGenChunk const *tother = dynamic_cast<TexGenChunk const*>(&other);
00400 
00401     if(!tother)
00402         return false;
00403 
00404     if(tother == this)
00405         return true;
00406 
00407     return  getGenFuncS()   == tother->getGenFuncS() &&
00408             getGenFuncT()   == tother->getGenFuncT() &&
00409             getGenFuncR()   == tother->getGenFuncR() &&
00410             getGenFuncQ()   == tother->getGenFuncQ() &&
00411             // not quite right. needs only to be tested for genfuncs using them
00412             getGenFuncSPlane()  == tother->getGenFuncSPlane() &&
00413             getGenFuncTPlane()  == tother->getGenFuncTPlane() &&
00414             getGenFuncRPlane()  == tother->getGenFuncRPlane() &&
00415             getGenFuncQPlane()  == tother->getGenFuncQPlane() ;
00416 }

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

Reimplemented from osg::StateChunk.

Definition at line 418 of file OSGTexGenChunk.cpp.

00419 {
00420     return ! (*this == other);
00421 }

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

Reimplemented from osg::StateChunk.

Definition at line 91 of file OSGTexGenChunk.cpp.

00092 {
00093 }

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

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

Reimplemented from osg::StateChunkBase.

Definition at line 58 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_type.

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

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::StateChunkBase.

Definition at line 65 of file OSGTexGenChunkBase.inl.

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

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

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

Reimplemented from osg::StateChunkBase.

Definition at line 231 of file OSGTexGenChunkBase.cpp.

References osg::TexGenChunkBase::_type.

00232 {
00233     return _type; 
00234 } 

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

Reimplemented from osg::StateChunkBase.

Definition at line 236 of file OSGTexGenChunkBase.cpp.

References osg::TexGenChunkBase::_type.

00237 {
00238     return _type;
00239 } 

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

Reimplemented from osg::StateChunkBase.

Definition at line 251 of file OSGTexGenChunkBase.cpp.

00252 { 
00253     return sizeof(TexGenChunk); 
00254 }

SFGLenum * osg::TexGenChunkBase::getSFGenFuncS ( void   )  [inline, inherited]

Definition at line 101 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncS.

00102 {
00103     return &_sfGenFuncS;
00104 }

SFGLenum * osg::TexGenChunkBase::getSFGenFuncT ( void   )  [inline, inherited]

Definition at line 108 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncT.

00109 {
00110     return &_sfGenFuncT;
00111 }

SFGLenum * osg::TexGenChunkBase::getSFGenFuncR ( void   )  [inline, inherited]

Definition at line 115 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncR.

00116 {
00117     return &_sfGenFuncR;
00118 }

SFGLenum * osg::TexGenChunkBase::getSFGenFuncQ ( void   )  [inline, inherited]

Definition at line 122 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncQ.

00123 {
00124     return &_sfGenFuncQ;
00125 }

SFVec4f * osg::TexGenChunkBase::getSFGenFuncSPlane ( void   )  [inline, inherited]

Definition at line 129 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncSPlane.

00130 {
00131     return &_sfGenFuncSPlane;
00132 }

SFVec4f * osg::TexGenChunkBase::getSFGenFuncTPlane ( void   )  [inline, inherited]

Definition at line 136 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncTPlane.

00137 {
00138     return &_sfGenFuncTPlane;
00139 }

SFVec4f * osg::TexGenChunkBase::getSFGenFuncRPlane ( void   )  [inline, inherited]

Definition at line 143 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncRPlane.

00144 {
00145     return &_sfGenFuncRPlane;
00146 }

SFVec4f * osg::TexGenChunkBase::getSFGenFuncQPlane ( void   )  [inline, inherited]

Definition at line 150 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncQPlane.

00151 {
00152     return &_sfGenFuncQPlane;
00153 }

SFNodePtr * osg::TexGenChunkBase::getSFSBeacon ( void   )  [inline, inherited]

Definition at line 157 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfSBeacon.

00158 {
00159     return &_sfSBeacon;
00160 }

SFNodePtr * osg::TexGenChunkBase::getSFTBeacon ( void   )  [inline, inherited]

Definition at line 164 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfTBeacon.

00165 {
00166     return &_sfTBeacon;
00167 }

SFNodePtr * osg::TexGenChunkBase::getSFRBeacon ( void   )  [inline, inherited]

Definition at line 171 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfRBeacon.

00172 {
00173     return &_sfRBeacon;
00174 }

SFNodePtr * osg::TexGenChunkBase::getSFQBeacon ( void   )  [inline, inherited]

Definition at line 178 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfQBeacon.

00179 {
00180     return &_sfQBeacon;
00181 }

GLenum & osg::TexGenChunkBase::getGenFuncS ( void   )  [inline, inherited]

Definition at line 186 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncS, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

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

const GLenum & osg::TexGenChunkBase::getGenFuncS ( void   )  const [inline, inherited]

Definition at line 193 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncS, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

GLenum & osg::TexGenChunkBase::getGenFuncT ( void   )  [inline, inherited]

Definition at line 207 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncT, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

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

const GLenum & osg::TexGenChunkBase::getGenFuncT ( void   )  const [inline, inherited]

Definition at line 214 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncT, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

GLenum & osg::TexGenChunkBase::getGenFuncR ( void   )  [inline, inherited]

Definition at line 228 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncR, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

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

const GLenum & osg::TexGenChunkBase::getGenFuncR ( void   )  const [inline, inherited]

Definition at line 235 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncR, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

GLenum & osg::TexGenChunkBase::getGenFuncQ ( void   )  [inline, inherited]

Definition at line 249 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncQ, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

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

const GLenum & osg::TexGenChunkBase::getGenFuncQ ( void   )  const [inline, inherited]

Definition at line 256 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncQ, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

Vec4f & osg::TexGenChunkBase::getGenFuncSPlane ( void   )  [inline, inherited]

Definition at line 270 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncSPlane, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

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

const Vec4f & osg::TexGenChunkBase::getGenFuncSPlane ( void   )  const [inline, inherited]

Definition at line 277 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncSPlane, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

Vec4f & osg::TexGenChunkBase::getGenFuncTPlane ( void   )  [inline, inherited]

Definition at line 291 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncTPlane, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

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

const Vec4f & osg::TexGenChunkBase::getGenFuncTPlane ( void   )  const [inline, inherited]

Definition at line 298 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncTPlane, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

Vec4f & osg::TexGenChunkBase::getGenFuncRPlane ( void   )  [inline, inherited]

Definition at line 312 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncRPlane, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

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

const Vec4f & osg::TexGenChunkBase::getGenFuncRPlane ( void   )  const [inline, inherited]

Definition at line 319 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncRPlane, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

Vec4f & osg::TexGenChunkBase::getGenFuncQPlane ( void   )  [inline, inherited]

Definition at line 333 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncQPlane, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

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

const Vec4f & osg::TexGenChunkBase::getGenFuncQPlane ( void   )  const [inline, inherited]

Definition at line 340 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncQPlane, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

NodePtr & osg::TexGenChunkBase::getSBeacon ( void   )  [inline, inherited]

Definition at line 354 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfSBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

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

const NodePtr & osg::TexGenChunkBase::getSBeacon ( void   )  const [inline, inherited]

Definition at line 361 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfSBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

NodePtr & osg::TexGenChunkBase::getTBeacon ( void   )  [inline, inherited]

Definition at line 375 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfTBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

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

const NodePtr & osg::TexGenChunkBase::getTBeacon ( void   )  const [inline, inherited]

Definition at line 382 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfTBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

NodePtr & osg::TexGenChunkBase::getRBeacon ( void   )  [inline, inherited]

Definition at line 396 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfRBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

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

const NodePtr & osg::TexGenChunkBase::getRBeacon ( void   )  const [inline, inherited]

Definition at line 403 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfRBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

NodePtr & osg::TexGenChunkBase::getQBeacon ( void   )  [inline, inherited]

Definition at line 417 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfQBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

00418 {
00419     return _sfQBeacon.getValue();
00420 }

const NodePtr & osg::TexGenChunkBase::getQBeacon ( void   )  const [inline, inherited]

Definition at line 424 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfQBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00425 {
00426     return _sfQBeacon.getValue();
00427 }

void osg::TexGenChunkBase::setGenFuncS ( const GLenum &  value  )  [inline, inherited]

Definition at line 200 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncS, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

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

void osg::TexGenChunkBase::setGenFuncT ( const GLenum &  value  )  [inline, inherited]

Definition at line 221 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncT, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

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

void osg::TexGenChunkBase::setGenFuncR ( const GLenum &  value  )  [inline, inherited]

Definition at line 242 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncR, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

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

void osg::TexGenChunkBase::setGenFuncQ ( const GLenum &  value  )  [inline, inherited]

Definition at line 263 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfGenFuncQ, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

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

void osg::TexGenChunkBase::setGenFuncSPlane ( const Vec4f value  )  [inline, inherited]

void osg::TexGenChunkBase::setGenFuncTPlane ( const Vec4f value  )  [inline, inherited]

void osg::TexGenChunkBase::setGenFuncRPlane ( const Vec4f value  )  [inline, inherited]

void osg::TexGenChunkBase::setGenFuncQPlane ( const Vec4f value  )  [inline, inherited]

void osg::TexGenChunkBase::setSBeacon ( const NodePtr value  )  [inline, inherited]

Definition at line 368 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfSBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

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

void osg::TexGenChunkBase::setTBeacon ( const NodePtr value  )  [inline, inherited]

Definition at line 389 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfTBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00390 {
00391     _sfTBeacon.setValue(value);
00392 }

void osg::TexGenChunkBase::setRBeacon ( const NodePtr value  )  [inline, inherited]

Definition at line 410 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfRBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00411 {
00412     _sfRBeacon.setValue(value);
00413 }

void osg::TexGenChunkBase::setQBeacon ( const NodePtr value  )  [inline, inherited]

Definition at line 431 of file OSGTexGenChunkBase.inl.

References osg::TexGenChunkBase::_sfQBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00432 {
00433     _sfQBeacon.setValue(value);
00434 }

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

Reimplemented from osg::StateChunkBase.

Definition at line 335 of file OSGTexGenChunkBase.cpp.

References osg::TexGenChunkBase::_sfGenFuncQ, osg::TexGenChunkBase::_sfGenFuncQPlane, osg::TexGenChunkBase::_sfGenFuncR, osg::TexGenChunkBase::_sfGenFuncRPlane, osg::TexGenChunkBase::_sfGenFuncS, osg::TexGenChunkBase::_sfGenFuncSPlane, osg::TexGenChunkBase::_sfGenFuncT, osg::TexGenChunkBase::_sfGenFuncTPlane, osg::TexGenChunkBase::_sfQBeacon, osg::TexGenChunkBase::_sfRBeacon, osg::TexGenChunkBase::_sfSBeacon, osg::TexGenChunkBase::_sfTBeacon, osg::TexGenChunkBase::GenFuncQFieldMask, osg::TexGenChunkBase::GenFuncQPlaneFieldMask, osg::TexGenChunkBase::GenFuncRFieldMask, osg::TexGenChunkBase::GenFuncRPlaneFieldMask, osg::TexGenChunkBase::GenFuncSFieldMask, osg::TexGenChunkBase::GenFuncSPlaneFieldMask, osg::TexGenChunkBase::GenFuncTFieldMask, osg::TexGenChunkBase::GenFuncTPlaneFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::StateChunkBase::getBinSize(), osg::FieldBits::NoField, osg::TexGenChunkBase::QBeaconFieldMask, osg::TexGenChunkBase::RBeaconFieldMask, osg::TexGenChunkBase::SBeaconFieldMask, and osg::TexGenChunkBase::TBeaconFieldMask.

00336 {
00337     UInt32 returnValue = Inherited::getBinSize(whichField);
00338 
00339     if(FieldBits::NoField != (GenFuncSFieldMask & whichField))
00340     {
00341         returnValue += _sfGenFuncS.getBinSize();
00342     }
00343 
00344     if(FieldBits::NoField != (GenFuncTFieldMask & whichField))
00345     {
00346         returnValue += _sfGenFuncT.getBinSize();
00347     }
00348 
00349     if(FieldBits::NoField != (GenFuncRFieldMask & whichField))
00350     {
00351         returnValue += _sfGenFuncR.getBinSize();
00352     }
00353 
00354     if(FieldBits::NoField != (GenFuncQFieldMask & whichField))
00355     {
00356         returnValue += _sfGenFuncQ.getBinSize();
00357     }
00358 
00359     if(FieldBits::NoField != (GenFuncSPlaneFieldMask & whichField))
00360     {
00361         returnValue += _sfGenFuncSPlane.getBinSize();
00362     }
00363 
00364     if(FieldBits::NoField != (GenFuncTPlaneFieldMask & whichField))
00365     {
00366         returnValue += _sfGenFuncTPlane.getBinSize();
00367     }
00368 
00369     if(FieldBits::NoField != (GenFuncRPlaneFieldMask & whichField))
00370     {
00371         returnValue += _sfGenFuncRPlane.getBinSize();
00372     }
00373 
00374     if(FieldBits::NoField != (GenFuncQPlaneFieldMask & whichField))
00375     {
00376         returnValue += _sfGenFuncQPlane.getBinSize();
00377     }
00378 
00379     if(FieldBits::NoField != (SBeaconFieldMask & whichField))
00380     {
00381         returnValue += _sfSBeacon.getBinSize();
00382     }
00383 
00384     if(FieldBits::NoField != (TBeaconFieldMask & whichField))
00385     {
00386         returnValue += _sfTBeacon.getBinSize();
00387     }
00388 
00389     if(FieldBits::NoField != (RBeaconFieldMask & whichField))
00390     {
00391         returnValue += _sfRBeacon.getBinSize();
00392     }
00393 
00394     if(FieldBits::NoField != (QBeaconFieldMask & whichField))
00395     {
00396         returnValue += _sfQBeacon.getBinSize();
00397     }
00398 
00399 
00400     return returnValue;
00401 }

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

Reimplemented from osg::StateChunkBase.

Definition at line 403 of file OSGTexGenChunkBase.cpp.

References osg::TexGenChunkBase::_sfGenFuncQ, osg::TexGenChunkBase::_sfGenFuncQPlane, osg::TexGenChunkBase::_sfGenFuncR, osg::TexGenChunkBase::_sfGenFuncRPlane, osg::TexGenChunkBase::_sfGenFuncS, osg::TexGenChunkBase::_sfGenFuncSPlane, osg::TexGenChunkBase::_sfGenFuncT, osg::TexGenChunkBase::_sfGenFuncTPlane, osg::TexGenChunkBase::_sfQBeacon, osg::TexGenChunkBase::_sfRBeacon, osg::TexGenChunkBase::_sfSBeacon, osg::TexGenChunkBase::_sfTBeacon, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::StateChunkBase::copyToBin(), osg::TexGenChunkBase::GenFuncQFieldMask, osg::TexGenChunkBase::GenFuncQPlaneFieldMask, osg::TexGenChunkBase::GenFuncRFieldMask, osg::TexGenChunkBase::GenFuncRPlaneFieldMask, osg::TexGenChunkBase::GenFuncSFieldMask, osg::TexGenChunkBase::GenFuncSPlaneFieldMask, osg::TexGenChunkBase::GenFuncTFieldMask, osg::TexGenChunkBase::GenFuncTPlaneFieldMask, osg::FieldBits::NoField, osg::TexGenChunkBase::QBeaconFieldMask, osg::TexGenChunkBase::RBeaconFieldMask, osg::TexGenChunkBase::SBeaconFieldMask, and osg::TexGenChunkBase::TBeaconFieldMask.

00405 {
00406     Inherited::copyToBin(pMem, whichField);
00407 
00408     if(FieldBits::NoField != (GenFuncSFieldMask & whichField))
00409     {
00410         _sfGenFuncS.copyToBin(pMem);
00411     }
00412 
00413     if(FieldBits::NoField != (GenFuncTFieldMask & whichField))
00414     {
00415         _sfGenFuncT.copyToBin(pMem);
00416     }
00417 
00418     if(FieldBits::NoField != (GenFuncRFieldMask & whichField))
00419     {
00420         _sfGenFuncR.copyToBin(pMem);
00421     }
00422 
00423     if(FieldBits::NoField != (GenFuncQFieldMask & whichField))
00424     {
00425         _sfGenFuncQ.copyToBin(pMem);
00426     }
00427 
00428     if(FieldBits::NoField != (GenFuncSPlaneFieldMask & whichField))
00429     {
00430         _sfGenFuncSPlane.copyToBin(pMem);
00431     }
00432 
00433     if(FieldBits::NoField != (GenFuncTPlaneFieldMask & whichField))
00434     {
00435         _sfGenFuncTPlane.copyToBin(pMem);
00436     }
00437 
00438     if(FieldBits::NoField != (GenFuncRPlaneFieldMask & whichField))
00439     {
00440         _sfGenFuncRPlane.copyToBin(pMem);
00441     }
00442 
00443     if(FieldBits::NoField != (GenFuncQPlaneFieldMask & whichField))
00444     {
00445         _sfGenFuncQPlane.copyToBin(pMem);
00446     }
00447 
00448     if(FieldBits::NoField != (SBeaconFieldMask & whichField))
00449     {
00450         _sfSBeacon.copyToBin(pMem);
00451     }
00452 
00453     if(FieldBits::NoField != (TBeaconFieldMask & whichField))
00454     {
00455         _sfTBeacon.copyToBin(pMem);
00456     }
00457 
00458     if(FieldBits::NoField != (RBeaconFieldMask & whichField))
00459     {
00460         _sfRBeacon.copyToBin(pMem);
00461     }
00462 
00463     if(FieldBits::NoField != (QBeaconFieldMask & whichField))
00464     {
00465         _sfQBeacon.copyToBin(pMem);
00466     }
00467 
00468 
00469 }

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

Reimplemented from osg::StateChunkBase.

Definition at line 471 of file OSGTexGenChunkBase.cpp.

References osg::TexGenChunkBase::_sfGenFuncQ, osg::TexGenChunkBase::_sfGenFuncQPlane, osg::TexGenChunkBase::_sfGenFuncR, osg::TexGenChunkBase::_sfGenFuncRPlane, osg::TexGenChunkBase::_sfGenFuncS, osg::TexGenChunkBase::_sfGenFuncSPlane, osg::TexGenChunkBase::_sfGenFuncT, osg::TexGenChunkBase::_sfGenFuncTPlane, osg::TexGenChunkBase::_sfQBeacon, osg::TexGenChunkBase::_sfRBeacon, osg::TexGenChunkBase::_sfSBeacon, osg::TexGenChunkBase::_sfTBeacon, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::StateChunkBase::copyFromBin(), osg::TexGenChunkBase::GenFuncQFieldMask, osg::TexGenChunkBase::GenFuncQPlaneFieldMask, osg::TexGenChunkBase::GenFuncRFieldMask, osg::TexGenChunkBase::GenFuncRPlaneFieldMask, osg::TexGenChunkBase::GenFuncSFieldMask, osg::TexGenChunkBase::GenFuncSPlaneFieldMask, osg::TexGenChunkBase::GenFuncTFieldMask, osg::TexGenChunkBase::GenFuncTPlaneFieldMask, osg::FieldBits::NoField, osg::TexGenChunkBase::QBeaconFieldMask, osg::TexGenChunkBase::RBeaconFieldMask, osg::TexGenChunkBase::SBeaconFieldMask, and osg::TexGenChunkBase::TBeaconFieldMask.

00473 {
00474     Inherited::copyFromBin(pMem, whichField);
00475 
00476     if(FieldBits::NoField != (GenFuncSFieldMask & whichField))
00477     {
00478         _sfGenFuncS.copyFromBin(pMem);
00479     }
00480 
00481     if(FieldBits::NoField != (GenFuncTFieldMask & whichField))
00482     {
00483         _sfGenFuncT.copyFromBin(pMem);
00484     }
00485 
00486     if(FieldBits::NoField != (GenFuncRFieldMask & whichField))
00487     {
00488         _sfGenFuncR.copyFromBin(pMem);
00489     }
00490 
00491     if(FieldBits::NoField != (GenFuncQFieldMask & whichField))
00492     {
00493         _sfGenFuncQ.copyFromBin(pMem);
00494     }
00495 
00496     if(FieldBits::NoField != (GenFuncSPlaneFieldMask & whichField))
00497     {
00498         _sfGenFuncSPlane.copyFromBin(pMem);
00499     }
00500 
00501     if(FieldBits::NoField != (GenFuncTPlaneFieldMask & whichField))
00502     {
00503         _sfGenFuncTPlane.copyFromBin(pMem);
00504     }
00505 
00506     if(FieldBits::NoField != (GenFuncRPlaneFieldMask & whichField))
00507     {
00508         _sfGenFuncRPlane.copyFromBin(pMem);
00509     }
00510 
00511     if(FieldBits::NoField != (GenFuncQPlaneFieldMask & whichField))
00512     {
00513         _sfGenFuncQPlane.copyFromBin(pMem);
00514     }
00515 
00516     if(FieldBits::NoField != (SBeaconFieldMask & whichField))
00517     {
00518         _sfSBeacon.copyFromBin(pMem);
00519     }
00520 
00521     if(FieldBits::NoField != (TBeaconFieldMask & whichField))
00522     {
00523         _sfTBeacon.copyFromBin(pMem);
00524     }
00525 
00526     if(FieldBits::NoField != (RBeaconFieldMask & whichField))
00527     {
00528         _sfRBeacon.copyFromBin(pMem);
00529     }
00530 
00531     if(FieldBits::NoField != (QBeaconFieldMask & whichField))
00532     {
00533         _sfQBeacon.copyFromBin(pMem);
00534     }
00535 
00536 
00537 }

TexGenChunkPtr osg::TexGenChunkBase::create ( void   )  [inline, static, inherited]

Reimplemented from osg::Attachment.

Definition at line 72 of file OSGTexGenChunkBase.inl.

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

Referenced by osg::SimpleTexturedMaterial::prepareLocalChunks(), and osg::FresnelMaterial::prepareLocalChunks().

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

TexGenChunkPtr osg::TexGenChunkBase::createEmpty ( void   )  [inline, static, inherited]

Reimplemented from osg::Attachment.

Definition at line 87 of file OSGTexGenChunkBase.inl.

References osg::FieldContainer::newPtr().

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

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

Reimplemented from osg::Attachment.

Definition at line 242 of file OSGTexGenChunkBase.cpp.

References osg::FieldContainer::newPtr().

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

00243 { 
00244     TexGenChunkPtr returnValue; 
00245 
00246     newPtr(returnValue, dynamic_cast<const TexGenChunk *>(this)); 
00247 
00248     return returnValue; 
00249 }

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

Definition at line 540 of file OSGTexGenChunkBase.cpp.

References osg::TexGenChunkBase::_sfGenFuncQ, osg::TexGenChunkBase::_sfGenFuncQPlane, osg::TexGenChunkBase::_sfGenFuncR, osg::TexGenChunkBase::_sfGenFuncRPlane, osg::TexGenChunkBase::_sfGenFuncS, osg::TexGenChunkBase::_sfGenFuncSPlane, osg::TexGenChunkBase::_sfGenFuncT, osg::TexGenChunkBase::_sfGenFuncTPlane, osg::TexGenChunkBase::_sfQBeacon, osg::TexGenChunkBase::_sfRBeacon, osg::TexGenChunkBase::_sfSBeacon, osg::TexGenChunkBase::_sfTBeacon, osg::StateChunkBase::executeSyncImpl(), osg::TexGenChunkBase::GenFuncQFieldMask, osg::TexGenChunkBase::GenFuncQPlaneFieldMask, osg::TexGenChunkBase::GenFuncRFieldMask, osg::TexGenChunkBase::GenFuncRPlaneFieldMask, osg::TexGenChunkBase::GenFuncSFieldMask, osg::TexGenChunkBase::GenFuncSPlaneFieldMask, osg::TexGenChunkBase::GenFuncTFieldMask, osg::TexGenChunkBase::GenFuncTPlaneFieldMask, osg::FieldBits::NoField, osg::TexGenChunkBase::QBeaconFieldMask, osg::TexGenChunkBase::RBeaconFieldMask, osg::TexGenChunkBase::SBeaconFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), and osg::TexGenChunkBase::TBeaconFieldMask.

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

00542 {
00543 
00544     Inherited::executeSyncImpl(pOther, whichField);
00545 
00546     if(FieldBits::NoField != (GenFuncSFieldMask & whichField))
00547         _sfGenFuncS.syncWith(pOther->_sfGenFuncS);
00548 
00549     if(FieldBits::NoField != (GenFuncTFieldMask & whichField))
00550         _sfGenFuncT.syncWith(pOther->_sfGenFuncT);
00551 
00552     if(FieldBits::NoField != (GenFuncRFieldMask & whichField))
00553         _sfGenFuncR.syncWith(pOther->_sfGenFuncR);
00554 
00555     if(FieldBits::NoField != (GenFuncQFieldMask & whichField))
00556         _sfGenFuncQ.syncWith(pOther->_sfGenFuncQ);
00557 
00558     if(FieldBits::NoField != (GenFuncSPlaneFieldMask & whichField))
00559         _sfGenFuncSPlane.syncWith(pOther->_sfGenFuncSPlane);
00560 
00561     if(FieldBits::NoField != (GenFuncTPlaneFieldMask & whichField))
00562         _sfGenFuncTPlane.syncWith(pOther->_sfGenFuncTPlane);
00563 
00564     if(FieldBits::NoField != (GenFuncRPlaneFieldMask & whichField))
00565         _sfGenFuncRPlane.syncWith(pOther->_sfGenFuncRPlane);
00566 
00567     if(FieldBits::NoField != (GenFuncQPlaneFieldMask & whichField))
00568         _sfGenFuncQPlane.syncWith(pOther->_sfGenFuncQPlane);
00569 
00570     if(FieldBits::NoField != (SBeaconFieldMask & whichField))
00571         _sfSBeacon.syncWith(pOther->_sfSBeacon);
00572 
00573     if(FieldBits::NoField != (TBeaconFieldMask & whichField))
00574         _sfTBeacon.syncWith(pOther->_sfTBeacon);
00575 
00576     if(FieldBits::NoField != (RBeaconFieldMask & whichField))
00577         _sfRBeacon.syncWith(pOther->_sfRBeacon);
00578 
00579     if(FieldBits::NoField != (QBeaconFieldMask & whichField))
00580         _sfQBeacon.syncWith(pOther->_sfQBeacon);
00581 
00582 
00583 }

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

Reimplemented from osg::StateChunkBase.

Definition at line 258 of file OSGTexGenChunkBase.cpp.

References osg::TexGenChunkBase::executeSyncImpl().

00260 {
00261     this->executeSyncImpl((TexGenChunkBase *) &other, whichField);
00262 }

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 }

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 }

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

Definition at line 140 of file OSGTexGenChunk.h.

friend class TexGenChunkBase [friend]

Definition at line 141 of file OSGTexGenChunk.h.


Member Data Documentation

Definition at line 146 of file OSGTexGenChunk.h.

Referenced by getClass(), and getStaticClass().

Initial value:

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

Reimplemented from osg::StateChunkBase.

Definition at line 134 of file OSGTexGenChunkBase.h.

GLenum TexGenChunkBase::_sfGenFuncS [protected, inherited]

GLenum TexGenChunkBase::_sfGenFuncT [protected, inherited]

GLenum TexGenChunkBase::_sfGenFuncR [protected, inherited]

GLenum TexGenChunkBase::_sfGenFuncQ [protected, inherited]

Vec4f TexGenChunkBase::_sfGenFuncSPlane [protected, inherited]

Vec4f TexGenChunkBase::_sfGenFuncTPlane [protected, inherited]

Vec4f TexGenChunkBase::_sfGenFuncRPlane [protected, inherited]

Vec4f TexGenChunkBase::_sfGenFuncQPlane [protected, inherited]

NodePtr TexGenChunkBase::_sfSBeacon [protected, inherited]

NodePtr TexGenChunkBase::_sfTBeacon [protected, inherited]

NodePtr TexGenChunkBase::_sfRBeacon [protected, inherited]

NodePtr TexGenChunkBase::_sfQBeacon [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 12:13:35 2008 for OpenSG by  doxygen 1.5.5