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

osg::Material Class Reference

Inheritance diagram for osg::Material:

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

Public Types

enum  Face { FRONT = GL_FRONT, BACK = GL_BACK, FRONT_AND_BACK = GL_FRONT_AND_BACK }
enum  ColorMode {
  AMBIENT = GL_AMBIENT, DIFFUSE = GL_DIFFUSE, SPECULAR = GL_SPECULAR, EMISSION = GL_EMISSION,
  AMBIENT_AND_DIFFUSE = GL_AMBIENT_AND_DIFFUSE, OFF
}

Public Member Functions

 Material ()
 Material (const Material &mat, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 META_StateAttribute (osg, Material, MATERIAL)
virtual int compare (const StateAttribute &sa) const
Materialoperator= (const Material &rhs)
virtual bool getModeUsage (ModeUsage &usage) const
virtual void apply (State &state) const
void setColorMode (ColorMode mode)
ColorMode getColorMode () const
void setAmbient (Face face, const Vec4 &ambient)
const Vec4getAmbient (Face face) const
bool getAmbientFrontAndBack () const
void setDiffuse (Face face, const Vec4 &diffuse)
const Vec4getDiffuse (Face face) const
bool getDiffuseFrontAndBack () const
void setSpecular (Face face, const Vec4 &specular)
const Vec4getSpecular (Face face) const
bool getSpecularFrontAndBack () const
void setEmission (Face face, const Vec4 &emission)
const Vec4getEmission (Face face) const
bool getEmissionFrontAndBack () const
void setShininess (Face face, float shininess)
float getShininess (Face face) const
bool getShininessFrontAndBack () const
void setTransparency (Face face, float trans)
void setAlpha (Face face, float alpha)

Protected Member Functions

virtual ~Material ()

Protected Attributes

ColorMode _colorMode
bool _ambientFrontAndBack
Vec4 _ambientFront
Vec4 _ambientBack
bool _diffuseFrontAndBack
Vec4 _diffuseFront
Vec4 _diffuseBack
bool _specularFrontAndBack
Vec4 _specularFront
Vec4 _specularBack
bool _emissionFrontAndBack
Vec4 _emissionFront
Vec4 _emissionBack
bool _shininessFrontAndBack
float _shininessFront
float _shininessBack

Detailed Description

Material - encapsulates OpenGL glMaterial state.


Member Enumeration Documentation

enum osg::Material::ColorMode
 

Enumerator:
AMBIENT 
DIFFUSE 
SPECULAR 
EMISSION 
AMBIENT_AND_DIFFUSE 
OFF  means that associated GLMode and Override is disabled.

enum osg::Material::Face
 

Enumerator:
FRONT 
BACK 
FRONT_AND_BACK 


Constructor & Destructor Documentation

osg::Material::Material  ) 
 

osg::Material::Material const Material mat,
const CopyOp copyop = CopyOp::SHALLOW_COPY
[inline]
 

Copy constructor using CopyOp to manage deep vs shallow copy.

virtual osg::Material::~Material  )  [protected, virtual]
 


Member Function Documentation

virtual void osg::Material::apply State state  )  const [virtual]
 

apply the OpenGL state attributes. The global state for the current OpenGL context is passed in to allow the StateAttribute to obtain details on the the current context and state.

Implements osg::StateAttribute.

virtual int osg::Material::compare const StateAttribute sa  )  const [inline, virtual]
 

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

Implements osg::StateAttribute.

const Vec4& osg::Material::getAmbient Face  face  )  const
 

bool osg::Material::getAmbientFrontAndBack  )  const [inline]
 

ColorMode osg::Material::getColorMode  )  const [inline]
 

const Vec4& osg::Material::getDiffuse Face  face  )  const
 

bool osg::Material::getDiffuseFrontAndBack  )  const [inline]
 

const Vec4& osg::Material::getEmission Face  face  )  const
 

Get the emission value for specified face.

bool osg::Material::getEmissionFrontAndBack  )  const [inline]
 

Return whether emission values are equal for front and back faces or not.

virtual bool osg::Material::getModeUsage ModeUsage &  usage  )  const [inline, virtual]
 

float osg::Material::getShininess Face  face  )  const
 

Get the shininess value for specified face.

bool osg::Material::getShininessFrontAndBack  )  const [inline]
 

Return whether shininess values are equal for front and back faces or not.

const Vec4& osg::Material::getSpecular Face  face  )  const
 

Get the specular value for specified face.

bool osg::Material::getSpecularFrontAndBack  )  const [inline]
 

Return whether specular values are equal for front and back faces or not.

osg::Material::META_StateAttribute osg  ,
Material  ,
MATERIAL 
 

Material& osg::Material::operator= const Material rhs  ) 
 

void osg::Material::setAlpha Face  face,
float  alpha
 

Set the alpha value of ambient, diffuse, specular and emission colors. Valid transparency range is 0.0 to 1.0.

void osg::Material::setAmbient Face  face,
const Vec4 ambient
 

void osg::Material::setColorMode ColorMode  mode  )  [inline]
 

void osg::Material::setDiffuse Face  face,
const Vec4 diffuse
 

void osg::Material::setEmission Face  face,
const Vec4 emission
 

Set emission value of specified face(s) of the material, valid emission[0..3] range is 0.0 to 1.0.

void osg::Material::setShininess Face  face,
float  shininess
 

Set shininess of specified face(s) of the material. valid shininess range is 0.0 to 128.0.

void osg::Material::setSpecular Face  face,
const Vec4 specular
 

Set specular value of specified face(s) of the material, valid specular[0..3] range is 0.0 to 1.0.

void osg::Material::setTransparency Face  face,
float  trans
 

Set the alpha value of ambient, diffuse, specular and emission colors of specified face, to 1-transparency. Valid transparency range is 0.0 to 1.0.


Member Data Documentation

Vec4 osg::Material::_ambientBack [protected]
 

Vec4 osg::Material::_ambientFront [protected]
 

bool osg::Material::_ambientFrontAndBack [protected]
 

ColorMode osg::Material::_colorMode [protected]
 

Vec4 osg::Material::_diffuseBack [protected]
 

Vec4 osg::Material::_diffuseFront [protected]
 

bool osg::Material::_diffuseFrontAndBack [protected]
 

Vec4 osg::Material::_emissionBack [protected]
 

Vec4 osg::Material::_emissionFront [protected]
 

bool osg::Material::_emissionFrontAndBack [protected]
 

float osg::Material::_shininessBack [protected]
 

float osg::Material::_shininessFront [protected]
 

bool osg::Material::_shininessFrontAndBack [protected]
 

Vec4 osg::Material::_specularBack [protected]
 

Vec4 osg::Material::_specularFront [protected]
 

bool osg::Material::_specularFrontAndBack [protected]
 


The documentation for this class was generated from the following file:
Generated on Wed Jun 7 05:04:35 2006 for OpenSceneGraph by  doxygen 1.4.4