SIMVoleon  2.1.0
Coin3D volume rendering library
No Matches
SoObliqueSlice Class Reference

Render a slice of the volume data, with any orientation. More...

#include <VolumeViz/nodes/SoObliqueSlice.h>

Inheritance diagram for SoObliqueSlice:

Public Types

enum  Interpolation { NEAREST , LINEAR }

Static Public Member Functions

static void initClass (void)

Public Attributes

SoSFEnum alphaUse
SoSFNode alternateRep
SoSFEnum interpolation
SoSFPlane plane

Protected Member Functions

virtual void computeBBox (SoAction *action, SbBox3f &box, SbVec3f &center)
virtual void generatePrimitives (SoAction *action)
virtual void GLRender (SoGLRenderAction *action)
virtual void rayPick (SoRayPickAction *action)
virtual SbBool readInstance (SoInput *in, unsigned short flags)
virtual void write (SoWriteAction *action)

Detailed Description

Render a slice of the volume data, with any orientation.

Insert a node of this type after an SoVolumeData node in the scene graph to render a single slice from the full volume data set. The slice is specified as a plane with an orientation and position within the volume.

Rendering of an oblique slice

Here is a simple example, in the form of an iv-file:

#Inventor V2.1 ascii

SoVolumeData { fileName "ENGINE.VOL" }
Separator {
  SoTransferFunction { }  
  DEF clipper ClipPlaneManip { }
  SoVolumeRender { }   

Separator {
  SoTransferFunction { predefColorMap GLOW }  
  SoObliqueSlice {
    interpolation LINEAR 
    alphaUse ALPHA_AS_IS
    plane = USE clipper . plane

Please note that SoObliqueSlice will not work with older OpenGL drivers as they usually lack 3D-texture support. OpenGL drivers of version 1.2 and onwards supports 3D-texturing, as does older OpenGL drivers with the GL_EXT_texture3D extension. If none of these are available, a warning message will be printed using Coin's SoDebugError::postWarning().

See also
SoVolumeRender, SoOrthoSlice
SoVolumeTriangleStripSet, SoVolumeIndexedTriangleStripSet,
SoVolumeIndexedFaceSet, SoVolumeFaceSet
SIM Voleon 2.0

Member Enumeration Documentation

◆ AlphaUse


The alpha channel is rendered 'as-is'.


The alpha channel is ignored making the slice opaque.


All alpha values not equal to 0 are treated as value 1.0f.

◆ Interpolation

Enumeration of available types of voxel color interpolation.


For "in between" pixels of the screen rasterization, pick the color of the nearest voxel. Will give sharp edges and a distinct blocky look.


For "in between" pixels of the screen rasterization, interpolate by averaging the colors of several of the nearest voxels. Will give a smoother appearance, but sacrifies some "correctness" for appearance.

Member Data Documentation

◆ alphaUse

SoSFEnum SoObliqueSlice::alphaUse

How the alpha channel should be treated during rendering. See SoObliqueSlice::AlphaUse.

Default value is SoObliqueSlice::ALPHA_AS_IS

◆ alternateRep

SoSFNode SoObliqueSlice::alternateRep

NOTE: support for this field not yet implemented in SIM Voleon.

SIM Voleon 2.0

◆ interpolation

SoSFEnum SoObliqueSlice::interpolation

How to interpolate color values when rendering "in between" voxels. See SoObliqueSlice::Interpolation.

Default value is SoObliqueSlice::LINEAR.

◆ plane

SoSFPlane SoObliqueSlice::plane

The plane defining the slice.

Default value is an XY plane.

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