SoAnnotation(3IV)

NAME
SoAnnotation — Annotation group node

INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoGroup > SoSeparator > SoAnnotation

SYNOPSIS
#include <Inventor/nodes/SoAnnotation.h>

Fields from class SoSeparator:

SoSFEnum
renderCaching
SoSFEnum
boundingBoxCaching
SoSFEnum
renderCulling
SoSFEnum
pickCulling

Methods from class SoAnnotation:

SoAnnotation()
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 group node delays rendering its children until all other nodes have been traversed, turning off depth buffer comparisons first. The result is that the shapes under the annotation node are rendered on top of the rest of the scene. This node is derived from SoSeparator, so it saves and restores traversal state for all actions.

Note that if more than one annotation node is present in a graph, the order in which they are traversed determines the stacking order — later nodes are rendered on top of earlier ones. Also note that since depth buffer comparisons are disabled, complex 3D objects may not be rendered correctly when used under annotation nodes.

Also note that the annotation node does nothing special when picking along a ray. That is, it does not modify the sorting order of intersected objects based on which ones are under annotation nodes. If your application uses annotation nodes and you want to ensure that objects under them are picked "in front of" other objects, you can tell the pick action that you want to pick all objects along the ray and then scan through the paths in the resulting picked point instances to see if any of them passes through an annotation node. Your program can then decide what to do in such a case.

METHODS

SoAnnotation()
Creates an annotation node with default settings.

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

ACTION BEHAVIOR
SoGLRenderAction
Delays rendering its children until all other nodes have been traversed, turning off depth buffer comparisons first.

SoCallbackAction, SoGetBoundingBoxAction, SoGetMatrixAction, SoRayPickAction, SoSearchAction
Same as SoSeparator

FILE FORMAT/DEFAULTS
Annotation {
renderCaching	AUTO
boundingBoxCaching	AUTO
renderCulling	AUTO
pickCulling	AUTO
}