MeVisLab Toolbox Reference
|
SoView2D is a 2D viewer for image data. More...
#include <SoView2D.h>
Public Member Functions | |
SoView2D () | |
constructor | |
SbString | getViewerId () const |
returns the viewer id of this viewer | |
View2DSliceList * | getSliceList () |
returns the slicelist that is used to manage the slices | |
SbVec2f | getSliceSize () |
get slice size x/y in millimeters (used by SoOrthoView2D) | |
SoAction * | getAction () |
get pointer to current action. | |
void | GLRender (SoGLRenderAction *action) override |
reimplemented Inventor method which renders the slices | |
void | updateSliceListOnImageChange () |
update the slice list if the image has changed | |
void | updateLayout (int viewportX, int viewportY, int viewportWidth, int viewportHeight, bool is3D=false) |
Update layout for given viewport size. | |
void | handleEvent (SoHandleEventAction *action) override |
handle the mouse and keyboard events and send them to extensions | |
bool | handleKeyboardEvent (int nKey, bool shift, bool alt, bool ctrl) |
handle standard key, returns true if handles | |
void | computeBBox (SoAction *action, SbBox3f &box, SbVec3f ¢er) override |
when rendering in 3D, calculate the bounding box of the drawn slice(s) | |
void | generatePrimitives (SoAction *action) override |
used for 3D picking | |
void | rayPick (SoRayPickAction *action) override |
implements 3D picking | |
bool | getEventLocation (SoHandleEventAction *action, bool &hit, float &dx, float &dy, SbVec3f &voxelHit, int &sliceID) |
get event location of the event contained in action, returns if the image is hit, the device location and the voxel position (extracted from handleEvent). | |
void | setSliceInitFunc (SliceInitFunc fn, void *user) |
Set slice position initialization callback The callback function set by this method is called when the input image changes. | |
SliceInitFunc | getSliceInitFunc (void) |
Get slice position initialization callback. | |
int | getCurrentCenterSlice () |
returns the central of all currently visible slices (e.g. startSlice, if numSlices is 1) | |
void | adjustSliceOriginToCenter (float newSliceZoom) |
sets the new sliceZoom value and adjusts the sliceOrigin to zoom to the center of the ROI | |
void | translateInnerSlice (float x, float y) |
translates the inner slice x/y pixel on the screen | |
void | getStatusString (SbString &string) |
access status string | |
ml::LUTFunction * | getDefaultLut () |
get the default lut object (just a relative ramp from 0 to 1) | |
ml::LUTFunction * | getLutFromScene (SoAction *action) |
get the lut from the scene (default ramp if no lut is set) | |
bool | updateLutData (ml::LUTFunction *lut, View2DLut *data, SoSFMLImage *img, View2DLutPrecision precision) |
renders the lut data from the lut function according to the image data (lut may be NULL, SoView2D will then use a default ramp) returns if the lut could be rendered or if the rendering failed. | |
void | startCineMode () |
start the cine mode | |
void | stopCineMode () |
stop the cine mode | |
SbVec2f | getSingleSliceSize (int windowX, int windowY) |
get the size of a single slice in the window area (this can be used to align annotation font size across several SoView2Ds) | |
int | getMaxStartSlice () |
returns the highest sensible value for startSlice | |
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 () |
inventor runtime type system | |
static View2DFont * | globalFont () |
get the global font used for annotations etc. | |
static View2DFont * | globalFont (int) |
DEPRECATED: cache context id is no longer needed. | |
static View2DFont & | globalFontRef () |
Always return an existing font singleton as from globalFont(); used for annotations etc. | |
static std::string | getDICOMTagValue (SoSFMLImage *image, const std::string &dicomTagName) |
Returns the value of a DICOM tag with the given name as a string, or an empty string if the tag was not found in the given image. | |
static SoInteractionProvider * | getInteractionProvider (SoNode *node) |
static method to register with SoInteractionProvider for 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 | |
SoSFTrigger | renderingDone |
output field is triggered from the inside when all rendering is done. | |
SoSFString | instanceName |
Fields. | |
SoSFString | interactionProviderID |
This field overrides the instanceName as providerID if specified. | |
SoSFMLImage | image |
input ML image | |
SoSFBool | drawImageData |
if set to false, only the extensions of the SoView2D are drawn, not the images | |
SoSFString | viewerId |
id string, needs to be unique in a network if used | |
SoSFEnum | blendMode |
blend mode for rendering | |
SoSFEnum | filterMode |
filter mode for rendering | |
SoSFEnum | cacheMode |
caching of slices | |
SoSFFloat | alphaFactor |
alpha factor for rendering | |
SoSFColor | baseColor |
base color in which the slices are drawn | |
SoSFBool | useShaders |
if enabled, the SoView2D tries to emulate a hardware lut by using hardware shaders, only works on hardware that supports shaders and is ignored otherwise | |
SoSFBool | applyLut |
select if the View2d should apply the scene LUT to the slice data (default is true) | |
SoSFEnum | lutPrecision |
defines the precision of the LUT | |
SoSFInt32 | startSlice |
current start slice | |
SoSFInt32 | sliceStep |
step to next rendered slice | |
SoSFInt32 | numSlices |
number of slices that are rendered | |
SoSFInt32 | numXSlices |
number of slices that are rendered in X | |
SoSFInt32 | maxSlice |
the maximum slice number, read from the image , used to restrict startSlice | |
SoSFBool | keepSlicesInView |
if this is set, the slices are prevented from leaving the visible area. | |
SoSFInt32 | timePoint |
the timepoint the viewers is currently showing | |
SoSFInt32 | maxTimePoint |
the maximum timepoint, read from the image , used to restrict timePoint | |
SoSFInt32 | userIndex |
the user index the viewers is currently showing | |
SoSFInt32 | maxUserIndex |
the maximum user index, read from the image , used to restrict userIndex | |
SoSFInt32 | slab |
the slab that is rendered (1=only one slice) | |
SoSFBool | unzoomOnImageChange |
If enabled, the module unzooms automatically on an input image change. | |
SoSFTrigger | forceImageUpdate |
Forces an immediate update of all fields that depend on the input image. | |
SoSFVec2f | margin |
margin to the border of the viewer | |
SoSFVec2f | spacing |
spacing between slices | |
SoSFPlane | plane |
plane representing the slice in world coordinates | |
SoSFVec2f | lowerLeft |
restrict the rendering to a subpart of the viewer, in normalized coordinated | |
SoSFVec2f | upperRight |
restrict the rendering to a subpart of the viewer, in normalized coordinated | |
SoSFBool | snapToCenter |
if set, the viewer snaps to center of image on each input image change | |
SoSFBool | standardKeys |
enable the keypad and 0-9 keys | |
SoSFBool | standardKeysNumbers |
enable number keys 0-9, depends on standardKeys being enabled | |
SoSFBool | standardKeysNeedValidPosition |
set if the keys work anywhere or only if pressed with mouse inside of a slice (needed for SoOrthoView2D) | |
SoSFBool | passHandledFlagToInventor |
Set this true if following inventor nodes should not react to events that have been handled by a SoView2DExtension Depricated name: updateInventorEvent;. | |
SoSFBool | reverseExtensionDrawingOrder |
Reverse drawing order of extensions. | |
SoSFVec2f | sliceOrigin |
the internal origin of the slice in voxels (for shifting inside of the view) | |
SoSFFloat | sliceZoom |
the internal zoom of the slice (for zooming inside if the view) | |
SoSFFloat | sliceZoomSynchronized |
same as sliceZoom, except that changes to this member update the slice origin so that the viewing center remains in the center of the viewer | |
SoSFVec2f | zoomCenter |
center of zoom/scale operation in normalized coordinates | |
SoSFVec3f | viewingCenter |
world position of the current center of the viewer | |
SoSFBool | enableViewingCenter |
If enabled, the viewing center is activated for reading and writing. | |
SoSFFloat | minSliceZoomKeyboard |
minimum slice zoom for keyboard modifications (always clamped by MIN_MIN_SLICE_ZOOM and 1.0) | |
SoSFTrigger | unzoom |
sets sliceOrigin to (0,0) and sliceZoom to 1.0 | |
SoSFEnum | sliceAlignX |
align the image inside of the slice if there is space left, default is VIEW2D_ALIGN_CENTER | |
SoSFEnum | sliceAlignY |
align the image inside of the slice if there is space left, default is VIEW2D_ALIGN_CENTER | |
SoSFEnum | zoomMode |
zoom mode that defines mapping to the viewer area | |
SoSFFloat | zoomModeParameter |
zoom mode parameter, depends on zoomMode what its value means | |
SoSFBool | invertKeyPanningDirections |
invert panning by keyboard | |
SoSFBool | invertKeySlicingDirection |
invert slicing by keyboard | |
SoSFBool | wrapAroundTimePointScrolling |
wrap-around timepoint scrolling | |
SoSFBool | overrideAspectRatio |
set if the aspect ratio should be overwritten by user aspect ratio | |
SoSFFloat | overrideAspectRatioValue |
user defined aspect ratio, is only used if overrideAspectRatio is set to true | |
SoSFColor | backgroundColor |
fill slice background with given color | |
SoSFFloat | backgroundAlphaFactor |
background alpha factor (0=background invisible) | |
SoSFBool | clipBackgroundToImage |
clip background to image rect | |
SoSFBool | handle2DEvents |
handle events when rendering in 2D | |
SoSFBool | handle3DEvents |
handle events when rendering in 3D | |
SoSFBool | useManagedInteraction |
prefer to use managed interaction instead of classical event handling if a SoView2DExtension provides it | |
SoSFBool | enableZBuffer |
use Z buffer in 3D rendering | |
SoSFBool | enableZWrite |
write Z buffer in 3D rendering | |
SoSFFloat | devicePixelSize |
size of a pixel in mm when rendering in 3D | |
SoSFTrigger | startCine |
Cinemode fields. | |
SoSFTrigger | stopCine |
stop the cine mode | |
SoSFInt32 | cineCenterT |
center of timepoint cine | |
SoSFInt32 | cineIntervalT |
interval of timepoint cine | |
SoSFInt32 | cineCenterZ |
center of z cine | |
SoSFInt32 | cineIntervalZ |
interval of z cine | |
SoSFEnum | cineMode |
mode of the Cinemode (Z,T,ZT) | |
SoSFEnum | cineDirection |
direction of Cinemode | |
SoSFEnum | cineRepeat |
flag to indicated if loop or ping-pong is used | |
SoSFFloat | cineSpeed |
speed of cine mode (in seconds), minimum cine speed is fixed to one repaint per image | |
SoSFBool | cineFullRangeZ |
flag if the full z range or the z interval is used | |
SoSFBool | cineFullRangeT |
flag if the full time range or the time interval is used | |
SoSFBool | cineAlwaysReset |
Always reset to start slice/time point and forward direction on start press (start with current position and direction otherwise) | |
SoSFBool | cineModeActive |
read-only flag indicating whether cine mode is active or not | |
SoSFTrigger | deleteSelected |
Interaction fields for extensions. | |
SoSFTrigger | edit |
set the extensions into edit mode | |
SoSFString | status |
status of current extension | |
SoSFString | seriesInstanceUID |
the DICOM seriesInstanceUID of the image currently displayed | |
SoSFString | frameOfReferenceUID |
the DICOM frameOfReferenceUID of the image currently displayed. | |
SoSFBool | deletingEnabled |
enable/disable delete-events for SoView2D-Extensions | |
Protected Member Functions | |
~SoView2D () override | |
destructor | |
void | updateKeyboardActionEnabledStateCB (SoField *) |
update enabled state of the keyboard actions | |
void | updateKeyboardActionEnabledState () |
void | forceImageUpdateChangedCB (SoField *field=nullptr) |
SbBool | isMouseButtonPressed (int i) |
returns if given mousebutton (0-2) is currently pressed this is handles by the View2D, since Inventor only sends down individual MouseButtonPressed events and doesn't keep this state information | |
bool | isDeviceCoordInViewerArea (float dx, float dy, const SbVec2s &viewportSize) const |
Returns if the event of the given action is located over the viewer area for a given viewportSize The coordinate must be relative to the current viewport origin. | |
void | imageChangedCB (SoField *) |
callback that calls imageChanged(); | |
void | imageChanged () |
React on image changed. | |
void | sliceUnzoomCB (SoField *) |
callback that calls sliceUnzoomAction(); | |
void | sliceUnzoomAction (void) |
Reset slice zoom and translation. | |
void | updateViewingCenterAndPlaneCB (SoField *) |
callback which forwards to updateViewingCenterAndPlane() | |
void | updateViewingCenterAndPlane () |
update viewing center from sliceOrigin and sliceNumber | |
void | enableViewingCenterChangedCB (SoField *) |
enable / disable viewing center usage. | |
void | viewingCenterChangedCB (SoField *) |
callback which forwards to viewingCenterChanged() | |
void | viewingCenterChanged () |
sets slice origins of all viewers according to current viewing center if synchronizePanning is on | |
void | updateSliceRepresentingPlane (const SbVec3f &worldCenter) |
void | sliceZoomChangedCB (SoField *) |
callback which forwards to sliceToomChanged | |
void | sliceZoomChanged () |
updates the member sliceZoomSynchronized | |
void | sliceZoomSynchronizedChangedCB (SoField *) |
callback which forwards to sliceZoomSynchronizedChanged | |
void | sliceZoomSynchronizedChanged () |
updates the sliceZoom and corrects the slice origin, so that the viewing center of the slice remains in thew center of the view | |
void | keepSlicesInViewCB (SoField *) |
if keepSlicesInView is activated, set startSlice to a permitted value | |
int | setStartSlice (int slice, bool keepInView=false, bool noCB=false) |
set start slice, but obey possible restrictions (returns effective value) if keepInView is set, the slice will be restricted to the visible range if noCB is set, the field sensor is temporarily disabled when changing the value | |
void | minSliceZoomKeyboardCB (SoField *) |
callback for minimum slice zoom modification that performs clamping to value range | |
void | startCineModeCB (SoField *) |
callback that calls startCineMode(); | |
void | stopCineModeCB (SoField *) |
callback that calls stopCineMode(); | |
void | cineParametersChangedCB (SoField *) |
callback that calls updateCineParameters() | |
void | updateCineParameters () |
updates the cine parameters to the current field values | |
void | deleteSelectedObjectCB (SoField *) |
callback that calls deleteSelectedObjectAction(); | |
void | deleteSelectedObjectAction () |
delete the selected object | |
void | editObjectsCB (SoField *) |
callback that calls deleteSelectedObjectAction(); | |
void | editObjectsAction () |
switch extensions to edit mode | |
void | handleScheduledActions (const SoNodeList *primitives) |
handle the actions given by deleteSelectedObject and editObjects | |
void | getLutFromScene (SoAction *action, View2DLut *data) |
render the lut into the given lut data object | |
void | layoutSlices (int wx, int wy) |
layout slices inside of the window area | |
void | updateLayoutAndDraw (int originX, int originY, int width, int height, bool updateLayoutOnly, SoNodeList *primitives=nullptr, int sharedCacheContext=-1, bool is3D=false, bool reverse=false) |
update layout and draw in 2D or 3D | |
bool | checkValid () |
checks if image, start slice, timepoint, and user index are valid | |
void | updateHighColorDepthFlag () |
Checks if the current GL context has a bigger bit depth than 8 per channel and if so upgrades the flag to true. | |
void | objRef () override |
Overriding SoInteractionProvider methods: | |
void | objUnref () override |
std::string | getID () const override |
Returns the id string for identifying the provider (and its actions) | |
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 | |
SoAction * | _action |
pointer to current action | |
View2DSliceList * | _sliceList |
the internal slice list which stores and handles rendered slices | |
View2DLut * | _lutData |
the currently allocated lut data | |
View2DCine * | _cine |
SbBool | _mouseButton [3] |
state of the mouse buttons (kept up-to-date with the handleEvent method) | |
SoFieldSensor * | _viewingCenterSensor |
sensor for start slice | |
SoFieldSensor * | _startSliceSensor |
sensor for start slice | |
SoFieldSensor * | _sliceZoomSynchronizedSensor |
SoFieldSensor * | _sliceOriginSensor |
sensor for slice origin | |
bool | _editObjectsScheduled |
flag if edit mode on extensions should be activated | |
bool | _deleteSelectedObjectScheduled |
flag if delete of object on extension should be activated | |
bool | _dragging |
remember if we are during a drag operation | |
bool | _mouseOverViewer |
remember if the mouse cursor is over the viewer area | |
SliceInitFunc | _sliceInitFunc |
external slice initialization callback | |
void * | _sliceInitUser |
user data for _sliceInitFunc | |
unsigned int | _imageSerialNumber |
last serial number of image | |
bool | _useHighColorDepth |
bool | _allowHighColorDepthUpgrade |
MLDataType | _currentLUTImageDataType |
current LUT settings | |
double | _currentLUTImageMin |
double | _currentLUTImageMax |
int | _currentLUTImageNumChannels |
Static Protected Attributes | |
static ml::LUTFunction * | _localLut |
an internal lut which is used if there is no lut in the scene | |
SoInteractionHandler * | _interactionHandler |
Delegate that handles events for the new interaction scheme. | |
SoInteractionProvider * | _interactionProvider |
Delegate that provides the interaction objects from the SoView2DExtensions. | |
class | View2DInteractionHandler |
support for new interaction scheme | |
class | View2DInteractionProvider |
Additional Inherited Members | |
Public Types inherited from SoInteractionProvider | |
typedef SoInteractionProvider *(* | GetProviderFunc) (SoNode *) |
SoView2D is a 2D viewer for image data.
It is integrated into OpenInventor and provides event handling and drawing on slices by the use of the SoView2DExtension classes. For a detailed description of its usage, see the html documentation in MeVisLab.
Definition at line 61 of file SoView2D.h.
SoView2D::SoView2D | ( | ) |
constructor
|
overrideprotected |
destructor
sets the new sliceZoom value and adjusts the sliceOrigin to zoom to the center of the ROI
|
protected |
checks if image, start slice, timepoint, and user index are valid
callback that calls updateCineParameters()
when rendering in 3D, calculate the bounding box of the drawn slice(s)
|
protected |
delete the selected object
callback that calls deleteSelectedObjectAction();
|
protected |
switch extensions to edit mode
callback that calls deleteSelectedObjectAction();
enable / disable viewing center usage.
Can only be enabled if alignX and alignY are set to CENTER
|
inline |
get pointer to current action.
If there is no current action the function returns NULL. May be used to access the Open Inventor state.
Definition at line 311 of file SoView2D.h.
int SoView2D::getCurrentCenterSlice | ( | ) |
returns the central of all currently visible slices (e.g. startSlice, if numSlices is 1)
|
inline |
get the default lut object (just a relative ramp from 0 to 1)
Definition at line 384 of file SoView2D.h.
|
static |
Returns the value of a DICOM tag with the given name as a string, or an empty string if the tag was not found in the given image.
bool SoView2D::getEventLocation | ( | SoHandleEventAction * | action, |
bool & | hit, | ||
float & | dx, | ||
float & | dy, | ||
SbVec3f & | voxelHit, | ||
int & | sliceID ) |
get event location of the event contained in action, returns if the image is hit, the device location and the voxel position (extracted from handleEvent).
If sliceID is set to NO_SLICE_ID, it will be set to the index of the slice that was hit by this test. If sliceID is any other value, it is taken to be the index of a slice and the test is only performed on this slice. This is used to grab the mouse for this slice at a mouse press.
|
overrideprotectedvirtual |
Returns the id string for identifying the provider (and its actions)
Reimplemented from SoInteractionOwner.
|
static |
static method to register with SoInteractionProvider for this class
ml::LUTFunction * SoView2D::getLutFromScene | ( | SoAction * | action | ) |
get the lut from the scene (default ramp if no lut is set)
render the lut into the given lut data object
int SoView2D::getMaxStartSlice | ( | ) |
returns the highest sensible value for startSlice
get the size of a single slice in the window area (this can be used to align annotation font size across several SoView2Ds)
|
inline |
Get slice position initialization callback.
Definition at line 368 of file SoView2D.h.
View2DSliceList * SoView2D::getSliceList | ( | ) |
returns the slicelist that is used to manage the slices
SbVec2f SoView2D::getSliceSize | ( | ) |
get slice size x/y in millimeters (used by SoOrthoView2D)
|
inline |
returns the viewer id of this viewer
Definition at line 302 of file SoView2D.h.
|
static |
get the global font used for annotations etc.
(only call this within a valid GL context!) (This just forwards the call to View2DFont::globalFont())
|
inlinestatic |
DEPRECATED: cache context id is no longer needed.
Definition at line 351 of file SoView2D.h.
References globalFont().
Referenced by globalFont().
|
static |
Always return an existing font singleton as from globalFont(); used for annotations etc.
To be called only from within a valid GL context!
|
override |
reimplemented Inventor method which renders the slices
|
override |
handle the mouse and keyboard events and send them to extensions
handle standard key, returns true if handles
|
protected |
handle the actions given by deleteSelectedObject and editObjects
|
protected |
React on image changed.
callback that calls imageChanged();
|
protected |
Returns if the event of the given action is located over the viewer area for a given viewportSize The coordinate must be relative to the current viewport origin.
returns if given mousebutton (0-2) is currently pressed this is handles by the View2D, since Inventor only sends down individual MouseButtonPressed events and doesn't keep this state information
if keepSlicesInView is activated, set startSlice to a permitted value
callback for minimum slice zoom modification that performs clamping to value range
|
inlineoverrideprotectedvirtual |
Overriding SoInteractionProvider methods:
Memory management by reference counting for SoInteractionProvider
Implements SoInteractionOwner.
Definition at line 422 of file SoView2D.h.
|
inlineoverrideprotectedvirtual |
Implements SoInteractionOwner.
Definition at line 423 of file SoView2D.h.
|
override |
implements 3D picking
|
inline |
Set slice position initialization callback The callback function set by this method is called when the input image changes.
If the callback return value is >= 0, it determines the initial slice position, otherwise it is ignored. At the time the callback is executed, most of the View2D's properties are not initialized, so the View2D* pointer passed to the callback should be used for object identification only.
Definition at line 364 of file SoView2D.h.
References mlrange_cast().
set start slice, but obey possible restrictions (returns effective value) if keepInView is set, the slice will be restricted to the visible range if noCB is set, the field sensor is temporarily disabled when changing the value
callback that calls sliceUnzoomAction();
|
protected |
updates the member sliceZoomSynchronized
callback which forwards to sliceToomChanged
|
protected |
updates the sliceZoom and corrects the slice origin, so that the viewing center of the slice remains in thew center of the view
callback which forwards to sliceZoomSynchronizedChanged
void SoView2D::startCineMode | ( | ) |
start the cine mode
callback that calls startCineMode();
void SoView2D::stopCineMode | ( | ) |
stop the cine mode
callback that calls stopCineMode();
translates the inner slice x/y pixel on the screen
|
protected |
updates the cine parameters to the current field values
|
protected |
Checks if the current GL context has a bigger bit depth than 8 per channel and if so upgrades the flag to true.
REQUIRES VALID GL CONTEXT
|
protected |
update enabled state of the keyboard actions
void SoView2D::updateLayout | ( | int | viewportX, |
int | viewportY, | ||
int | viewportWidth, | ||
int | viewportHeight, | ||
bool | is3D = false ) |
Update layout for given viewport size.
|
protected |
update layout and draw in 2D or 3D
bool SoView2D::updateLutData | ( | ml::LUTFunction * | lut, |
View2DLut * | data, | ||
SoSFMLImage * | img, | ||
View2DLutPrecision | precision ) |
renders the lut data from the lut function according to the image data (lut may be NULL, SoView2D will then use a default ramp) returns if the lut could be rendered or if the rendering failed.
When the rendering fails, you can always call with lut==NULL and will get a correct default ramp)
void SoView2D::updateSliceListOnImageChange | ( | ) |
update the slice list if the image has changed
|
protected |
update viewing center from sliceOrigin and sliceNumber
callback which forwards to updateViewingCenterAndPlane()
|
protected |
sets slice origins of all viewers according to current viewing center if synchronizePanning is on
callback which forwards to viewingCenterChanged()
|
friend |
support for new interaction scheme
Definition at line 579 of file SoView2D.h.
|
friend |
Definition at line 580 of file SoView2D.h.
|
protected |
pointer to current action
Definition at line 528 of file SoView2D.h.
|
protected |
Definition at line 594 of file SoView2D.h.
|
protected |
Definition at line 544 of file SoView2D.h.
|
protected |
current LUT settings
Definition at line 538 of file SoView2D.h.
|
protected |
Definition at line 540 of file SoView2D.h.
|
protected |
Definition at line 539 of file SoView2D.h.
|
protected |
Definition at line 541 of file SoView2D.h.
|
protected |
flag if delete of object on extension should be activated
Definition at line 563 of file SoView2D.h.
|
protected |
remember if we are during a drag operation
Definition at line 566 of file SoView2D.h.
|
protected |
flag if edit mode on extensions should be activated
Definition at line 561 of file SoView2D.h.
last serial number of image
Definition at line 576 of file SoView2D.h.
|
protected |
Delegate that handles events for the new interaction scheme.
Definition at line 583 of file SoView2D.h.
|
protected |
Delegate that provides the interaction objects from the SoView2DExtensions.
Definition at line 585 of file SoView2D.h.
|
staticprotected |
an internal lut which is used if there is no lut in the scene
Definition at line 533 of file SoView2D.h.
|
protected |
the currently allocated lut data
Definition at line 535 of file SoView2D.h.
|
protected |
state of the mouse buttons (kept up-to-date with the handleEvent method)
Definition at line 547 of file SoView2D.h.
|
protected |
remember if the mouse cursor is over the viewer area
Definition at line 568 of file SoView2D.h.
|
protected |
external slice initialization callback
Definition at line 571 of file SoView2D.h.
|
protected |
user data for _sliceInitFunc
Definition at line 573 of file SoView2D.h.
|
protected |
the internal slice list which stores and handles rendered slices
Definition at line 531 of file SoView2D.h.
|
protected |
sensor for slice origin
Definition at line 558 of file SoView2D.h.
|
protected |
Definition at line 555 of file SoView2D.h.
|
protected |
sensor for start slice
Definition at line 553 of file SoView2D.h.
|
protected |
Definition at line 593 of file SoView2D.h.
|
protected |
sensor for start slice
Definition at line 550 of file SoView2D.h.
SoSFFloat SoView2D::alphaFactor |
alpha factor for rendering
Definition at line 91 of file SoView2D.h.
SoSFBool SoView2D::applyLut |
select if the View2d should apply the scene LUT to the slice data (default is true)
Definition at line 98 of file SoView2D.h.
SoSFFloat SoView2D::backgroundAlphaFactor |
background alpha factor (0=background invisible)
Definition at line 209 of file SoView2D.h.
SoSFColor SoView2D::backgroundColor |
fill slice background with given color
Definition at line 207 of file SoView2D.h.
SoSFColor SoView2D::baseColor |
base color in which the slices are drawn
Definition at line 93 of file SoView2D.h.
SoSFEnum SoView2D::blendMode |
blend mode for rendering
Definition at line 85 of file SoView2D.h.
SoSFEnum SoView2D::cacheMode |
caching of slices
Definition at line 89 of file SoView2D.h.
SoSFBool SoView2D::cineAlwaysReset |
Always reset to start slice/time point and forward direction on start press (start with current position and direction otherwise)
Definition at line 264 of file SoView2D.h.
SoSFInt32 SoView2D::cineCenterT |
center of timepoint cine
Definition at line 241 of file SoView2D.h.
SoSFInt32 SoView2D::cineCenterZ |
center of z cine
Definition at line 245 of file SoView2D.h.
SoSFEnum SoView2D::cineDirection |
direction of Cinemode
Definition at line 251 of file SoView2D.h.
SoSFBool SoView2D::cineFullRangeT |
flag if the full time range or the time interval is used
Definition at line 260 of file SoView2D.h.
SoSFBool SoView2D::cineFullRangeZ |
flag if the full z range or the z interval is used
Definition at line 258 of file SoView2D.h.
SoSFInt32 SoView2D::cineIntervalT |
interval of timepoint cine
Definition at line 243 of file SoView2D.h.
SoSFInt32 SoView2D::cineIntervalZ |
interval of z cine
Definition at line 247 of file SoView2D.h.
SoSFEnum SoView2D::cineMode |
mode of the Cinemode (Z,T,ZT)
Definition at line 249 of file SoView2D.h.
SoSFBool SoView2D::cineModeActive |
read-only flag indicating whether cine mode is active or not
Definition at line 267 of file SoView2D.h.
SoSFEnum SoView2D::cineRepeat |
flag to indicated if loop or ping-pong is used
Definition at line 253 of file SoView2D.h.
SoSFFloat SoView2D::cineSpeed |
speed of cine mode (in seconds), minimum cine speed is fixed to one repaint per image
Definition at line 255 of file SoView2D.h.
SoSFBool SoView2D::clipBackgroundToImage |
clip background to image rect
Definition at line 212 of file SoView2D.h.
SoSFTrigger SoView2D::deleteSelected |
Interaction fields for extensions.
delete current object in active SoView2DExtension
Definition at line 275 of file SoView2D.h.
SoSFBool SoView2D::deletingEnabled |
enable/disable delete-events for SoView2D-Extensions
Definition at line 288 of file SoView2D.h.
SoSFFloat SoView2D::devicePixelSize |
size of a pixel in mm when rendering in 3D
Definition at line 230 of file SoView2D.h.
SoSFBool SoView2D::drawImageData |
if set to false, only the extensions of the SoView2D are drawn, not the images
Definition at line 79 of file SoView2D.h.
SoSFTrigger SoView2D::edit |
set the extensions into edit mode
Definition at line 277 of file SoView2D.h.
SoSFBool SoView2D::enableViewingCenter |
If enabled, the viewing center is activated for reading and writing.
Definition at line 175 of file SoView2D.h.
SoSFBool SoView2D::enableZBuffer |
use Z buffer in 3D rendering
Definition at line 224 of file SoView2D.h.
SoSFBool SoView2D::enableZWrite |
write Z buffer in 3D rendering
Definition at line 227 of file SoView2D.h.
SoSFEnum SoView2D::filterMode |
filter mode for rendering
Definition at line 87 of file SoView2D.h.
SoSFTrigger SoView2D::forceImageUpdate |
Forces an immediate update of all fields that depend on the input image.
Definition at line 129 of file SoView2D.h.
SoSFString SoView2D::frameOfReferenceUID |
the DICOM frameOfReferenceUID of the image currently displayed.
Definition at line 285 of file SoView2D.h.
SoSFBool SoView2D::handle2DEvents |
handle events when rendering in 2D
Definition at line 215 of file SoView2D.h.
SoSFBool SoView2D::handle3DEvents |
handle events when rendering in 3D
Definition at line 218 of file SoView2D.h.
SoSFMLImage SoView2D::image |
input ML image
Definition at line 76 of file SoView2D.h.
SoSFString SoView2D::instanceName |
Fields.
Defines interface field to store the instance name.
Definition at line 70 of file SoView2D.h.
SoSFString SoView2D::interactionProviderID |
This field overrides the instanceName as providerID if specified.
Definition at line 73 of file SoView2D.h.
SoSFBool SoView2D::invertKeyPanningDirections |
invert panning by keyboard
Definition at line 195 of file SoView2D.h.
SoSFBool SoView2D::invertKeySlicingDirection |
invert slicing by keyboard
Definition at line 197 of file SoView2D.h.
SoSFBool SoView2D::keepSlicesInView |
if this is set, the slices are prevented from leaving the visible area.
This option can interfere with option enableViewingCenter
Definition at line 114 of file SoView2D.h.
SoSFVec2f SoView2D::lowerLeft |
restrict the rendering to a subpart of the viewer, in normalized coordinated
Definition at line 140 of file SoView2D.h.
SoSFEnum SoView2D::lutPrecision |
defines the precision of the LUT
Definition at line 100 of file SoView2D.h.
SoSFVec2f SoView2D::margin |
margin to the border of the viewer
Definition at line 132 of file SoView2D.h.
SoSFInt32 SoView2D::maxSlice |
the maximum slice number, read from the image
, used to restrict startSlice
Definition at line 111 of file SoView2D.h.
SoSFInt32 SoView2D::maxTimePoint |
the maximum timepoint, read from the image
, used to restrict timePoint
Definition at line 118 of file SoView2D.h.
SoSFInt32 SoView2D::maxUserIndex |
the maximum user index, read from the image
, used to restrict userIndex
Definition at line 122 of file SoView2D.h.
SoSFFloat SoView2D::minSliceZoomKeyboard |
minimum slice zoom for keyboard modifications (always clamped by MIN_MIN_SLICE_ZOOM and 1.0)
Definition at line 178 of file SoView2D.h.
SoSFInt32 SoView2D::numSlices |
number of slices that are rendered
Definition at line 107 of file SoView2D.h.
SoSFInt32 SoView2D::numXSlices |
number of slices that are rendered in X
Definition at line 109 of file SoView2D.h.
SoSFBool SoView2D::overrideAspectRatio |
set if the aspect ratio should be overwritten by user aspect ratio
Definition at line 202 of file SoView2D.h.
SoSFFloat SoView2D::overrideAspectRatioValue |
user defined aspect ratio, is only used if overrideAspectRatio
is set to true
Definition at line 204 of file SoView2D.h.
SoSFBool SoView2D::passHandledFlagToInventor |
Set this true if following inventor nodes should not react to events that have been handled by a SoView2DExtension Depricated name: updateInventorEvent;.
Definition at line 157 of file SoView2D.h.
SoSFPlane SoView2D::plane |
plane representing the slice in world coordinates
Definition at line 137 of file SoView2D.h.
SoSFTrigger SoView2D::renderingDone |
output field is triggered from the inside when all rendering is done.
Definition at line 293 of file SoView2D.h.
SoSFBool SoView2D::reverseExtensionDrawingOrder |
Reverse drawing order of extensions.
Definition at line 160 of file SoView2D.h.
SoSFString SoView2D::seriesInstanceUID |
the DICOM seriesInstanceUID of the image currently displayed
Definition at line 283 of file SoView2D.h.
SoSFInt32 SoView2D::slab |
the slab that is rendered (1=only one slice)
Definition at line 124 of file SoView2D.h.
SoSFEnum SoView2D::sliceAlignX |
align the image inside of the slice if there is space left, default is VIEW2D_ALIGN_CENTER
Definition at line 184 of file SoView2D.h.
SoSFEnum SoView2D::sliceAlignY |
align the image inside of the slice if there is space left, default is VIEW2D_ALIGN_CENTER
Definition at line 186 of file SoView2D.h.
SoSFVec2f SoView2D::sliceOrigin |
the internal origin of the slice in voxels (for shifting inside of the view)
Definition at line 163 of file SoView2D.h.
SoSFInt32 SoView2D::sliceStep |
step to next rendered slice
Definition at line 105 of file SoView2D.h.
SoSFFloat SoView2D::sliceZoom |
the internal zoom of the slice (for zooming inside if the view)
Definition at line 165 of file SoView2D.h.
SoSFFloat SoView2D::sliceZoomSynchronized |
same as sliceZoom, except that changes to this member update the slice origin so that the viewing center remains in the center of the viewer
Definition at line 167 of file SoView2D.h.
SoSFBool SoView2D::snapToCenter |
if set, the viewer snaps to center of image on each input image change
Definition at line 145 of file SoView2D.h.
SoSFVec2f SoView2D::spacing |
spacing between slices
Definition at line 134 of file SoView2D.h.
SoSFBool SoView2D::standardKeys |
enable the keypad and 0-9 keys
Definition at line 148 of file SoView2D.h.
SoSFBool SoView2D::standardKeysNeedValidPosition |
set if the keys work anywhere or only if pressed with mouse inside of a slice (needed for SoOrthoView2D)
Definition at line 152 of file SoView2D.h.
SoSFBool SoView2D::standardKeysNumbers |
enable number keys 0-9, depends on standardKeys being enabled
Definition at line 150 of file SoView2D.h.
SoSFTrigger SoView2D::startCine |
SoSFInt32 SoView2D::startSlice |
current start slice
Definition at line 103 of file SoView2D.h.
SoSFString SoView2D::status |
status of current extension
Definition at line 280 of file SoView2D.h.
SoSFTrigger SoView2D::stopCine |
stop the cine mode
Definition at line 239 of file SoView2D.h.
SoSFInt32 SoView2D::timePoint |
the timepoint the viewers is currently showing
Definition at line 116 of file SoView2D.h.
SoSFTrigger SoView2D::unzoom |
sets sliceOrigin to (0,0) and sliceZoom to 1.0
Definition at line 181 of file SoView2D.h.
SoSFBool SoView2D::unzoomOnImageChange |
If enabled, the module unzooms automatically on an input image change.
Definition at line 126 of file SoView2D.h.
SoSFVec2f SoView2D::upperRight |
restrict the rendering to a subpart of the viewer, in normalized coordinated
Definition at line 142 of file SoView2D.h.
SoSFBool SoView2D::useManagedInteraction |
prefer to use managed interaction instead of classical event handling if a SoView2DExtension provides it
Definition at line 221 of file SoView2D.h.
SoSFInt32 SoView2D::userIndex |
the user index the viewers is currently showing
Definition at line 120 of file SoView2D.h.
SoSFBool SoView2D::useShaders |
if enabled, the SoView2D tries to emulate a hardware lut by using hardware shaders, only works on hardware that supports shaders and is ignored otherwise
Definition at line 96 of file SoView2D.h.
SoSFString SoView2D::viewerId |
id string, needs to be unique in a network if used
Definition at line 82 of file SoView2D.h.
Referenced by CSODrawView2DInfos::getViewerId().
SoSFVec3f SoView2D::viewingCenter |
world position of the current center of the viewer
Definition at line 172 of file SoView2D.h.
SoSFBool SoView2D::wrapAroundTimePointScrolling |
wrap-around timepoint scrolling
Definition at line 199 of file SoView2D.h.
SoSFVec2f SoView2D::zoomCenter |
center of zoom/scale operation in normalized coordinates
Definition at line 169 of file SoView2D.h.
SoSFEnum SoView2D::zoomMode |
zoom mode that defines mapping to the viewer area
Definition at line 190 of file SoView2D.h.
SoSFFloat SoView2D::zoomModeParameter |
zoom mode parameter, depends on zoomMode
what its value means
Definition at line 192 of file SoView2D.h.