osg::Material Class Reference

Material - encapsulates OpenGL glMaterial state. More...

Inheritance diagram for osg::Material:

Inheritance graph
[legend]

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)
 Copy constructor using CopyOp to manage deep vs shallow copy.
 META_StateAttribute (osg, Material, MATERIAL)
virtual int compare (const StateAttribute &sa) const
 return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.
Materialoperator= (const Material &rhs)
virtual bool getModeUsage (StateAttribute::ModeUsage &) const
 Return the modes associated with this StateAttribute.
virtual void apply (State &state) const
 apply the OpenGL state attributes.
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)
 Set specular value of specified face(s) of the material, valid specular[0.
const Vec4getSpecular (Face face) const
 Get the specular value for specified face.
bool getSpecularFrontAndBack () const
 Return whether specular values are equal for front and back faces or not.
void setEmission (Face face, const Vec4 &emission)
 Set emission value of specified face(s) of the material, valid emission[0.
const Vec4getEmission (Face face) const
 Get the emission value for specified face.
bool getEmissionFrontAndBack () const
 Return whether emission values are equal for front and back faces or not.
void setShininess (Face face, float shininess)
 Set shininess of specified face(s) of the material.
float getShininess (Face face) const
 Get the shininess value for specified face.
bool getShininessFrontAndBack () const
 Return whether shininess values are equal for front and back faces or not.
void setTransparency (Face face, float trans)
 Set the alpha value of ambient, diffuse, specular and emission colors of specified face, to 1-transparency.
void setAlpha (Face face, float alpha)
 Set the alpha value of ambient, diffuse, specular and emission colors.

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::Face

Enumerator:
FRONT 
BACK 
FRONT_AND_BACK 

enum osg::Material::ColorMode

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


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

osg::Material::META_StateAttribute ( osg  ,
Material  ,
MATERIAL   
)

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.

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

virtual bool osg::Material::getModeUsage ( StateAttribute::ModeUsage  )  const [inline, virtual]

Return the modes associated with this StateAttribute.

Reimplemented from osg::StateAttribute.

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

apply the OpenGL state attributes.

The render info for the current OpenGL context is passed in to allow the StateAttribute to obtain details on the the current context and state.

Reimplemented from osg::StateAttribute.

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

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

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

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

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

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

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

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

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.

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.

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.

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.

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.

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.

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.

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.


Member Data Documentation

ColorMode osg::Material::_colorMode [protected]

bool osg::Material::_ambientFrontAndBack [protected]

Vec4 osg::Material::_ambientFront [protected]

Vec4 osg::Material::_ambientBack [protected]

bool osg::Material::_diffuseFrontAndBack [protected]

Vec4 osg::Material::_diffuseFront [protected]

Vec4 osg::Material::_diffuseBack [protected]

bool osg::Material::_specularFrontAndBack [protected]

Vec4 osg::Material::_specularFront [protected]

Vec4 osg::Material::_specularBack [protected]

bool osg::Material::_emissionFrontAndBack [protected]

Vec4 osg::Material::_emissionFront [protected]

Vec4 osg::Material::_emissionBack [protected]

bool osg::Material::_shininessFrontAndBack [protected]

float osg::Material::_shininessFront [protected]

float osg::Material::_shininessBack [protected]


The documentation for this class was generated from the following file:
Generated at Sun Oct 14 02:12:11 2007 for the OpenSceneGraph by doxygen 1.5.3.