MeVisLab Toolbox Reference
SoView2DOverlay Class Reference

Draws an overlay image on the SoView2D. More...

#include <SoView2DOverlay.h>

Inheritance diagram for SoView2DOverlay:
SoView2DCallback SoView2DExtension SoInteractionProviderNode SoInteractionOwner SoInteractionProvider

Public Member Functions

 SoView2DOverlay ()
 Constructor. More...
 
void startDrawing (View2DSliceList *slicelist) override
 reimplemented from SoView2DExtension More...
 
void endDrawing (View2DSliceList *slicelist) override
 reimplemented from SoView2DExtension 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...
 
void GLRender (SoGLRenderAction *action) override
 reimplemented from SoNode, stores the LUT for later rendering More...
 
- Public Member Functions inherited from SoView2DCallback
 SoView2DCallback ()
 
void setEvalEventCB (SoView2DEvalEventCB *eval, void *usrData)
 set a callback for evalEvent, clears previous callback More...
 
void setDrawCB (SoView2DDrawCB *draw, void *usrData)
 set a callback for draw, clears previous callback 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...
 
- 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 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)
 
virtual bool ignoreEvent (View2DEvent *ec)
 Return true if ec has been handled before and if ignoreHandledEvents is True. More...
 
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...
 
virtual bool implementsManagedInteractionAndClassicEventHandling () const
 return true if this node is a hybrid module providing managed interaction and classic event handling - in this case SoView2D::useManagedInteraction decides which one to use 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 SoView2DCallback
static void initClass ()
 
- 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

SoSFMLImage image
 Fields. More...
 
SoSFBool cacheTextures
 flag if textures should be cached More...
 
SoSFEnum blendMode
 select the blend mode of the overlay More...
 
SoSFBool inheritFilterMode
 inherit filter mode More...
 
SoSFEnum filterMode
 filter mode for rendering More...
 
SoSFFloat alphaFactor
 set the alpha factor for drawing More...
 
SoSFColor baseColor
 set the base color which is multiplied with the overlay More...
 
SoSFBool overwriteCurrentTimePoint
 Should the current time point be overwritten? More...
 
SoSFInt32 timePoint
 select the timepoint of the input image to render More...
 
SoSFInt32 maxTimePoint
 maximum timepoint value available (maximum of timePoint field) More...
 
SoSFEnum lutPrecision
 defines the precision of the LUT More...
 
SoSFBool useWorldCoords
 if this flag is on, the overlay can also render correct subimage overlays if the image is parallel to the image rendered on SoView2D More...
 
SoSFBool applyLut
 if this flag is enabled, the overlay uses the lut that is present in the scene graph, default is true More...
 
SoSFBool isCheckerTiling
 If enabled, draws a checkerboard tile each. More...
 
SoSFInt32 checkerTileSize
 The size of the checkerboard tiles. More...
 
SoSFBool areCheckerTilesInverted
 Invert the checkerboard with this flag. More...
 
SoSFString overlayName
 Sets the name of the overlay for usage in a SoView2DShaderOverlay. 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

 ~SoView2DOverlay () override
 Destructor. More...
 
virtual int getTimePoint (View2DSliceList *slicelist, int slice)
 Returns the current timepoint which is either the actual shown timepoint or the timepoint overwritten by the field overwriteTimePoint; The slice parameter is not used in the standard implementation but can be necessary in derived classes. More...
 
- Protected Member Functions inherited from SoView2DExtension
virtual void editingOnChanged (SoField *)
 called when editingOn field is touched: More...
 
virtual void buttonMaskChanged (SoField *)
 called when one of the button/modifier fields is touched: More...
 
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 pointerPosition (const SoPointerPosition &)
 Override this if you always need to be informed of the current mouse cursor position. More...
 
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

View2DLut_lutData
 the lut data that is rendered More...
 
ml::LUTFunction_lutFunction
 the lut from the scene, stored by GLRender More...
 
bool _reloadData
 flag if data needs to be reloaded More...
 
int _id
 id for texture caching More...
 
int _oldTimePoint
 previous timepoint More...
 
bool _oldUseWorldCoords
 previous world coord flag More...
 
unsigned int _imageSerial
 serial number of last input image More...
 
SoView2DShaderOverlayInfo _overlayInfo
 for usage by shaders More...
 
- 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

Draws an overlay image on the SoView2D.

SoView2DOverlay is derived from SoView2DCallback to allow others to register with the callback

Definition at line 39 of file SoView2DOverlay.h.

Constructor & Destructor Documentation

◆ SoView2DOverlay()

SoView2DOverlay::SoView2DOverlay ( )

Constructor.

◆ ~SoView2DOverlay()

SoView2DOverlay::~SoView2DOverlay ( )
overrideprotected

Destructor.

Member Function Documentation

◆ draw()

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

reimplemented from SoView2DExtension

Reimplemented from SoView2DExtension.

◆ endDrawing()

void SoView2DOverlay::endDrawing ( View2DSliceList slicelist)
overridevirtual

reimplemented from SoView2DExtension

Reimplemented from SoView2DExtension.

◆ evalEvent()

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

reimplemented from SoView2DExtension

Reimplemented from SoView2DExtension.

◆ getTimePoint()

virtual int SoView2DOverlay::getTimePoint ( View2DSliceList slicelist,
int  slice 
)
protectedvirtual

Returns the current timepoint which is either the actual shown timepoint or the timepoint overwritten by the field overwriteTimePoint; The slice parameter is not used in the standard implementation but can be necessary in derived classes.

◆ GLRender()

void SoView2DOverlay::GLRender ( SoGLRenderAction *  action)
override

reimplemented from SoNode, stores the LUT for later rendering

◆ initClass()

static void SoView2DOverlay::initClass ( )
static

inventor runtime type system

◆ startDrawing()

void SoView2DOverlay::startDrawing ( View2DSliceList slicelist)
overridevirtual

reimplemented from SoView2DExtension

Reimplemented from SoView2DExtension.

Member Data Documentation

◆ _id

int SoView2DOverlay::_id
protected

id for texture caching

Definition at line 122 of file SoView2DOverlay.h.

◆ _imageSerial

unsigned int SoView2DOverlay::_imageSerial
protected

serial number of last input image

Definition at line 128 of file SoView2DOverlay.h.

◆ _lutData

View2DLut* SoView2DOverlay::_lutData
protected

the lut data that is rendered

Definition at line 114 of file SoView2DOverlay.h.

◆ _lutFunction

ml::LUTFunction* SoView2DOverlay::_lutFunction
protected

the lut from the scene, stored by GLRender

Definition at line 117 of file SoView2DOverlay.h.

◆ _oldTimePoint

int SoView2DOverlay::_oldTimePoint
protected

previous timepoint

Definition at line 124 of file SoView2DOverlay.h.

◆ _oldUseWorldCoords

bool SoView2DOverlay::_oldUseWorldCoords
protected

previous world coord flag

Definition at line 126 of file SoView2DOverlay.h.

◆ _overlayInfo

SoView2DShaderOverlayInfo SoView2DOverlay::_overlayInfo
protected

for usage by shaders

Definition at line 131 of file SoView2DOverlay.h.

◆ _reloadData

bool SoView2DOverlay::_reloadData
protected

flag if data needs to be reloaded

Definition at line 120 of file SoView2DOverlay.h.

◆ alphaFactor

SoSFFloat SoView2DOverlay::alphaFactor

set the alpha factor for drawing

Definition at line 57 of file SoView2DOverlay.h.

◆ applyLut

SoSFBool SoView2DOverlay::applyLut

if this flag is enabled, the overlay uses the lut that is present in the scene graph, default is true

Definition at line 74 of file SoView2DOverlay.h.

◆ areCheckerTilesInverted

SoSFBool SoView2DOverlay::areCheckerTilesInverted

Invert the checkerboard with this flag.

Definition at line 83 of file SoView2DOverlay.h.

◆ baseColor

SoSFColor SoView2DOverlay::baseColor

set the base color which is multiplied with the overlay

Definition at line 59 of file SoView2DOverlay.h.

◆ blendMode

SoSFEnum SoView2DOverlay::blendMode

select the blend mode of the overlay

Definition at line 51 of file SoView2DOverlay.h.

◆ cacheTextures

SoSFBool SoView2DOverlay::cacheTextures

flag if textures should be cached

Definition at line 49 of file SoView2DOverlay.h.

◆ checkerTileSize

SoSFInt32 SoView2DOverlay::checkerTileSize

The size of the checkerboard tiles.

Definition at line 80 of file SoView2DOverlay.h.

◆ filterMode

SoSFEnum SoView2DOverlay::filterMode

filter mode for rendering

Definition at line 55 of file SoView2DOverlay.h.

◆ image

SoSFMLImage SoView2DOverlay::image

Fields.

input image

Definition at line 47 of file SoView2DOverlay.h.

◆ inheritFilterMode

SoSFBool SoView2DOverlay::inheritFilterMode

inherit filter mode

Definition at line 53 of file SoView2DOverlay.h.

◆ isCheckerTiling

SoSFBool SoView2DOverlay::isCheckerTiling

If enabled, draws a checkerboard tile each.

Definition at line 77 of file SoView2DOverlay.h.

◆ lutPrecision

SoSFEnum SoView2DOverlay::lutPrecision

defines the precision of the LUT

Definition at line 67 of file SoView2DOverlay.h.

◆ maxTimePoint

SoSFInt32 SoView2DOverlay::maxTimePoint

maximum timepoint value available (maximum of timePoint field)

Definition at line 65 of file SoView2DOverlay.h.

◆ overlayName

SoSFString SoView2DOverlay::overlayName

Sets the name of the overlay for usage in a SoView2DShaderOverlay.

Definition at line 86 of file SoView2DOverlay.h.

◆ overwriteCurrentTimePoint

SoSFBool SoView2DOverlay::overwriteCurrentTimePoint

Should the current time point be overwritten?

Definition at line 61 of file SoView2DOverlay.h.

◆ timePoint

SoSFInt32 SoView2DOverlay::timePoint

select the timepoint of the input image to render

Definition at line 63 of file SoView2DOverlay.h.

◆ useWorldCoords

SoSFBool SoView2DOverlay::useWorldCoords

if this flag is on, the overlay can also render correct subimage overlays if the image is parallel to the image rendered on SoView2D

Definition at line 71 of file SoView2DOverlay.h.


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