MeVisLab Toolbox Reference
SoView2DExtension Class Reference

SoView2DExtension Base class for all View2DExtensions used for drawing and event handling on the View2D. More...

#include <SoView2DExtension.h>

Inheritance diagram for SoView2DExtension:
SoInteractionProviderNode SoInteractionOwner SoInteractionProvider SoView2DBorder SoView2DCSOEditor SoView2DCSOExtensibleEditor SoView2DCallback SoView2DCine SoView2DCurrentState SoView2DDeformationGridView SoView2DEnlargeOnClick SoView2DExtensionSampler SoView2DExtensionSeparator SoView2DGrid SoView2DInteractionExtension SoView2DLegend SoView2DMagnifyController SoView2DRuler SoView2DShaderDevicePosition SoView2DShaderOverlay SoView2DTouchControl SoView2DTransRot SoView2DVectorFieldView SoView2DVoxelView

Public Member Functions

 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 draw (View2DSliceList *slicelist, View2DSlice *slice, int sliceZ)
 Called by the SoView2D for each slice that is rendered. More...
 
virtual bool evalEvent (SoView2D *view2d, View2DSliceList *slicelist, View2DEvent *ec, View2DEventPhase phase)
 Called by the SoView2D for each event that happens on the viewer. 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)
 
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 ()
 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 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

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

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

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...
 
enum  Sign { ZERO , NEGATIVE , POSITIVE }
 defines the sign of a number, with zero as an extra value More...
 
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...
 

Additional Inherited Members

- Public Types inherited from SoInteractionProvider
typedef SoInteractionProvider *(* GetProviderFunc) (SoNode *)
 

Detailed Description

SoView2DExtension Base class for all View2DExtensions used for drawing and event handling on the View2D.

Definition at line 227 of file SoView2DExtension.h.

Member Enumeration Documentation

◆ Sign

defines the sign of a number, with zero as an extra value

Enumerator
ZERO 
NEGATIVE 
POSITIVE 

Definition at line 427 of file SoView2DExtension.h.

Constructor & Destructor Documentation

◆ SoView2DExtension()

SoView2DExtension::SoView2DExtension ( )

Constructor.

◆ ~SoView2DExtension()

SoView2DExtension::~SoView2DExtension ( )
overrideprotected

destructor

Member Function Documentation

◆ buttonMaskChanged()

virtual void SoView2DExtension::buttonMaskChanged ( SoField *  )
inlineprotectedvirtual

called when one of the button/modifier fields is touched:

Reimplemented in SoView2DInteractionExtension, and SoView2DCSOExtensibleEditor.

Definition at line 483 of file SoView2DExtension.h.

◆ callback()

void SoView2DExtension::callback ( SoCallbackAction *  action)
overrideprotected

◆ consumeEvent()

virtual void SoView2DExtension::consumeEvent ( View2DEvent ec,
bool  handled = TRUE 
)
virtual

Set handled-flag of ec to true (= consumed) if handled is True and setEventHandled is True.

◆ createNewModeRequestTriggered()

virtual void SoView2DExtension::createNewModeRequestTriggered ( SoField *  )
inlineprotectedvirtual

called when createNewModeRequest field ist touched:

Definition at line 486 of file SoView2DExtension.h.

◆ deleteSelectedObject()

virtual void SoView2DExtension::deleteSelectedObject ( )
virtual

deletes the currently active object (derive this method in child) (called by SoView2D)

◆ disableLineStippling()

static void SoView2DExtension::disableLineStippling ( const SoSFEnum &  lineStyleField)
static

◆ doAction()

void SoView2DExtension::doAction ( SoAction *  action)
overrideprotected

◆ draw()

virtual void SoView2DExtension::draw ( View2DSliceList slicelist,
View2DSlice slice,
int  sliceZ 
)
virtual

◆ drawDashedMiniRect()

void SoView2DExtension::drawDashedMiniRect ( float  xp,
float  yp,
float  ext,
float  lineWidth 
)

Draws a small rectangle with given half side length and a line width. The outline is drawn dashed if the size and line width allow that.

◆ drawFilledMiniCircle()

void SoView2DExtension::drawFilledMiniCircle ( float  xp,
float  yp,
float  ext,
float  lineWidth = 1.f 
)

Draws a small filled circle with given center point and radius.

◆ drawFilledMiniRect()

void SoView2DExtension::drawFilledMiniRect ( float  xp,
float  yp,
float  ext,
float  lineWidth = 1.f 
)

Draws a small filled rectangle with given half side length.

◆ drawFilledMiniTriangle()

void SoView2DExtension::drawFilledMiniTriangle ( float  xp,
float  yp,
float  ext,
float  lineWidth = 1.f 
)

Draws a small filled triangle with given center point and half height.

◆ drawFixedSizeMiniCircleAt()

void SoView2DExtension::drawFixedSizeMiniCircleAt ( float  xp,
float  yp 
)

Draws a fixed size small circle at the given position.

◆ drawMiniCircle()

void SoView2DExtension::drawMiniCircle ( float  xp,
float  yp,
float  ext,
float  lineWidth = 1.f 
)

Draws a small circle with given center point and radius.

◆ drawMiniRect()

void SoView2DExtension::drawMiniRect ( float  xp,
float  yp,
float  ext,
float  lineWidth = 1.f 
)

Draws a small rectangle with given half side length and a line width.

◆ drawMiniTriangle()

void SoView2DExtension::drawMiniTriangle ( float  xp,
float  yp,
float  ext,
float  lineWidth = 1.f 
)

Draws a small triangle with given center point, half height and line width.

◆ drawVoxelBorder()

void SoView2DExtension::drawVoxelBorder ( View2DSlice slice,
float  vx,
float  vy,
float  vz 
)

surround the given voxel with a border

◆ edgeIntersectWithPlane()

static Sign SoView2DExtension::edgeIntersectWithPlane ( const SbVec3f &  v1,
const SbVec3f &  v2,
const SbPlane &  plane,
SbVec3f &  intersect 
)
static

intersect given edge from v1 to v2 with given plane, returns sign and intersect point

◆ editingOnChanged()

virtual void SoView2DExtension::editingOnChanged ( SoField *  )
inlineprotectedvirtual

called when editingOn field is touched:

Reimplemented in SoView2DInteractionExtension, SoView2DVoxelValue, SoView2DSliceZoom, SoView2DSlicer, SoView2DLegend, SoView2DAnnotation, and SoView2DCSOExtensibleEditor.

Definition at line 480 of file SoView2DExtension.h.

◆ enableLineStippling()

static void SoView2DExtension::enableLineStippling ( const SoSFEnum &  lineStyleField)
static

Set/reset stippling pattern.

◆ endDrawing()

virtual void SoView2DExtension::endDrawing ( View2DSliceList )
inlinevirtual

this method is called after the slicelist is called and allows some cleanup of precalculated data

Reimplemented in SoView2DExtensionSampler, SoView2DOverlay, and SoView2DExtensionSeparator.

Definition at line 328 of file SoView2DExtension.h.

◆ evalEvent()

virtual bool SoView2DExtension::evalEvent ( SoView2D view2d,
View2DSliceList slicelist,
View2DEvent ec,
View2DEventPhase  phase 
)
virtual

Called by the SoView2D for each event that happens on the viewer.

Implement this method if you want to handle events. If this method is called depends on the fields wantsAllEvents, wantsKeyEvents, wantsMouseWheelEvents and the mouse mask given by button1, button2, button3, shift, control, alt. When using the mouse mask (when wantsAllEvents is set to false), the View2DEventPhase indicates in which phase of the mouse mask you are in.

Reimplemented in SoView2DGrid, SoView2DCallback, SoView2DVoxelValue, SoView2DTransRot, SoView2DSlider, SoView2DSliceZoom, SoView2DSlicer, SoView2DSlicePan, SoView2DRectangle, SoView2DPosition, SoView2DPlane, SoView2DOverlay, SoView2DLegend, SoView2DEnlargeOnClick, SoView2DAutoCenter, SoView2DAnnotation, SoView2DCSOExtensibleEditor, SoView2DCSOEditor, SoView2DTouchControl, SoView2DMagnifyController, and SoView2DButton.

◆ evaluateEvent()

virtual bool SoView2DExtension::evaluateEvent ( SoView2D view2d,
View2DEvent ec 
)
virtual

To be called by the application which creates events and which wants to apply them to the extension

Reimplemented in SoView2DExtensionSampler, and SoView2DExtensionSeparator.

◆ fieldChanged()

virtual void SoView2DExtension::fieldChanged ( SoSensor *  sensor)
virtual

handle if any field has changed

◆ fieldChangedCB()

static void SoView2DExtension::fieldChangedCB ( void *  data,
SoSensor *  sensor 
)
static

inventor callbacks if any field has changed, calls fieldChanged

◆ getAxisOrientation()

static void SoView2DExtension::getAxisOrientation ( int  axis,
SbMatrix &  matrix,
char &  negativeResult,
char &  positiveResult 
)
static

Geometry helpers.

returns the orientation letter for the negative and positive direction of the given axis axis = 0 - X axis = 1 - Y axis = 2 - Z

◆ getBoundingBox()

void SoView2DExtension::getBoundingBox ( SoGetBoundingBoxAction *  action)
overrideprotected

◆ getEvent()

View2DEvent* SoView2DExtension::getEvent ( )

get the current event (when inside of evalEvent)

◆ getMatrix()

void SoView2DExtension::getMatrix ( SoGetMatrixAction *  action)
overrideprotected

◆ getPointingActionTriggerFromFields()

SoPointingAction::Trigger SoView2DExtension::getPointingActionTriggerFromFields ( )

Get the trigger that matches the button/modifier field state.

◆ getSelectDist()

float SoView2DExtension::getSelectDist ( )

Set the distance tolerance on hit checking in pixels.

◆ getSelectedIgnoreMask()

int SoView2DExtension::getSelectedIgnoreMask ( )

◆ getSelectedModifierMask()

int SoView2DExtension::getSelectedModifierMask ( )

Get compare and ignore mask for the currently selected button/modifier combination, usable with SoPointingAction.

◆ getStatusString()

virtual void SoView2DExtension::getStatusString ( SbString &  status)
virtual

get the current status of this extension

◆ getX()

int SoView2DExtension::getX ( )

get the x device position of current event, only returns valid result when called inside of evalEvent()

◆ getY()

int SoView2DExtension::getY ( )

get the y device position of current event, only returns valid result when called inside of evalEvent()

◆ GLRender()

void SoView2DExtension::GLRender ( SoGLRenderAction *  action)
overrideprotected

Inventor actions.

◆ handleEvent()

void SoView2DExtension::handleEvent ( SoHandleEventAction *  action)
overrideprotected

◆ ignoreEvent()

virtual bool SoView2DExtension::ignoreEvent ( View2DEvent ec)
virtual

Return true if ec has been handled before and if ignoreHandledEvents is True.

Reimplemented in SoView2DSlider, SoView2DRectangle, SoView2DPosition, and SoView2DButton.

◆ implementsManagedInteractionAndClassicEventHandling()

virtual bool SoView2DExtension::implementsManagedInteractionAndClassicEventHandling ( ) const
inlinevirtual

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

Reimplemented in SoView2DInteractionExtension, SoView2DSlider, SoView2DRigidRegistrationEditorBase, SoView2DLegend, SoView2DLabel, SoView2DButton, and SoView2DAnnotation.

Definition at line 466 of file SoView2DExtension.h.

◆ init()

void SoView2DExtension::init ( )

setup internal state

◆ initClass()

static void SoView2DExtension::initClass ( )
static

Initializes this class.

◆ isActive()

virtual bool SoView2DExtension::isActive ( )
virtual

returns if the extension is active (derive this method in child) (in createNewMode or with a selected object)(called by SoView2D)

◆ isClipToSlice()

virtual bool SoView2DExtension::isClipToSlice ( )
inlinevirtual

check if the image is clipped to slice

Definition at line 382 of file SoView2DExtension.h.

◆ isCreateNewMode()

bool SoView2DExtension::isCreateNewMode ( )

check if extension is in createNewMode

◆ isCreateNewModeRequest()

bool SoView2DExtension::isCreateNewModeRequest ( )

check if extension has a request for createNewMode

◆ isDrawingOn()

virtual bool SoView2DExtension::isDrawingOn ( )
inlinevirtual

check if drawing is on

Definition at line 376 of file SoView2DExtension.h.

◆ isEditingOn()

virtual bool SoView2DExtension::isEditingOn ( )
inlinevirtual

check if editing is on

Definition at line 378 of file SoView2DExtension.h.

Referenced by SoView2DInteractionExtension::shouldPointingActionBeEnabled().

◆ isFixZOn()

virtual bool SoView2DExtension::isFixZOn ( )
inlinevirtual

check if z should stay fixed

Definition at line 380 of file SoView2DExtension.h.

◆ isImageParallel()

static bool SoView2DExtension::isImageParallel ( SoSFMLImage image,
View2DSliceList dsl 
)
static

Return true if image is parallel to the image of the slice list up to slice thickness.

◆ isPointInsideDeviceRect()

bool SoView2DExtension::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.

the rectangle's size is defined by getSelectDist if not overwritten by a non-zero hitRectangleSize.

◆ overwriteDrawingSettings()

virtual void SoView2DExtension::overwriteDrawingSettings ( SoView2DDrawingSettings )
inlinevirtual

this method is called before any drawing and allows overwriting drawing settings

Reimplemented in SoView2DShaderOverlay.

Definition at line 331 of file SoView2DExtension.h.

◆ pick()

void SoView2DExtension::pick ( SoPickAction *  action)
overrideprotected

◆ pointToLineDistance() [1/2]

static float SoView2DExtension::pointToLineDistance ( SbVec2f  point,
SbVec2f  line1,
SbVec2f  line2 
)
static

calculate 2D point to line distance

◆ pointToLineDistance() [2/2]

static float SoView2DExtension::pointToLineDistance ( SbVec3f  point,
SbVec3f  line1,
SbVec3f  line2 
)
static

calculate 3D point to line distance

◆ setCreateNewMode()

void SoView2DExtension::setCreateNewMode ( bool  flag)

set this extension to create new objects

◆ setCreateNewModeRequest()

void SoView2DExtension::setCreateNewModeRequest ( bool  flag)

set that extension want to become createNewMode

◆ snapToPixelCenter()

static float SoView2DExtension::snapToPixelCenter ( float  coordinateComponent)
inlinestatic

Snaps the coordinate component to the pixel center.

Definition at line 340 of file SoView2DExtension.h.

◆ startDrawing()

virtual void SoView2DExtension::startDrawing ( View2DSliceList )
inlinevirtual

this method is called before the slicelist is called and allows some precalculation needed for all drawn slices

Reimplemented in SoView2DExtensionSampler, SoView2DSliceZoom, SoView2DOverlay, SoView2DAutoCenter, SoView2DCSOExtensibleEditor, and SoView2DExtensionSeparator.

Definition at line 325 of file SoView2DExtension.h.

◆ updateValues()

virtual void SoView2DExtension::updateValues ( )
virtual

Update fields to local variables, may be reimplemented if you want to update additional local vars.

Reimplemented in SoView2DSlicer, SoView2DBorderHighlight, and SoView2DBorder.

◆ wantsMouseOverUpdates()

bool SoView2DExtension::wantsMouseOverUpdates ( ) const
inline

public access to _wantsMouseOverUpdateEvents

Definition at line 450 of file SoView2DExtension.h.

Member Data Documentation

◆ _nodeSensor

SoNodeSensor* SoView2DExtension::_nodeSensor
protected

node sensor that is used to notice field changes

Definition at line 489 of file SoView2DExtension.h.

◆ _rgbColor

float SoView2DExtension::_rgbColor[4]
protected

Color of the object, update on each field change by _nodeSensor.

Definition at line 492 of file SoView2DExtension.h.

◆ _wantsMouseOverUpdateEvents

bool SoView2DExtension::_wantsMouseOverUpdateEvents
protected

set this flag to receive mouse over events while the extension is active

Definition at line 495 of file SoView2DExtension.h.

◆ alt

SoSFEnum SoView2DExtension::alt

shift alt for mouse mask

Definition at line 270 of file SoView2DExtension.h.

◆ button1

SoSFEnum SoView2DExtension::button1

mouse mask for button1

Definition at line 260 of file SoView2DExtension.h.

◆ button2

SoSFEnum SoView2DExtension::button2

mouse mask for button2

Definition at line 262 of file SoView2DExtension.h.

◆ button3

SoSFEnum SoView2DExtension::button3

mouse mask for button3

Definition at line 264 of file SoView2DExtension.h.

◆ clipToSlice

SoSFBool SoView2DExtension::clipToSlice

Flag to clip drawing to slice.

Definition at line 283 of file SoView2DExtension.h.

◆ color

SoSFColor SoView2DExtension::color

color that should be used for drawing

Definition at line 233 of file SoView2DExtension.h.

◆ control

SoSFEnum SoView2DExtension::control

shift control for mouse mask

Definition at line 268 of file SoView2DExtension.h.

◆ createNewMode

SoSFBool SoView2DExtension::createNewMode

flag if extension is in createNewMode

Definition at line 279 of file SoView2DExtension.h.

◆ createNewModeRequest

SoSFTrigger SoView2DExtension::createNewModeRequest

Definition at line 280 of file SoView2DExtension.h.

◆ cursorShape

SoSFEnum SoView2DExtension::cursorShape

Set cursor shape if the mouse mask fits and mouseEvents are effectively sent to evalEvent for editing.

Definition at line 287 of file SoView2DExtension.h.

◆ drawingOn

SoSFBool SoView2DExtension::drawingOn

flag if the extension should draw, needs to be checked inside of the draw() method

Definition at line 235 of file SoView2DExtension.h.

◆ editingOn

SoSFBool SoView2DExtension::editingOn

flag if the extension should edit objects on mouse events, needs to be checked inside of the evalEvent() method

Definition at line 237 of file SoView2DExtension.h.

◆ fixZOn

SoSFBool SoView2DExtension::fixZOn

DEPRECATED flag that indicates that the extension should fix the z value, only used in SoView2DRectangle.

Definition at line 292 of file SoView2DExtension.h.

◆ ignoreHandledEvents

SoSFBool SoView2DExtension::ignoreHandledEvents

Ignore events, that have been handled by previous extensions.

Definition at line 256 of file SoView2DExtension.h.

◆ maskValid

SoSFBool SoView2DExtension::maskValid

flag if the event mask is valid.

Definition at line 240 of file SoView2DExtension.h.

◆ needsValidVoxel

SoSFBool SoView2DExtension::needsValidVoxel

sets if a valid voxel must be hit to get evalEvent() calls

Definition at line 273 of file SoView2DExtension.h.

◆ renderOnSlab

SoSFBool SoView2DExtension::renderOnSlab

defines if the extension should be rendered on all slab slices

Definition at line 276 of file SoView2DExtension.h.

◆ selectionTolerance

SoSFFloat SoView2DExtension::selectionTolerance

the selection tolerance in pixels

Definition at line 243 of file SoView2DExtension.h.

◆ setEventHandled

SoSFBool SoView2DExtension::setEventHandled

Set event handled if it is indeed handled by this extension.

Definition at line 254 of file SoView2DExtension.h.

◆ shift

SoSFEnum SoView2DExtension::shift

shift modifier for mouse mask

Definition at line 266 of file SoView2DExtension.h.

◆ wantsAllEvents

SoSFBool SoView2DExtension::wantsAllEvents

flag if ALL events should be passed to evalEvent(), if disabled, events are only passed to evalEvent when the mouse mask gets valid

Definition at line 247 of file SoView2DExtension.h.

◆ wantsKeyEvents

SoSFBool SoView2DExtension::wantsKeyEvents

flag if keyboard events should be passed to evalEvent()

Definition at line 249 of file SoView2DExtension.h.

◆ wantsMouseWheelEvents

SoSFBool SoView2DExtension::wantsMouseWheelEvents

flag if MouseWheel events should be passed to evalEvent()

Definition at line 251 of file SoView2DExtension.h.


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