public abstract class SoOffscreenVolumeRender extends SoNode
SoVolumeRender
.
The SoOffscreenVolumeRender
node extracts data by rendering one or more volumes (via SoVolumeRender
) into a buffer that can then be used for different computation tasks.
Volumes of interest are specified by a subscenegraph in volumerenderSceneGraph
.
The region to be extracted is the bounding box of the scene graph specified in the bboxSceneGraph
field.
To implement an extraction, the application must derive a new class from SoOffscreenVolumeRender
and implement :
The resolution of the extraction is controlled by boxSize
field. As extraction is done using GPU techniques, there is a size limit on the boxSize that can be extract in one call. This limit can be retreived through getMaxBoxSize call.
Limitations:
SoVolumeDataDrawStyle
or SoVolumeIsosurface
).
SoResetTransform
node usage should be avoided in volumeRenderSceneGraph or bboxSceneGraph scene graph, in order to get the best extraction precision even with very flat extraction box. In general it is possible to use SoTransformSeparator
node instead.
File format/default:
volumerenderSceneGraph | NULL |
bboxSceneGraph | NULL |
boxSize | (64, 64, 64) |
trigger | false |
opacityThreshold | 0 |
components | ALPHA |
See also:
Modifier and Type | Class and Description |
---|---|
static class |
SoOffscreenVolumeRender.ComponentsType |
Inventor.ConstructorCommand
Modifier and Type | Field and Description |
---|---|
static int |
ALPHA
Deprecated.
Use
SoOffscreenVolumeRender.ComponentsType.ALPHA instead. |
SoSFNode |
bboxSceneGraph
Head of the scene graph that defines the 3D off-screen scene cube to consider in world coordinates.
|
SoSFVec3i32 |
boxSize
Resolution of the output data in the off-screen box.
|
SoSFEnum<SoOffscreenVolumeRender.ComponentsType> |
components
Components to get back from the offscreen render.
|
SoSFMatrix |
dataSpaceMatrix
This transformation is applied on the volume render texture coordinate during the extraction.
|
SoSFFloat |
opacityThreshold
During extraction, voxels with an opacity less than the specified value will be ignored Default is 0.
|
static int |
RGBA
Deprecated.
Use
SoOffscreenVolumeRender.ComponentsType.RGBA instead. |
SoSFBool |
trigger
Setting this field to true will start the off-screen rendering process.
|
SoSFNode |
volumerenderSceneGraph
Head of the scene graph that contains one or multiple VolumeRender node to render in 3D off-screen cube.
|
VERBOSE_LEVEL, ZeroHandle
Modifier and Type | Method and Description |
---|---|
SbVec3i32 |
getMaxBoxSize()
Calls getMaxBoxSize((com.openinventor.inventor.misc.SoState)null).
|
SbVec3i32 |
getMaxBoxSize(SoState state)
Returns the maximum boxSize that can be extract in one boxComputed for the current state.
|
SbBox3d |
ijkToXyzBox(SbBox3i32 ijkBox)
Convert ijk box coordinates returned by boxComputed method to the bboxSceneGraph space.
|
boolean |
synchronousExtraction(SoSceneManager sceneManager)
Does extraction synchronously, whereas using trigger field will execute extraction on next redraw.
|
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 ALPHA
SoOffscreenVolumeRender.ComponentsType.ALPHA
instead.@Deprecated public static final int RGBA
SoOffscreenVolumeRender.ComponentsType.RGBA
instead.public final SoSFNode volumerenderSceneGraph
public final SoSFNode bboxSceneGraph
public final SoSFVec3i32 boxSize
public final SoSFBool trigger
public final SoSFFloat opacityThreshold
public final SoSFEnum<SoOffscreenVolumeRender.ComponentsType> components
public final SoSFMatrix dataSpaceMatrix
To swap I and J axis, the matrix would be:
SbMatrix( 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
To reverse I axis, the matrix would be:
SbMatrix(-1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1);
To reverse J axis, the matrix would be:
SbMatrix( 1, 0, 0, 0, 0,-1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1);
To reverse K axis, the matrix would be:
SbMatrix( 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1);
public SbVec3i32 getMaxBoxSize()
public boolean synchronousExtraction(SoSceneManager sceneManager)
sceneManager
- the scene manager of the viewer scene to be extracted.
public SbVec3i32 getMaxBoxSize(SoState state)
Generated on January 23, 2025, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com