ImFusion SDK 4.3
CurvedView Class Reference

#include <ImFusion/GUI/CurvedView.h>

Interactive 2D view of one or multiple images. More...

+ Inheritance diagram for CurvedView:

Detailed Description

Interactive 2D view of one or multiple images.

Public Slots

void setAutoWindowing ()
 Sets the window and level properties depending on the image histogram.
 
void reset () override
 Reset the view.
 
- Public Slots inherited from InteractiveView
void setVisible (bool value)
 Make view hidden/visible.
 
void render () override
 
virtual void reset ()
 

Signals

void showHistogramRequested (bool show)
 Connected slot should show a histogram for the data in this view.
 
- Signals inherited from InteractiveView
void visibilityChanged (bool visible)
 
void rectChanged (QRect rect)
 
void updateRequested ()
 
void visibilityChangeRequested (bool visible)
 
void visibleDataChanged (const DataList &before, const DataList &now)
 Emitted in setVisibleData after the visible data has been changed from before to now.
 

Public Member Functions

 CurvedView (CurvedViewPrimitive &primitive)
 Default constructor.
 
 ~CurvedView () override
 Destructor.
 
const GlCurvedViewview () const
 Read-only access to OpenGL view.
 
GlCurvedViewview ()
 Read-write access to OpenGL view.
 
void setImageData (SharedImageSet *is, SharedImageSet *label=nullptr)
 Set image data. Convenience function which calls corresponding function in slice.
 
- Public Member Functions inherited from InteractiveView
 InteractiveView (std::unique_ptr< GlView > glView)
 Construct view with underlying GlView.
 
void setInteractions (std::vector< std::unique_ptr< ViewInteraction > > interactions)
 Replace all existing ViewInteractions with the ones in interactions.
 
void addInteraction (std::unique_ptr< ViewInteraction > interaction, int where=-1)
 Add an interaction at the given position (default is at the end).
 
void removeInteraction (ViewInteraction *interaction)
 Delete the given interaction, if it exists. Note: This will make the pointer invalid.
 
std::vector< ViewInteraction * > interactions () const
 Returns all view interactions of this view.
 
template<typename T>
T * findInteraction () const
 Returns the first ViewInteraction that dynamic_casts to T or nullptr if no such ViewInteraction exists.
 
void setBorderColor (const QColor &color)
 Set border color.
 
void setDrawBorder (bool drawBorder)
 Set whether to draw a border around the view.
 
bool isBorderDrawn () const
 Get whether to draw a border around the view.
 
void setBorderPixelSize (int pixelSize)
 Set the size of the border around the view.
 
int borderPixelSize () const
 Get the size of the border around the view.
 
void setBackgroundColor (const QColor &color)
 Set border color.
 
void setViewGroup (ViewGroup *group)
 Set associated view group. The view is not automatically added to the view group.
 
ViewGroupviewGroup () const
 Get associated view group.
 
QRectF boundingRect () const
 Bounding rect in item coordinates.
 
virtual void setRect (const QRect &rect)
 Set position and size of view in scene coordinates.
 
QRect rect () const
 Get position and size of view in scene coordinates.
 
void setViewport (const GL::Viewport &rect) override
 Sets the area where this view is drawn in render() wrt. the attached framebuffer.
 
virtual bool sceneEvent (QEvent *qtEvent, const GUI::InputEvent &inputEvent)
 Called by the DisplayWidget if a user input event has happened on this view.
 
void addObject (GUI::ViewObject *object) override
 Add the given InteractiveObject to this view.
 
void removeObject (GUI::ViewObject *object) override
 Remove the given InteractiveObject from this view.
 
virtual bool hasObject (const InteractiveObject *object) const
 
virtual void addOverlay (std::unique_ptr< InteractiveOverlay > overlay, int position=-1)
 Add overlay to this view.
 
std::unique_ptr< GUI::ViewOverlayremoveOverlay (GUI::ViewOverlay *overlay) override
 Remove overlay. The user is responsible for deleting the overlay afterwards.
 
void setWaterMark (SharedImage *image)
 Set a water mark to the view.
 
void setAnchorLayoutDirection (InteractiveOverlay::AnchorPoint anchor, LayoutDirection direction)
 Sets in which direction multiple overlays at one anchor are layed out.
 
void requestUpdate ()
 Allows some outside interaction to request an update of the view.
 
bool showOverlays () const
 Get flag whether to show overlays.
 
void setAndRunAnimation (std::unique_ptr< Animations::Animation >)
 Launch an animation while ensuring that only one animation is running at a time for this instance.
 
- Public Member Functions inherited from View
 View (std::unique_ptr< GlView > glView)
 Instantiate a new View using the given GlView as renderer; glView must not be null.
 
virtual void render ()
 Will render the view into the viewport() of the current framebuffer by drawing the optional background color, the optional border, the underlying GlView, and finally all overlays().
 
const GlViewglView () const
 Returns the underlying GlView.
 
GlViewglView ()
 Returns the underlying GlView.
 
const GL::Viewportviewport () const
 Returns the area where this view is drawn in render() wrt. the attached framebuffer.
 
bool isVisible () const
 Returns whether this view has a non-zero viewport and can therefore be considered visible.
 
std::optional< vec3 > backgroundColor () const
 Returns the optional background color used to clear the viewport before rendering anything.
 
void setBackgroundColor (std::optional< vec3 > value)
 Sets the optional background color used to clear the viewport before rendering anything.
 
const BorderConfigborderConfig () const
 Returns the BorderConfig struct defining if and how to render a border frame surrounding the view.
 
virtual void setBorderConfig (const BorderConfig &value)
 Sets the BorderConfig struct defining if and how to render a border frame surrounding the view.
 
bool showsOverlays () const
 Returns the flag whether to show overlays or not.
 
void setShowOverlays (bool value)
 Sets the flag whether to show overlays or not.
 
void setWatermark (const SharedImage &image)
 Sets a watermark image to be rendered on top of the view.
 
virtual EventResult handleInputEvent (const InputEvent &event)
 Called by the parent Display if a user input event has happened on this view.
 
void setDataDisplayDispatcher (std::shared_ptr< DataDisplayDispatcher > ddd)
 Sets a common DataDisplayDispatcher so that it can be shared across views.
 
const DataDisplayDispatcher * dataDisplayDispatcher () const
 Returns the DataDisplayDispatcher used by this view.
 
virtual bool acceptsData (const Data *data) const
 Returns whether this view is capable of displaying the given data.
 
void setVisibleData (const DataList &data)
 Set the data that should be shown in this view.
 
const DataListvisibleData () const
 Returns a list of the currently displayed data.
 
bool showData (Data *data)
 Appends the given Data instance to the list of visible data.
 
void hideData (const Data *data)
 Removes the given Data instance to the list of visible data.
 
void setEventHandlers (std::vector< std::unique_ptr< EventHandler > > eventHandlers)
 Replace all existing EventHandlers with the ones in eventHandlers.
 
void addEventHandler (std::unique_ptr< EventHandler > eventHandler, int where=-1)
 Add an EventHandler at the given position (default is at the end).
 
std::unique_ptr< EventHandlerremoveEventHandler (EventHandler *interaction)
 Delete the given interaction, if it exists. Note: This will make the pointer invalid.
 
std::vector< EventHandler * > eventHandlers () const
 Returns all view interactions of this view.
 
template<typename T>
T * findEventHandler () const
 Returns the first EventHandler that dynamic_casts to T, or nullptr if no such EventHandler exists.
 
void addOverlay (std::unique_ptr< ViewOverlay > overlay, ViewOverlay::Anchor anchor, int position=-1)
 Inserts overlay into the list of overlays of this view at position of the given anchor.
 
std::vector< ViewOverlay * > overlays () const
 Returns all InteractiveOverlays of this view.
 
void setOverlayAnchor (ViewOverlay *overlay, ViewOverlay::Anchor anchor)
 Set the anchor point to use for the given overlay.
 
void setOverlayLayoutDirection (ViewOverlay::Anchor anchor, ViewOverlay::LayoutDirection direction)
 Sets in which direction multiple overlays at one anchor are laid out.
 
std::vector< ViewObject * > objects () const
 Returns all ViewObjects of this view.
 
const GlViewview () const
 
GlViewview ()
 Return associated GlView object.
 
- Public Member Functions inherited from Configurable
virtual void configureDefaults ()
 Retrieve the properties of this object, replaces values with their defaults and sets it again.
 
void registerParameter (ParameterBase *param)
 Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration().
 
void unregisterParameter (const ParameterBase *param)
 Remove the given Parameter or SubProperty from the list of registered parameters.
 
 Configurable (const Configurable &rhs)
 
 Configurable (Configurable &&rhs) noexcept
 
Configurableoperator= (const Configurable &)
 
Configurableoperator= (Configurable &&) noexcept
 
- Public Member Functions inherited from SignalReceiver
 SignalReceiver ()=default
 Default constructor.
 
 SignalReceiver (const SignalReceiver &other)
 Copy constructor, does not copy any existing signal connections from other.
 
SignalReceiveroperator= (SignalReceiver rhs)
 Assignment operator, disconnects all existing connections, does not copy any existing signal connections from rhs.
 
virtual ~SignalReceiver ()
 Virtual destructor disconnects from all connected signals.
 

Protected Member Functions

bool handleObjectEvent (QEvent *qtEvent, const GUI::InputEvent &inputEvent) override
 Override event handling code for objects.
 
- Protected Member Functions inherited from InteractiveView
GUI::EventResult dispatchToViewOverlays (const GUI::InputEvent &event) override
 Dispatch event to all known ViewOverlays considering m_mouseEventFocusObject and m_touchEventFocusObject.
 
GUI::EventResult dispatchToViewObjects (const GUI::InputEvent &event) override
 Dispatch event to all known ViewObjects considering m_mouseEventFocusObject and m_touchEventFocusObject.
 
GUI::EventResult dispatchToViewEventHandlers (const GUI::InputEvent &event) override
 Dispatch event to all known View::EventHandlers considering m_mouseEventFocusObject and m_touchEventFocusObject.
 
virtual bool handleOverlayEvent (QEvent *qtEvent, const GUI::InputEvent &inputEvent)
 The default implementation will call InteractiveOverlay::sceneEvent() and set m_mouseEventTarget/m_touchEventTarget if needed.
 
virtual bool handleInteractionEvent (QEvent *qtEvent, const GUI::InputEvent &inputEvent)
 Auxiliary method for forwarding the scene event to the view interaction.
 
- Protected Member Functions inherited from View
void updateEventFocus (const InputEvent &event, const void *newTarget)
 Update the internal bookkeeping of "focus" event handlers:
 
bool filterEventFocus (const InputEvent &event, const void *target) const
 Checks if the object target should receive the given event based on the event type and current "focus" object.
 
virtual void showDataImpl (Data *data)
 Override this function to implement custom logic whenever a dataset is added to the list of visible data.
 
virtual void hideDataImpl (const Data *data)
 Override this function to implement custom logic whenever a dataset is removed from the list of visible data.
 
- Protected Member Functions inherited from SignalReceiver
void disconnectAll ()
 Disconnects all existing connections.
 

Protected Attributes

GlCurvedViewm_curvedView
 Internal OpenGL view instance.
 
std::unique_ptr< CurvedViewSettingsControllerm_curvedViewSettingsController
 
double m_lowerLimit
 
double m_upperLimit
 
DisplayOptions2d m_displayOptionsView
 
- Protected Attributes inherited from InteractiveView
std::vector< std::unique_ptr< ViewInteraction > > m_interactions
 ViewInteractions used for this view.
 
ViewGroupm_group = nullptr
 Optional ViewGroup this view is part of.
 
- Protected Attributes inherited from View
std::unique_ptr< GlViewm_glView
 
std::unique_ptr< ViewOverlayLayouter > m_overlayLayouter
 
std::vector< std::unique_ptr< EventHandler > > m_eventHandlers
 
std::vector< std::unique_ptr< ViewOverlay > > m_overlays
 
std::vector< ViewObject * > m_objects
 
DataList m_visibleData
 
GL::Viewport m_viewport
 
const void * m_mouseEventFocusObject = nullptr
 Pointer to the event receiver that shall receive MouseEvent::Type::Move events exclusively.
 
const void * m_touchEventFocusObject = nullptr
 Pointer to the event receiver that shall receive TouchEvent::Type::Update events exclusively.
 
- Protected Attributes inherited from Configurable
std::vector< Paramm_params
 List of all registered Parameter and SubProperty instances.
 

Properties

int interpolation
 
double scale
 
double zoom
 
double thickness
 
double lowerLimit
 
double upperLimit
 
double window
 
double level
 
double gamma
 
- Properties inherited from InteractiveView
QRect rect
 

Property read methods

int interpolation () const
 
double scale () const
 View scale.
 
double window () const
 View window setting of the given data. If data is 0, returns the global setting.
 
double level () const
 View level setting of the given data. If data is 0, returns the global setting.
 
double gamma () const
 View gamma setting of the given data. If data is 0, returns the global setting.
 
double zoom () const
 View zoom.
 
double lowerLimit () const
 percentage of lower values removed by the auto windowing
 
double upperLimit () const
 percentage of upper values removed by the auto windowing
 
double thickness () const
 Slice thickness in case of a 3D MPR.
 
double offsetNormal ()
 Offset in the normal direction.
 
void setOffsetNormal (double offset)
 
void configure (const Properties *p) override
 Restore view state from properties.
 
void configuration (Properties *p) const override
 Save view state to properties.
 
CurvedViewSettingsControllercurvedViewSettingsController () const
 
const DisplayOptions2ddisplayOptions () const
 
DisplayOptions2ddisplayOptions ()
 

Property write methods

void setInterpolation (int val)
 
void setScale (double val)
 Set view scale.
 
void setWindow (double val)
 Set view window of the given data. If data is 0, sets the global setting.
 
void setLevel (double val)
 Set view level of the given data. If data is 0, sets the global setting.
 
void setGamma (double val)
 Set view gamma of the given data. If data is 0, sets the global setting.
 
void setZoom (double val)
 Set view zoom.
 
void setThickness (double val)
 Set the 3D MPR slice thickness.
 
void setLowerLimit (double val)
 Set percentage of lower values removed by the auto windowing.
 
void setUpperLimit (double val)
 Set percentage of upper values removed by the auto windowing.
 

Property notifiers

void interpolationChanged (int val)
 
void scaleChanged (double val)
 Emitted when scale changed.
 
void windowChanged (double val)
 Emitted when window changed.
 
void levelChanged (double val)
 Emitted when level changed.
 
void gammaChanged (double val)
 Emitted when gamma changed.
 
void zoomChanged (double val)
 Emitted when zoom changed.
 
void thicknessChanged (double val)
 Emitted when slice thickness changes.
 

Additional Inherited Members

- Public Types inherited from InteractiveView
enum  LayoutDirection { Horizontal = int(GUI::ViewOverlay::LayoutDirection::Horizontal) , Vertical = int(GUI::ViewOverlay::LayoutDirection::Vertical) }
 Layout direction when stacking multiple InteractiveOverlays at the same anchor.
 
- Public Attributes inherited from InteractiveView
Signal< DataListsignalRendered
 Emitted at the end of render(); the passed DataList will hold all visible data.
 
- Public Attributes inherited from View
Signal signalUpdateRequested
 Emitted when this view or one of its overlays has become outdated and needs to be re-rendered.
 
Signal< const DataList &, const DataList & > signalVisibleDataChanged
 Emitted when visibleData() has changed.
 
- Public Attributes inherited from Configurable
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.
 

Member Function Documentation

◆ configure()

void configure ( const Properties * p)
overridevirtual

Restore view state from properties.

Reimplemented from Configurable.

◆ configuration()

void configuration ( Properties * p) const
overridevirtual

Save view state to properties.

Reimplemented from Configurable.

◆ windowChanged

void windowChanged ( double val)
signal

Emitted when window changed.

Warning
Do not rely on this signal since it may not be triggered under all circumstances.

◆ levelChanged

void levelChanged ( double val)
signal

Emitted when level changed.

Warning
Do not rely on this signal since it may not be triggered under all circumstances.

◆ gammaChanged

void gammaChanged ( double val)
signal

Emitted when gamma changed.

Warning
Do not rely on this signal since it may not be triggered under all circumstances.

◆ handleObjectEvent()

bool handleObjectEvent ( QEvent * qtEvent,
const GUI::InputEvent & inputEvent )
overrideprotectedvirtual

Override event handling code for objects.

Reimplemented from InteractiveView.


The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close