Class SliceScaleBar

  • 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, the length of the scale bar is a fixed distance in normalized screen coordinates. However if the trackedCamera field is set, then length 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 setting length 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 ""
    }
    See Also:
    DicomInfo, Magnifier, Gnomon, TextBox, Ruler, SliceOrientationMarkers
    • 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.
    • Constructor Detail

      • SliceScaleBar

        public SliceScaleBar()
        Constructor