MeVisLab Toolbox Reference
|
#include <SoView2DPlane.h>
Public Types | |
enum | InteractionMode { TRANSLATE , ROTATE , BOTH } |
enum | NormalShape { TRIANGLE , ARROW } |
![]() | |
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 | |
SoView2DPlane () | |
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... | |
void | setExternalRotationAxis (SbVec3f rotPosition) |
![]() | |
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... | |
![]() | |
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 &) |
View2DEvent * | getEvent () |
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... | |
![]() | |
SoInteractionProviderNode () | |
Default constructor. More... | |
~SoInteractionProviderNode () override | |
Destructor. More... | |
std::string | getID () const override |
Returns the ID string for identifying the provider and its actions. More... | |
void | objRef () override |
Memory management by reference counting; must be implemented in derived classes. More... | |
void | objUnref () override |
![]() | |
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. By default, simply calls the below version. More... | |
void | pointerLeftWindow (SoState *state) override |
Same as below, with additional SoState argument. By defaults, simply calls the below version. More... | |
void | addListener (SoInteractionOwnerListenerInterface *listener) |
Adds a listener object that is notified of changes in the interaction list. More... | |
void | removeListener (SoInteractionOwnerListenerInterface *listener) |
Removes a listener object that was notified of changes in the interaction list. More... | |
![]() | |
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 void | initClass () |
Initializes this class. More... | |
![]() | |
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 void | initClass () |
Initializes this class. More... | |
![]() | |
static void | registerInteractionProviderNode (SoType type, GetProviderFunc func) |
Registers a function to obtain a SoInteractionProvider from a SoNode. More... | |
static SoInteractionProvider * | getInteractionProvider (SoNode *node) |
Returns a SoInteractionProvider from a SoNode if registered, else NULL. More... | |
Public Attributes | |
SoSFPlane | plane |
Fields. More... | |
SoSFEnum | interactionMode |
interaction mode plane can be rotated or translated or both More... | |
SoSFBool | maskValidAndHit |
gives the state of the mask, which calculated by the current mousebuttons and modifier key compared to the button1,button2,button3,ctrl,shift,alt settings. More... | |
SoSFFloat | blendMin |
minimum blend value More... | |
SoSFFloat | blendMax |
maximum blend value More... | |
SoSFBool | normalOn |
draw normal More... | |
SoSFBool | shadowOn |
draw shadow More... | |
SoSFBool | externalRotationAxisOn |
set external rotation axis More... | |
SoSFBool | allowMoveExternalRotationAxis |
allow to move the external rotation axis point with mouse More... | |
SoSFVec3f | externalRotationAxis |
external rotation axis position More... | |
SoSFFloat | centerGapSize |
don't draw plane around rotationAxis (only if fixedLineWidth is set), gap size in pixels More... | |
SoSFInt32 | normalSize |
size of normal to be drawn (in pixels) More... | |
SoSFFloat | normalOffset |
offset of the normal from the plane More... | |
SoSFEnum | normalShape |
shape of normal indicator More... | |
SoSFMatrix | rotationDifference |
Rotation between previous and current orientation. More... | |
SoSFFloat | translationLineFraction |
Fraction of the visible line that is associated with translation (percent) More... | |
SoSFBool | useTranslationRange |
use translation range for plane parameter d More... | |
SoSFFloat | translationRangeMin |
minimum value for plane parameter d More... | |
SoSFFloat | translationRangeMax |
maximum value for plane parameter d More... | |
SoSFBool | fixedLineWidth |
use translation range for plane parameter d More... | |
SoSFBool | useAntiAliasing |
use anti-aliasing for rendering lines More... | |
SoSFBool | useMouseCursors |
use mouse cursors to indicate next interaction More... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
SoSFString | instanceName |
Defines interface field to store the instance name. More... | |
SoSFString | interactionProviderID |
This field overrides the instanceName as providerID if specified. More... | |
Protected Types | |
enum | HIT_MODE { NO_HIT , HIT_ROTATE , HIT_TRANSLATE , HIT_CENTER } |
describes if we hit the line and how More... | |
Protected Member Functions | |
void | clipLinePoint (float &p1x, float &p1y, float p2x, float p2y, float x0, float x1) |
clip a line and a point in 2D, returns new point in p1x,p1y More... | |
bool | clipToSliceRect (SbVec2f &p1, SbVec2f &p2, View2DSlice *dslice) |
clip line to device rectangle of slice, returns false if nothing is left afterwards More... | |
void | drawPlaneLine (View2DSliceList *dsl, View2DSlice *dslice, SbVec2f p1, SbVec2f p2) |
draw plane line, possibly including the normal indicator More... | |
void | drawNormal (View2DSliceList *dsl, View2DSlice *dslice, SbVec2f p1, SbVec2f p2) |
draw a normal on the slice More... | |
HIT_MODE | _hitPlane (const SbVec3f &point, View2DSliceList *dsl, int &proposedCursorShape) |
is mouse cursor on plane? More... | |
void | dragMoveTo (const SbVec3f &point, View2DSliceList *slicelist) |
implement dragging, parameter is world position More... | |
int | getCurrentCursor (SoViewerProxy *viewerProxy) override |
interface forwarded from SoPointingAction: More... | |
bool | isSensitiveAt (const SoPointerPosition &pos) override |
void | startPressAt (const SoPointerPosition &pos) override |
void | dragMoveTo (const SoPointerPosition &pos) override |
SoPointingAction * | endPress (int clickCount) override |
![]() | |
~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 void | setHighlightAt (const SoPointerPosition &) |
virtual void | unsetHighlight () |
virtual int | getNumInteractionModes () const |
virtual void | setInteractionMode (int) |
![]() | |
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 |
![]() | |
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 *) |
Additional Inherited Members | |
![]() | |
SoPointingAction * | _pointingAction |
![]() | |
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... | |
Definition at line 26 of file SoView2DPlane.h.
|
protected |
describes if we hit the line and how
Enumerator | |
---|---|
NO_HIT | |
HIT_ROTATE | |
HIT_TRANSLATE | |
HIT_CENTER |
Definition at line 126 of file SoView2DPlane.h.
Enumerator | |
---|---|
TRANSLATE | |
ROTATE | |
BOTH |
Definition at line 31 of file SoView2DPlane.h.
Enumerator | |
---|---|
TRIANGLE | |
ARROW |
Definition at line 37 of file SoView2DPlane.h.
SoView2DPlane::SoView2DPlane | ( | ) |
Constructor.
|
protected |
is mouse cursor on plane?
|
protected |
clip a line and a point in 2D, returns new point in p1x,p1y
|
protected |
clip line to device rectangle of slice, returns false if nothing is left afterwards
|
protected |
implement dragging, parameter is world position
|
overrideprotectedvirtual |
Reimplemented from SoView2DInteractionExtension.
|
overridevirtual |
reimplemented from SoView2DExtension
Reimplemented from SoView2DExtension.
|
protected |
draw a normal on the slice
|
protected |
draw plane line, possibly including the normal indicator
|
overrideprotectedvirtual |
Reimplemented from SoView2DInteractionExtension.
|
overridevirtual |
reimplemented from SoView2DExtension
Reimplemented from SoView2DExtension.
|
overrideprotectedvirtual |
interface forwarded from SoPointingAction:
Reimplemented from SoView2DInteractionExtension.
|
static |
inventor runtime type system
|
overrideprotectedvirtual |
Reimplemented from SoView2DInteractionExtension.
|
inline |
Definition at line 109 of file SoView2DPlane.h.
|
overrideprotectedvirtual |
Reimplemented from SoView2DInteractionExtension.
SoSFBool SoView2DPlane::allowMoveExternalRotationAxis |
allow to move the external rotation axis point with mouse
Definition at line 67 of file SoView2DPlane.h.
SoSFFloat SoView2DPlane::blendMax |
maximum blend value
Definition at line 59 of file SoView2DPlane.h.
SoSFFloat SoView2DPlane::blendMin |
minimum blend value
Definition at line 57 of file SoView2DPlane.h.
SoSFFloat SoView2DPlane::centerGapSize |
don't draw plane around rotationAxis (only if fixedLineWidth is set), gap size in pixels
Definition at line 71 of file SoView2DPlane.h.
SoSFVec3f SoView2DPlane::externalRotationAxis |
external rotation axis position
Definition at line 69 of file SoView2DPlane.h.
SoSFBool SoView2DPlane::externalRotationAxisOn |
set external rotation axis
Definition at line 65 of file SoView2DPlane.h.
SoSFBool SoView2DPlane::fixedLineWidth |
use translation range for plane parameter d
Definition at line 89 of file SoView2DPlane.h.
SoSFEnum SoView2DPlane::interactionMode |
interaction mode plane can be rotated or translated or both
Definition at line 50 of file SoView2DPlane.h.
SoSFBool SoView2DPlane::maskValidAndHit |
gives the state of the mask, which calculated by the current mousebuttons and modifier key compared to the button1,button2,button3,ctrl,shift,alt settings.
Moreover the plane must be hit.
Definition at line 54 of file SoView2DPlane.h.
SoSFFloat SoView2DPlane::normalOffset |
offset of the normal from the plane
Definition at line 75 of file SoView2DPlane.h.
SoSFBool SoView2DPlane::normalOn |
draw normal
Definition at line 61 of file SoView2DPlane.h.
SoSFEnum SoView2DPlane::normalShape |
shape of normal indicator
Definition at line 77 of file SoView2DPlane.h.
SoSFInt32 SoView2DPlane::normalSize |
size of normal to be drawn (in pixels)
Definition at line 73 of file SoView2DPlane.h.
SoSFPlane SoView2DPlane::plane |
SoSFMatrix SoView2DPlane::rotationDifference |
Rotation between previous and current orientation.
Definition at line 79 of file SoView2DPlane.h.
SoSFBool SoView2DPlane::shadowOn |
draw shadow
Definition at line 63 of file SoView2DPlane.h.
SoSFFloat SoView2DPlane::translationLineFraction |
Fraction of the visible line that is associated with translation (percent)
Definition at line 81 of file SoView2DPlane.h.
SoSFFloat SoView2DPlane::translationRangeMax |
maximum value for plane parameter d
Definition at line 87 of file SoView2DPlane.h.
SoSFFloat SoView2DPlane::translationRangeMin |
minimum value for plane parameter d
Definition at line 85 of file SoView2DPlane.h.
SoSFBool SoView2DPlane::useAntiAliasing |
use anti-aliasing for rendering lines
Definition at line 91 of file SoView2DPlane.h.
SoSFBool SoView2DPlane::useMouseCursors |
use mouse cursors to indicate next interaction
Definition at line 93 of file SoView2DPlane.h.
SoSFBool SoView2DPlane::useTranslationRange |
use translation range for plane parameter d
Definition at line 83 of file SoView2DPlane.h.