MeVisLab Toolbox Reference
|
SoView2DExtension for detailed voxel viewing. More...
#include <SoView2DVoxelView.h>
Public Member Functions | |
SoView2DVoxelView (void) | |
Creates a detail viewer for voxels. | |
void | draw (View2DSliceList *dsl, View2DSlice *dslice, int slice) override |
Virtual method called by the SoView2D node. | |
Public Member Functions inherited from SoView2DExtension | |
SoView2DExtension () | |
Constructor. | |
void | init () |
setup internal state | |
virtual void | updateValues () |
Update fields to local variables, may be reimplemented if you want to update additional local vars. | |
virtual bool | evalEvent (SoView2D *view2d, View2DSliceList *slicelist, View2DEvent *ec, View2DEventPhase phase) |
Called by the SoView2D for each event that happens on the viewer. | |
virtual void | startDrawing (View2DSliceList *) |
virtual void | endDrawing (View2DSliceList *) |
virtual void | overwriteDrawingSettings (SoView2DDrawingSettings &) |
View2DEvent * | getEvent () |
get the current event (when inside of evalEvent) | |
float | getSelectDist () |
Set the distance tolerance on hit checking in pixels. | |
bool | isPointInsideDeviceRect (float pointX, float pointY, float centerX, float centerY, float hitRectangleSize=0.0) |
returns whether the given point is inside a rectangle around the given center. | |
void | drawMiniRect (float xp, float yp, float ext, float lineWidth=1.f) |
Draws a small rectangle with given half side length and a line width. | |
void | drawDashedMiniRect (float xp, float yp, float ext, float lineWidth) |
void | drawFilledMiniRect (float xp, float yp, float ext, float lineWidth=1.f) |
Draws a small filled rectangle with given half side length. | |
void | drawMiniTriangle (float xp, float yp, float ext, float lineWidth=1.f) |
Draws a small triangle with given center point, half height and line width. | |
void | drawFilledMiniTriangle (float xp, float yp, float ext, float lineWidth=1.f) |
Draws a small filled triangle with given center point and half height. | |
void | drawMiniCircle (float xp, float yp, float ext, float lineWidth=1.f) |
Draws a small circle with given center point and radius. | |
void | drawFilledMiniCircle (float xp, float yp, float ext, float lineWidth=1.f) |
Draws a small filled circle with given center point and radius. | |
void | drawFixedSizeMiniCircleAt (float xp, float yp) |
Draws a fixed size small circle at the given position. | |
void | drawVoxelBorder (View2DSlice *slice, float vx, float vy, float vz) |
surround the given voxel with a border | |
int | getX () |
get the x device position of current event, only returns valid result when called inside of evalEvent() | |
int | getY () |
get the y device position of current event, only returns valid result when called inside of evalEvent() | |
virtual bool | isDrawingOn () |
check if drawing is on | |
virtual bool | isEditingOn () |
check if editing is on | |
virtual bool | isFixZOn () |
check if z should stay fixed | |
virtual bool | isClipToSlice () |
check if the image is clipped to slice | |
virtual void | fieldChanged (SoSensor *sensor) |
handle if any field has changed | |
bool | isCreateNewMode () |
check if extension is in createNewMode | |
void | setCreateNewMode (bool flag) |
set this extension to create new objects | |
bool | isCreateNewModeRequest () |
check if extension has a request for createNewMode | |
void | setCreateNewModeRequest (bool flag) |
set that extension want to become createNewMode | |
virtual bool | isActive () |
returns if the extension is active (derive this method in child) (in createNewMode or with a selected object)(called by SoView2D) | |
virtual void | deleteSelectedObject () |
deletes the currently active object (derive this method in child) (called by SoView2D) | |
virtual void | getStatusString (SbString &status) |
get the current status of this extension | |
virtual bool | evaluateEvent (SoView2D *view2d, View2DEvent *ec) |
virtual bool | ignoreEvent (View2DEvent *ec) |
Return true if ec has been handled before and if ignoreHandledEvents is True. | |
bool | wantsMouseOverUpdates () const |
public access to _wantsMouseOverUpdateEvents | |
virtual void | consumeEvent (View2DEvent *ec, bool handled=TRUE) |
Set handled-flag of ec to true (= consumed) if handled is True and setEventHandled is True. | |
int | getSelectedModifierMask () |
Get compare and ignore mask for the currently selected button/modifier combination, usable with SoPointingAction. | |
int | getSelectedIgnoreMask () |
SoPointingAction::Trigger | getPointingActionTriggerFromFields () |
Get the trigger that matches the button/modifier field state. | |
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 | |
Public Member Functions inherited from SoInteractionProviderNode | |
SoInteractionProviderNode () | |
Default constructor. | |
~SoInteractionProviderNode () override | |
Destructor. | |
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. | |
void | objRef () override |
Memory management by reference counting; must be implemented in derived classes. | |
void | objUnref () override |
Public Member Functions inherited from SoInteractionOwner | |
SoInteractionOwner () | |
Default constructor. | |
~SoInteractionOwner () override | |
The destructor will destroy all interactions created with this object as owner. | |
std::list< SoInteraction * > | getInteractions (SoState *state) override |
Returns the list of all interactions of this provider. | |
void | pointerPosition (SoState *state, const SoPointerPosition &pos) override |
Same as below, with additional SoState argument. Be defaults simply calls the below version. | |
void | pointerLeftWindow (SoState *state) override |
Same as below, with additional SoState argument. Be defaults simply calls the below version. | |
void | addListener (SoInteractionOwnerListenerInterface *listener) |
Add a listener object that is notified of changes in the interaction list. | |
void | removeListener (SoInteractionOwnerListenerInterface *listener) |
Remove a listener object that was notified of changes in the interaction list. | |
Public Member Functions inherited from SoInteractionProvider | |
SoInteractionProvider () | |
Default constructor. | |
virtual | ~SoInteractionProvider () |
template<class T > | |
std::list< T * > | getInteractionsOfType (SoState *state) |
Returns list of interactions of a specific type: | |
virtual std::list< SoCommandAction * > | getCommandActions (SoState *state) |
virtual std::list< SoPointingAction * > | getPointingActions (SoState *state) |
virtual std::list< SoOffsetAction * > | getOffsetActions (SoState *state) |
Static Public Member Functions | |
static void | initClass (void) |
Initialization function of this class. | |
Static Public Member Functions inherited from SoView2DExtension | |
static void | initClass () |
Initializes this class. | |
static float | snapToPixelCenter (float coordinateComponent) |
Snaps the coordinate component to the pixel center. | |
static void | fieldChangedCB (void *data, SoSensor *sensor) |
inventor callbacks if any field has changed, calls fieldChanged | |
static bool | isImageParallel (SoSFMLImage *image, View2DSliceList *dsl) |
Return true if image is parallel to the image of the slice list up to slice thickness. | |
static void | enableLineStippling (const SoSFEnum &lineStyleField) |
Set/reset stippling pattern. | |
static void | disableLineStippling (const SoSFEnum &lineStyleField) |
static void | getAxisOrientation (int axis, SbMatrix &matrix, char &negativeResult, char &positiveResult) |
Geometry helpers. | |
static float | pointToLineDistance (SbVec3f point, SbVec3f line1, SbVec3f line2) |
calculate 3D point to line distance | |
static float | pointToLineDistance (SbVec2f point, SbVec2f line1, SbVec2f line2) |
calculate 2D point to line distance | |
static Sign | edgeIntersectWithPlane (const SbVec3f &v1, const SbVec3f &v2, const SbPlane &plane, SbVec3f &intersect) |
intersect given edge from v1 to v2 with given plane, returns sign and intersect point | |
Static Public Member Functions inherited from SoInteractionProviderNode | |
static void | initClass () |
Initializes this class. | |
Static Public Member Functions inherited from SoInteractionProvider | |
static void | registerInteractionProviderNode (SoType type, GetProviderFunc func) |
Register a function to obtain a SoInteractionProvider from a SoNode. | |
static SoInteractionProvider * | getInteractionProvider (SoNode *node) |
Get a SoInteractionProvider from a SoNode if registered, else NULL. | |
Public Attributes | |
Parameter fields. | |
If enabled the voxel value is drawn in the center of each voxel; default is TRUE. | |
SoSFBool | drawVoxelValues |
SoSFString | defaultFitString |
String which should fit into a voxel to be shown, that means if it does not fit no voxel values are shown to avoid unreadable text overlays on inappropriate zoom values; default is "123". | |
SoSFBool | drawCenterDots |
If enabled a pixel is drawn in the center of each voxel; default is false. | |
SoSFBool | drawCornerDots |
If enabled dots are drawn in all corners of each voxel; default is false. | |
SoSFBool | useCommas |
If enabled then all spaces in multicomponent voxel values are replaced by commas for better readability; default is TRUE. | |
SoSFBool | outLineVoxels |
If enabled then on voxel the border pixels are drawn; default is FALSE. | |
SoSFBool | useLut |
If enabled a connected look up table will be used to draw everything in the "looked up" values of the voxel value; if disabled a connected LUT will be ignored. | |
SoSFFloat | defaultAlpha |
Transparency from [0,1] used if no LUT is used; default is 0.5 (half transparent). | |
SoSFFloat | fontSize |
Size of font for voxel value; default is 10, minimum is 6, maximum is 250. | |
SoSFInt32 | numCoordinateComponents |
The number of coordinate components to be shown; default is 0. | |
SoSFInt32 | numRowComponents |
The number of coordinate components to be shown in one row; 0 means automatic row size, which uses root of component numbers in case of matrices; default is 0. | |
SoSFInt32 | numPrecisionDigits |
The maximum number of digits after "." in floating point numbers; default is 1. | |
SoSFMLBase | inputLut |
Optional node input for an optional lookup table node which controls color mapping of drawn stuff. | |
Public Attributes inherited from SoView2DExtension | |
SoSFColor | color |
color that should be used for drawing | |
SoSFBool | drawingOn |
flag if the extension should draw, needs to be checked inside of the draw() method | |
SoSFBool | editingOn |
flag if the extension should edit objects on mouse events, needs to be checked inside of the evalEvent() method | |
SoSFBool | maskValid |
flag if the event mask is valid. | |
SoSFFloat | selectionTolerance |
the selection tolerance in pixels | |
SoSFBool | wantsAllEvents |
flag if ALL events should be passed to evalEvent(), if disabled, events are only passed to evalEvent when the mouse mask gets valid | |
SoSFBool | wantsKeyEvents |
flag if keyboard events should be passed to evalEvent() | |
SoSFBool | wantsMouseWheelEvents |
flag if MouseWheel events should be passed to evalEvent() | |
SoSFBool | setEventHandled |
Set event handled if it is indeed handled by this extension. | |
SoSFBool | ignoreHandledEvents |
Ignore events, that have been handled by previous extensions. | |
SoSFEnum | button1 |
mouse mask for button1 | |
SoSFEnum | button2 |
mouse mask for button2 | |
SoSFEnum | button3 |
mouse mask for button3 | |
SoSFEnum | shift |
shift modifier for mouse mask | |
SoSFEnum | control |
shift control for mouse mask | |
SoSFEnum | alt |
shift alt for mouse mask | |
SoSFBool | needsValidVoxel |
sets if a valid voxel must be hit to get evalEvent() calls | |
SoSFBool | renderOnSlab |
defines if the extension should be rendered on all slab slices | |
SoSFBool | createNewMode |
flag if extension is in createNewMode | |
SoSFTrigger | createNewModeRequest |
SoSFBool | clipToSlice |
Flag to clip drawing to slice. | |
SoSFEnum | cursorShape |
Set cursor shape if the mouse mask fits and mouseEvents are effectively sent to evalEvent for editing. | |
SoSFBool | fixZOn |
DEPRECATED flag that indicates that the extension should fix the z value, only used in SoView2DRectangle. | |
Public Attributes inherited from SoInteractionProviderNode | |
SoSFString | instanceName |
Defines interface field to store the instance name. | |
SoSFString | interactionProviderID |
This field overrides the instanceName as providerID if specified. | |
Protected Member Functions | |
virtual void | _drawCellInformation (View2DSliceList *, View2DSlice *, int, bool, int, const MLTypeInfos &, MLDataType, MLTypeData *, int, GLfloat[4], float, float, View2DFont &, float) |
User defined function to draw additional stuff in derived classes. | |
void | _getGLColor (double dblVoxVal, GLfloat rgba[4]) |
Set correct color value in rgba dependent on the current settings and the voxel value dblVoxVal . | |
float | _drawVoxelValue (bool drawTexts, int numRowComps, MLDataType dType, MLTypeData *vBuf1, int numDTComponents, GLfloat rgba[4], float xPos, float yPos, View2DFont &font, float fSize) |
If drawTexts is true, the default string fits into a voxel then draw the voxel value from voxel data buffer vBuf1 (if non NULL) of type dType with numDTComponents components with the color rgba at the vertical device position (xPos, yPos). | |
float | _drawStringVoxelValue (bool drawTexts, MLDataType dType, MLTypeData *vBuf1, int numDTComponents, GLfloat rgba[4], float xPos, float yPos, View2DFont &font, float fSize) |
Still incomplete and unused. | |
void | _drawCoordinateComponents (bool drawTexts, int numComps, XVImageSize &pos, GLfloat rgba[4], float xPos, float yPos, View2DFont &font, float fSize) |
If drawTexts is true then draw numComps coordinate components of position pos with the color rgba at the vertical device position (xPos, yPos). | |
void | _updateLutData (SoSFMLImage &inImg, View2DLutPrecision precision) |
Update the look up table according to the image data. | |
Protected Member Functions inherited from SoView2DExtension | |
virtual void | editingOnChanged (SoField *) |
called when editingOn field is touched: | |
virtual void | buttonMaskChanged (SoField *) |
called when one of the button/modifier fields is touched: | |
virtual void | createNewModeRequestTriggered (SoField *) |
called when createNewModeRequest field ist touched: | |
~SoView2DExtension () override | |
destructor | |
void | GLRender (SoGLRenderAction *action) override |
Inventor actions. | |
void | callback (SoCallbackAction *action) override |
void | handleEvent (SoHandleEventAction *action) override |
void | getMatrix (SoGetMatrixAction *action) override |
void | getBoundingBox (SoGetBoundingBoxAction *action) override |
void | pick (SoPickAction *action) override |
void | doAction (SoAction *action) override |
Protected Member Functions inherited from SoInteractionOwner | |
virtual void | pointerPosition (const SoPointerPosition &) |
Override this if you always need to be informed of the current mouse cursor position. | |
virtual void | pointerLeftWindow () |
This is called when the mouse cursor leaves the window. | |
bool | hasInteractions () const |
Returns whether there are any actions defined by this owner. | |
template<class T > | |
bool | hasInteractionsOfType () const |
Same as above, but asking for a specific type of interaction. | |
void | addPointingAction (SoPointingAction *) |
void | addCommandAction (SoCommandAction *) |
void | addOffsetAction (SoOffsetAction *) |
Protected Attributes | |
ml::LUTData< MLfloat > | _lutData |
Data table for voxel value look up. | |
Protected Attributes inherited from SoView2DExtension | |
SoNodeSensor * | _nodeSensor |
node sensor that is used to notice field changes | |
float | _rgbColor [4] |
Color of the object, update on each field change by _nodeSensor. | |
bool | _wantsMouseOverUpdateEvents |
set this flag to receive mouse over events while the extension is active | |
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 *) |
SoView2DExtension for detailed voxel viewing.
Definition at line 33 of file SoView2DVoxelView.h.
SoView2DVoxelView::SoView2DVoxelView | ( | void | ) |
Creates a detail viewer for voxels.
|
inlineprotectedvirtual |
User defined function to draw additional stuff in derived classes.
dsl | pointer to View2DSliceList passed to the internally overloaded View2DExtension::draw() method. |
dSlice | pointer to View2DSlice passed to the internally overloaded View2DExtension::draw() method. |
slice | slice number passed to the internally overloaded View2DExtension::draw() method. |
drawTexts | is true if text shall be drawn because it seems to fit into the default string width. |
numRowComps | The number of coordinate components to be shown in one row; 0 means automatic row size, which uses root of component numbers in case of matrices. |
dType | is the data type id of the voxel. |
v1Buf | Pointer to the voxel data. |
numDTComps | Number of components of the voxel. |
font | Font to be used for text drawing. |
fSize | Size of font to be used for text drawing. |
Definition at line 130 of file SoView2DVoxelView.h.
|
protected |
If drawTexts
is true then draw numComps
coordinate components of position pos
with the color rgba
at the vertical device position (xPos, yPos).
numComps
must be a value from [0,...,6]. Font and font size are given by font
and fSize
.
|
protected |
Still incomplete and unused.
If drawTexts
is true, the default string fits into a voxel then draw the voxel value from voxel data buffer vBuf1
(if non NULL) of type dType
with numDTComponents
components with the color rgba
at the vertical device position (xPos, yPos) as string. Font and font size are given by
font
and fSize
. The return value is the optimal position for drawings of the coordinate position.
|
protected |
If drawTexts
is true, the default string fits into a voxel then draw the voxel value from voxel data buffer vBuf1
(if non NULL) of type dType
with numDTComponents
components with the color rgba
at the vertical device position (xPos, yPos).
Font and font size are given by font
and fSize
. The return value is the optimal position for drawings of the coordinate position.
Set correct color value in rgba
dependent on the current settings and the voxel value dblVoxVal
.
|
protected |
Update the look up table according to the image data.
On available LUT true is returned and shift and scale can be used to transform voxel values to non clamped LutData indices. If no LUT is available then false is returned and shift and scale are left unchanged.
|
overridevirtual |
Virtual method called by the SoView2D
node.
It is called for each slices drawn in each viewer. dsl
is the View2DSliceList
, the list containing all information of all slices handled by the viewer. dslice
is the slice currently drawn and slice
the the number of the currently drawn slice.
Reimplemented from SoView2DExtension.
Initialization function of this class.
It implements the registration of this class in the runtime type system of open Inventor and other user stuff e.g. activation of other Inventor classes (events, actions, elements) needed in this class.
|
protected |
Data table for voxel value look up.
Definition at line 146 of file SoView2DVoxelView.h.
SoSFFloat SoView2DVoxelView::defaultAlpha |
Transparency from [0,1] used if no LUT is used; default is 0.5 (half transparent).
Definition at line 87 of file SoView2DVoxelView.h.
SoSFString SoView2DVoxelView::defaultFitString |
String which should fit into a voxel to be shown, that means if it does not fit no voxel values are shown to avoid unreadable text overlays on inappropriate zoom values; default is "123".
Definition at line 66 of file SoView2DVoxelView.h.
SoSFBool SoView2DVoxelView::drawCenterDots |
If enabled a pixel is drawn in the center of each voxel; default is false.
Definition at line 69 of file SoView2DVoxelView.h.
SoSFBool SoView2DVoxelView::drawCornerDots |
If enabled dots are drawn in all corners of each voxel; default is false.
Definition at line 72 of file SoView2DVoxelView.h.
SoSFBool SoView2DVoxelView::drawVoxelValues |
Definition at line 61 of file SoView2DVoxelView.h.
SoSFFloat SoView2DVoxelView::fontSize |
Size of font for voxel value; default is 10, minimum is 6, maximum is 250.
Definition at line 90 of file SoView2DVoxelView.h.
SoSFMLBase SoView2DVoxelView::inputLut |
Optional node input for an optional lookup table node which controls color mapping of drawn stuff.
Its usage is enabled by useLut
.
Definition at line 107 of file SoView2DVoxelView.h.
SoSFInt32 SoView2DVoxelView::numCoordinateComponents |
The number of coordinate components to be shown; default is 0.
Definition at line 93 of file SoView2DVoxelView.h.
SoSFInt32 SoView2DVoxelView::numPrecisionDigits |
The maximum number of digits after "." in floating point numbers; default is 1.
Values smaller 0 are considered the maximum sensible digit number for the floating point types; values larger than the maximum sensible number will lead to at most the maximum sensible number of digits.
Definition at line 103 of file SoView2DVoxelView.h.
SoSFInt32 SoView2DVoxelView::numRowComponents |
The number of coordinate components to be shown in one row; 0 means automatic row size, which uses root of component numbers in case of matrices; default is 0.
Definition at line 97 of file SoView2DVoxelView.h.
SoSFBool SoView2DVoxelView::outLineVoxels |
If enabled then on voxel the border pixels are drawn; default is FALSE.
Definition at line 79 of file SoView2DVoxelView.h.
SoSFBool SoView2DVoxelView::useCommas |
If enabled then all spaces in multicomponent voxel values are replaced by commas for better readability; default is TRUE.
Definition at line 76 of file SoView2DVoxelView.h.
SoSFBool SoView2DVoxelView::useLut |
If enabled a connected look up table will be used to draw everything in the "looked up" values of the voxel value; if disabled a connected LUT will be ignored.
be ignored; default is TRUE.
Definition at line 84 of file SoView2DVoxelView.h.