SoMaterial(3IV)

SoMaterial (SoMtl) - surface material definition node

Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.22.

NAME
     SoMaterial (SoMtl) - surface material definition node

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoMaterial

SYNOPSIS
     #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)

     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
          transparency will be used.


FUNCTIONS
     SoMaterial *        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