SoFenceSlice Class Reference

VolumeViz Fence slice shape node. More...

#include <VolumeViz/nodes/SoFenceSlice.h>

Inheritance diagram for SoFenceSlice:
SoSlice SoVolumeShape SoLdmShape SoShape SoNode SoFieldContainer SoBase SoRefCounter SoTypedObject

List of all members.

Public Types

enum  Axis {

Public Member Functions

virtual SoType getTypeId () const
 SoFenceSlice ()
virtual bool intersect (SoLDMNodeFrontManager *nfm, const SoLDMTileID &tileId)

Static Public Member Functions

static SoType getClassTypeId ()
static SbBool isSupported (SoState *state=NULL)

Public Attributes

SoMFVec2f points
SoSFEnum axis

Detailed Description

VolumeViz Fence slice shape node.

This node renders a strip (connected series) of slices. The strip is defined by a set of 2D vertices that form a polyline. Each segment of the polyline is extruded along the axis specified in the axis field to form (in effect) an oblique slice. The default axis is Z, so the 2D points are treated as (X,Y) values. The points may be outside the 3D extent of the volume, but only the portion of the slice inside the volume will be drawn (subject to region of interest and other clipping nodes).

A similar effect could be obtained using volume geometry (e.g. SoVolumeFaceSet), but SoFenceSlice is more convenient and is optimized for this specific case.

The 2D coordinates are interpreted according to the following table. See the code example below.

Fence axis Coordinate axes
X Y , Z
Y Z , X
Z X , Y

For a non-RGBA (scalar valued) volume, each voxel's RGBA value is determined by the current SoDataRange and SoTransferFunction. The current diffuse color and transparency (set, for example, with an SoMaterial node) modify the appearance of the slice. This means that, for example, the current transparency can be used as a global alpha value to modulate the overall opacity of the slice. For an RGBA volume each voxel's RGBA value comes directly from the volume data.

The interpolation field controls how the texture is interpolated.

The alphaUse field (SoSlice) controls how the voxel's alpha component is used when drawing the fence slice.

Optionally a bump mapping effect may be applied. Normal vectors are automatically computed from the data value gradient. The enableBumpMapping and bumpScale fields (SoSlice) control whether bump mapping is active and the intensity of the effect.






SoVolumeData, SoDataRange, SoTransferFunction, SoROI, SoSlice SoObliqueSlice, SoOrthoSlice, SoFenceSliceDetail

See related examples:

VViz-template-SG, FenceSlice

Member Enumeration Documentation



Constructor & Destructor Documentation

SoFenceSlice::SoFenceSlice (  ) 


Member Function Documentation

static SoType SoFenceSlice::getClassTypeId (  )  [static]

Returns the type identifier for this class.

Reimplemented from SoSlice.

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

Returns the type identifier for this specific instance.

Reimplemented from SoSlice.

virtual bool SoFenceSlice::intersect ( SoLDMNodeFrontManager nfm,
const SoLDMTileID tileId 
) [virtual]

Returns true if the shape intersects the given tile.

Reimplemented from SoLdmShape.

static SbBool SoFenceSlice::isSupported ( SoState state = NULL  )  [static]

Returns true if graphic card can render an SoFenceSlice.

GPU must support GLSL. When using a debug build of Open Inventor, some "no context available" warning messages may be generated. You can ignore them or see SoGLExtension for an example of using SoGLContext to avoid them.

Member Data Documentation

Extrusion axis: X, Y, or Z.

Use enum Axis. Default is Z.

Set of points defining a lineset.

If axis is:

  • X: points are Y,Z coordinates
  • Y: points are Z,X coordinates
  • Z: points are X,Y coordinates

All points should be inside the 3D extent of the volume.

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

Open Inventor Toolkit reference manual, generated on 1 Nov 2022
Copyright © Thermo Fisher Scientific All rights reserved.