# osg::Material Class Reference

Material - encapsulates OpenGL glMaterial state. More...

Inheritance diagram for osg::Material:

[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.
Material & | operator= (const Material &rhs)
virtual bool | getModeUsage (ModeUsage &usage) 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 Vec4 & | getAmbient (Face face) const
bool | getAmbientFrontAndBack () const
void | setDiffuse (Face face, const Vec4 &diffuse)
const Vec4 & | getDiffuse (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..3] range is 0.0 to 1.0.
const Vec4 & | getSpecular (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..3] range is 0.0 to 1.0.
const Vec4 & | getEmission (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::ColorMode

Enumeration values:

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

enum osg::Material::Face

Enumeration values:

  FRONT |
  BACK |
  FRONT_AND_BACK |

## Constructor & Destructor Documentation

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.

Material::~Material | ( |  | ) | `[protected, virtual]`

## Member Function Documentation

void 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 & Material::getAmbient | ( | Face | face | ) | const

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

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

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

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

const Vec4 & 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]`

| Return the modes associated with this StateAttribute. Reimplemented from osg::StateAttribute.

float 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 & 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 & Material::operator= | ( | const Material & | rhs | ) |

void 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 Material::setAmbient | ( | Face | face,
|  | const Vec4 & | ambient
| ) |

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

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

void 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 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 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 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 files:

- Material
- Material.cpp