Provided by: inventor-doc_2.1.5-10-18_all bug

NAME

       SoMaterialBinding — node that specifies how multiple materials are bound to shapes

INHERITS FROM

       SoBase > SoFieldContainer > SoNode > SoMaterialBinding

SYNOPSIS

       #include <Inventor/nodes/SoMaterialBinding.h>

     enum Binding {
          SoMaterialBinding::OVERALL   Whole object has same material
          SoMaterialBinding::PER_PART  One material for each part of object
          SoMaterialBinding::PER_PART_INDEXED
                                       One material for each part, indexed
          SoMaterialBinding::PER_FACE  One material for each face of object
          SoMaterialBinding::PER_FACE_INDEXED
                                       One material for each face, indexed
          SoMaterialBinding::PER_VERTEX
                                       One material for each vertex of object
          SoMaterialBinding::PER_VERTEX_INDEXED
                                       One material for each vertex, indexed
     }

          Fields from class SoMaterialBinding:

     SoSFEnum            value

          Methods from class SoMaterialBinding:

                         SoMaterialBinding()
     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 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.

METHODS

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

     static SoType       getClassTypeId()
          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

                                                                         SoMaterialBinding(3IV)()