SoLocateHighlight(3IV)

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