Class SoOverlayGroup
- All Implemented Interfaces:
SafeDisposable
SoGroup, the SoOverlayGroup node renders multiple co-planar shapes without any Z-fighting artifacts.
Overlapping co-planar shapes should be inserted as children of a SoOverlayGroup. The shapes are stacked for the rendering according to their places in the child list: the i th shape will be drawn above the i-1 th shape.
For instance, in the following picture the red square is the first shape child, and the green triangle is the second shape child of a SoOverlayGroup. SoGroup, which does not prevent the Z-fighting artifact where the 2 shapes overlap.
The SoOverlayGroup is only designed to correctly render planar shapes. Inserting in SoOverlayGroup spheres, cylinders, cubes or any shape whose vertices are not on a single euclidean plane may cause an unexpected rendering. However, this does not limit the SoOverlayGroup to 2D rendering. You can create several SoOverlayGroup instances, but all the shapes under an overlay group must be a planar shape and must be located on the same 3D plane. One different 3D plane per instance of SoOverlayGroup is possible as in the following picture from the example "Inventor\Features\OverlayPanels" in which each panel corresponds to one instance of an SoOverlayGroup.
The SoOverlayGroup is not designed to solve any Z-fighting artifact on 3D shapes. For instance, a correct rendering of meridian circles onto a sphere requires using either SoPolygonOffset or SoDepthOffset.
# Limitations of the overlay group:
- The
SoHaloHighlightRenderActioncan be used to highlight any shape in aSoOverlayGroup, but the alwaysVisible option must be true. SeeSoHaloHighlightRenderAction.setHaloAlwaysVisible(). - The behaviour of a
SoColorHighlightRenderActionwith anSoOverlayGroupis the same as with anSoGroup, thus some Z-fighting may occur.
File format/default:
OverlayGroup {
Action behavior:
Similar behavior as described in SoGroup.
- Since:
- Open Inventor 2024.1
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoNode
SoNode.RenderModesNested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand -
Field Summary
Fields inherited from class com.openinventor.inventor.nodes.SoGroup
boundingBoxIgnoringFields 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, replaceChildMethods 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, writeMethods inherited from class com.openinventor.inventor.fields.SoFieldContainer
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaultsMethods inherited from class com.openinventor.inventor.misc.SoBase
dispose, getName, isDisposable, isSynchronizable, setName, setSynchronizableMethods inherited from class com.openinventor.inventor.Inventor
getNativeResourceHandle
-
Constructor Details
-
SoOverlayGroup
public SoOverlayGroup()Creates an empty overlay group node.
-