SoMaterial(3IV)NAMESoMaterial (SoMtl) - surface material definition node
INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoMaterialSYNOPSIS
#include <Inventor_c/nodes/SoMaterial.h>
typedef SoMaterial SoMtl
Fields from class SoMaterial:
SoMFColor ambientColor
SoMFColor diffuseColor
SoMFColor specularColor
SoMFColor emissiveColor
SoMFFloat shininess
SoMFFloat transparency
Functions from class SoMaterial:
SoMaterial * SoMtlCreate()
SoType SoMtlGetClassTypeId()
Functions from class SoNode:
void SoMtlSetOverride(SoMtl *this, SbBool state)
SbBool SoMtlIsOverride(const SoMtl *this)
SoNode * SoMtlCopy(const SoMtl *this, SbBool copyConnections =
FALSE)
SbBool SoMtlAffectsState(const SoMtl *this)
SoNode * SoMtlGetByName(const char *name)
int SoMtlGetByNameList(const char *name, SoNodeList
*list)
Functions from class SoFieldContainer:
void SoMtlSetToDflts(SoMtl *this)
SbBool SoMtlHasDfltVals(const SoMtl *this)
SbBool SoMtlFldsAreEq(const SoMtl *this, const
SoFieldContainer *fc)
void SoMtlCopyFieldVals(SoMtl *this, const
SoFieldContainer *fc, SbBool copyConnections =
FALSE)
SbBool SoMtlSet(SoMtl *this, const char *fieldDataString)
void SoMtlGet(SoMtl *this, SbString *fieldDataString)
int SoMtlGetFields(const SoMtl *this, SoFieldList
*resultList)
SoField * SoMtlGetField(const SoMtl *this, const char
*fieldName)
Page 1SoMaterial(3IV)
SbBool SoMtlGetFieldName(const SoMtl *this, const SoField
*field, SbName *fieldName)
SbBool SoMtlIsNotifyEnabled(const SoMtl *this)
SbBool SoMtlEnableNotify(SoMtl *this, SbBool flag)
Functions from class SoBase:
void SoMtlRef(SoMtl *this)
void SoMtlUnref(const SoMtl *this)
void SoMtlUnrefNoDelete(const SoMtl *this)
void SoMtlTouch(SoMtl *this)
SoType SoMtlGetTypeId(const SoMtl *this)
SbBool SoMtlIsOfType(const SoMtl *this, SoType type)
void SoMtlSetName(SoMtl *this, const char *name)
SbName SoMtlGetName(const SoMtl *this)
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
Page 2SoMaterial(3IV)
transparency will be used.
FUNCTIONSSoMaterial * SoMtlCreate()
Creates a material node with default settings.
SoType SoMtlGetClassTypeId()
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
Page 3