SoOffscreenVolumeRender Class Reference
[Nodes]

VolumeViz Extract data from an SoVolumeRender More...

#include <VolumeViz/nodes/SoOffscreenVolumeRender.h>

Inheritance diagram for SoOffscreenVolumeRender:
SoNode SoFieldContainer SoBase SoRefCounter SoTypedObject SoOffscreenVolumeRenderCustom

List of all members.

Public Types

enum  Components {
  ALPHA,
  RGBA
}

Public Member Functions

virtual SoType getTypeId () const
 SoOffscreenVolumeRender ()
SbVec3i32 getMaxBoxSize (SoState *state=NULL)
SbBox3d ijkToXyzBox (const SbBox3i32 &ijkBox)
bool synchronousExtraction (SoSceneManager *sceneManager)

Static Public Member Functions

static SoType getClassTypeId ()

Public Attributes

SoSFNode volumerenderSceneGraph
SoSFNode bboxSceneGraph
SoSFVec3i32 boxSize
SoSFBool trigger
SoSFFloat opacityThreshold
SoSFEnum components
SoSFMatrix dataSpaceMatrix

Detailed Description

VolumeViz Extract data from an 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:

FILE FORMAT/DEFAULT

SEE ALSO

SoDataSet, SoVolumeData, SoVolumeRender

See related examples:

MedicalVolumeExtract, VolumeExtract


Member Enumeration Documentation

Enumerator:
ALPHA 
RGBA 

Constructor & Destructor Documentation

SoOffscreenVolumeRender::SoOffscreenVolumeRender (  ) 

Default constructor.


Member Function Documentation

static SoType SoOffscreenVolumeRender::getClassTypeId (  )  [static]

Returns the type identifier for this class.

Reimplemented from SoNode.

Reimplemented in SoOffscreenVolumeRenderCustom.

SbVec3i32 SoOffscreenVolumeRender::getMaxBoxSize ( SoState state = NULL  ) 

Returns the maximum boxSize that can be extract in one boxComputed for the current state.

virtual SoType SoOffscreenVolumeRender::getTypeId (  )  const [virtual]

Returns the type identifier for this specific instance.

Reimplemented from SoNode.

Reimplemented in SoOffscreenVolumeRenderCustom.

SbBox3d SoOffscreenVolumeRender::ijkToXyzBox ( const SbBox3i32 ijkBox  ) 

Convert ijk box coordinates returned by boxComputed method to the bboxSceneGraph space.

bool SoOffscreenVolumeRender::synchronousExtraction ( SoSceneManager sceneManager  ) 

Does extraction synchronously, whereas using trigger field will execute extraction on next redraw.

Parameters:
sceneManager the scene manager of the viewer scene to be extracted.
Returns:
TRUE on success.

Member Data Documentation

Head of the scene graph that defines the 3D off-screen scene cube to consider in world coordinates.

Resolution of the output data in the off-screen box.

Components to get back from the offscreen render.

Use enum Components. Default is ALPHA.

This transformation is applied on the volume render texture coordinate during the extraction.

It allows to change the extraction frame. This matrix is applied on normalized texture coordinates all components are between 0-1 and must be in [0-1] after the transformation. So to inverse an axis, we must apply the following transformation: -1*u+1 (where u is a texture coordinate) and not just a simple negative scale.

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);

During extraction, voxels with an opacity less than the specified value will be ignored Default is 0.

Valid range is [0-1].

Setting this field to TRUE will start the off-screen rendering process.

This field is set to FALSE when computation is finished. Default is FALSE.

Head of the scene graph that contains one or multiple VolumeRender node to render in 3D off-screen cube.


The documentation for this class was generated from the following file:

Open Inventor Toolkit reference manual, generated on 28 Oct 2019
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/