MeVisLab Toolbox Reference
SoView2DPosition Class Reference

draw and edit a position on the SoView2D More...

#include <SoView2DPosition.h>

Inheritance diagram for SoView2DPosition:
SoView2DInteractionExtension SoView2DExtension SoInteractionProviderNode SoInteractionOwner SoInteractionProvider

Public Member Functions

 SoView2DPosition ()
 Constructor. More...
 
void draw (View2DSliceList *dsl, View2DSlice *dslice, int slice) override
 reimplemented from SoView2DExtension More...
 
bool evalEvent (SoView2D *view2d, View2DSliceList *slicelist, View2DEvent *ec, View2DEventPhase phase) override
 reimplemented from SoView2DExtension More...
 
bool ignoreEvent (View2DEvent *ec) override
 Overwrite ignoreEvent -> ignore the "ignoreHandledEvents"-Field. More...
 
- Public Member Functions inherited from SoView2DInteractionExtension
 SoView2DInteractionExtension (const std::string &actionID, bool positionSensitive=true)
 
 SoView2DInteractionExtension ()
 Constructor. More...
 
bool implementsManagedInteractionAndClassicEventHandling () const override
 this node is a hybrid module providing managed interaction and classic event handling More...
 
- Public Member Functions inherited from SoView2DExtension
 SoView2DExtension ()
 Constructor. More...
 
void init ()
 setup internal state More...
 
virtual void updateValues ()
 Update fields to local variables, may be reimplemented if you want to update additional local vars. More...
 
virtual void startDrawing (View2DSliceList *)
 
virtual void endDrawing (View2DSliceList *)
 
virtual void overwriteDrawingSettings (SoView2DDrawingSettings &)
 
View2DEventgetEvent ()
 get the current event (when inside of evalEvent) More...
 
float getSelectDist ()
 Set the distance tolerance on hit checking in pixels. More...
 
bool isPointInsideDeviceRect (float pointX, float pointY, float centerX, float centerY, float hitRectangleSize=0.0)
 returns whether the given point is inside a rectangle around the given center. More...
 
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. More...
 
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. More...
 
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. More...
 
void drawFilledMiniTriangle (float xp, float yp, float ext, float lineWidth=1.f)
 Draws a small filled triangle with given center point and half height. More...
 
void drawMiniCircle (float xp, float yp, float ext, float lineWidth=1.f)
 Draws a small circle with given center point and radius. More...
 
void drawFilledMiniCircle (float xp, float yp, float ext, float lineWidth=1.f)
 Draws a small filled circle with given center point and radius. More...
 
void drawFixedSizeMiniCircleAt (float xp, float yp)
 Draws a fixed size small circle at the given position. More...
 
void drawVoxelBorder (View2DSlice *slice, float vx, float vy, float vz)
 surround the given voxel with a border More...
 
int getX ()
 get the x device position of current event, only returns valid result when called inside of evalEvent() More...
 
int getY ()
 get the y device position of current event, only returns valid result when called inside of evalEvent() More...
 
virtual bool isDrawingOn ()
 check if drawing is on More...
 
virtual bool isEditingOn ()
 check if editing is on More...
 
virtual bool isFixZOn ()
 check if z should stay fixed More...
 
virtual bool isClipToSlice ()
 check if the image is clipped to slice More...
 
virtual void fieldChanged (SoSensor *sensor)
 handle if any field has changed More...
 
bool isCreateNewMode ()
 check if extension is in createNewMode More...
 
void setCreateNewMode (bool flag)
 set this extension to create new objects More...
 
bool isCreateNewModeRequest ()
 check if extension has a request for createNewMode More...
 
void setCreateNewModeRequest (bool flag)
 set that extension want to become createNewMode More...
 
virtual bool isActive ()
 returns if the extension is active (derive this method in child) (in createNewMode or with a selected object)(called by SoView2D) More...
 
virtual void deleteSelectedObject ()
 deletes the currently active object (derive this method in child) (called by SoView2D) More...
 
virtual void getStatusString (SbString &status)
 get the current status of this extension More...
 
virtual bool evaluateEvent (SoView2D *view2d, View2DEvent *ec)
 
bool wantsMouseOverUpdates () const
 public access to _wantsMouseOverUpdateEvents More...
 
virtual void consumeEvent (View2DEvent *ec, bool handled=TRUE)
 Set handled-flag of ec to true (= consumed) if handled is True and setEventHandled is True. More...
 
int getSelectedModifierMask ()
 Get compare and ignore mask for the currently selected button/modifier combination, usable with SoPointingAction. More...
 
int getSelectedIgnoreMask ()
 
SoPointingAction::Trigger getPointingActionTriggerFromFields ()
 Get the trigger that matches the button/modifier field state. More...
 
- Public Member Functions inherited from SoInteractionProviderNode
 SoInteractionProviderNode ()
 Default constructor. More...
 
 ~SoInteractionProviderNode () override
 Destructor. More...
 
std::string getID () const override
 Returns the id string for identifying the provider (and its actions) - this is usually the name of the scene node. More...
 
void objRef () override
 Memory management by reference counting; must be implemented in derived classes. More...
 
void objUnref () override
 
- Public Member Functions inherited from SoInteractionOwner
 SoInteractionOwner ()
 Default constructor. More...
 
 ~SoInteractionOwner () override
 The destructor will destroy all interactions created with this object as owner. More...
 
std::list< SoInteraction * > getInteractions (SoState *state) override
 Returns the list of all interactions of this provider. More...
 
void pointerPosition (SoState *state, const SoPointerPosition &pos) override
 Same as below, with additional SoState argument. Be defaults simply calls the below version. More...
 
void pointerLeftWindow (SoState *state) override
 Same as below, with additional SoState argument. Be defaults simply calls the below version. More...
 
void addListener (SoInteractionOwnerListenerInterface *listener)
 Add a listener object that is notified of changes in the interaction list. More...
 
void removeListener (SoInteractionOwnerListenerInterface *listener)
 Remove a listener object that was notified of changes in the interaction list. More...
 
- Public Member Functions inherited from SoInteractionProvider
 SoInteractionProvider ()
 Default constructor. More...
 
virtual ~SoInteractionProvider ()
 
template<class T >
std::list< T * > getInteractionsOfType (SoState *state)
 Returns list of interactions of a specific type: More...
 
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 More...
 
- Static Public Member Functions inherited from SoView2DInteractionExtension
static void initClass ()
 Initializes this class. More...
 
- Static Public Member Functions inherited from SoView2DExtension
static void initClass ()
 Initializes this class. More...
 
static float snapToPixelCenter (float coordinateComponent)
 Snaps the coordinate component to the pixel center. More...
 
static void fieldChangedCB (void *data, SoSensor *sensor)
 inventor callbacks if any field has changed, calls fieldChanged More...
 
static bool isImageParallel (SoSFMLImage *image, View2DSliceList *dsl)
 Return true if image is parallel to the image of the slice list up to slice thickness. More...
 
static void enableLineStippling (const SoSFEnum &lineStyleField)
 Set/reset stippling pattern. More...
 
static void disableLineStippling (const SoSFEnum &lineStyleField)
 
static void getAxisOrientation (int axis, SbMatrix &matrix, char &negativeResult, char &positiveResult)
 Geometry helpers. More...
 
static float pointToLineDistance (SbVec3f point, SbVec3f line1, SbVec3f line2)
 calculate 3D point to line distance More...
 
static float pointToLineDistance (SbVec2f point, SbVec2f line1, SbVec2f line2)
 calculate 2D point to line distance More...
 
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 More...
 
- Static Public Member Functions inherited from SoInteractionProviderNode
static void initClass ()
 Initializes this class. More...
 
- Static Public Member Functions inherited from SoInteractionProvider
static void registerInteractionProviderNode (SoType type, GetProviderFunc func)
 Register a function to obtain a SoInteractionProvider from a SoNode. More...
 
static SoInteractionProvidergetInteractionProvider (SoNode *node)
 Get a SoInteractionProvider from a SoNode if registered, else NULL. More...
 

Public Attributes

SoSFVec3f worldPosition
 selected world position More...
 
SoSFEnum drawingModel
 model that shall be used for the position indicator (crosshairs, circle...) More...
 
SoSFEnum drawingModelSizeUnit
 unit in which cross-hair dimensions are expressed (voxel, world or screen units) More...
 
SoSFFloat drawingModelSize
 size of the position indicator model More...
 
SoSFFloat crossHairSpacing
 spacing in center of the crosshair position indicator More...
 
SoSFBool drawEditingRect
 flag to draw mini rect in cursor center More...
 
SoSFBool colorAxes
 flag to draw axes in color More...
 
SoSFColor coronalColor
 color for coronal view More...
 
SoSFColor axialColor
 color for axial view More...
 
SoSFColor sagittalColor
 color for sagittal view More...
 
SoSFBool colorBorder
 flag to draw colored borders More...
 
SoSFFloat colorBorderWidth
 width of the color border More...
 
SoSFFloat lineWidth
 line width of the rendered position indicators More...
 
SoSFUShort linePattern
 line stipple pattern More...
 
SoSFFloat blendOnto
 blend factor for the slice the position is located on More...
 
SoSFFloat blendOutside
 blend factor for the slice the position is not located on More...
 
SoSFBool updateOnPress
 update worldPosition on press event More...
 
SoSFBool updateOnMotion
 update worldPosition on motion event More...
 
SoSFBool updateOnRelease
 update worldPosition on release event More...
 
SoSFBool cooperative
 enable cooperative editing More...
 
SoSFVec3f firstSliceWorldPosition
 world position on first slice (useful, if numOfSlices in the corresponding viewer is > 1) More...
 
- Public Attributes inherited from SoView2DInteractionExtension
SoSFTrigger singleClicked
 this is triggered when the user clicks without moving the mouse (this only is supported when using Managed Interaction) More...
 
SoSFTrigger doubleClicked
 the same for the second click in a row More...
 
- Public Attributes inherited from SoView2DExtension
SoSFColor color
 color that should be used for drawing More...
 
SoSFBool drawingOn
 flag if the extension should draw, needs to be checked inside of the draw() method More...
 
SoSFBool editingOn
 flag if the extension should edit objects on mouse events, needs to be checked inside of the evalEvent() method More...
 
SoSFBool maskValid
 flag if the event mask is valid. More...
 
SoSFFloat selectionTolerance
 the selection tolerance in pixels More...
 
SoSFBool wantsAllEvents
 flag if ALL events should be passed to evalEvent(), if disabled, events are only passed to evalEvent when the mouse mask gets valid More...
 
SoSFBool wantsKeyEvents
 flag if keyboard events should be passed to evalEvent() More...
 
SoSFBool wantsMouseWheelEvents
 flag if MouseWheel events should be passed to evalEvent() More...
 
SoSFBool setEventHandled
 Set event handled if it is indeed handled by this extension. More...
 
SoSFBool ignoreHandledEvents
 Ignore events, that have been handled by previous extensions. More...
 
SoSFEnum button1
 mouse mask for button1 More...
 
SoSFEnum button2
 mouse mask for button2 More...
 
SoSFEnum button3
 mouse mask for button3 More...
 
SoSFEnum shift
 shift modifier for mouse mask More...
 
SoSFEnum control
 shift control for mouse mask More...
 
SoSFEnum alt
 shift alt for mouse mask More...
 
SoSFBool needsValidVoxel
 sets if a valid voxel must be hit to get evalEvent() calls More...
 
SoSFBool renderOnSlab
 defines if the extension should be rendered on all slab slices More...
 
SoSFBool createNewMode
 flag if extension is in createNewMode More...
 
SoSFTrigger createNewModeRequest
 
SoSFBool clipToSlice
 Flag to clip drawing to slice. More...
 
SoSFEnum cursorShape
 Set cursor shape if the mouse mask fits and mouseEvents are effectively sent to evalEvent for editing. More...
 
SoSFBool fixZOn
 DEPRECATED flag that indicates that the extension should fix the z value, only used in SoView2DRectangle. More...
 
- Public Attributes inherited from SoInteractionProviderNode
SoSFString instanceName
 Defines interface field to store the instance name. More...
 
SoSFString interactionProviderID
 This field overrides the instanceName as providerID if specified. More...
 

Protected Member Functions

void setPosition (const SbVec3f &pos, SoView2D *view2d, View2DSliceList *slicelist)
 
void getAxisColor (char orientation, float *color)
 get color of orientation More...
 
void pointerPosition (const SoPointerPosition &pos) override
 interface inherited from SoInteractionProvider More...
 
bool isSensitiveAt (const SoPointerPosition &pos) override
 interface forwarded from SoPointingAction: More...
 
void startPressAt (const SoPointerPosition &pos) override
 
void dragMoveTo (const SoPointerPosition &pos) override
 
- Protected Member Functions inherited from SoView2DInteractionExtension
 ~SoView2DInteractionExtension () override
 destructor More...
 
bool isValidLocation (const SoPointerPosition &pos)
 return true if the position is inside the image or needsValidVoxel is not set More...
 
virtual bool shouldPointingActionBeEnabled ()
 
void editingOnChanged (SoField *field) override
 called when editingOn field is touched: More...
 
void buttonMaskChanged (SoField *field) override
 called when one of the button/modifier fields is touched: More...
 
virtual int getCurrentCursor (SoViewerProxy *viewerProxy)
 interface forwarded from SoPointingAction: More...
 
virtual void setHighlightAt (const SoPointerPosition &)
 
virtual void unsetHighlight ()
 
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: More...
 
 ~SoView2DExtension () override
 destructor More...
 
void GLRender (SoGLRenderAction *action) override
 Inventor actions. More...
 
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 pointerLeftWindow ()
 This is called when the mouse cursor leaves the window. More...
 
bool hasInteractions () const
 Returns whether there are any actions defined by this owner. More...
 
template<class T >
bool hasInteractionsOfType () const
 Same as above, but asking for a specific type of interaction. More...
 
void addPointingAction (SoPointingAction *)
 
void addCommandAction (SoCommandAction *)
 
void addOffsetAction (SoOffsetAction *)
 

Protected Attributes

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

Additional Inherited Members

- Public Types inherited from SoView2DExtension
enum  Sign { ZERO , NEGATIVE , POSITIVE }
 defines the sign of a number, with zero as an extra value More...
 
- Public Types inherited from SoInteractionProvider
typedef SoInteractionProvider *(* GetProviderFunc) (SoNode *)
 

Detailed Description

draw and edit a position on the SoView2D

Definition at line 45 of file SoView2DPosition.h.

Constructor & Destructor Documentation

◆ SoView2DPosition()

SoView2DPosition::SoView2DPosition ( )

Constructor.

Member Function Documentation

◆ dragMoveTo()

void SoView2DPosition::dragMoveTo ( const SoPointerPosition pos)
overrideprotectedvirtual

Reimplemented from SoView2DInteractionExtension.

◆ draw()

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

reimplemented from SoView2DExtension

Reimplemented from SoView2DExtension.

◆ evalEvent()

bool SoView2DPosition::evalEvent ( SoView2D view2d,
View2DSliceList slicelist,
View2DEvent ec,
View2DEventPhase  phase 
)
overridevirtual

reimplemented from SoView2DExtension

Reimplemented from SoView2DExtension.

◆ getAxisColor()

void SoView2DPosition::getAxisColor ( char  orientation,
float *  color 
)
protected

get color of orientation

◆ ignoreEvent()

bool SoView2DPosition::ignoreEvent ( View2DEvent ec)
overridevirtual

Overwrite ignoreEvent -> ignore the "ignoreHandledEvents"-Field.

Reimplemented from SoView2DExtension.

◆ initClass()

static void SoView2DPosition::initClass ( )
static

inventor runtime type system

◆ isSensitiveAt()

bool SoView2DPosition::isSensitiveAt ( const SoPointerPosition pos)
overrideprotectedvirtual

interface forwarded from SoPointingAction:

Reimplemented from SoView2DInteractionExtension.

◆ pointerPosition()

void SoView2DPosition::pointerPosition ( const SoPointerPosition pos)
overrideprotectedvirtual

interface inherited from SoInteractionProvider

Reimplemented from SoInteractionOwner.

◆ setPosition()

void SoView2DPosition::setPosition ( const SbVec3f &  pos,
SoView2D view2d,
View2DSliceList slicelist 
)
protected

◆ startPressAt()

void SoView2DPosition::startPressAt ( const SoPointerPosition pos)
overrideprotectedvirtual

Reimplemented from SoView2DInteractionExtension.

Member Data Documentation

◆ _isDragging

bool SoView2DPosition::_isDragging
protected

flag if position is being dragged

Definition at line 136 of file SoView2DPosition.h.

◆ _oldWorldPos

SbVec3f SoView2DPosition::_oldWorldPos
protected

previous world position

Definition at line 134 of file SoView2DPosition.h.

◆ axialColor

SoSFColor SoView2DPosition::axialColor

color for axial view

Definition at line 68 of file SoView2DPosition.h.

◆ blendOnto

SoSFFloat SoView2DPosition::blendOnto

blend factor for the slice the position is located on

Definition at line 83 of file SoView2DPosition.h.

◆ blendOutside

SoSFFloat SoView2DPosition::blendOutside

blend factor for the slice the position is not located on

Definition at line 85 of file SoView2DPosition.h.

◆ colorAxes

SoSFBool SoView2DPosition::colorAxes

flag to draw axes in color

Definition at line 64 of file SoView2DPosition.h.

◆ colorBorder

SoSFBool SoView2DPosition::colorBorder

flag to draw colored borders

Definition at line 73 of file SoView2DPosition.h.

◆ colorBorderWidth

SoSFFloat SoView2DPosition::colorBorderWidth

width of the color border

Definition at line 75 of file SoView2DPosition.h.

◆ cooperative

SoSFBool SoView2DPosition::cooperative

enable cooperative editing

Definition at line 94 of file SoView2DPosition.h.

◆ coronalColor

SoSFColor SoView2DPosition::coronalColor

color for coronal view

Definition at line 66 of file SoView2DPosition.h.

◆ crossHairSpacing

SoSFFloat SoView2DPosition::crossHairSpacing

spacing in center of the crosshair position indicator

Definition at line 60 of file SoView2DPosition.h.

◆ drawEditingRect

SoSFBool SoView2DPosition::drawEditingRect

flag to draw mini rect in cursor center

Definition at line 62 of file SoView2DPosition.h.

◆ drawingModel

SoSFEnum SoView2DPosition::drawingModel

model that shall be used for the position indicator (crosshairs, circle...)

Definition at line 54 of file SoView2DPosition.h.

◆ drawingModelSize

SoSFFloat SoView2DPosition::drawingModelSize

size of the position indicator model

Definition at line 58 of file SoView2DPosition.h.

◆ drawingModelSizeUnit

SoSFEnum SoView2DPosition::drawingModelSizeUnit

unit in which cross-hair dimensions are expressed (voxel, world or screen units)

Definition at line 56 of file SoView2DPosition.h.

◆ firstSliceWorldPosition

SoSFVec3f SoView2DPosition::firstSliceWorldPosition

world position on first slice (useful, if numOfSlices in the corresponding viewer is > 1)

Definition at line 96 of file SoView2DPosition.h.

◆ linePattern

SoSFUShort SoView2DPosition::linePattern

line stipple pattern

Definition at line 80 of file SoView2DPosition.h.

◆ lineWidth

SoSFFloat SoView2DPosition::lineWidth

line width of the rendered position indicators

Definition at line 78 of file SoView2DPosition.h.

◆ sagittalColor

SoSFColor SoView2DPosition::sagittalColor

color for sagittal view

Definition at line 70 of file SoView2DPosition.h.

◆ updateOnMotion

SoSFBool SoView2DPosition::updateOnMotion

update worldPosition on motion event

Definition at line 90 of file SoView2DPosition.h.

◆ updateOnPress

SoSFBool SoView2DPosition::updateOnPress

update worldPosition on press event

Definition at line 88 of file SoView2DPosition.h.

◆ updateOnRelease

SoSFBool SoView2DPosition::updateOnRelease

update worldPosition on release event

Definition at line 92 of file SoView2DPosition.h.

◆ worldPosition

SoSFVec3f SoView2DPosition::worldPosition

selected world position

Fields

Definition at line 52 of file SoView2DPosition.h.


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