MeVisLab Toolbox Reference
SoView2DLabel Class Reference

#include <SoView2DLabel.h>

Inheritance diagram for SoView2DLabel:
SoView2DInteractionExtension SoView2DExtension SoInteractionProviderNode SoInteractionOwner SoInteractionProvider

Public Types

enum  depthVisibilityType { DEPTH_IN_SLICES , DEPTH_IN_MM }
 Depth visibility mode. More...
enum  FontSizeMode { FONT_SIZE_IN_PIXELS , FONT_SIZE_IN_MM , FONT_SIZE_IN_VOXELS }
 Font size mode. More...
enum  BorderMode { SHOW_BORDER_OFF , SHOW_BORDER_WHEN_HIGHLIGHTED , SHOW_BORDER_ALWAYS }
 Border mode. More...
Public Types inherited from SoView2DExtension
enum  Sign { ZERO , NEGATIVE , POSITIVE }
 defines the sign of a number, with zero as an extra value More...
typedef SoInteractionProvider *(* GetProviderFunc) (SoNode *)

Public Member Functions

 SoView2DLabel ()
 Constructor.
 ~SoView2DLabel () override
void draw (View2DSliceList *dsl, View2DSlice *dslice, int slice) override
 draw annotations on slice
float getDepthVisibilityBlendValue (float distance, float voxelSizeZ)
Public Member Functions inherited from SoView2DInteractionExtension
 SoView2DInteractionExtension (const std::string &actionID, bool positionSensitive=true)
 SoView2DInteractionExtension ()
 Constructor.
Public Member Functions inherited from SoView2DExtension
 SoView2DExtension ()
 Constructor.
void init ()
 setup internal state
virtual void updateValues ()
 Update fields to local variables, may be reimplemented if you want to update additional local vars.
virtual bool evalEvent (SoView2D *view2d, View2DSliceList *slicelist, View2DEvent *ec, View2DEventPhase phase)
 Called by the SoView2D for each event that happens on the viewer.
virtual void startDrawing (View2DSliceList *)
virtual void endDrawing (View2DSliceList *)
virtual void overwriteDrawingSettings (SoView2DDrawingSettings &)
View2DEventgetEvent ()
 get the current event (when inside of evalEvent)
float getSelectDist ()
 Set the distance tolerance on hit checking in pixels.
bool isPointInsideDeviceRect (float pointX, float pointY, float centerX, float centerY, float hitRectangleSize=0.0)
void drawMiniRect (float xp, float yp, float ext, float lineWidth=1.f)
 Draws a small rectangle with given half side length and a line width.
void drawDashedMiniRect (float xp, float yp, float ext, float lineWidth)
void drawFilledMiniRect (float xp, float yp, float ext, float lineWidth=1.f)
 Draws a small filled rectangle with given half side length.
void drawMiniTriangle (float xp, float yp, float ext, float lineWidth=1.f)
 Draws a small triangle with given center point, half height and line width.
void drawFilledMiniTriangle (float xp, float yp, float ext, float lineWidth=1.f)
 Draws a small filled triangle with given center point and half height.
void drawMiniCircle (float xp, float yp, float ext, float lineWidth=1.f)
 Draws a small circle with given center point and radius.
void drawFilledMiniCircle (float xp, float yp, float ext, float lineWidth=1.f)
 Draws a small filled circle with given center point and radius.
void drawFixedSizeMiniCircleAt (float xp, float yp)
 Draws a fixed size small circle at the given position.
void drawVoxelBorder (View2DSlice *slice, float vx, float vy, float vz)
 surround the given voxel with a border
int getX ()
 get the x device position of current event, only returns valid result when called inside of evalEvent()
int getY ()
 get the y device position of current event, only returns valid result when called inside of evalEvent()
virtual bool isDrawingOn ()
 check if drawing is on
virtual bool isEditingOn ()
 check if editing is on
virtual bool isFixZOn ()
 check if z should stay fixed
virtual bool isClipToSlice ()
 check if the image is clipped to slice
virtual void fieldChanged (SoSensor *sensor)
 handle if any field has changed
bool isCreateNewMode ()
 check if extension is in createNewMode
void setCreateNewMode (bool flag)
 set this extension to create new objects
bool isCreateNewModeRequest ()
 check if extension has a request for createNewMode
void setCreateNewModeRequest (bool flag)
 set that extension want to become createNewMode
virtual bool isActive ()
 returns if the extension is active (derive this method in child) (in createNewMode or with a selected object)(called by SoView2D)
virtual void deleteSelectedObject ()
 deletes the currently active object (derive this method in child) (called by SoView2D)
virtual void getStatusString (SbString &status)
 get the current status of this extension
virtual bool evaluateEvent (SoView2D *view2d, View2DEvent *ec)
virtual bool ignoreEvent (View2DEvent *ec)
 Return true if ec has been handled before and if ignoreHandledEvents is True.
bool wantsMouseOverUpdates () const
 public access to _wantsMouseOverUpdateEvents
virtual void consumeEvent (View2DEvent *ec, bool handled=TRUE)
 Set handled-flag of ec to true (= consumed) if handled is True and setEventHandled is True.
int getSelectedModifierMask ()
int getSelectedIgnoreMask ()
SoPointingAction::Trigger getPointingActionTriggerFromFields ()
 Get the trigger that matches the button/modifier field state.
Public Member Functions inherited from SoInteractionProviderNode
 SoInteractionProviderNode ()
 ~SoInteractionProviderNode () override
 Destructor.
std::string getID () const override
void objRef () override
void objUnref () override
Public Member Functions inherited from SoInteractionOwner
 SoInteractionOwner ()
 Default constructor.
 ~SoInteractionOwner () override
 The destructor will destroy all interactions created with this object as owner.
std::list< SoInteraction * > getInteractions (SoState *state) override
 Returns the list of all interactions of this provider.
void addListener (SoInteractionOwnerListenerInterface *listener)
 Adds a listener object that is notified of changes in the interaction list.
void removeListener (SoInteractionOwnerListenerInterface *listener)
 Removes a listener object that was notified of changes in the interaction list.
Public Member Functions inherited from SoInteractionProvider
 SoInteractionProvider ()
 Default constructor.
virtual ~SoInteractionProvider ()
template<class T>
std::list< T * > getInteractionsOfType (SoState *state)
 Returns list of interactions of a specific type.
virtual std::list< SoCommandAction * > getCommandActions (SoState *state)
virtual std::list< SoPointingAction * > getPointingActions (SoState *state)
virtual std::list< SoOffsetAction * > getOffsetActions (SoState *state)

Static Public Member Functions

static void initClass ()
 inventor runtime type system
Static Public Member Functions inherited from SoView2DInteractionExtension
static void initClass ()
 Initializes this class.
Static Public Member Functions inherited from SoView2DExtension
static void initClass ()
 Initializes this class.
static float snapToPixelCenter (float coordinateComponent)
 Snaps the coordinate component to the pixel center.
static void fieldChangedCB (void *data, SoSensor *sensor)
 inventor callbacks if any field has changed, calls fieldChanged
static bool isImageParallel (SoSFMLImage *image, View2DSliceList *dsl)
 Return true if image is parallel to the image of the slice list up to slice thickness.
static void enableLineStippling (const SoSFEnum &lineStyleField)
 Set/reset stippling pattern.
static void disableLineStippling (const SoSFEnum &lineStyleField)
static void getAxisOrientation (int axis, SbMatrix &matrix, char &negativeResult, char &positiveResult)
 Geometry helpers.
static float pointToLineDistance (SbVec3f point, SbVec3f line1, SbVec3f line2)
 calculate 3D point to line distance
static float pointToLineDistance (SbVec2f point, SbVec2f line1, SbVec2f line2)
 calculate 2D point to line distance
static Sign edgeIntersectWithPlane (const SbVec3f &v1, const SbVec3f &v2, const SbPlane &plane, SbVec3f &intersect)
 intersect given edge from v1 to v2 with given plane, returns sign and intersect point
Static Public Member Functions inherited from SoInteractionProviderNode
static void initClass ()
 Initializes this class.
static void registerInteractionProviderNode (SoType type, GetProviderFunc func)
 Registers a function to obtain a SoInteractionProvider from a SoNode.
static SoInteractionProvidergetInteractionProvider (SoNode *node)

Public Attributes

SoSFString text
 Fields.
SoSFString viewerId
SoSFEnum textPositioning
SoSFVec3f worldPosition
SoSFVec2f relativeViewerPosition
SoSFEnum verticalPosition
SoSFFloat verticalOffset
SoSFEnum horizontalPosition
SoSFFloat horizontalOffset
SoSFInt32 fontSize
SoSFEnum fontSizeMode
SoSFFloat alpha
SoSFBool textShadow
SoSFBool highlighted
 Set to true while the label should be highlighted, usually draws a border around the label.
SoSFTypedEnum< BorderModeborderMode
 Defines the border mode.
SoSFColor borderColor
SoSFFloat depthVisibility
SoSFEnum depthVisibilityMode
 select the mode for depth visibility
SoSFBool useDepthVisibility
 enables depth visibility
SoSFBool keepLabelInViewer
SoSFFloat depthMinimumAlpha
SoSFInt32 timePoint
SoSFBool showLabelOnAllTimePoints
SoSFBool drawBackground
SoSFColor backgroundColor
SoSFFloat backgroundAlpha
SoSFFloat backgroundMarginTop
SoSFFloat backgroundMarginRight
SoSFFloat backgroundMarginBottom
SoSFFloat backgroundMarginLeft
SoSFBool isUnderMouse
SoSFBool keepCursorPositionInViewerWhenMoving
Public Attributes inherited from SoView2DInteractionExtension
SoSFTrigger singleClicked
SoSFTrigger doubleClicked
 the same for the second click in a row
Public Attributes inherited from SoView2DExtension
SoSFColor color
 color that should be used for drawing
SoSFBool drawingOn
 flag if the extension should draw, needs to be checked inside of the draw() method
SoSFBool editingOn
 flag if the extension should edit objects on mouse events, needs to be checked inside of the evalEvent() method
SoSFBool maskValid
 flag if the event mask is valid.
SoSFFloat selectionTolerance
 the selection tolerance in pixels
SoSFBool wantsAllEvents
SoSFBool wantsKeyEvents
 flag if keyboard events should be passed to evalEvent()
SoSFBool wantsMouseWheelEvents
 flag if MouseWheel events should be passed to evalEvent()
SoSFBool setEventHandled
 Set event handled if it is indeed handled by this extension.
SoSFBool ignoreHandledEvents
 Ignore events, that have been handled by previous extensions.
SoSFEnum button1
 mouse mask for button1
SoSFEnum button2
 mouse mask for button2
SoSFEnum button3
 mouse mask for button3
SoSFEnum shift
 shift modifier for mouse mask
SoSFEnum control
 shift control for mouse mask
SoSFEnum alt
 shift alt for mouse mask
SoSFBool needsValidVoxel
 sets if a valid voxel must be hit to get evalEvent() calls
SoSFBool renderOnSlab
 defines if the extension should be rendered on all slab slices
SoSFBool createNewMode
 flag if extension is in createNewMode
SoSFTrigger createNewModeRequest
SoSFBool clipToSlice
 Flag to clip drawing to slice.
SoSFEnum cursorShape
SoSFBool fixZOn
 DEPRECATED flag that indicates that the extension should fix the z value, only used in SoView2DRectangle.
Public Attributes inherited from SoInteractionProviderNode
SoSFString instanceName
 Defines interface field to store the instance name.
SoSFString interactionProviderID
 This field overrides the instanceName as providerID if specified.

Protected Member Functions

bool getTextLocation (View2DSliceList *dsl, View2DSlice *dslice, int slice, float &alphaToUse, float &dx, float &dy, int &textWidth, int &textHeight)
bool implementsManagedInteractionAndClassicEventHandling () const override
bool isSensitiveAt (const SoPointerPosition &pos) override
void setHighlightAt (const SoPointerPosition &pos) override
void unsetHighlight () override
void startPressAt (const SoPointerPosition &pos) override
void dragMoveTo (const SoPointerPosition &pos) override
void pointerPosition (SoState *state, const SoPointerPosition &pos) override
void pointerLeftWindow (SoState *state) override
 Same as below, with additional SoState argument. By defaults, simply calls the below version.
Protected Member Functions inherited from SoView2DInteractionExtension
 ~SoView2DInteractionExtension () override
 destructor
bool isValidLocation (const SoPointerPosition &pos)
 return true if the position is inside the image or needsValidVoxel is not set
virtual bool shouldPointingActionBeEnabled ()
void editingOnChanged (SoField *field) override
 called when editingOn field is touched:
void buttonMaskChanged (SoField *field) override
 called when one of the button/modifier fields is touched:
virtual int getCurrentCursor (SoViewerProxy *viewerProxy)
virtual SoPointingActionendPress (int)
virtual int getNumInteractionModes () const
virtual void setInteractionMode (int)
Protected Member Functions inherited from SoView2DExtension
virtual void createNewModeRequestTriggered (SoField *)
 called when createNewModeRequest field ist touched:
 ~SoView2DExtension () override
 destructor
void GLRender (SoGLRenderAction *action) override
 Inventor actions.
void callback (SoCallbackAction *action) override
void handleEvent (SoHandleEventAction *action) override
void getMatrix (SoGetMatrixAction *action) override
void getBoundingBox (SoGetBoundingBoxAction *action) override
void pick (SoPickAction *action) override
void doAction (SoAction *action) override
Protected Member Functions inherited from SoInteractionOwner
virtual void pointerPosition (const SoPointerPosition &)
 Override this if you always need to be informed of the current mouse cursor position.
virtual void pointerLeftWindow ()
 This is called when the mouse cursor leaves the window.
bool hasInteractions () const
 Returns whether there are any actions defined by this owner.
template<class T>
bool hasInteractionsOfType () const
 Same as above, but asking for a specific type of interaction.
void addPointingAction (SoPointingAction *)
void addCommandAction (SoCommandAction *)
void addOffsetAction (SoOffsetAction *)

Additional Inherited Members

Protected Attributes inherited from SoView2DInteractionExtension
SoPointingAction_pointingAction
Protected Attributes inherited from SoView2DExtension
SoNodeSensor * _nodeSensor
 node sensor that is used to notice field changes
float _rgbColor [4]
 Color of the object, update on each field change by _nodeSensor.
bool _wantsMouseOverUpdateEvents
 set this flag to receive mouse over events while the extension is active

Detailed Description

Definition at line 53 of file SoView2DLabel.h.

Member Enumeration Documentation

◆ BorderMode

Border mode.

Enumerator
SHOW_BORDER_OFF 
SHOW_BORDER_WHEN_HIGHLIGHTED 
SHOW_BORDER_ALWAYS 

Definition at line 80 of file SoView2DLabel.h.

◆ depthVisibilityType

Depth visibility mode.

Enumerator
DEPTH_IN_SLICES 

The depth visibility in number of slices.

DEPTH_IN_MM 

The depth visibility in mm.

Definition at line 60 of file SoView2DLabel.h.

◆ FontSizeMode

Font size mode.

Enumerator
FONT_SIZE_IN_PIXELS 

Font size in pixels.

FONT_SIZE_IN_MM 

Font size in mm.

FONT_SIZE_IN_VOXELS 

Font size in voxels.

Definition at line 69 of file SoView2DLabel.h.

Constructor & Destructor Documentation

◆ SoView2DLabel()

SoView2DLabel::SoView2DLabel ( )

Constructor.

◆ ~SoView2DLabel()

SoView2DLabel::~SoView2DLabel ( )
override

Member Function Documentation

◆ dragMoveTo()

void SoView2DLabel::dragMoveTo ( const SoPointerPosition & pos)
overrideprotectedvirtual

Reimplemented from SoView2DInteractionExtension.

◆ draw()

void SoView2DLabel::draw ( View2DSliceList * dsl,
View2DSlice * dslice,
int slice )
overridevirtual

draw annotations on slice

Reimplemented from SoView2DExtension.

◆ getDepthVisibilityBlendValue()

float SoView2DLabel::getDepthVisibilityBlendValue ( float distance,
float voxelSizeZ )

◆ getTextLocation()

bool SoView2DLabel::getTextLocation ( View2DSliceList * dsl,
View2DSlice * dslice,
int slice,
float & alphaToUse,
float & dx,
float & dy,
int & textWidth,
int & textHeight )
protected

◆ implementsManagedInteractionAndClassicEventHandling()

bool SoView2DLabel::implementsManagedInteractionAndClassicEventHandling ( ) const
inlineoverrideprotectedvirtual

this node is a hybrid module providing managed interaction and classic event handling

Reimplemented from SoView2DInteractionExtension.

Definition at line 159 of file SoView2DLabel.h.

◆ initClass()

void SoView2DLabel::initClass ( )
static

inventor runtime type system

◆ isSensitiveAt()

bool SoView2DLabel::isSensitiveAt ( const SoPointerPosition & pos)
overrideprotectedvirtual

interface forwarded from SoPointingAction:

Reimplemented from SoView2DInteractionExtension.

◆ pointerLeftWindow()

void SoView2DLabel::pointerLeftWindow ( SoState * state)
overrideprotectedvirtual

Same as below, with additional SoState argument. By defaults, simply calls the below version.

Reimplemented from SoInteractionOwner.

References SoInteractionOwner::pointerLeftWindow(), and SoInteractionOwner::pointerPosition().

◆ pointerPosition()

void SoView2DLabel::pointerPosition ( SoState * state,
const SoPointerPosition & pos )
overrideprotectedvirtual

Update isUnderMouse

Reimplemented from SoInteractionOwner.

◆ setHighlightAt()

void SoView2DLabel::setHighlightAt ( const SoPointerPosition & pos)
overrideprotectedvirtual

Reimplemented from SoView2DInteractionExtension.

◆ startPressAt()

void SoView2DLabel::startPressAt ( const SoPointerPosition & pos)
overrideprotectedvirtual

Reimplemented from SoView2DInteractionExtension.

◆ unsetHighlight()

void SoView2DLabel::unsetHighlight ( )
overrideprotectedvirtual

Reimplemented from SoView2DInteractionExtension.

Member Data Documentation

◆ alpha

SoSFFloat SoView2DLabel::alpha

Definition at line 103 of file SoView2DLabel.h.

◆ backgroundAlpha

SoSFFloat SoView2DLabel::backgroundAlpha

Definition at line 133 of file SoView2DLabel.h.

◆ backgroundColor

SoSFColor SoView2DLabel::backgroundColor

Definition at line 132 of file SoView2DLabel.h.

◆ backgroundMarginBottom

SoSFFloat SoView2DLabel::backgroundMarginBottom

Definition at line 136 of file SoView2DLabel.h.

◆ backgroundMarginLeft

SoSFFloat SoView2DLabel::backgroundMarginLeft

Definition at line 137 of file SoView2DLabel.h.

◆ backgroundMarginRight

SoSFFloat SoView2DLabel::backgroundMarginRight

Definition at line 135 of file SoView2DLabel.h.

◆ backgroundMarginTop

SoSFFloat SoView2DLabel::backgroundMarginTop

Definition at line 134 of file SoView2DLabel.h.

◆ borderColor

SoSFColor SoView2DLabel::borderColor

Definition at line 111 of file SoView2DLabel.h.

◆ borderMode

SoSFTypedEnum<BorderMode> SoView2DLabel::borderMode

Defines the border mode.

Definition at line 110 of file SoView2DLabel.h.

◆ depthMinimumAlpha

SoSFFloat SoView2DLabel::depthMinimumAlpha

Definition at line 125 of file SoView2DLabel.h.

◆ depthVisibility

SoSFFloat SoView2DLabel::depthVisibility

defines up to which distance markers are visible value is either in slices or in mm depending on the depthVisibilityMode field

Definition at line 115 of file SoView2DLabel.h.

◆ depthVisibilityMode

SoSFEnum SoView2DLabel::depthVisibilityMode

select the mode for depth visibility

Definition at line 118 of file SoView2DLabel.h.

◆ drawBackground

SoSFBool SoView2DLabel::drawBackground

Definition at line 131 of file SoView2DLabel.h.

◆ fontSize

SoSFInt32 SoView2DLabel::fontSize

Definition at line 101 of file SoView2DLabel.h.

◆ fontSizeMode

SoSFEnum SoView2DLabel::fontSizeMode

Definition at line 102 of file SoView2DLabel.h.

◆ highlighted

SoSFBool SoView2DLabel::highlighted

Set to true while the label should be highlighted, usually draws a border around the label.

Definition at line 107 of file SoView2DLabel.h.

◆ horizontalOffset

SoSFFloat SoView2DLabel::horizontalOffset

Definition at line 99 of file SoView2DLabel.h.

◆ horizontalPosition

SoSFEnum SoView2DLabel::horizontalPosition

Definition at line 98 of file SoView2DLabel.h.

◆ isUnderMouse

SoSFBool SoView2DLabel::isUnderMouse

Definition at line 139 of file SoView2DLabel.h.

◆ keepCursorPositionInViewerWhenMoving

SoSFBool SoView2DLabel::keepCursorPositionInViewerWhenMoving

Definition at line 140 of file SoView2DLabel.h.

◆ keepLabelInViewer

SoSFBool SoView2DLabel::keepLabelInViewer

Definition at line 123 of file SoView2DLabel.h.

◆ relativeViewerPosition

SoSFVec2f SoView2DLabel::relativeViewerPosition

Definition at line 94 of file SoView2DLabel.h.

◆ showLabelOnAllTimePoints

SoSFBool SoView2DLabel::showLabelOnAllTimePoints

Definition at line 128 of file SoView2DLabel.h.

◆ text

SoSFString SoView2DLabel::text

Fields.

Definition at line 89 of file SoView2DLabel.h.

◆ textPositioning

SoSFEnum SoView2DLabel::textPositioning

Definition at line 92 of file SoView2DLabel.h.

◆ textShadow

SoSFBool SoView2DLabel::textShadow

Definition at line 104 of file SoView2DLabel.h.

◆ timePoint

SoSFInt32 SoView2DLabel::timePoint

Definition at line 127 of file SoView2DLabel.h.

◆ useDepthVisibility

SoSFBool SoView2DLabel::useDepthVisibility

enables depth visibility

Definition at line 121 of file SoView2DLabel.h.

◆ verticalOffset

SoSFFloat SoView2DLabel::verticalOffset

Definition at line 97 of file SoView2DLabel.h.

◆ verticalPosition

SoSFEnum SoView2DLabel::verticalPosition

Definition at line 96 of file SoView2DLabel.h.

◆ viewerId

SoSFString SoView2DLabel::viewerId

Definition at line 90 of file SoView2DLabel.h.

◆ worldPosition

SoSFVec3f SoView2DLabel::worldPosition

Definition at line 93 of file SoView2DLabel.h.


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