SoMaterial(3IV)

NAME
SoMaterial — surface material definition node

INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoMaterial

SYNOPSIS
#include <Inventor/nodes/SoMaterial.h>

Fields from class SoMaterial:

SoMFColor
ambientColor
SoMFColor
diffuseColor
SoMFColor
specularColor
SoMFColor
emissiveColor
SoMFFloat
shininess
SoMFFloat
transparency

Methods from class SoMaterial:

SoMaterial()
static SoType
getClassTypeId()

Methods from class SoNode:

void
setOverride(SbBool state)
SbBool
isOverride() const
SoNode *
copy(SbBool copyConnections = FALSE) const
virtual SbBool
affectsState() const
static SoNode *
getByName(const SbName &name)
static int
getByName(const SbName &name, SoNodeList &list)

Methods from class SoFieldContainer:

void
setToDefaults()
SbBool
hasDefaultValues() const
SbBool
fieldsAreEqual(const SoFieldContainer *fc) const
void
copyFieldValues(const SoFieldContainer *fc, SbBool copyConnections = FALSE)
SbBool
set(const char *fieldDataString)
void
get(SbString &fieldDataString)
virtual int
getFields(SoFieldList &resultList) const
virtual SoField *
getField(const SbName &fieldName) const
SbBool
getFieldName(const SoField *field, SbName &fieldName) const
SbBool
isNotifyEnabled() const
SbBool
enableNotify(SbBool flag)

Methods from class SoBase:

void
ref()
void
unref() const
void
unrefNoDelete() const
void
touch()
virtual SoType
getTypeId() const
SbBool
isOfType(SoType type) const
virtual void
setName(const SbName &name)
virtual SbName
getName() const

DESCRIPTION
This node defines the current surface material properties for all subsequent shapes. SoMaterial sets several components of the current material during traversal.

Multiple values can be specified for the diffuseColor and transparency. Different shapes interpret materials with multiple values differently. To bind materials to shapes, use an SoMaterialBinding node.

FIELDS
SoMFColor
ambientColor
Ambient color of the surface.

SoMFColor
diffuseColor
Diffuse color(s) of the surface.

SoMFColor
specularColor
Specular color of the surface.

SoMFColor
emissiveColor
Emissive color of the surface.

SoMFFloat
shininess
Shininess coefficient of the surface. Values can range from 0.0 for no shininess (a diffuse surface) to 1.0 for maximum shininess (a highly polished surface).

SoMFFloat
transparency
Transparency value(s) of the surface. Values can range from 0.0 for opaque surfaces to 1.0 for completely transparent surfaces. If the transparency type is SoGLRenderAction::SCREEN_DOOR then only the first transparency value will be used. With other transparency types, multiple transparencies will be used, if the SoMaterial node contains as many transparencies as diffuse colors. If there are not as many transparencies as diffuse colors, only the first transparency will be used.

METHODS

SoMaterial()
Creates a material node with default settings.

static SoType
getClassTypeId()
Returns type identifier for this class.

ACTION BEHAVIOR
SoGLRenderAction, SoCallbackAction
Sets the ambient color, the diffuse color, the specular color, the emissive color, the shininess, and the transparency of the current material.

FILE FORMAT/DEFAULTS
Material {
ambientColor	0.2 0.2 0.2
diffuseColor	0.8 0.8 0.8
specularColor	0 0 0
emissiveColor	0 0 0
shininess	0.2
transparency	0
}

SEE ALSO
SoBaseColor, SoLightModel, SoMaterialBinding, SoPackedColor