High-level wrapper class for 2D/MPR rendering of one or multiple images.
Serves as Qt wrapper of the GlSliceView and GlSlice classes for 2D/MPR rendering. Depending on the displayOptionsSource property of ImageView2D the DisplayOptions2d used during rendering are either individual for each image (stored in the images' DataComponents) or shared for all shown images (stored in ImageView2D).
This class offers a couple of additional convenience interfaces/functionality over the underlying hierarchy of GlSliceView, GlSlice, and GlSliceRenderer:
- Note
- Due to the potential external storage of display options, the Qt signals for changes of individual display options (i.e. windowChanged, levelChanged, gammaChanged, invertedChanged, and blendFactorChanged) are only emitted when using their corresponding Qt property setter. If the underlying DisplayOptions2d have changed by somebody else in the background, this is not detected. If you need to be notified reliably in all occasions you need to register to the DisplayOptions2d changed signal directly.
|
| ImageView2D (std::unique_ptr< GlSliceView > sliceView) |
| Default constructor.
|
|
| ImageView2D (bool is3d, Slice::AnatomicalPlane plane) |
|
| ~ImageView2D () override |
| Destructor.
|
|
const GlSliceView * | view () const |
| Read-only access to OpenGL view.
|
|
GlSliceView * | view () |
| Read-write access to OpenGL view.
|
|
void | render () override |
| 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().
|
|
void | setImageData (SharedImageSet *is) |
| Set image data. Convenience function which calls corresponding function in slice.
|
|
SharedImageSet * | imageData () const |
|
ImFusion::ImageView2D::DisplayOptionsSource | displayOptionsSource () const |
| Returns where to take display options from.
|
|
ImFusion::ImageView2D::ZoomMode | zoomMode () const |
| Returns the zoom mode.
|
|
const DisplayOptions2d & | displayOptions (const Data *data=nullptr) const |
| Return the DisplayOptions used for the given data wrt.
|
|
DisplayOptions2d & | displayOptions (const Data *data=nullptr) |
|
void | setAutomaticViewSettingsEnabled (bool value) |
| Sets the flag whether ImageView2D should automatically configure settings of the underlying GlSliceView based on the shown data.
|
|
bool | isAutomaticViewSettingsEnabled () const |
| Returns the flag whether ImageView2D should automatically configure settings of the underlying GlSliceView based on the shown data.
|
|
void | configure (const Properties *p) override |
| Restore view state from properties.
|
|
void | configuration (Properties *p) const override |
| Save view state to properties.
|
|
InteractionView2D * | interaction2D () const |
| Convenience function to return the first interaction of type InteractionView2D if present.
|
|
void | setColormap (GlImage *colormap) |
| Set the color map.
|
|
const GlImage * | colormap () const |
| Get the color map, or nullptr if no color mapping is used.
|
|
void | transformationChanged (const Data *data) |
| Enables show zoom if a shown image has a new transformation.
|
|
void | setRect (const QRect &rect) override |
| Set position and size of view in scene coordinates.
|
|
void | onDisplayOptionsChanged (DisplayOptions2d *dop) |
|
void | updateScale () |
|
void | setImage (SharedImage *image) |
| Convenience method to display a single image.
|
|
void | setImage (Image *image) |
| Convenience method to display a single image.
|
|
| 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.
|
|
ViewGroup * | viewGroup () const |
| Get associated view group.
|
|
QRectF | boundingRect () const |
| Bounding rect in item 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::ViewOverlay > | removeOverlay (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.
|
|
| View (std::unique_ptr< GlView > glView) |
| Instantiate a new View using the given GlView as renderer; glView must not be null.
|
|
const GlView & | glView () const |
| Returns the underlying GlView.
|
|
GlView & | glView () |
| Returns the underlying GlView.
|
|
const GL::Viewport & | viewport () 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 BorderConfig & | borderConfig () 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 DataList & | visibleData () 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< EventHandler > | removeEventHandler (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 GlView * | view () const |
|
GlView * | view () |
| Return associated GlView object.
|
|
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 |
|
Configurable & | operator= (const Configurable &) |
|
Configurable & | operator= (Configurable &&) noexcept |
|
| SignalReceiver ()=default |
| Default constructor.
|
|
| SignalReceiver (const SignalReceiver &other) |
| Copy constructor, does not copy any existing signal connections from other.
|
|
SignalReceiver & | operator= (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.
|
|
|
void | setInterpolation (int val) |
|
void | setFlip (bool val) |
|
void | setBlendingMode (ImFusion::GlSlice::BlendingMode val) |
|
void | setBlendFactor (double val) |
| Set blending alpha value setting of the given data. If data is 0, returns the global setting.
|
|
void | addMoveImage (SharedImageSet *img) |
| Adds the given image to the list of images to which the "move image" feature is applied.
|
|
void | removeMoveImage (const SharedImageSet *img) |
| Removes the given image from the list of images to which the "move image" feature is applied.
|
|
std::vector< SharedImageSet * > | moveImages () const |
| Returns the list of images that should be moved if interactionTarget() is InteractionTarget::Image.
|
|
void | setZoom (double val) |
| Set view zoom.
|
|
void | setPixelZoom (bool val) |
| Set pixel zoom.
|
|
void | setShowZoom (bool flag) |
| Specify if the view zoom shall be shown on the slice itself (affecting other views)
|
|
void | setShowIntersectionLines (bool flag) |
| Specify if the intersection lines with other slices shall be drawn.
|
|
void | setShowThickness (bool flag) |
| Specify if the slice thickness shall be drawn.
|
|
void | setShowOrientationMarkers (bool value) |
| Sets the whether to draw orientation markers next to the MPR cross section lines.
|
|
void | setDefaultOrientationMarkerTypeToQuadruped (bool value) |
| Sets the default type of the orientation markers to Quadruped.
|
|
void | setShowIn3D (int mode) |
| Specify the 3D visualization of this slice.
|
|
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 | setInverted (bool inverted) |
| Set color inversion of the given data. If data is 0, sets the global setting.
|
|
void | setThickness (double val) |
| Set the 3D MPR slice thickness.
|
|
void | setDisplayOptionsSource (ImFusion::ImageView2D::DisplayOptionsSource value) |
| Sets where to take display options from.
|
|
void | setZoomMode (ImFusion::ImageView2D::ZoomMode value) |
| Sets the zoom mode.
|
|