SoScreenDrawer Class |
Base class to draw a scene graph in screen space.
Namespace: OIV.Inventor.Drawers
The SoScreenDrawer type exposes the following members.
Name | Description | |
---|---|---|
SoScreenDrawer | Constructor. |
Name | Description | |
---|---|---|
AffectsState | Returns true if a node has an effect on the state during traversal. | |
Callback | (Overrides SoNodeCallback(SoCallbackAction).) | |
Copy | Calls Copy(false). (Inherited from SoNode.) | |
Copy(Boolean) | Creates and returns an exact copy of the node. | |
CopyFieldValues(SoFieldContainer) | Calls CopyFieldValues(fc, false). (Inherited from SoFieldContainer.) | |
CopyFieldValues(SoFieldContainer, Boolean) | Copies the contents of fc's fields into this object's fields. | |
Dispose |
Releases all resources used by SoDisposable.
(Inherited from SoDisposable.) | |
Distribute | (Inherited from SoNode.) | |
DoAction | (Overrides SoNodeDoAction(SoAction).) | |
EnableNotify | Notification at this Field Container is enabled (if flag == true) or disabled (if flag == false). | |
Equals | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
FieldsAreEqual | Returns true if this object's fields are exactly equal to fc's fields. | |
Get | Returns the values of the fields of this object in the Open Inventor ASCII file format in the given string. | |
GetAllFields | Returns a list of fields, including the eventIn's and eventOut's. | |
GetAlternateRep | This method is called by actions to allow the node to provide an "alternate representation" when appropriate (typically depending on the action type). | |
GetBoundingBox | (Overrides SoNodeGetBoundingBox(SoGetBoundingBoxAction).) | |
GetEventIn | Returns a the eventIn with the given name. | |
GetEventOut | Returns the eventOut with the given name. | |
GetField | Returns a the field of this object whose name is fieldName. | |
GetFieldName | Returns the name of the given field in the fieldName argument. | |
GetFields | Appends references to all of this object's fields to resultList, and returns the number of fields appended. | |
GetHashCode |
Overrides GetHashCode().
(Inherited from SoNetBase.) | |
GetMatrix | (Inherited from SoNode.) | |
GetName | Returns the name of an instance. | |
GetPrimitiveCount | (Overrides SoNodeGetPrimitiveCount(SoGetPrimitiveCountAction).) | |
GetRenderEngineMode | Returns the supported Render engine mode. | |
GetRenderUnitID | (Inherited from SoNode.) | |
GetStringName | (Inherited from SoBase.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
GLRender | (Overrides SoNodeGLRender(SoGLRenderAction).) | |
GLRenderBelowPath | (Inherited from SoNode.) | |
GLRenderInPath | (Inherited from SoNode.) | |
GLRenderOffPath | (Inherited from SoNode.) | |
GrabEventsCleanup | (Inherited from SoNode.) | |
GrabEventsSetup | (Inherited from SoNode.) | |
HandleEvent | Traversal routine for OIV.Inventor.Actions.SoHandleEventAction - this will call action->setHandled() if the event is handled. | |
HasDefaultValues | Returns true if all of the object's fields have their default values. | |
IsBoundingBoxIgnoring | This method is used by getBoundingBox action traversal to know if the current node must be traversed or not, ie the bounding should be ignored. | |
IsNotifyEnabled | Notification is the process of telling interested objects that this object has changed. | |
IsOverride | Returns the state of the override flag. | |
IsSynchronizable | Gets the ScaleViz synchronizable state of this object. | |
NormalizePoint | Returns position normalized in range -1..1 relative to specified viewport. | |
Pick | (Inherited from SoNode.) | |
RayPick | (Overrides SoNodeRayPick(SoRayPickAction).) | |
Reset | Resets internal state to initial values. | |
Search | (Inherited from SoNode.) | |
Set | Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format. | |
SetName | (Inherited from SoBase.) | |
SetOverride | Turns the override flag on or off. | |
SetSynchronizable | Sets this to be a ScaleViz synchronizable object. | |
SetToDefaults | Sets all fields in this object to their default values. | |
ToString |
Converts this SoBase structure to a human readable string.
(Inherited from SoBase.) | |
Touch | Marks an instance as modified, simulating a change to it. | |
Write | (Inherited from SoNode.) |
Name | Description | |
---|---|---|
IsDisposable | ISafeDisposable interface implementation.
(Inherited from SoDisposable.) | |
sceneGraph | Scene graph to render. | |
UserData |
Gets or sets the user data to be contained by the field container.
(Inherited from SoFieldContainer.) |
This node displays the scene graph specified by the OIV.Inventor.Drawers.SoScreenDrawer.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 OIV.Inventor.Nodes.SoAnnotation node, an OIV.Inventor.Nodes.SoPickStyle node with style = UNPICKABLE, and an OIV.Inventor.Nodes.SoOrthographicCamera node.
Classes derived from OIV.Inventor.Drawers.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, OIV.Inventor.Drawers.SoEllipseScreenDrawer, OIV.Inventor.Drawers.SoRectangleScreenDrawer, OIV.Inventor.Drawers.SoPolygonScreenDrawer or OIV.Inventor.Drawers.SoLassoScreenDrawer.
Please see OIV.Inventor.Drawers.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 OIV.Inventor.Drawers.SoScreenDrawer.HandleEvent(OIV.Inventor.Actions.SoHandleEventAction) method to handle any event.
There should only be one OIV.Inventor.Drawers.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 OIV.Inventor.Nodes.SoOrthographicCamera node.) Be careful because other classes in Open Inventor use normalized screen coordinates ranging from 0 to 1. In particular the OIV.Inventor.SbViewportRegion normalize() method and the OIV.Inventor.SbViewVolume methods that project from 3D to 2D and vice-versa.