Class SoAnnotation
- All Implemented Interfaces:
SafeDisposable
- Direct Known Subclasses:
Gnomon
,SliceOrientationMarkers
,SliceScaleBar
,TextBox
SoSeparator
, so it saves and restores traversal state for all actions.
Rendering order:
Objects under an SoAnnotation
node are rendered after "delayed" transparent objects. See SoGLRenderAction
for more information about rendering order. 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.
Note: Because depth buffer comparisons are disabled, complex 3D objects may not be rendered correctly when used under annotation nodes. Moreover, camera's exposure fields do not impact the scene graph of this node, since its rendering is delayed after everything at the very end.
Picking:
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.
File format/default:
Annotation {
boundingBoxCaching | AUTO |
renderCulling | AUTO |
pickCulling | AUTO |
fastEditing | false |
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
-
Nested Class Summary
Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoSeparator
SoSeparator.Cachings, SoSeparator.FastEditings, SoSeparator.RenderUnitIds
Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoNode
SoNode.RenderModes
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
Field Summary
Fields inherited from class com.openinventor.inventor.nodes.SoSeparator
boundingBoxCaching, fastEditing, pickCulling, renderCaching, renderCulling, renderUnitId
Fields inherited from class com.openinventor.inventor.nodes.SoGroup
boundingBoxIgnoring
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class com.openinventor.inventor.nodes.SoGroup
addChild, findChild, getChild, getNumChildren, insertChild, removeAllChildren, removeChild, removeChild, replaceChild, replaceChild
Methods inherited from class com.openinventor.inventor.nodes.SoNode
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderEngineMode, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
Methods inherited from class com.openinventor.inventor.fields.SoFieldContainer
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
Methods inherited from class com.openinventor.inventor.misc.SoBase
dispose, getName, isDisposable, isSynchronizable, setName, setSynchronizable
Methods inherited from class com.openinventor.inventor.Inventor
getNativeResourceHandle
-
Constructor Details
-
SoAnnotation
public SoAnnotation()Creates an annotation node with default settings.
-