Class SliceScaleBar
- java.lang.Object
-
- All Implemented Interfaces:
SafeDisposable
public class SliceScaleBar extends SoAnnotation
(Preview Feature) Shape node to display a dynamic scale bar in window coordinates.Preview Feature means this class is fully supported and can be used in Open Inventor applications. Being tagged as a Preview Feature just means that the implementation is still subject to API changes and adjustments based on feedback from early adopters. Please be also aware that source compatibility might be broken regardless of the Open Inventor compatibility changes policy due to our commitment to bring needed changes to be sure the specifications of this Preview Feature match the expectations of our customers.
This class displays a 2D scale bar. The
position
of the scale bar is specified in normalized screen coordinates (-1 to 1). By default, thelength
of the scale bar is a fixed distance in normalized screen coordinates. However if thetrackedCamera
field is set, thenlength
is a distance in 3D world coordinates and the the size of the scale bar on screen is computed based on that distance. For example, if the application is viewing DICOM data measured in millimeters (mm), then settinglength
to 100 displays a scale bar that shows the distance 10 cm on screen. The scale bar size will change if the camera is zoomed in or out (camera height field changes).The distance computation is based on "horizontal" or "vertical" relative to the camera, so the scale bar adjusts automatically if the camera is rotated to view a different volume axis, e.g. Coronal vs Axial.
This class is not intended to replace the MeshViz axis classes for general 2D data plotting. This class has only been tested with SoOrthoSlice and an SoOrthographicCamera (the usual case for medical image viewing).
File format/default:
SliceScaleBar {
position 0 0 0 length 1 numTickIntervals 0 trackedCamera NULL orientation HORIZONTAL alignment CENTER" label ""
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SliceScaleBar.Alignment
Scale bar alignmentstatic class
SliceScaleBar.Orientation
Scale bar orientation-
Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoSeparator
SoSeparator.Cachings, SoSeparator.FastEditings, SoSeparator.RenderUnitIds
-
Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoNode
SoNode.RenderModes
-
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
-
Field Summary
Fields Modifier and Type Field Description SoSFEnum<SliceScaleBar.Alignment>
alignment
Scale bar alignment (default is CENTER).SoSFString
label
Label (default is empty string).SoSFFloat
length
Length in normalized screen coordinates (-1 to 1) if not tracking, else length in 3D world coordinates.SoSFInt32
numTickIntervals
Number of tick intervals (default is 0).SoSFEnum<SliceScaleBar.Orientation>
orientation
Scale bar orientation (default is HORIZONTAL).SoSFVec2f
position
Position in normalized screen coordinates (-1 to 1).SoSFNode
trackedCamera
Tracked camera (default is null).-
Fields inherited from class com.openinventor.inventor.nodes.SoSeparator
boundingBoxCaching, fastEditing, pickCulling, renderCaching, renderCulling, renderUnitId
-
Fields inherited from class com.openinventor.inventor.nodes.SoGroup
boundingBoxIgnoring
-
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
-
Constructor Summary
Constructors Constructor Description SliceScaleBar()
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SoNode.RenderModes
getRenderEngineMode()
Returns the supported Render engine mode.-
Methods inherited from class com.openinventor.inventor.nodes.SoGroup
addChild, findChild, getChild, getNumChildren, insertChild, removeAllChildren, removeChild, removeChild, replaceChild, replaceChild
-
Methods inherited from class com.openinventor.inventor.nodes.SoNode
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
-
Methods inherited from class com.openinventor.inventor.fields.SoFieldContainer
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
-
Methods inherited from class com.openinventor.inventor.misc.SoBase
dispose, getName, isDisposable, isSynchronizable, setName, setSynchronizable
-
Methods inherited from class com.openinventor.inventor.Inventor
getNativeResourceHandle
-
-
-
-
Field Detail
-
position
public SoSFVec2f position
Position in normalized screen coordinates (-1 to 1). Default is (0,0,0).
-
label
public SoSFString label
Label (default is empty string).
-
length
public SoSFFloat length
Length in normalized screen coordinates (-1 to 1) if not tracking, else length in 3D world coordinates. Default is 1.For example, if the application is viewing DICOM data measured in millimeters (mm), then setting length to 100 displays a 10 cm scale bar on screen.
-
numTickIntervals
public SoSFInt32 numTickIntervals
Number of tick intervals (default is 0). If numTickIntervals is 0, no tick marks are drawn. For example, if the length is set to 100 mm, then set numTickIntervals to 10 to get a tick mark every 10 mm (1 cm).
-
trackedCamera
public SoSFNode trackedCamera
Tracked camera (default is null). This should be the camera that is viewing the tracked scene. It will be used to determine the length of the axis in NDC based on the specified length in 3D world coordinates.
-
orientation
public SoSFEnum<SliceScaleBar.Orientation> orientation
Scale bar orientation (default is HORIZONTAL).
-
alignment
public SoSFEnum<SliceScaleBar.Alignment> alignment
Scale bar alignment (default is CENTER).
-
-
Method Detail
-
getRenderEngineMode
public SoNode.RenderModes getRenderEngineMode()
Description copied from class:SoNode
Returns the supported Render engine mode.For custom node, this method returns by default
SoNode.RenderModes.OIV_UNKNOWN_RENDERING_MODE
, override this method to specify the Render engine mode supported by your custom node.- Overrides:
getRenderEngineMode
in classSoNode
- Returns:
- the supported Render engine mode for this node.
-
-