Scroll to navigation

SoAnnotation(3IV)() 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
}