Class SoScreenDrawer
- All Implemented Interfaces:
SafeDisposable
- Direct Known Subclasses:
SoPolyLineScreenDrawer
sceneGraph
field in screen space normalized in the range ([-1, 1]x[-1, 1]x[-1, 1]) relative to the current viewport.
The specified scene graph is automatically rendered using an SoAnnotation
node, an SoPickStyle
node with style = UNPICKABLE, and an SoOrthographicCamera
node.
Classes derived from SoScreenDrawer
are normally used to implement dynamically drawing a 2D shape, for example a rectangle, in response to mouse events. Applications will typically use one of these derived classes, for example, SoEllipseScreenDrawer
, SoRectangleScreenDrawer
, SoPolygonScreenDrawer
or SoLassoScreenDrawer
.
Please see SoPolyLineScreenDrawer
for important notes about these classes and a code example.
Applications may also implement their own custom screen drawer classes. The convenient onMouseDown(), onMouseMove(), ... methods can be implemented by sub-classes to customize behaviors for specific events, but the application can also reimplement the handleEvent() method to handle any event.
There should only be one SoScreenDrawer
derived node in the sceneGraph (to avoid conflicts in mouse events).
NOTE: This node and its subclasses use screen coordinates ranging from -1 to 1. (Because this is the default view volume for an SoOrthographicCamera
node.) Be careful because other classes in Open Inventor use normalized screen coordinates ranging from 0 to 1. In particular the SbViewportRegion
normalize() method and the SbViewVolume
methods that project from 3D to 2D and vice-versa.
- See Also:
-
Nested Class Summary
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
FieldsFields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
Constructor Summary
Constructors -
Method Summary
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
-
Field Details
-
sceneGraph
Scene graph to render.
-
-
Constructor Details
-
SoScreenDrawer
public SoScreenDrawer()Constructor.
-
-
Method Details
-
reset
public void reset()Resets internal state to initial values. This cancels any current drawing.- Since:
- Open Inventor 10.7.3
-