SoView2DAnnotation

InventorModule
genre View2DExtended
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll SoView2D
definition view2d.def
see also SoView2D
inherits from SoView2DExtension
keywords dicom, ct, mrt, information, user-defined, extension

Purpose

The module SoView2DAnnotation displays general and configurable image information in a 2D viewer.

Details

The following keywords are available in the annotation text (written as $(variablename)):

Variable Description
timepoint The current temporal position.
timepointPlus1 Above plus one.
slice The current slice.
slicePlus1 Above plus one.
numSlices The total number of slices.
sliceThickness The thickness of the slice in mm.
min The minimum voxel value of the dataset.
max The maximum voxel value of the dataset.
zoom The current zoom (zoom == 1 means one pixel per voxel).
type The datatype of the image.
status The status string of the SoView2D.
size[xyzctu] The size of the dataset in x,y,z,c,t,u dimension (in voxel).
page[xyzctu] The page size of the dataset in x,y,z,c,t,u dimension (in voxel).
voxel[xyz] The voxel size of the dataset in x,y,z dimension (in mm).
input[00-09] The string value of the input00- input09 fields.
numInput[00-09] The numerical value of the numInput00- numInput09 fields.
lutSize The size of the used LUT.
shader The active shader (GLSL, or empty if no shader is used).
distanceToCenterSlice In case of mosaic views, that displays the distance (in mm ) to the center slice.
distanceToCenterSliceCM In case of mosaic views, that displays the distance (in mm ) to the center slice.

In addition to these variables, any DICOM tag name can be specified, e.g., $(PatientsName).

One can specify a maximum displayed string length (for string values) or the decimal precision (for numerical values) by specifying an additional number after the variable name like this: $(variablename:number). If not given a variable-specific default is applied.

Interaction

Key Function
A Toggles Show Annotation modes.
I Toggles image information.

Tips

This module may be be used to display information on a 3D viewer as well by using a dummy SoView2D which does not draw the image. To facilitate orientation and scale determination of a 3D viewer, the field orientationAndScaleFromCamera on the automatic panel can be enabled, which will take the Open Inventor viewing matrix to determine the orientation (used for orientation letters and orientation cube) and which will render the rulers correctly when an orthographic camera is used. Rulers are automatically disabled for perspective cameras.

Windows

Default Panel

../../../Modules/Inventor/SoView2D/mhelp/Images/Screenshots/SoView2DAnnotation._default.png

Input Fields

inOrientationModel

name: inOrientationModel, type: SoNode

Output Fields

self

name: self, type: SoNode

Parameter Fields

Field Index

abreviateChars: Integer Hit Orientation Letter: String numInput07: Double
abreviateShortChars: Integer ignoreHandledEvents: Bool numInput08: Double
alt: Enum input00: String numInput09: Double
Annotation Color: Color input01: String Orientation Color: Color
Annotation Font Size: Enum input02: String orientationAndScaleFromCamera: Bool
Annotation Mode: Enum input03: String Position: Enum
Background Color: Color input04: String Relative Offset (orientationModelRelativeVerticalOffset): Float
Background Opacity: Float input05: String Relative Offset (orientationModelRelativeHorizontalOffset): Float
Bottom Center (annotationUserBottomCenter): String input06: String Relative Size: Float
Bottom Center (annotationCTBottomCenter): String input07: String renderOnSlab: Bool
Bottom Center (annotationMRBottomCenter): String input08: String Ruler Shadow: Bool
Bottom Center (shortBottomCenter): String input09: String selectionTolerance: Float
Bottom Left (annotationUserBottomLeft): String interactionProviderID: String setEventHandled: Bool
Bottom Left (annotationCTBottomLeft): String Is Mouse Over Cube: Bool Shadow Color: Color
Bottom Left (annotationMRBottomLeft): String Margin (verticalRulerMarginRight): Integer shift: Enum
Bottom Left (shortBottomLeft): String Margin (horizontalRulerMarginBottom): Integer Show Annotation: Enum
Bottom Right (annotationUserBottomRight): String Margin Bottom: Integer Show horizontal ruler: Bool
Bottom Right (annotationCTBottomRight): String Margin Left: Integer Show negative: Bool
Bottom Right (annotationMRBottomRight): String Margin Right: Integer Show Orientation: Enum
Bottom Right (shortBottomRight): String Margin Top: Integer Show positive: Bool
button1: Enum maskValid: Bool Show vertical ruler: Bool
button2: Enum Max Detail Font Size: Integer showTechnicalInfo: Bool
button3: Enum Max Short Font Size: Integer singleClicked: Trigger
clipToSlice: Bool Max. Pixel (orientationModelMaxVerticalOffset): Integer targetHeight: Integer
Color: Color Max. Pixel (orientationModelMaxHorizontalOffset): Integer targetWidth: Integer
control: Enum Max. Pixel Size: Integer Top Left (annotationUserTopLeft): String
createNewMode: Bool Min Detail Font Size: Integer Top Left (annotationCTTopLeft): String
createNewModeRequest: Trigger Min Short Font Size: Integer Top Left (annotationMRTopLeft): String
cursorShape: Enum Min. Pixel (orientationModelMinVerticalOffset): Integer Top Left (shortTopLeft): String
doubleClicked: Trigger Min. Pixel (orientationModelMinHorizontalOffset): Integer Top Right (annotationUserTopRight): String
Draw background: Bool Min. Pixel Size: Integer Top Right (annotationCTTopRight): String
drawingOn: Bool needsValidVoxel: Bool Top Right (annotationMRTopRight): String
Edge Color: Color numInput00: Double Top Right (shortTopRight): String
Edge Opacity: Float numInput01: Double Use text shadow: Bool
editingOn: Bool numInput02: Double User Detail Font Size: Integer
Enable: Bool numInput03: Double User Short Font Size: Integer
fixZOn: Bool numInput04: Double wantsAllEvents: Bool
Font Size: Integer numInput05: Double wantsKeyEvents: Bool
fontWidthDummyString: String numInput06: Double wantsMouseWheelEvents: Bool

Visible Fields

Annotation Color

name: color, type: Color, default: 1 1 1

Sets the color of the annotations.

see also SoView2DExtension.color

Annotation Mode

name: annotationMode, type: Enum, default: ANNO_MODE_AUTO

Defines the chapter from which the layout information is taken.

Values:

Title Name Deprecated Name Description
User ANNO_MODE_USER USER_ANNOTATION Information is taken from the USER chapter.
CT ANNO_MODE_CT CT_ANNOTATION Information is taken from the CT chapter.
MR ANNO_MODE_MR MR_ANNOTATION Information is taken from the MR chapter.
Auto ANNO_MODE_AUTO AUTO_SELECT_ANNOTATION Module chooses on base of DICOM tags.

Show Orientation

name: showOrientation, type: Enum, default: ANNO_ORIENTATION_SIZE_WEIGHTED

Defines how the orientation letters are displayed.

Values:

Title Name Deprecated Name Description
Off ANNO_ORIENTATION_OFF FALSE No orientation letters are shown.
Size Fixed ANNO_ORIENTATION_SIZE_FIXED   Orientation letters are always shown with the same size.
Size Weighted ANNO_ORIENTATION_SIZE_WEIGHTED TRUE The size of the orientation letters vary to indicate the actual orientation.

Show negative

name: drawNegativeOrientation, type: Bool, default: TRUE

If checked, the orientation letters pointing into negative axis directions are shown.

Show positive

name: drawPositiveOrientation, type: Bool, default: FALSE

If checked, the orientation letters pointing into positive axis directions are shown.

Orientation Color

name: orientationColor, type: Color, default: 1 1 1

Sets the color of the orientation letters.

Show vertical ruler

name: verticalRuler, type: Bool, default: TRUE, deprecated name: showVerticalRuler

If checked, a vertical ruler is shown at the right hand side of the viewer.

The scale and units of the ruler depend on the zoom level of the image.

Show horizontal ruler

name: horizontalRuler, type: Bool, default: FALSE, deprecated name: showHorizontalRuler

If checked, a horizontal ruler is shown at the bottom of the viewer.

The scale and units of the ruler depend on the zoom level of the image.

Margin (verticalRulerMarginRight)

name: verticalRulerMarginRight, type: Integer, default: 8

Sets a margin for the vertical ruler in pixel.

Margin (horizontalRulerMarginBottom)

name: horizontalRulerMarginBottom, type: Integer, default: 8

Sets a margin for the horizontal ruler in pixel.

Show Annotation

name: showAnnotation, type: Enum, default: ANNO_SHOW_DETAILED

Defines the annotation mode.

This can be toggled by pressing the A key in the viewer.

Also, the module toggles between Short and Detailed based on the size of the viewport.

Values:

Title Name Deprecated Name Description
Hide ANNO_SHOW_HIDE HIDE_ANNOTATION No annotation is shown.
Short ANNO_SHOW_SHORT SHORT_ANNOTATION A subset of information is shown.
Detailed ANNO_SHOW_DETAILED DETAILED_ANNOTATION All detailed information is shown.

Annotation Font Size

name: annotationFontSize, type: Enum, default: ANNO_SIZE_AUTO

Defines the size of the annotation font.

Values:

Title Name Deprecated Name Description
Auto ANNO_SIZE_AUTO AUTO_SIZE_ANNOTATION

The size is automatically chosen on base of the size of the viewport.

The sizes to switch between short and detailed information can be set with Min Short Font Size, Max Short Font Size, Min Detail Font Size, and Max Detail Font Size.

Small ANNO_SIZE_SMALL SMALL_ANNOTATION A small font size.
Medium ANNO_SIZE_MEDIUM MEDIUM_ANNOTATION A medium font size.
Large ANNO_SIZE_LARGE LARGE_ANNOTATION A large font size.
User ANNO_SIZE_USER   A user defined font size, defined in User Short Font Size and User Detail Font Size.

Min Detail Font Size

name: minDetailFontSize, type: Integer, default: 10, minimum: 6, maximum: :field:`maxDetailFontSize`

Sets the minimum font size for detail information before switching to short information.

Max Detail Font Size

name: maxDetailFontSize, type: Integer, default: 18, minimum: :field:`minDetailFontSize`, maximum: 64

Sets the maximum font size for detailed information.

Min Short Font Size

name: minShortFontSize, type: Integer, default: 8, minimum: 6, maximum: :field:`maxShortFontSize`

Sets the minimum font size for short information.

Max Short Font Size

name: maxShortFontSize, type: Integer, default: 12, minimum: :field:`minShortFontSize`, maximum: 64

Sets the maximum font size for short information before switching to detailed information.

User Detail Font Size

name: userDetailFontSize, type: Integer, default: 12, minimum: 6, maximum: 64

Sets the user font size for detailed information.

User Short Font Size

name: userShortFontSize, type: Integer, default: 10, minimum: 6, maximum: 64

Sets the user font size for short information.

Font Size

name: rulerFontSize, type: Integer, default: 12, minimum: 6, maximum: 64

Sets the font size of the ruler text.

Use text shadow

name: textShadow, type: Bool, default: TRUE

If checked, a text shadow is displayed to enhance readability.

Shadow Color

name: textShadowColor, type: Color, default: 0 0 0

Sets the color of all text shadows.

Ruler Shadow

name: rulerShadow, type: Bool, default: TRUE

If checked, the ruler(s) will be displayed with a black shadow.

Top Left (annotationUserTopLeft)

name: annotationUserTopLeft, type: String, default: $(PatientsName), $(PatientID) $(PatientsSex), $(PatientsBirthDate)

Sets the user annotation string for the top left corner.

Top Right (annotationUserTopRight)

name: annotationUserTopRight, type: String, default: $(InstitutionName), $(ManufacturersModelName), $(Modality)

Sets the user annotation string for the top right corner.

Bottom Left (annotationUserBottomLeft)

name: annotationUserBottomLeft, type: String, default: slice: $(slice), $(SeriesDescription)

Sets the user annotation string for the bottom left corner.

Bottom Right (annotationUserBottomRight)

name: annotationUserBottomRight, type: String, default: User Mode, acquisition: $(AcquisitionDate)

Sets the user annotation string for the bottom right corner.

Bottom Center (annotationUserBottomCenter)

name: annotationUserBottomCenter, type: String

Sets a string that is displayed at the bottom center of the viewer.

Top Left (annotationCTTopLeft)

name: annotationCTTopLeft, type: String, default: $(PatientsName), $(PatientID) $(PatientsSex), $(PatientsBirthDate)

Sets the CT annotation string for the top left corner.

Top Right (annotationCTTopRight)

name: annotationCTTopRight, type: String, default: $(InstitutionName), $(ManufacturersModelName), $(Modality)

Sets the CT annotation string for the top right corner.

Bottom Left (annotationCTBottomLeft)

name: annotationCTBottomLeft, type: String, default: slice: $(slice), timepoint: $(timepoint), $(sizex),$(sizey),$(sizez),$(sizec),$(sizet), $(voxelx),$(voxely),$(voxelz), $(SeriesDescription)

Sets the CT annotation string for the bottom left corner.

Bottom Right (annotationCTBottomRight)

name: annotationCTBottomRight, type: String, default: CT Mode, acquisition: $(AcquisitionDate)

Sets the CT annotation string for the bottom right corner.

Bottom Center (annotationCTBottomCenter)

name: annotationCTBottomCenter, type: String

Sets a string that is displayed at the bottom center of the viewer.

Top Left (annotationMRTopLeft)

name: annotationMRTopLeft, type: String, default: $(PatientsName), $(PatientID) $(PatientsSex), $(PatientsBirthDate)

Sets the MR annotation string for the top left corner.

Top Right (annotationMRTopRight)

name: annotationMRTopRight, type: String, default: $(InstitutionName), $(ManufacturersModelName), $(Modality)

Sets the MR annotation string for the top right corner.

Bottom Left (annotationMRBottomLeft)

name: annotationMRBottomLeft, type: String, default: slice: $(slice), timepoint: $(timepoint), $(sizex),$(sizey),$(sizez),$(sizec),$(sizet), $(voxelx),$(voxely),$(voxelz), $(SeriesDescription)

Sets the MR annotation string for the bottom left corner.

Bottom Right (annotationMRBottomRight)

name: annotationMRBottomRight, type: String, default: MR Mode, acquisition: $(AcquisitionDate)

Sets the MR annotation string for the bottom right corner.

Bottom Center (annotationMRBottomCenter)

name: annotationMRBottomCenter, type: String

Sets a string that is displayed at the bottom center of the viewer.

Top Left (shortTopLeft)

name: shortTopLeft, type: String, default: $(PatientsName), $(PatientID)

Sets the short annotation string for the top left corner.

Top Right (shortTopRight)

name: shortTopRight, type: String, default: $(Modality)

Sets the short annotation string for the top right corner.

Bottom Left (shortBottomLeft)

name: shortBottomLeft, type: String, default: Slice: $(slice)

Sets the short annotation string for the bottom left corner.

Bottom Right (shortBottomRight)

name: shortBottomRight, type: String

Sets the short annotation string for the bottom right corner.

Bottom Center (shortBottomCenter)

name: shortBottomCenter, type: String

Sets a string that is displayed at the bottom center of the viewer.

input00

name: input00, type: String

Sets a string that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

input01

name: input01, type: String

Sets a string that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

input02

name: input02, type: String

Sets a string that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

input03

name: input03, type: String

Sets a string that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

input04

name: input04, type: String

Sets a string that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

input05

name: input05, type: String

Sets a string that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

input06

name: input06, type: String

Sets a string that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

input07

name: input07, type: String

Sets a string that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

input08

name: input08, type: String

Sets a string that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

input09

name: input09, type: String

Sets a string that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

numInput00

name: numInput00, type: Double, default: 0

Sets a numerical value that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

numInput01

name: numInput01, type: Double, default: 0

Sets a numerical value that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

numInput02

name: numInput02, type: Double, default: 0

Sets a numerical value that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

numInput03

name: numInput03, type: Double, default: 0

Sets a numerical value that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

numInput04

name: numInput04, type: Double, default: 0

Sets a numerical value that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

numInput05

name: numInput05, type: Double, default: 0

Sets a numerical value that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

numInput06

name: numInput06, type: Double, default: 0

Sets a numerical value that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

numInput07

name: numInput07, type: Double, default: 0

Sets a numerical value that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

numInput08

name: numInput08, type: Double, default: 0

Sets a numerical value that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

numInput09

name: numInput09, type: Double, default: 0

Sets a numerical value that can be connected from another module or be filled by scripting.

The content of this field can be used in one of the chapters.

Enable

name: orientationModel, type: Bool, default: FALSE

Enables rendering of an orientation model.

Position

name: orientationModelPosition, type: Enum, default: ANNO_BOTTOM_RIGHT

Defines where the orientation model is rendered.

Values:

Title Name Description
Top Left ANNO_TOP_LEFT Render below the top left text.
Top Right ANNO_TOP_RIGHT Render below the top right text.
Bottom Left ANNO_BOTTOM_LEFT Render above the bottom left text.
Bottom Right ANNO_BOTTOM_RIGHT Render above the bottom right text.

Margin Top

name: marginTop, type: Integer, default: 2

Margin Bottom

name: marginBottom, type: Integer, default: 2

Margin Left

name: marginLeft, type: Integer, default: 2

Margin Right

name: marginRight, type: Integer, default: 2

Relative Size

name: orientationModelRelativeSize, type: Float, default: 0.125, minimum: 0.001, maximum: 1

Defines the size of the model relative to the minimum of the viewers width/height.

Min. Pixel Size

name: orientationModelMinSize, type: Integer, default: 24

Defines the minimum size of the model in pixels.

Max. Pixel Size

name: orientationModelMaxSize, type: Integer, default: 128

Defines the maximum size of the model in pixels.

Relative Offset (orientationModelRelativeVerticalOffset)

name: orientationModelRelativeVerticalOffset, type: Float, default: 0, minimum: -0.1, maximum: 1

Min. Pixel (orientationModelMinVerticalOffset)

name: orientationModelMinVerticalOffset, type: Integer, default: 0

Max. Pixel (orientationModelMaxVerticalOffset)

name: orientationModelMaxVerticalOffset, type: Integer, default: 128

Relative Offset (orientationModelRelativeHorizontalOffset)

name: orientationModelRelativeHorizontalOffset, type: Float, default: 0, minimum: -0.1, maximum: 1

Min. Pixel (orientationModelMinHorizontalOffset)

name: orientationModelMinHorizontalOffset, type: Integer, default: 0

Max. Pixel (orientationModelMaxHorizontalOffset)

name: orientationModelMaxHorizontalOffset, type: Integer, default: 128

Color

name: orientationModelColor, type: Color, default: 1 1 1

Selects the color of the model.

Is Mouse Over Cube

name: isMouseOverCube, type: Bool, persistent: no

Shows whether the mouse cursor is over the orientation cube.

Hit Orientation Letter

name: hitOrientationLetter, type: String, persistent: no

Shows the orientation letter of the side of the orientation cube where the user has clicked on.

Draw background

name: drawBackgroundBox, type: Bool, default: FALSE

If checked, a background rectangle is drawn behind the annotation text.

Background Color

name: backgroundColor, type: Color, default: 0.200000002980232 0.200000002980232 0.699999988079071

Set the color of the annotation background.

Background Opacity

name: backgroundOpacity, type: Float, default: 0.5, minimum: 0, maximum: 1

Sets the opacity of the annotation background.

Edge Color

name: backgroundEdgeColor, type: Color, default: 0.200000002980232 0.200000002980232 0.699999988079071

Sets the color of the border around the annotation background.

Edge Opacity

name: backgroundEdgeOpacity, type: Float, default: 0.5, minimum: 0, maximum: 1

Sets the opacity of the border around the annotation background.

Hidden Fields

interactionProviderID

name: interactionProviderID, type: String

see SoView2DExtension.interactionProviderID

drawingOn

name: drawingOn, type: Bool, default: TRUE

see SoView2DExtension.drawingOn

editingOn

name: editingOn, type: Bool, default: TRUE

see SoView2DExtension.editingOn

maskValid

name: maskValid, type: Bool, persistent: no

fixZOn

name: fixZOn, type: Bool, default: TRUE

selectionTolerance

name: selectionTolerance, type: Float, default: 4, minimum: 2, maximum: 40, deprecated name: selectDistance

needsValidVoxel

name: needsValidVoxel, type: Bool, default: FALSE

see SoView2DExtension.needsValidVoxel

button1

name: button1, type: Enum, default: IGNORED

see SoView2DExtension.button1

button2

name: button2, type: Enum, default: IGNORED

see SoView2DExtension.button2

button3

name: button3, type: Enum, default: IGNORED

see SoView2DExtension.button3

shift

name: shift, type: Enum, default: IGNORED

see SoView2DExtension.shift

control

name: control, type: Enum, default: IGNORED

see SoView2DExtension.control

alt

name: alt, type: Enum, default: IGNORED

see SoView2DExtension.alt

wantsAllEvents

name: wantsAllEvents, type: Bool, default: TRUE

wantsKeyEvents

name: wantsKeyEvents, type: Bool, default: TRUE

wantsMouseWheelEvents

name: wantsMouseWheelEvents, type: Bool, default: FALSE

setEventHandled

name: setEventHandled, type: Bool, default: FALSE

see SoView2DExtension.setEventHandled

ignoreHandledEvents

name: ignoreHandledEvents, type: Bool, default: FALSE

see SoView2DExtension.ignoreHandledEvents

createNewMode

name: createNewMode, type: Bool, default: FALSE

see SoView2DExtension.createNewMode

createNewModeRequest

name: createNewModeRequest, type: Trigger

see SoView2DExtension.createNewModeRequest

renderOnSlab

name: renderOnSlab, type: Bool, default: FALSE

clipToSlice

name: clipToSlice, type: Bool, default: FALSE

cursorShape

name: cursorShape, type: Enum, default: UNDEFINED_CURSOR

see SoView2DExtension.cursorShape

singleClicked

name: singleClicked, type: Trigger, persistent: no

doubleClicked

name: doubleClicked, type: Trigger, persistent: no

showTechnicalInfo

name: showTechnicalInfo, type: Bool, default: FALSE

abreviateChars

name: abreviateChars, type: Integer, default: -1

abreviateShortChars

name: abreviateShortChars, type: Integer, default: 16

fontWidthDummyString

name: fontWidthDummyString, type: String

targetWidth

name: targetWidth, type: Integer, default: 0

targetHeight

name: targetHeight, type: Integer, default: 0

orientationAndScaleFromCamera

name: orientationAndScaleFromCamera, type: Bool, default: FALSE