public class SoSeparator extends SoGroup
Caching:
The SoSeparator
node provides caching of state during rendering and during bounding box computation. This feature can be explicitly enabled or disabled by setting the renderCaching
and boundingBoxCaching
fields. By default, these fields are set to AUTO, which means that Open Inventor decides whether to build a cache based on internal heuristics.
Note that during the caching process, insufficient memory errors can happen, due to hardware limitations (ex: GPU memory). In this case, to prevent bad rendering or a crash, Open Inventor will disable caching for the current Separator by setting its renderCaching
field to OFF. In this case, we recommend to split the Separator's scene graph into several sub-scene graphs each with a new Separator as the head node.
Note that setting the renderCaching
policy to OFF will prevent this specific Separator from building a cache but it does
not prevent Separator nodes higher in the scene graph from building a cache that includes this Separator. In other words, during traversal it will not invalidate a currently open cache created by a Separator above this one. To invalidate any open cache and prevent this Separator from being cached, create an SoCallback
node and use it to call the SoCacheElement
's invalidate() method. This may reduce rendering performance.
The directVizCaching
field is
only used when DirectViz rendering is enabled. It controls the way DirectViz internal objects are built. When an SoSeparator
node is traversed with directVizCaching set to ON, DirectViz will build one internal object for all the shapes below, and the directVizCaching field is ignored for all of the SoSeparator
nodes below. Default value is OFF.
Culling:
Separators can also perform culling during rendering and picking. Culling skips over traversal of the separator's children if they are not going to be rendered or picked, based on the comparison of the separator's bounding box with the current view volume. Culling is controlled by the renderCulling
and pickCulling
fields. These are also set to AUTO by default; however, render culling can be expensive (and can interfere with render caching), so the AUTO heuristics leave it disabled unless specified otherwise. Note that if renderCulling is ON, the SoSeparator
will prohibit auto-caching, so that no SoSeparator
(or other render caching node) above this node in the scene graph will automatically create a render cache.
Fast edit:
The fast editing feature allows you to modify parts of a scene without redrawing the entire scene. For example, you could use it to interactively move a small object in a large scene that takes a long time to redraw. Fast editing must be enabled using SoGLRenderAction.setFastEditSavePolicy
.
The fastEditing
field enables fast editing for the sub-graph under the SoSeparator
. Possible values are DISABLE, KEEP_ZBUFFER, and CLEAR_ZBUFFER. Using KEEP_ZBUFFER means that the fast edit geometry is depth buffered against the other objects in the scene, and using CLEAR_ZBUFFER means that the fast edit geometry will be drawn on top of the other objects of the scene. If several SoSeparators have the CLEAR_ZBUFFER flag set, they are drawn in the order in which they appear in the scene. The last separator in the scene will be topmost on the screen.
Fast edit performance:
SoSeparator
of your scene graph should not enable the fast editing feature. Otherwise, performance will be very poor.
Fast edit limitations:
File format/default:
Separator {
renderCaching | AUTO |
boundingBoxCaching | AUTO |
directVizCaching | OFF |
renderCulling | AUTO |
pickCulling | AUTO |
fastEditing | DISABLE |
renderUnitID | -1 |
Action behavior:
SoGLRenderAction
, SoCallbackAction
, SoGetBoundingBoxAction
, SoGetMatrixAction
, SoHandleEventAction
, SoRayPickAction
, SoSearchAction
Saves the current traversal state, traverses all children, and restores the previous traversal state. Sets: SoCacheElement
See also:
SoSelection
, SoTransformSeparator
, SoBufferRegion, SoDirectVizManager
.
Modifier and Type | Class and Description |
---|---|
static class |
SoSeparator.Cachings
Possible values for caching.
|
static class |
SoSeparator.FastEditings
Fast editing policy enumeration values.
|
static class |
SoSeparator.RenderUnitIds |
Inventor.ConstructorCommand
Modifier and Type | Field and Description |
---|---|
static int |
AUTO
Deprecated.
Use
SoSeparator.Cachings.AUTO instead. |
SoSFEnum<SoSeparator.Cachings> |
boundingBoxCaching
Whether to cache during bounding box traversal.
|
static int |
CLEAR_ZBUFFER
Deprecated.
Use
SoSeparator.FastEditings.CLEAR_ZBUFFER instead. |
SoSFEnum<SoSeparator.Cachings> |
directVizCaching
Whether to cache during OpenRTRT rendering traversal.
|
static int |
DISABLE
Deprecated.
Use
SoSeparator.FastEditings.DISABLE instead. |
SoSFEnum<SoSeparator.FastEditings> |
fastEditing
Specifies the fast edit mode of the separator node.
|
static int |
KEEP_ZBUFFER
Deprecated.
Use
SoSeparator.FastEditings.KEEP_ZBUFFER instead. |
static int |
OFF
Deprecated.
Use
SoSeparator.Cachings.OFF instead. |
static int |
ON
Deprecated.
Use
SoSeparator.Cachings.ON instead. |
SoSFEnum<SoSeparator.Cachings> |
pickCulling
Whether to cull during picking traversal.
|
SoSFEnum<SoSeparator.Cachings> |
renderCaching
Whether to cache during rendering traversal.
|
SoSFEnum<SoSeparator.Cachings> |
renderCulling
Whether to cull during rendering traversal.
|
SoSFInt32 |
renderUnitId
Used during the ScaleViz depth compositing process, this field specifies which render unit (OIRU) will render the sub scene graph below this separator.
|
boundingBoxIgnoring
VERBOSE_LEVEL, ZeroHandle
Constructor and Description |
---|
SoSeparator()
Creates a separator node with default settings.
|
SoSeparator(int nChildren)
Constructor that takes approximate number of children.
|
Modifier and Type | Method and Description |
---|---|
static int |
getNumRenderCaches()
Deprecated.
As of Open Inventor 8.0, use
SoDB.getNumRenderCaches() instead. |
static void |
setNumRenderCaches(int howMany)
Deprecated.
As of Open Inventor 8.0, use
SoDB.setNumRenderCaches(int) instead. |
addChild, findChild, getChild, getNumChildren, insertChild, removeAllChildren, removeChild, removeChild, replaceChild, replaceChild
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
dispose, getEXTERNPROTO, getName, getPROTO, isDisposable, isSynchronizable, setName, setSynchronizable
getAddress, getNativeResourceHandle, startInternalThreads, stopInternalThreads
@Deprecated public static final int OFF
SoSeparator.Cachings.OFF
instead.@Deprecated public static final int ON
SoSeparator.Cachings.ON
instead.@Deprecated public static final int AUTO
SoSeparator.Cachings.AUTO
instead.@Deprecated public static final int DISABLE
SoSeparator.FastEditings.DISABLE
instead.@Deprecated public static final int KEEP_ZBUFFER
SoSeparator.FastEditings.KEEP_ZBUFFER
instead.@Deprecated public static final int CLEAR_ZBUFFER
SoSeparator.FastEditings.CLEAR_ZBUFFER
instead.public final SoSFEnum<SoSeparator.Cachings> renderCaching
public final SoSFEnum<SoSeparator.Cachings> boundingBoxCaching
public final SoSFEnum<SoSeparator.Cachings> renderCulling
public final SoSFEnum<SoSeparator.Cachings> pickCulling
public final SoSFEnum<SoSeparator.Cachings> directVizCaching
public final SoSFEnum<SoSeparator.FastEditings> fastEditing
FastEditing
. Default is DISABLE.
public final SoSFInt32 renderUnitId
SoSeparator
.
public SoSeparator()
public SoSeparator(int nChildren)
@Deprecated public static void setNumRenderCaches(int howMany)
SoDB.setNumRenderCaches(int)
instead.@Deprecated public static int getNumRenderCaches()
SoDB.getNumRenderCaches()
instead.Generated on January 23, 2025, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com