AGX Dynamics 2.40.0.0
Loading...
Searching...
No Matches
agxOSG::RenderStateManager::RenderState Class Reference

#include <RenderStateManager.h>

+ Inheritance diagram for agxOSG::RenderStateManager::RenderState:

Classes

struct  Texture
 

Public Types

enum  Color {
  AMBIENT , DIFFUSE , SPECULAR , ALPHA ,
  SHININESS , EMISSIVE
}
 

Public Member Functions

 RenderState (const std::string &name)
 
void addTexture (int unit, osg::Texture *texture, osg::TexMat *tm=nullptr, osg::TexGen *texgen=nullptr)
 
void addUniform (osg::Uniform *uniform)
 
void apply (agxOSG::GeometryNode *node, RenderStateManager::Values value=RenderStateManager::ON)
 
void apply (agxOSG::SimulationObject &obj, RenderStateManager::Values value=RenderStateManager::ON)
 
void apply (osg::Group *node, RenderStateManager::Values value=RenderStateManager::ON)
 
void apply (osg::Node *node, RenderStateManager::Values value=RenderStateManager::ON)
 
void apply (osg::StateSet *stateSet, RenderStateManager::Values value=RenderStateManager::ON)
 
osg::Uniform * findUniform (const std::string &name)
 
agx::Vec4f getColor (Color color)
 
std::string getName () const
 
void setColor (Color color, const agx::Vec4f &col)
 DIFFUSE, AMBIENT, SPECULAR, EMISSIVE, SHININESS, ALPHA.
 
void setName (const std::string &name)
 
void setShaderState (ShaderState *shaderState)
 
- Public Member Functions inherited from agx::Referenced
 Referenced ()
 Default constructor.
 
 Referenced (const Referenced &)
 
template<typename T >
T * as ()
 Subclass casting.
 
template<typename T >
const T * as () const
 
template<typename T >
T * asSafe ()
 Safe subclass casting, return nullptr if template type does not match.
 
template<typename T >
const T * asSafe () const
 
int getReferenceCount () const
 
template<typename T >
bool is () const
 Subclass test.
 
Referencedoperator= (const Referenced &)
 Assignment operator. Will increment the number of references to the referenced object.
 
void reference (void *ptr=nullptr) const
 Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it.
 
void unreference (void *ptr=nullptr) const
 Decrement the reference count by one, indicating that a pointer to this object is referencing it.
 
void unreference_nodelete () const
 Decrement the reference count by one, indicating that a pointer to this object is referencing it.
 

Protected Types

typedef agx::HashTable< agx::UInt, osg::Vec4f > ColorHash
 
typedef agx::HashTable< int, TextureTextureHash
 
typedef agx::HashTable< std::string, osg::ref_ptr< osg::Uniform > > UniformHashTable
 

Protected Member Functions

virtual ~RenderState ()
 
- Protected Member Functions inherited from agx::Referenced
virtual ~Referenced ()
 Destructor.
 
void allocateObserverVector () const
 
void deleteUsingDeleteHandler () const
 

Protected Attributes

ColorHash m_colorHash
 
std::string m_name
 
agx::ref_ptr< ShaderStatem_shaderState
 
TextureHash m_textureHash
 
UniformHashTable m_uniforms
 
- Protected Attributes inherited from agx::Referenced
Mutex m_mutex
 
ObserverContainer m_observers
 
AtomicValue m_refCount
 

Additional Inherited Members

- Static Public Member Functions inherited from agx::Referenced
template<typename T >
static bool ValidateCast (const Referenced *object)
 
- Static Protected Member Functions inherited from agx::Referenced
static DeleteHandlergetDeleteHandler ()
 
static void setDeleteHandler (DeleteHandler *handler)
 Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to.
 

Detailed Description

Definition at line 101 of file RenderStateManager.h.

Member Typedef Documentation

◆ ColorHash

Definition at line 152 of file RenderStateManager.h.

◆ TextureHash

◆ UniformHashTable

typedef agx::HashTable<std::string, osg::ref_ptr<osg::Uniform> > agxOSG::RenderStateManager::RenderState::UniformHashTable
protected

Definition at line 155 of file RenderStateManager.h.

Member Enumeration Documentation

◆ Color

Enumerator
AMBIENT 
DIFFUSE 
SPECULAR 
ALPHA 
SHININESS 
EMISSIVE 

Definition at line 105 of file RenderStateManager.h.

Constructor & Destructor Documentation

◆ RenderState()

agxOSG::RenderStateManager::RenderState::RenderState ( const std::string &  name)
inline

Definition at line 114 of file RenderStateManager.h.

◆ ~RenderState()

virtual agxOSG::RenderStateManager::RenderState::~RenderState ( )
inlineprotectedvirtual

Definition at line 139 of file RenderStateManager.h.

Member Function Documentation

◆ addTexture()

void agxOSG::RenderStateManager::RenderState::addTexture ( int  unit,
osg::Texture *  texture,
osg::TexMat *  tm = nullptr,
osg::TexGen *  texgen = nullptr 
)
inline

Definition at line 118 of file RenderStateManager.h.

◆ addUniform()

void agxOSG::RenderStateManager::RenderState::addUniform ( osg::Uniform *  uniform)

◆ apply() [1/5]

void agxOSG::RenderStateManager::RenderState::apply ( agxOSG::GeometryNode node,
RenderStateManager::Values  value = RenderStateManager::ON 
)

◆ apply() [2/5]

void agxOSG::RenderStateManager::RenderState::apply ( agxOSG::SimulationObject &  obj,
RenderStateManager::Values  value = RenderStateManager::ON 
)

◆ apply() [3/5]

void agxOSG::RenderStateManager::RenderState::apply ( osg::Group *  node,
RenderStateManager::Values  value = RenderStateManager::ON 
)

◆ apply() [4/5]

void agxOSG::RenderStateManager::RenderState::apply ( osg::Node *  node,
RenderStateManager::Values  value = RenderStateManager::ON 
)

◆ apply() [5/5]

void agxOSG::RenderStateManager::RenderState::apply ( osg::StateSet *  stateSet,
RenderStateManager::Values  value = RenderStateManager::ON 
)

◆ findUniform()

osg::Uniform * agxOSG::RenderStateManager::RenderState::findUniform ( const std::string &  name)

◆ getColor()

agx::Vec4f agxOSG::RenderStateManager::RenderState::getColor ( Color  color)
inline

Definition at line 135 of file RenderStateManager.h.

References OSG_VEC4F_TO_AGX.

◆ getName()

std::string agxOSG::RenderStateManager::RenderState::getName ( ) const
inline

Definition at line 116 of file RenderStateManager.h.

◆ setColor()

void agxOSG::RenderStateManager::RenderState::setColor ( Color  color,
const agx::Vec4f col 
)
inline

DIFFUSE, AMBIENT, SPECULAR, EMISSIVE, SHININESS, ALPHA.

Definition at line 134 of file RenderStateManager.h.

◆ setName()

void agxOSG::RenderStateManager::RenderState::setName ( const std::string &  name)
inline

Definition at line 115 of file RenderStateManager.h.

◆ setShaderState()

void agxOSG::RenderStateManager::RenderState::setShaderState ( ShaderState shaderState)
inline

Definition at line 137 of file RenderStateManager.h.

Member Data Documentation

◆ m_colorHash

ColorHash agxOSG::RenderStateManager::RenderState::m_colorHash
protected

Definition at line 153 of file RenderStateManager.h.

◆ m_name

std::string agxOSG::RenderStateManager::RenderState::m_name
protected

Definition at line 141 of file RenderStateManager.h.

◆ m_shaderState

agx::ref_ptr<ShaderState> agxOSG::RenderStateManager::RenderState::m_shaderState
protected

Definition at line 151 of file RenderStateManager.h.

◆ m_textureHash

TextureHash agxOSG::RenderStateManager::RenderState::m_textureHash
protected

Definition at line 150 of file RenderStateManager.h.

◆ m_uniforms

UniformHashTable agxOSG::RenderStateManager::RenderState::m_uniforms
protected

Definition at line 156 of file RenderStateManager.h.


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