Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::StateSet Class Reference

Inheritance diagram for osg::StateSet:

osg::Object osg::Referenced List of all members.

Public Types

typedef std::map< StateAttribute::GLMode,
StateAttribute::GLModeValue
ModeList
typedef std::pair< ref_ptr<
StateAttribute >, StateAttribute::OverrideValue
RefAttributePair
typedef std::map< StateAttribute::TypeMemberPair,
RefAttributePair
AttributeList
typedef std::vector< ModeListTextureModeList
typedef std::vector< AttributeListTextureAttributeList
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 Member Functions

 StateSet ()
 StateSet (const StateSet &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual ObjectcloneType () const
virtual Objectclone (const CopyOp &copyop) const
virtual bool isSameKindAs (const Object *obj) const
virtual const char * libraryName () const
virtual const char * className () const
int compare (const StateSet &rhs, bool compareAttributeContents=false) const
bool operator< (const StateSet &rhs) const
bool operator== (const StateSet &rhs) const
bool operator!= (const StateSet &rhs) const
void setGlobalDefaults ()
void clear ()
void merge (const StateSet &rhs)
void setMode (StateAttribute::GLMode mode, StateAttribute::GLModeValue value)
void removeMode (StateAttribute::GLMode mode)
StateAttribute::GLModeValue getMode (StateAttribute::GLMode mode) const
ModeListgetModeList ()
const ModeListgetModeList () const
void setAttribute (StateAttribute *attribute, StateAttribute::OverrideValue value=StateAttribute::OFF)
void setAttributeAndModes (StateAttribute *attribute, StateAttribute::GLModeValue value=StateAttribute::ON)
void removeAttribute (StateAttribute::Type type, unsigned int member=0)
void removeAttribute (StateAttribute *attribute)
StateAttributegetAttribute (StateAttribute::Type type, unsigned int member=0)
const StateAttributegetAttribute (StateAttribute::Type type, unsigned int member=0) const
const RefAttributePairgetAttributePair (StateAttribute::Type type, unsigned int member=0) const
AttributeListgetAttributeList ()
const AttributeListgetAttributeList () const
void setTextureMode (unsigned int unit, StateAttribute::GLMode mode, StateAttribute::GLModeValue value)
void removeTextureMode (unsigned int unit, StateAttribute::GLMode mode)
StateAttribute::GLModeValue getTextureMode (unsigned int unit, StateAttribute::GLMode mode) const
TextureModeListgetTextureModeList ()
const TextureModeListgetTextureModeList () const
void setTextureAttribute (unsigned int unit, StateAttribute *attribute, StateAttribute::OverrideValue value=StateAttribute::OFF)
void setTextureAttributeAndModes (unsigned int unit, StateAttribute *attribute, StateAttribute::GLModeValue value=StateAttribute::ON)
void removeTextureAttribute (unsigned int unit, StateAttribute::Type type)
void removeTextureAttribute (unsigned int unit, StateAttribute *attribute)
StateAttributegetTextureAttribute (unsigned int unit, StateAttribute::Type type)
const StateAttributegetTextureAttribute (unsigned int unit, StateAttribute::Type type) const
const RefAttributePairgetTextureAttributePair (unsigned int unit, StateAttribute::Type type) const
TextureAttributeListgetTextureAttributeList ()
const TextureAttributeListgetTextureAttributeList () const
void setAssociatedModes (const StateAttribute *attribute, StateAttribute::GLModeValue value)
void setAssociatedTextureModes (unsigned int unit, const StateAttribute *attribute, StateAttribute::GLModeValue value)
void setRenderingHint (int hint)
int getRenderingHint () const
void setRenderBinDetails (int binNum, const std::string &binName, RenderBinMode mode=USE_RENDERBIN_DETAILS)
void setRenderBinToInherit ()
RenderBinMode getRenderBinMode () const
bool useRenderBinDetails () const
int getBinNumber () const
const std::string & getBinName () const
void compileGLObjects (State &state) const
virtual void releaseGLObjects (State *state=0) const

Protected Member Functions

virtual ~StateSet ()
StateSetoperator= (const StateSet &)
ModeListgetOrCreateTextureModeList (unsigned int unit)
AttributeListgetOrCreateTextureAttributeList (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, StateAttribute::GLMode mode, StateAttribute::GLModeValue value)
void setModeToInherit (ModeList &modeList, StateAttribute::GLMode mode)
StateAttribute::GLModeValue getMode (const ModeList &modeList, StateAttribute::GLMode mode) const
void setAttribute (AttributeList &attributeList, StateAttribute *attribute, const StateAttribute::OverrideValue value=StateAttribute::OFF)
StateAttributegetAttribute (AttributeList &attributeList, const StateAttribute::Type type, unsigned int member)
const StateAttributegetAttribute (const AttributeList &attributeList, const StateAttribute::Type type, unsigned int member) const
const RefAttributePairgetAttributePair (const AttributeList &attributeList, const StateAttribute::Type type, unsigned int member) 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 minimizes expensive state changes in the graphics pipeline.


Member Typedef Documentation

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

a container to map <StateAttribyte::Types,Member> 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.

void osg::StateSet::clear  ) 
 

Clear the StateSet of all modes and attributes.

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

Clone 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::compileGLObjects State state  )  const
 

call compile on all StateAttributes contained within this StateSet.

const StateAttribute* osg::StateSet::getAttribute const AttributeList attributeList,
const StateAttribute::Type  type,
unsigned int  member
const [protected]
 

StateAttribute* osg::StateSet::getAttribute AttributeList attributeList,
const StateAttribute::Type  type,
unsigned int  member
[protected]
 

const StateAttribute* osg::StateSet::getAttribute StateAttribute::Type  type,
unsigned int  member = 0
const
 

Get specified const StateAttribute for specified type. Returns NULL if no type is contained within const StateSet.

StateAttribute* osg::StateSet::getAttribute StateAttribute::Type  type,
unsigned int  member = 0
 

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,
unsigned int  member
const [protected]
 

const RefAttributePair* osg::StateSet::getAttributePair StateAttribute::Type  type,
unsigned int  member = 0
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.

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

Get the render bin number.

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

StateAttribute::GLModeValue osg::StateSet::getMode 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]
 

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

Get the render bin mode.

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

Get the RenderingHint of the StateSet.

const StateAttribute* osg::StateSet::getTextureAttribute unsigned int  unit,
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,
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,
StateAttribute::Type  type
const
 

Get specified Texture related RefAttributePair for specified type. Returns NULL if no type is contained within StateSet.

StateAttribute::GLModeValue osg::StateSet::getTextureMode unsigned int  unit,
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 is that the namespace 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]
 

virtual void osg::StateSet::releaseGLObjects State state = 0  )  const [virtual]
 

call release on all StateAttributes contained within this StateSet.

void osg::StateSet::removeAttribute StateAttribute attribute  ) 
 

remove attribute from StateSet.

void osg::StateSet::removeAttribute StateAttribute::Type  type,
unsigned int  member = 0
 

remove attribute of specified type from StateSet.

void osg::StateSet::removeMode StateAttribute::GLMode  mode  ) 
 

Remove mode from StateSet.

void osg::StateSet::removeTextureAttribute unsigned int  unit,
StateAttribute attribute
 

remove texture attribute from StateSet.

void osg::StateSet::removeTextureAttribute unsigned int  unit,
StateAttribute::Type  type
 

remove texture attribute of specified type from StateSet.

void osg::StateSet::removeTextureMode unsigned int  unit,
StateAttribute::GLMode  mode
 

Remove texture mode from StateSet.

void osg::StateSet::setAssociatedModes const StateAttribute attribute,
StateAttribute::GLModeValue  value
 

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

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

void osg::StateSet::setAttribute StateAttribute attribute,
StateAttribute::OverrideValue  value = StateAttribute::OFF
 

Set this StateSet to contain specified attribute and override flag.

void osg::StateSet::setAttributeAndModes StateAttribute attribute,
StateAttribute::GLModeValue  value = StateAttribute::ON
 

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

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,
StateAttribute::GLMode  mode,
StateAttribute::GLModeValue  value
[protected]
 

void osg::StateSet::setMode StateAttribute::GLMode  mode,
StateAttribute::GLModeValue  value
 

Set this StateSet to contain specified GLMode and value.

void osg::StateSet::setModeToInherit ModeList modeList,
StateAttribute::GLMode  mode
[protected]
 

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

Set the render bin details.

void osg::StateSet::setRenderBinToInherit  ) 
 

Set the render bin details to inherit.

void osg::StateSet::setRenderingHint 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::setTextureAttribute unsigned int  unit,
StateAttribute attribute,
StateAttribute::OverrideValue  value = StateAttribute::OFF
 

Set this StateSet to contain specified attribute and override flag.

void osg::StateSet::setTextureAttributeAndModes unsigned int  unit,
StateAttribute attribute,
StateAttribute::GLModeValue  value = StateAttribute::ON
 

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

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

Set this StateSet to contain specified GLMode and value.

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 on Tue Mar 22 14:15:06 2005 for openscenegraph by  doxygen 1.4.0