SoMaterialBinding(3IV)

SoMaterialBinding (SoMtlBind) - node that specifies how multiple materials are bound to shapes

As shipped in IRIX 6.5.22. Added in IRIX 6.5.22.

NAME
     SoMaterialBinding (SoMtlBind) - node that specifies how multiple
     materials are bound to shapes

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoMaterialBinding

SYNOPSIS
     #include <Inventor_c/nodes/SoMaterialBinding.h>

     typedef SoMaterialBinding  SoMtlBind

     enum SoMaterialBindingBinding {
          SO_MTL_BIND_OVERALL     Whole object has same material
          SO_MTL_BIND_PER_PART    One material for each part of object
          SO_MTL_BIND_PER_PART_INDEXED
                                  One material for each part, indexed
          SO_MTL_BIND_PER_FACE    One material for each face of object
          SO_MTL_BIND_PER_FACE_INDEXED
                                  One material for each face, indexed
          SO_MTL_BIND_PER_VERTEX  One material for each vertex of object
          SO_MTL_BIND_PER_VERTEX_INDEXED
                                  One material for each vertex, indexed
     }

          Fields from class SoMaterialBinding:

     SoSFEnum            value

          Functions from class SoMaterialBinding:

     SoMaterialBinding *  SoMtlBindCreate()
     SoType               SoMtlBindGetClassTypeId()

          Functions from class SoNode:

     void                SoMtlBindSetOverride(SoMtlBind *this, SbBool state)
     SbBool              SoMtlBindIsOverride(const SoMtlBind *this)
     SoNode *            SoMtlBindCopy(const SoMtlBind *this, SbBool
                              copyConnections = FALSE)
     SbBool              SoMtlBindAffectsState(const SoMtlBind *this)
     SoNode *            SoMtlBindGetByName(const char *name)
     int                 SoMtlBindGetByNameList(const char *name, SoNodeList
                              *list)

          Functions from class SoFieldContainer:

     void                SoMtlBindSetToDflts(SoMtlBind *this)
     SbBool              SoMtlBindHasDfltVals(const SoMtlBind *this)
     SbBool              SoMtlBindFldsAreEq(const SoMtlBind *this, const
                              SoFieldContainer *fc)
     void                SoMtlBindCopyFieldVals(SoMtlBind *this, const
                              SoFieldContainer *fc, SbBool copyConnections =
                              FALSE)
     SbBool              SoMtlBindSet(SoMtlBind *this, const char
                              *fieldDataString)
     void                SoMtlBindGet(SoMtlBind *this, SbString
                              *fieldDataString)
     int                 SoMtlBindGetFields(const SoMtlBind *this, SoFieldList
                              *resultList)
     SoField *           SoMtlBindGetField(const SoMtlBind *this, const char
                              *fieldName)
     SbBool              SoMtlBindGetFieldName(const SoMtlBind *this, const
                              SoField *field, SbName *fieldName)
     SbBool              SoMtlBindIsNotifyEnabled(const SoMtlBind *this)
     SbBool              SoMtlBindEnableNotify(SoMtlBind *this, SbBool flag)

          Functions from class SoBase:

     void                SoMtlBindRef(SoMtlBind *this)
     void                SoMtlBindUnref(const SoMtlBind *this)
     void                SoMtlBindUnrefNoDelete(const SoMtlBind *this)
     void                SoMtlBindTouch(SoMtlBind *this)
     SoType              SoMtlBindGetTypeId(const SoMtlBind *this)
     SbBool              SoMtlBindIsOfType(const SoMtlBind *this, SoType type)
     void                SoMtlBindSetName(SoMtlBind *this, const char *name)
     SbName              SoMtlBindGetName(const SoMtlBind *this)


DESCRIPTION
     This node specifies how the current materials are bound to shapes that
     follow in the scene graph. Each shape node may interpret bindings
     differently. The current material always has a base value, which is
     defined by the first value of all material fields. Since material fields
     may have multiple values, the binding determines how these values are
     distributed over a shape.

     The bindings for faces and vertices are meaningful only for shapes that
     are made from faces and vertices. Similarly, the indexed bindings are
     only used by the shapes that allow indexing.

     The bindings apply only to diffuse colors and transparency.  Other
     materials (emissive, specular, ambient, shininess) will have the first
     value applied to the entire shape, regardless of the material binding or
     the number provided.

     If the number of transparencies is less than the number of diffuse
     colors, only the first transparency value will be used, regardless of the
     material binding. If the number of diffuse colors in the state is less
     than the number required for the given binding, a debug warning will be
     printed and unpredictable colors will result.

FIELDS
     SoSFEnum            value
          Specifies how to bind materials to shapes.


FUNCTIONS
     SoMaterialBinding *  SoMtlBindCreate()
          Creates a material binding node with default settings.

     SoType               SoMtlBindGetClassTypeId()
          Returns type identifier for this class.


ACTION BEHAVIOR
     SoGLRenderAction, SoCallbackAction
          Sets the current material binding type.


FILE FORMAT/DEFAULTS
     MaterialBinding {
          value  OVERALL
     }

SEE ALSO
     SoMaterial, SoNormalBinding, SoShape, SoTextureCoordinateBinding