Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

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 Methods

 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.

virtual void getAssociatedModes (std::vector< GLMode > &modes) const
 return the modes associated with this StateSet

virtual void apply (State &state) const
 apply the OpenGL state attributes.

void setColorMode (const ColorMode mode)
const ColorMode getColorMode () const
void setAmbient (const Face face, const Vec4 &ambient)
const Vec4 & getAmbient (const Face face) const
const bool getAmbientFrontAndBack () const
void setDiffuse (const Face face, const Vec4 &diffuse)
const Vec4 & getDiffuse (const Face face) const
const bool getDiffuseFrontAndBack () const
void setSpecular (const 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 (const Face face) const
 Get the specular value for specified face.

const bool getSpecularFrontAndBack () const
 Get the whether specular values are equal for front and back faces.

void setEmission (const Face face, const Vec4 &emission)
 Set emission value of specified face(s) of the material, valid emmison[0..3] range is 0.0 to 1.0.

const Vec4 & getEmission (const Face face) const
 Get the emmsion value for specified face.

const bool getEmissionFrontAndBack () const
 Get the whether emission values are equal for front and back faces.

void setShininess (const Face face, float shininess)
 Set shininess of specified face(s) of the material, valid shininess range is 0.0 to 128.0.

const float getShininess (const Face face) const
 Get the shininess value for specified face.

const bool getShininessFrontAndBack () const
 Get the whether shininess values are equal for front and back faces.

void setTransparency (const Face face, float trans)
 Set the alpha value of ambient,diffuse,specular and emission colors, of specified face, to 1-transparency.

void setAlpha (const Face face, float alpha)
 Set the alpha value of ambient,diffuse,specular and emission colors.


Protected Methods

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

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 (  const Face    face )  const
 

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

virtual void osg::Material::getAssociatedModes (  std::vector< GLMode > &    modes )  const [inline, virtual]
 

return the modes associated with this StateSet

Reimplemented from osg::StateAttribute.

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

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

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

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

Get the emmsion value for specified face.

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

Get the whether emission values are equal for front and back faces.

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

Get the shininess value for specified face.

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

Get the whether shininess values are equal for front and back faces.

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

Get the specular value for specified face.

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

Get the whether specular values are equal for front and back faces.

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

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

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

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

void osg::Material::setEmission (  const Face    face,
const Vec4 &    emission
) 
 

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

void osg::Material::setShininess (  const 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 (  const 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 (  const 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 at Wed Sep 18 13:55:33 2002 for the Open Scene Graph by doxygen 1.2.16.