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

NAME

       SoLocateHighlight — special separator that performs locate highlighting

INHERITS FROM

       SoBase > SoFieldContainer > SoNode > SoGroup > SoSeparator > SoLocateHighlight

SYNOPSIS

       #include <Inventor/nodes/SoLocateHighlight.h>

     enum Modes {
          SoLocateHighlight::AUTO  highlight when mouse is over (default)
          SoLocateHighlight::ON    always highlight
          SoLocateHighlight::OFF   never highlight
     }

     enum Styles {
          SoLocateHighlight::EMISSIVE  changes emissive color only (default)
          SoLocateHighlight::EMISSIVE_DIFFUSE
                                       changes emissive and diffuse colors
     }

          Fields from class SoLocateHighlight:

     SoSFColor           color
     SoSFEnum            style
     SoSFEnum            mode

          Fields from class SoSeparator:

     SoSFEnum            renderCaching
     SoSFEnum            boundingBoxCaching
     SoSFEnum            renderCulling
     SoSFEnum            pickCulling

          Methods from class SoLocateHighlight:

                         SoLocateHighlight()
     static SoType       getClassTypeId()

          Methods from class SoSeparator:

     static void         setNumRenderCaches(int howMany)
     static int          getNumRenderCaches()

          Methods from class SoGroup:

     void                addChild(SoNode *child)
     void                insertChild(SoNode *child, int newChildIndex)
     SoNode *            getChild(int index) const
     int                 findChild(const SoNode *child) const
     int                 getNumChildren() const
     void                removeChild(int index)
     void                removeChild(SoNode *child)
     void                removeAllChildren()
     void                replaceChild(int index, SoNode *newChild)
     void                replaceChild(SoNode *oldChild, SoNode *newChild)

          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 is a subclass of SoSeparator that redraws itself in a different color when the cursor
       is over the contents of the separator.

       The  redraw  happens  for  that separator only and not the entire window (redraw along the
       handle event pick path) and in the front buffer, to efficiently track  the  mouse  motion.
       The  highlighted  redraw overrides the emissive and/or diffuse color of the subgraph based
       on the field values in this node.

       NOTE: when using SoLightModel::BASE_COLOR (to turn lighting off) only  the  diffuse  color
       will be used to render objects, so EMISSIVE_DIFFUSE must be used for this node to have any
       effect.

FIELDS

     SoSFColor           color
          highlighting color - default [.3, .3, .3]

     SoSFEnum            style
          highlighting draw style - default EMISSIVE

     SoSFEnum            mode
          Whether to highlight or not - default AUTO

METHODS

                         SoLocateHighlight()
          Creates a LocateHighlight node with default settings.

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

ACTION BEHAVIOR

       SoHandleEventAction
          Checks to see if the cursor moves onto or off of the contents  of  the  separator,  and
          redraws appropriately (if mode is AUTO), otherwise traverses as a normal separator.

     SoGLRenderAction
          Redraws  either  highlighted (if cursor is over the contents of the separator when mode
          == AUTO or always if mode == ON), otherwise traverses as a normal separator.

FILE FORMAT/DEFAULTS

       LocateHighlight {
          renderCaching       AUTO
          boundingBoxCaching  AUTO
          renderCulling       AUTO
          pickCulling         AUTO
          mode                AUTO
          style               EMISSIVE
          color               0.3 0.3 0.3
     }

SEE ALSO

       SoSeparator, SoSelection, SoMaterial

                                                                         SoLocateHighlight(3IV)()