SoOrthoSlice Class Reference
[Nodes]

VolumeViz Ortho slice shape node. More...

#include <VolumeViz/nodes/SoOrthoSlice.h>

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

List of all members.

Public Types

enum  Axis {
  X,
  Y,
  Z
}
enum  ClippingSide {
  FRONT,
  BACK
}

Public Member Functions

virtual SoType getTypeId () const
 SoOrthoSlice ()
virtual SbBool affectsState () const

Static Public Member Functions

static SoType getClassTypeId ()

Public Attributes

SoSFInt32 dataSetId
SoSFUInt32 sliceNumber
SoSFEnum axis
SoSFEnum clippingSide
SoSFBool clipping
SoSFBool enableBorder
SoSFColor borderColor
SoSFFloat borderWidth
SoSFBool enableImage

Detailed Description

VolumeViz Ortho slice shape node.

This node defines an ortho (axis aligned) slice along the X, Y, or Z axis of the volume data defined by an SoVolumeData node. The slice orientation and position are defined by the axis and sliceNumber fields.

The SoVolumeData node can be specified with dataSetId. When this field is set to 0, the last SoVolumeData node on state is used.

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) modifies the appearance of the slice. This means that, for example, the current transparency can be used as an 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 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.

Notes:

EXAMPLE

FILE FORMAT/DEFAULT

ACTION BEHAVIOR

SEE ALSO

SoDataRange, SoObliqueSlice, SoOrthoSliceDragger, SoROI, SoSlice, SoTransferFunction, SoVolumeData

See related examples:

MedicalImageFilterToggle, MedicalImageFilterWipe, MedicalDicomImageViewer, MedicalMPRViewer, MedicalIntensityAnisotropy, MedicalVolumeTextureCompose, MedicalGammaCorrection, MedicalOrthoSlice, MedicalOrthoSliceBorder, MedicalImageSegmentationFloodFill, MedicalMagicGlass, MedicalMagnifier, MedicalRuler, MedicalZoom, MedicalImageViewerRemote, MedicalMPRViewerRemote, LargeSliceSupport, AmplitudeVelocity, SimpleSliceRGBA, UndefinedVoxel, VolRend, VolumeTransform, VVIZ-Template-SG


Member Enumeration Documentation

Slice Axis (see discussion of medical data axes in the class description).

Enumerator:
X 

X Axis.

Y 

Y Axis.

Z 

Z Axis (Default).

Clipping Side mode.

Enumerator:
FRONT 

Front.

BACK 

Back (Default).


Constructor & Destructor Documentation

SoOrthoSlice::SoOrthoSlice (  ) 

Constructor.


Member Function Documentation

virtual SbBool SoOrthoSlice::affectsState (  )  const [virtual]

Overrides default method on SoShape.

It must return TRUE if clip plane is activated. Used internally, especially for path traversal. Probably no reason for applications to ever call it.

Reimplemented from SoShape.

static SoType SoOrthoSlice::getClassTypeId (  )  [static]

Returns the type identifier for this class.

Reimplemented from SoSlice.

Reimplemented in OrthoSliceBorder.

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

Returns the type identifier for this specific instance.

Reimplemented from SoSlice.

Reimplemented in OrthoSliceBorder.


Member Data Documentation

Slice axis (X, Y, or Z).

Use enum Axis. Default is Z.

Border color.

Default is [0.84, 0.43, 0.02] (orange luminance 55%).

NOTE: field available since Open Inventor 10.10

Border width in pixels.

Default is 2. For more information about borderWidth units: see SoDrawStyle::lineWidth

NOTE: field available since Open Inventor 10.10

Activate/deactivate a clipping plane on a per-slice basis.

Optionally, this node also defines a clipping plane. Similar to SoClipPlane, this clipping plane affects all subsequent geometry, including SoVolumeRender, but does not of course affect the ortho slice itself. The clippingSide field controls which half-space is clipped.

Specifies the clipping side.

Use enum ClippingSide. Default is BACK. Clipping side FRONT means that the clip plane (removes) clips away geometry in the positive direction on the slice axis. BACK means that the clip plane clips away geometry in the negative direction on the slice axis.

These figures show an ortho slice clipping a data volume.

Right:

Bottom left:

Bottom right:

binarylinear.jpg
opaquelinear.jpg
binarynearest.jpg

Specifies the SoVolumeData node to use.

This is useful when datasets of different dimensions are present in the scene graph. Please see SoMultiDataSeparator for more details.

When set to 0, the last SoVolumeData node on state is used. Default is 0.

NOTE: field available since Open Inventor 10.11.0

Enables drawing the border.

Default is false.

NOTE: field available since Open Inventor 10.10

Enables drawing the slice image.

Default is true. Note that setting this field to false makes the slice image invisible, but the slice is still detectable by picking if the border is enabled.

Example of a typical use case : The folling code shows how to use a boolean engine to disable the image rendering while dragging.

    SoRef<SoBoolOperation> engine = new SoBoolOperation;
    engine->a.connectFrom(&dragger->isActive);
    orthoslice->enableImage.connectFrom(&engine->inverse);

Another typical usecase is if you want to display the slice image in a 2D view and also show only the slice position in a 3D view (without the slice image).

NOTE: field available since Open Inventor 10.10

Slice number.


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

Open Inventor Toolkit reference manual, generated on 15 Mar 2023
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/