Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

osg::StateSet Class Reference

Encapsulates OpenGL state modes and attributes. More...

Inheritance diagram for osg::StateSet:

Inheritance graph
[legend]
List of all members.

Public Types

typedef std::map< StateAttribute::GLMode,
StateAttribute::GLModeValue > 
ModeList
 a container to map GLModes to their respective GLModeValues.

typedef std::pair< ref_ptr<
StateAttribute >, StateAttribute::OverrideValue > 
RefAttributePair
 simple pairing between an attribute and its override flag.

typedef std::map< StateAttribute::Type,
RefAttributePair > 
AttributeList
 a container to map StateAttribyte::Types to their respective RefAttributePair.

typedef std::vector< ModeList > TextureModeList
typedef std::vector< AttributeList > TextureAttributeList
enum  RenderingHint { DEFAULT_BIN = 0, OPAQUE_BIN = 1, TRANSPARENT_BIN = 2 }
enum  RenderBinMode { INHERIT_RENDERBIN_DETAILS, USE_RENDERBIN_DETAILS, OVERRIDE_RENDERBIN_DETAILS, ENCLOSE_RENDERBIN_DETAILS }

Public Methods

 StateSet ()
 StateSet (const StateSet &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual Object * cloneType () const
 Clone the type of an object, with Object* return type.

virtual Object * clone (const CopyOp &copyop) const
 Clone the an object, with Object* return type.

virtual bool isSameKindAs (const Object *obj) const
virtual const char * libraryName () const
 return the name of the object's library.

virtual const char * className () const
 return the name of the object's class type.

int compare (const StateSet &rhs, bool compareAttributeContents=false) const
 return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.

bool operator< (const StateSet &rhs) const
bool operator== (const StateSet &rhs) const
bool operator!= (const StateSet &rhs) const
void setGlobalDefaults ()
 set all the modes to on or off so that it defines a complete state, typically used for a default global state.

void setAllToInherit ()
 set all the modes to inherit, typically used to signify nodes which inherit all of their modes for the global state.

void merge (const StateSet &rhs)
 merge this stateset with stateset rhs, this overrides the rhs if OVERRIDE is specified, otherwise rhs takes precedence.

void setMode (const StateAttribute::GLMode mode, const StateAttribute::GLModeValue value)
 set this StateSet to contain specified GLMode and value.

void setModeToInherit (const StateAttribute::GLMode mode)
 set this StateSet to inherit specified GLMode type from parents.

const StateAttribute::GLModeValue getMode (const StateAttribute::GLMode mode) const
 get specified GLModeValue for specified GLMode.

ModeList & getModeList ()
 return the list of all GLModes contained in this StateSet.

const ModeList & getModeList () const
 return the const list of all GLModes contained in this const StateSet.

void setAttribute (StateAttribute *attribute, const StateAttribute::OverrideValue value=StateAttribute::OFF)
 set this StateSet to contain specified attribute and override flag.

void setAttributeAndModes (StateAttribute *attribute, const StateAttribute::GLModeValue value=StateAttribute::ON)
 set this StateSet to contain specified attribute and set the associated GLMode's to specified value.

void setAttributeToInherit (const StateAttribute::Type type)
 set this StateSet to inherit specified attribute type from parents.

StateAttribute * getAttribute (const StateAttribute::Type type)
 get specified StateAttribute for specified type.

const StateAttribute * getAttribute (const StateAttribute::Type type) const
 get specified const StateAttribute for specified type.

const RefAttributePair * getAttributePair (const StateAttribute::Type type) const
 get specified RefAttributePair for specified type.

AttributeList & getAttributeList ()
 return the list of all StateAttributes contained in this StateSet.

const AttributeList & getAttributeList () const
 return the const list of all StateAttributes contained in this const StateSet.

void setTextureMode (unsigned int unit, const StateAttribute::GLMode mode, const StateAttribute::GLModeValue value)
 set this StateSet to contain specified GLMode and value.

void setTextureModeToInherit (unsigned int unit, const StateAttribute::GLMode mode)
 set this StateSet to inherit specified GLMode type from parents.

const StateAttribute::GLModeValue getTextureMode (unsigned int unit, const StateAttribute::GLMode mode) const
 get specified GLModeValue for specified GLMode.

TextureModeList & getTextureModeList ()
 return the list of all Texture related GLModes contained in this StateSet.

const TextureModeList & getTextureModeList () const
 return the const list of all Texture related GLModes contained in this const StateSet.

void setTextureAttribute (unsigned int unit, StateAttribute *attribute, const StateAttribute::OverrideValue value=StateAttribute::OFF)
 set this StateSet to contain specified attribute and override flag.

void setTextureAttributeAndModes (unsigned int unit, StateAttribute *attribute, const StateAttribute::GLModeValue value=StateAttribute::ON)
 set this StateSet to contain specified attribute and set the associated GLMode's to specified value.

void setTextureAttributeToInherit (unsigned int unit, const StateAttribute::Type type)
 set this StateSet to inherit specified attribute type from parents.

StateAttribute * getTextureAttribute (unsigned int unit, const StateAttribute::Type type)
 get specified Texture related StateAttribute for specified type.

const StateAttribute * getTextureAttribute (unsigned int unit, const StateAttribute::Type type) const
 get specified Texture related const StateAttribute for specified type.

const RefAttributePair * getTextureAttributePair (unsigned int unit, const StateAttribute::Type type) const
 get specified Texture related RefAttributePair for specified type.

TextureAttributeList & getTextureAttributeList ()
 return the list of all Texture related StateAttributes contained in this StateSet.

const TextureAttributeList & getTextureAttributeList () const
 return the const list of all Texture related StateAttributes contained in this const StateSet.

void setAssociatedModes (const StateAttribute *attribute, const StateAttribute::GLModeValue value)
void setAssociatedTextureModes (unsigned int unit, const StateAttribute *attribute, const StateAttribute::GLModeValue value)
void setRenderingHint (const int hint)
 set the RenderingHint of the StateSet.

const int getRenderingHint () const
 get the RenderingHint of the StateSet.

void setRenderBinDetails (const int binNum, const std::string &binName, const RenderBinMode mode=USE_RENDERBIN_DETAILS)
 set the render bin details.

void setRendingBinToInherit ()
 set the render bin details to inherit.

const RenderBinMode getRenderBinMode () const
 get the render bin mode.

const bool useRenderBinDetails () const
 get whether the render bin details are set and should be used.

const int getBinNumber () const
 get the render bin number.

const std::string & getBinName () const
 get the render bin name.

void compile (State &state) const
 call compile on all StateAttributes contained within this StateSet.


Protected Methods

virtual ~StateSet ()
StateSet & operator= (const StateSet &)
ModeList & getOrCreateTextureModeList (unsigned int unit)
AttributeList & getOrCreateTextureAttributeList (unsigned int unit)
int compareModes (const ModeList &lhs, const ModeList &rhs)
int compareAttributePtrs (const AttributeList &lhs, const AttributeList &rhs)
int compareAttributeContents (const AttributeList &lhs, const AttributeList &rhs)
void setMode (ModeList &modeList, const StateAttribute::GLMode mode, const StateAttribute::GLModeValue value)
void setModeToInherit (ModeList &modeList, const StateAttribute::GLMode mode)
const StateAttribute::GLModeValue getMode (const ModeList &modeList, const StateAttribute::GLMode mode) const
void setAssociatedModes (ModeList &modeList, const StateAttribute *attribute, const StateAttribute::GLModeValue value)
void setAttribute (AttributeList &attributeList, StateAttribute *attribute, const StateAttribute::OverrideValue value=StateAttribute::OFF)
StateAttribute * getAttribute (AttributeList &attributeList, const StateAttribute::Type type)
const StateAttribute * getAttribute (const AttributeList &attributeList, const StateAttribute::Type type) const
const RefAttributePair * getAttributePair (const AttributeList &attributeList, const StateAttribute::Type type) const

Protected Attributes

ModeList _modeList
AttributeList _attributeList
TextureModeList _textureModeList
TextureAttributeList _textureAttributeList
int _renderingHint
RenderBinMode _binMode
int _binNum
std::string _binName

Detailed Description

Encapsulates OpenGL state modes and attributes.

Used to specific textures etc of osg::Drawable's which hold references to a single osg::StateSet. StateSet can be shared between Drawable's and is recommend if possible as it minimize expensive state changes in the graphics pipeline.


Member Typedef Documentation

typedef std::map<StateAttribute::Type,RefAttributePair> osg::StateSet::AttributeList
 

a container to map StateAttribyte::Types to their respective RefAttributePair.

typedef std::map<StateAttribute::GLMode,StateAttribute::GLModeValue> osg::StateSet::ModeList
 

a container to map GLModes to their respective GLModeValues.

typedef std::pair<ref_ptr<StateAttribute>,StateAttribute::OverrideValue> osg::StateSet::RefAttributePair
 

simple pairing between an attribute and its override flag.

typedef std::vector<AttributeList> osg::StateSet::TextureAttributeList
 

typedef std::vector<ModeList> osg::StateSet::TextureModeList
 


Member Enumeration Documentation

enum osg::StateSet::RenderBinMode
 

Enumeration values:
INHERIT_RENDERBIN_DETAILS 
USE_RENDERBIN_DETAILS 
OVERRIDE_RENDERBIN_DETAILS 
ENCLOSE_RENDERBIN_DETAILS 

enum osg::StateSet::RenderingHint
 

Enumeration values:
DEFAULT_BIN 
OPAQUE_BIN 
TRANSPARENT_BIN 


Constructor & Destructor Documentation

osg::StateSet::StateSet (    ) 
 

osg::StateSet::StateSet (  const StateSet &   ,
const CopyOp &    copyop = CopyOp::SHALLOW_COPY
) 
 

virtual osg::StateSet::~StateSet (    )  [protected, virtual]
 


Member Function Documentation

virtual const char* osg::StateSet::className (    )  const [inline, virtual]
 

return the name of the object's class type.

Must be defined by derived classes.

Implements osg::Object.

virtual Object* osg::StateSet::clone (  const CopyOp &    copyop )  const [inline, virtual]
 

Clone the an object, with Object* return type.

Must be defined by derived classes.

Implements osg::Object.

virtual Object* osg::StateSet::cloneType (    )  const [inline, virtual]
 

Clone the type of an object, with Object* return type.

Must be defined by derived classes.

Implements osg::Object.

int osg::StateSet::compare (  const StateSet &    rhs,
bool    compareAttributeContents = false
)  const
 

return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.

int osg::StateSet::compareAttributeContents (  const AttributeList &    lhs,
const AttributeList &    rhs
)  [protected]
 

int osg::StateSet::compareAttributePtrs (  const AttributeList &    lhs,
const AttributeList &    rhs
)  [protected]
 

int osg::StateSet::compareModes (  const ModeList &    lhs,
const ModeList &    rhs
)  [protected]
 

void osg::StateSet::compile (  State &    state )  const
 

call compile on all StateAttributes contained within this StateSet.

const StateAttribute* osg::StateSet::getAttribute (  const AttributeList &    attributeList,
const StateAttribute::Type    type
)  const [protected]
 

StateAttribute* osg::StateSet::getAttribute (  AttributeList &    attributeList,
const StateAttribute::Type    type
)  [protected]
 

const StateAttribute* osg::StateSet::getAttribute (  const StateAttribute::Type    type )  const
 

get specified const StateAttribute for specified type.

returns NULL if no type is contained within const StateSet.

StateAttribute* osg::StateSet::getAttribute (  const StateAttribute::Type    type ) 
 

get specified StateAttribute for specified type.

returns NULL if no type is contained within StateSet.

const AttributeList& osg::StateSet::getAttributeList (    )  const [inline]
 

return the const list of all StateAttributes contained in this const StateSet.

AttributeList& osg::StateSet::getAttributeList (    )  [inline]
 

return the list of all StateAttributes contained in this StateSet.

const RefAttributePair* osg::StateSet::getAttributePair (  const AttributeList &    attributeList,
const StateAttribute::Type    type
)  const [protected]
 

const RefAttributePair* osg::StateSet::getAttributePair (  const StateAttribute::Type    type )  const
 

get specified RefAttributePair for specified type.

returns NULL if no type is contained within StateSet.

const std::string& osg::StateSet::getBinName (    )  const [inline]
 

get the render bin name.

const int osg::StateSet::getBinNumber (    )  const [inline]
 

get the render bin number.

const StateAttribute::GLModeValue osg::StateSet::getMode (  const ModeList &    modeList,
const StateAttribute::GLMode    mode
)  const [protected]
 

const StateAttribute::GLModeValue osg::StateSet::getMode (  const StateAttribute::GLMode    mode )  const
 

get specified GLModeValue for specified GLMode.

returns INHERIT if no GLModeValue is contained within StateSet.

const ModeList& osg::StateSet::getModeList (    )  const [inline]
 

return the const list of all GLModes contained in this const StateSet.

ModeList& osg::StateSet::getModeList (    )  [inline]
 

return the list of all GLModes contained in this StateSet.

AttributeList& osg::StateSet::getOrCreateTextureAttributeList (  unsigned int    unit )  [inline, protected]
 

ModeList& osg::StateSet::getOrCreateTextureModeList (  unsigned int    unit )  [inline, protected]
 

const RenderBinMode osg::StateSet::getRenderBinMode (    )  const [inline]
 

get the render bin mode.

const int osg::StateSet::getRenderingHint (    )  const [inline]
 

get the RenderingHint of the StateSet.

const StateAttribute* osg::StateSet::getTextureAttribute (  unsigned int    unit,
const StateAttribute::Type    type
)  const
 

get specified Texture related const StateAttribute for specified type.

returns NULL if no type is contained within const StateSet.

StateAttribute* osg::StateSet::getTextureAttribute (  unsigned int    unit,
const StateAttribute::Type    type
) 
 

get specified Texture related StateAttribute for specified type.

returns NULL if no type is contained within StateSet.

const TextureAttributeList& osg::StateSet::getTextureAttributeList (    )  const [inline]
 

return the const list of all Texture related StateAttributes contained in this const StateSet.

TextureAttributeList& osg::StateSet::getTextureAttributeList (    )  [inline]
 

return the list of all Texture related StateAttributes contained in this StateSet.

const RefAttributePair* osg::StateSet::getTextureAttributePair (  unsigned int    unit,
const StateAttribute::Type    type
)  const
 

get specified Texture related RefAttributePair for specified type.

returns NULL if no type is contained within StateSet.

const StateAttribute::GLModeValue osg::StateSet::getTextureMode (  unsigned int    unit,
const StateAttribute::GLMode    mode
)  const
 

get specified GLModeValue for specified GLMode.

returns INHERIT if no GLModeValue is contained within StateSet.

const TextureModeList& osg::StateSet::getTextureModeList (    )  const [inline]
 

return the const list of all Texture related GLModes contained in this const StateSet.

TextureModeList& osg::StateSet::getTextureModeList (    )  [inline]
 

return the list of all Texture related GLModes contained in this StateSet.

virtual bool osg::StateSet::isSameKindAs (  const Object *    obj )  const [inline, virtual]
 

Reimplemented from osg::Object.

virtual const char* osg::StateSet::libraryName (    )  const [inline, virtual]
 

return the name of the object's library.

Must be defined by derived classes. The OpenSceneGraph convention the is that the namspace of a library is the same as the library name.

Implements osg::Object.

void osg::StateSet::merge (  const StateSet &    rhs ) 
 

merge this stateset with stateset rhs, this overrides the rhs if OVERRIDE is specified, otherwise rhs takes precedence.

bool osg::StateSet::operator!= (  const StateSet &    rhs )  const [inline]
 

bool osg::StateSet::operator< (  const StateSet &    rhs )  const [inline]
 

StateSet& osg::StateSet::operator= (  const StateSet &    )  [inline, protected]
 

bool osg::StateSet::operator== (  const StateSet &    rhs )  const [inline]
 

void osg::StateSet::setAllToInherit (    ) 
 

set all the modes to inherit, typically used to signify nodes which inherit all of their modes for the global state.

void osg::StateSet::setAssociatedModes (  ModeList &    modeList,
const StateAttribute *    attribute,
const StateAttribute::GLModeValue    value
)  [protected]
 

void osg::StateSet::setAssociatedModes (  const StateAttribute *    attribute,
const StateAttribute::GLModeValue    value
) 
 

void osg::StateSet::setAssociatedTextureModes (  unsigned int    unit,
const StateAttribute *    attribute,
const StateAttribute::GLModeValue    value
) 
 

void osg::StateSet::setAttribute (  AttributeList &    attributeList,
StateAttribute *    attribute,
const StateAttribute::OverrideValue    value = StateAttribute::OFF
)  [protected]
 

void osg::StateSet::setAttribute (  StateAttribute *    attribute,
const StateAttribute::OverrideValue    value = StateAttribute::OFF
) 
 

set this StateSet to contain specified attribute and override flag.

void osg::StateSet::setAttributeAndModes (  StateAttribute *    attribute,
const StateAttribute::GLModeValue    value = StateAttribute::ON
) 
 

set this StateSet to contain specified attribute and set the associated GLMode's to specified value.

void osg::StateSet::setAttributeToInherit (  const StateAttribute::Type    type ) 
 

set this StateSet to inherit specified attribute type from parents.

has the effect of deleting any state attributes of specified type from StateSet.

void osg::StateSet::setGlobalDefaults (    ) 
 

set all the modes to on or off so that it defines a complete state, typically used for a default global state.

void osg::StateSet::setMode (  ModeList &    modeList,
const StateAttribute::GLMode    mode,
const StateAttribute::GLModeValue    value
)  [protected]
 

void osg::StateSet::setMode (  const StateAttribute::GLMode    mode,
const StateAttribute::GLModeValue    value
) 
 

set this StateSet to contain specified GLMode and value.

void osg::StateSet::setModeToInherit (  ModeList &    modeList,
const StateAttribute::GLMode    mode
)  [protected]
 

void osg::StateSet::setModeToInherit (  const StateAttribute::GLMode    mode ) 
 

set this StateSet to inherit specified GLMode type from parents.

has the effect of deleting any GlMode of specified type from StateSet.

void osg::StateSet::setRenderBinDetails (  const int    binNum,
const std::string &    binName,
const RenderBinMode    mode = USE_RENDERBIN_DETAILS
) 
 

set the render bin details.

void osg::StateSet::setRenderingHint (  const int    hint ) 
 

set the RenderingHint of the StateSet.

RenderingHint is used by osgUtil::Renderer to determine which draw bin to drop associated osg::Drawables in. For opaque objects OPAQUE_BIN would typical used, which TRANSPARENT_BIN should be used for objects which need to be depth sorted.

void osg::StateSet::setRendingBinToInherit (    ) 
 

set the render bin details to inherit.

void osg::StateSet::setTextureAttribute (  unsigned int    unit,
StateAttribute *    attribute,
const StateAttribute::OverrideValue    value = StateAttribute::OFF
) 
 

set this StateSet to contain specified attribute and override flag.

void osg::StateSet::setTextureAttributeAndModes (  unsigned int    unit,
StateAttribute *    attribute,
const StateAttribute::GLModeValue    value = StateAttribute::ON
) 
 

set this StateSet to contain specified attribute and set the associated GLMode's to specified value.

void osg::StateSet::setTextureAttributeToInherit (  unsigned int    unit,
const StateAttribute::Type    type
) 
 

set this StateSet to inherit specified attribute type from parents.

has the effect of deleting any state attributes of specified type from StateSet.

void osg::StateSet::setTextureMode (  unsigned int    unit,
const StateAttribute::GLMode    mode,
const StateAttribute::GLModeValue    value
) 
 

set this StateSet to contain specified GLMode and value.

void osg::StateSet::setTextureModeToInherit (  unsigned int    unit,
const StateAttribute::GLMode    mode
) 
 

set this StateSet to inherit specified GLMode type from parents.

has the effect of deleting any GlMode of specified type from StateSet.

const bool osg::StateSet::useRenderBinDetails (    )  const [inline]
 

get whether the render bin details are set and should be used.


Member Data Documentation

AttributeList osg::StateSet::_attributeList [protected]
 

RenderBinMode osg::StateSet::_binMode [protected]
 

std::string osg::StateSet::_binName [protected]
 

int osg::StateSet::_binNum [protected]
 

ModeList osg::StateSet::_modeList [protected]
 

int osg::StateSet::_renderingHint [protected]
 

TextureAttributeList osg::StateSet::_textureAttributeList [protected]
 

TextureModeList osg::StateSet::_textureModeList [protected]
 


The documentation for this class was generated from the following file:
Generated at Wed Sep 18 13:55:43 2002 for the Open Scene Graph by doxygen 1.2.16.