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

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
     }

                                                                              SoAnnotation(3IV)()