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.