SOLOCATEHIGHLIGHT(3iv)
β¨ NAME β¨
SoLocateHighlight β it's the special separator that performs locate highlighting, bestie π
. And yes, the manual name is SoLocateHighlight(3IV)() β folded in, no cap.
π INHERITS FROM π
The family tree is giving: SoBase > SoFieldContainer > SoNode > SoGroup > SoSeparator > SoLocateHighlight π. So it's a whole lineage, periodt.
π SYNOPSIS π
Okay so first things first, the include is literally:
#include <Inventor/nodes/SoLocateHighlight.h>
Then the enums are:
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
}
Then the fields and methods, all the exact vibes:
Fields from class SoLocateHighlight:
SoSFColor colorSoSFEnum styleSoSFEnum mode
Fields from class SoSeparator:
SoSFEnum renderCachingSoSFEnum boundingBoxCachingSoSFEnum renderCullingSoSFEnum 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) constint findChild(const SoNode *child) constint getNumChildren() constvoid 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() constSoNode * copy(SbBool copyConnections = FALSE) constvirtual SbBool affectsState() conststatic SoNode * getByName(const SbName &name)static int getByName(const SbName &name, SoNodeList &list)
Methods from class SoFieldContainer:
void setToDefaults()SbBool hasDefaultValues() constSbBool fieldsAreEqual(const SoFieldContainer *fc) constvoid copyFieldValues(const SoFieldContainer *fc, SbBool copyConnections = FALSE)SbBool set(const char *fieldDataString)void get(SbString &fieldDataString)virtual int getFields(SoFieldList &resultList) constvirtual SoField * getField(const SbName &fieldName) constSbBool getFieldName(const SoField *field, SbName &fieldName) constSbBool isNotifyEnabled() constSbBool enableNotify(SbBool flag)
Methods from class SoBase:
void ref()void unref() constvoid unrefNoDelete() constvoid touch()virtual SoType getTypeId() constSbBool isOfType(SoType type) constvirtual void setName(const SbName &name)virtual SbName getName() const
π¦ DESCRIPTION π¦
Okay so SoLocateHighlight is a subclass of SoSeparator that redraws itself in a different color when the cursor is over the contents of the separator. It's giving "notice me" energy, but make it Open Inventor. π
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. So it's lowkey efficient, no cap. The highlighted redraw overrides the emissive and/or diffuse color of the subgraph based on the field values in this node. Periodt.
NOTE: when usingSoLightModel::BASE_COLOR(to turn lighting off) only the diffuse color will be used to render objects, soEMISSIVE_DIFFUSEmust be used for this node to have any effect. Don't forget this, bestie, or your highlight will be a ghost π».
π FIELDS π
SoSFColor colorβ highlighting color - default[.3, .3, .3]. It's the main character color, bestie. πSoSFEnum styleβ highlighting draw style - defaultEMISSIVE. Choose your vibe.SoSFEnum modeβ Whether to highlight or not - defaultAUTO. The mood ring of the node. β¨
π METHODS π
SoLocateHighlight()β Creates aLocateHighlightnode with default settings. Fresh out the box, no cap. π«Άstatic SoType getClassTypeId()β Returns type identifier for this class. So you know exactly what you're dealing with. π
π₯ ACTION BEHAVIOR π₯
SoHandleEventActionβ Checks to see if the cursor moves onto or off of the contents of the separator, and redraws appropriately (ifmodeisAUTO), otherwise traverses as a normal separator. It's literally keeping tabs on your mouse. π±οΈSoGLRenderActionβ Redraws either highlighted (if cursor is over the contents of the separator whenmode == AUTOor always ifmode == ON), otherwise traverses as a normal separator. Slay. β¨
π 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 β go read those too, bestie. They're iconic in their own way. π¦
Source/version: SoLocateHighlight(3IV)(). Date: it's blank, so no date, periodt. That's the whole manual page, bestie. Stay slaying, and may your highlights always hit. πβ¨π
π¦ where this page comes from
- debian bookworm: inventor-doc 2.1.5-10+dfsg-2 Β· LGPL-2.0-or-later
- debian trixie: inventor-doc 2.1.6+ds-2 Β· LGPL-2.0-or-later
- ubuntu jammy: inventor-doc 2.1.5-10-24
- ubuntu noble: inventor-doc 2.1.5-10+dfsg-2.1build2 Β· LGPL-2.0-or-later
- ubuntu questing: inventor-doc 2.1.6+ds-2
- ubuntu resolute: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- ubuntu stonking: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms