open_iA 2023.02
A tool for the visual analysis and processing of volumetric datasets, with a focus on industrial computed tomography.
Loading...
Searching...
No Matches
Public Types | Public Slots | Signals | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
iAChartWithFunctionsWidget Class Reference

A chart widget that can also show functions overlaid over the chart area (transfer function, Gaussian and Bezier curves) More...

#include <iAChartWithFunctionsWidget.h>

Inheritance diagram for iAChartWithFunctionsWidget:
[legend]
Collaboration diagram for iAChartWithFunctionsWidget:
[legend]

Public Types

enum  AdditionalMode { MOVE_NEW_POINT_MODE =Y_ZOOM_MODE+1 , MOVE_POINT_MODE }
 
- Public Types inherited from iAChartWidget
enum  AxisMappingType { Linear , Logarithmic }
 
enum  Mode { NO_MODE , MOVE_VIEW_MODE , X_ZOOM_MODE , Y_ZOOM_MODE }
 
enum  SelectionMode { SelectionDisabled , SelectPlot }
 

Public Slots

void addBezierFunction ()
 
void addGaussianFunction ()
 
void changeColor (QMouseEvent *event=nullptr)
 
int deletePoint ()
 
void loadFunctions ()
 
void loadTransferFunction ()
 
void loadTransferFunction (QDomNode functionsNode)
 
void removeFunction ()
 
void resetTrf ()
 
void saveFunctions ()
 
void saveTransferFunction ()
 
void showTFTable ()
 
void tfTableIsFinished ()
 
- Public Slots inherited from iAChartWidget
void resetView ()
 Reset view (zoom and shift in x and y direction) such that all plots are fully visible.
 
void setDrawXAxisAtZero (bool enable)
 Determines whether the x axis is drawn at location of zero in the data, or at the bottom of the chart region.
 

Signals

void applyTFForAll ()
 
void endPointSelected ()
 
void noPointSelected ()
 
void pointSelected ()
 
void transferFunctionChanged ()
 
void updateTFTable ()
 
- Signals inherited from iAChartWidget
void axisChanged ()
 Fires whenever the displayed x/y axis has changed (i.e. if it has been shifted, zoomed, or reset).
 
void clicked (double x, Qt::KeyboardModifiers modifiers)
 Fires whenever the user clicks on the chart.
 
void dblClicked ()
 Fires whenever the user double-clicks on the chart.
 
void legendPlotClicked (size_t plotID)
 Emitted when a plot is clicked in the legend.
 
void plotsSelected (std::vector< size_t > const &plotIDs)
 Fires whenever one or more plots are selected.
 

Public Member Functions

 iAChartWithFunctionsWidget (QWidget *parent, QString const &label="Greyvalue", QString const &yLabel="")
 
virtual ~iAChartWithFunctionsWidget ()
 
void addGaussianFunction (double mean, double sigma, double multiplier)
 Add a Gaussian function with the given parameters.
 
std::vector< iAChartFunction * > & functions ()
 Get all functions currently defined in this chart.
 
bool isFuncEndPoint (int index) const
 
bool loadProbabilityFunctions (iAXmlSettings &xml)
 
void saveProbabilityFunctions (iAXmlSettings &xml)
 
int selectedFuncPoint () const
 Get the index of the selected point in the selected function.
 
iAChartFunctionselectedFunction ()
 Get the currently selected function.
 
void setAllowTrfReset (bool allow)
 Set whether the user is allowed to reset the transfer function.
 
void setEnableAdditionalFunctions (bool enable)
 Set whether the user can add additional functions (Bezier and Gaussian curves), in addition to the standard transfer function.
 
void setTransferFunction (iATransferFunction *f)
 Set the transfer functions to be displayed on top of the chart.
 
- Public Member Functions inherited from iAChartWidget
 iAChartWidget (QWidget *parent, QString const &xLabel, QString const &yLabel)
 
 ~iAChartWidget ()
 
void addImageOverlay (QSharedPointer< QImage > imgOverlay, bool stretch=true)
 Add an image overlay to the chart.
 
void addPlot (QSharedPointer< iAPlot > plot)
 Add a plot to the chart.
 
virtual int bottomMargin () const
 Retrieve bottom margin (in pixels).
 
bool categoricalAxis () const
 Whether the axis of this chart is categorical type (as determined by the first plot).
 
virtual int chartHeight () const
 Retrieve height (in pixels) of the actual chart, i.e. the region where plots are drawn, without space for the margins / axes.
 
virtual int chartWidth () const
 Retrieve width (in pixels) of the actual chart, i.e. the region where plots are drawn, without space for margins / axes.
 
void clearImageOverlays ()
 Clear all image overlays:
 
void clearMarkers ()
 Remove all markers.
 
void clearPlots ()
 Remove all plots from the chart.
 
QPoint contextMenuPos () const
 Get the position where the context menu was last shown.
 
int dataBin2ScreenX (long x) const
 Convert a bin number to a screen coordinate.
 
QImage drawOffscreen ()
 Draws the chart off screen and returns an image of the result.
 
double fullChartWidth () const
 width in pixels that the chart would have if it were fully shown (considering current zoom level)k
 
bool isTooltipShown () const
 Check whether currently tooltips are enabled.
 
virtual int leftMargin () const
 Retrieve left margin (in pixels).
 
double maxXZoom () const
 Get the maximum zoom factor in x direction that can be in use.
 
std::vector< QSharedPointer< iAPlot > > const & plots ()
 Retrieve all plots currently in the chart.
 
void removeImageOverlay (QImage *imgOverlay)
 Remove an image overlay from the chart.
 
void removePlot (QSharedPointer< iAPlot > plot)
 Remove a plot from the chart.
 
void removeXMarker (double xPos)
 Remove the marker at the given x position (in data space, see screenX2DataBin for details).
 
void resetYBounds ()
 Reset y bounds to the range specified by the current plots.
 
long screenX2DataBin (int x) const
 Convert an x screen coordinate to a bin space index; Note that there are (at least) four different coordinate spaces to consider:
 
void setCaptionPosition (Qt::Alignment captionAlignment)
 Set position of x axis caption (Center/Left, Bottom/Top, via Qt::Align... flags).
 
void setEmptyText (QString const &text)
 Set text shown when no plot available.
 
void setSelectionMode (SelectionMode mode)
 Determine how a selection works; see SelectionMode: either disable selection, or allow selection of single plots.
 
void setXBounds (double minVal, double maxVal)
 Set custom x bounds (the interval the x axis covers).
 
void setXCaption (QString const &caption)
 Set the caption shown along the x axis.
 
void setXMarker (double xPos, QColor const &color, Qt::PenStyle penStyle=Qt::SolidLine)
 Add or update a marker at a specific x position (in data space, see screenX2DataBin for details) in the given color.
 
void setYBounds (iAPlotData::DataType minVal, iAPlotData::DataType maxVal)
 Set custom y bounds (the interval the y axis covers).
 
void setYCaption (QString const &caption)
 Set the caption shown along the y axis.
 
void setYMappingMode (AxisMappingType drawMode)
 Set either linear or logarithmic mapping mode.
 
void showLegend (bool show)
 Set whether legend should be shown or not.
 
void showXAxisLabel (bool show)
 Set whether x axis caption should be shown or not.
 
void updateBounds (size_t startPlot=0)
 Update all bounds such that all current plots are in the visible area of the chart.
 
void updateXBounds (size_t startPlot=0)
 Update x bounds of the chart such that the x bounds of all current plots are in the visible area of the chart.
 
void updateYBounds (size_t startPlot=0)
 Update y bounds of the chart such that the y bounds of all current plots are in the visible area of the chart.
 
double xRange () const
 Get the range in x direction (i.e. maximum - minimum of x bounds)
 
double xZoom () const
 Get x/y zoom and shift.
 
double yZoom () const
 
double xShift () const
 
int yShift () const
 
void setXShift (double xShift)
 set the x zoom/shift:
 
void setXZoom (double xZoom)
 
void setYZoom (double yZoom)
 
iAPlotData::DataType minYDataValue (size_t startPlot=0) const
 Retrieve minimum/maximum y data value.
 
iAPlotData::DataType maxYDataValue (size_t startPlot=0) const
 
iAMapper const & xMapper () const
 Get mapper for x/y coordinates.
 
iAMapper const & yMapper () const
 
int data2MouseX (double dataX)
 Convert mouse X coordinates (in chart already, i.e.
 
double mouse2DataX (int mouseX)
 
virtual iAPlotData::DataType const * yBounds () const
 Get x/y bounds as array of size 2 (minimum, maximum)
 
virtual double const * xBounds () const
 

Protected Member Functions

virtual void drawFunctions (QPainter &painter)
 
void mousePressEvent (QMouseEvent *event) override
 Events overrided from Qt.
 
void mouseReleaseEvent (QMouseEvent *event) override
 
void mouseMoveEvent (QMouseEvent *event) override
 
void mouseDoubleClickEvent (QMouseEvent *event) override
 
void enterEvent (QEnterEvent *event) override
 
void keyPressEvent (QKeyEvent *event) override
 
void addContextMenuEntries (QMenu *contextMenu) override
 Methods overrided from iAChartWidget.
 
void changeMode (int newMode, QMouseEvent *event) override
 
void drawAfterPlots (QPainter &painter) override
 
- Protected Member Functions inherited from iAChartWidget
virtual void changeMode (int newMode, QMouseEvent *event)
 
virtual void drawAxes (QPainter &painter)
 
virtual void drawLegend (QPainter &painter)
 
virtual void drawPlots (QPainter &painter)
 
virtual void showDataTooltip (QHelpEvent *event)
 
virtual QString xAxisTickMarkLabel (double value, double stepWidth)
 
void zoomAlongX (double value, int x, bool deltaMode)
 
void zoomAlongY (double value, bool deltaMode)
 
void mouseMoveEvent (QMouseEvent *event) override
 Overriden Qt events.
 
void mousePressEvent (QMouseEvent *event) override
 
void mouseReleaseEvent (QMouseEvent *event) override
 
void mouseDoubleClickEvent (QMouseEvent *event) override
 
void wheelEvent (QWheelEvent *event) override
 
void leaveEvent (QEvent *event) override
 
void paintEvent (QPaintEvent *event) override
 
void contextMenuEvent (QContextMenuEvent *event) override
 
bool event (QEvent *event) override
 

Protected Attributes

std::vector< iAChartFunction * > m_functions
 
size_t m_selectedFunction
 
bool m_showFunctions
 
- Protected Attributes inherited from iAChartWidget
int m_dragStartPosX
 
int m_dragStartPosY
 
int m_mode
 
int m_translationStartY
 
int m_translationY
 
QString m_xCaption
 
QSharedPointer< iAMapperm_xMapper
 Main mappers from diagram coordinates to pixel coordinates, for each axis:
 
double m_xShift
 
double m_xShiftStart
 
double m_xZoom
 
double m_xZoomStart
 
QString m_yCaption
 
QSharedPointer< iAMapperm_yMapper
 
AxisMappingType m_yMappingMode
 
double m_yZoom
 
double m_yZoomStart
 
int m_zoomXPos
 
int m_zoomYPos
 

Additional Inherited Members

- Static Public Attributes inherited from iAChartWidget
static const size_t MaxPossiblePlot = std::numeric_limits<size_t>::max()
 

Detailed Description

A chart widget that can also show functions overlaid over the chart area (transfer function, Gaussian and Bezier curves)

Member Enumeration Documentation

◆ AdditionalMode

Enumerator
MOVE_NEW_POINT_MODE 
MOVE_POINT_MODE 

Constructor & Destructor Documentation

◆ iAChartWithFunctionsWidget()

iAChartWithFunctionsWidget::iAChartWithFunctionsWidget ( QWidget *  parent,
QString const &  label = "Greyvalue",
QString const &  yLabel = "" 
)

◆ ~iAChartWithFunctionsWidget()

iAChartWithFunctionsWidget::~iAChartWithFunctionsWidget ( )
virtual

Member Function Documentation

◆ addBezierFunction

void iAChartWithFunctionsWidget::addBezierFunction ( )
slot

◆ addContextMenuEntries()

void iAChartWithFunctionsWidget::addContextMenuEntries ( QMenu *  contextMenu)
overrideprotectedvirtual

Methods overrided from iAChartWidget.

Reimplemented from iAChartWidget.

◆ addGaussianFunction [1/2]

void iAChartWithFunctionsWidget::addGaussianFunction ( )
slot

◆ addGaussianFunction() [2/2]

void iAChartWithFunctionsWidget::addGaussianFunction ( double  mean,
double  sigma,
double  multiplier 
)

Add a Gaussian function with the given parameters.

◆ applyTFForAll

void iAChartWithFunctionsWidget::applyTFForAll ( )
signal

◆ changeColor

void iAChartWithFunctionsWidget::changeColor ( QMouseEvent *  event = nullptr)
slot

◆ changeMode()

void iAChartWithFunctionsWidget::changeMode ( int  newMode,
QMouseEvent *  event 
)
overrideprotectedvirtual

Reimplemented from iAChartWidget.

◆ deletePoint

int iAChartWithFunctionsWidget::deletePoint ( )
slot

◆ drawAfterPlots()

void iAChartWithFunctionsWidget::drawAfterPlots ( QPainter &  painter)
overrideprotectedvirtual

Reimplemented from iAChartWidget.

◆ drawFunctions()

void iAChartWithFunctionsWidget::drawFunctions ( QPainter &  painter)
protectedvirtual

◆ endPointSelected

void iAChartWithFunctionsWidget::endPointSelected ( )
signal

◆ enterEvent()

void iAChartWithFunctionsWidget::enterEvent ( QEnterEvent *  event)
overrideprotected

◆ functions()

std::vector< iAChartFunction * > & iAChartWithFunctionsWidget::functions ( )

Get all functions currently defined in this chart.

◆ isFuncEndPoint()

bool iAChartWithFunctionsWidget::isFuncEndPoint ( int  index) const

◆ keyPressEvent()

void iAChartWithFunctionsWidget::keyPressEvent ( QKeyEvent *  event)
overrideprotected

◆ loadFunctions

void iAChartWithFunctionsWidget::loadFunctions ( )
slot

◆ loadProbabilityFunctions()

bool iAChartWithFunctionsWidget::loadProbabilityFunctions ( iAXmlSettings xml)

◆ loadTransferFunction [1/2]

void iAChartWithFunctionsWidget::loadTransferFunction ( )
slot

◆ loadTransferFunction [2/2]

void iAChartWithFunctionsWidget::loadTransferFunction ( QDomNode  functionsNode)
slot

◆ mouseDoubleClickEvent()

void iAChartWithFunctionsWidget::mouseDoubleClickEvent ( QMouseEvent *  event)
overrideprotected

◆ mouseMoveEvent()

void iAChartWithFunctionsWidget::mouseMoveEvent ( QMouseEvent *  event)
overrideprotected

◆ mousePressEvent()

void iAChartWithFunctionsWidget::mousePressEvent ( QMouseEvent *  event)
overrideprotected

Events overrided from Qt.

◆ mouseReleaseEvent()

void iAChartWithFunctionsWidget::mouseReleaseEvent ( QMouseEvent *  event)
overrideprotected

◆ noPointSelected

void iAChartWithFunctionsWidget::noPointSelected ( )
signal

◆ pointSelected

void iAChartWithFunctionsWidget::pointSelected ( )
signal

◆ removeFunction

void iAChartWithFunctionsWidget::removeFunction ( )
slot

◆ resetTrf

void iAChartWithFunctionsWidget::resetTrf ( )
slot

◆ saveFunctions

void iAChartWithFunctionsWidget::saveFunctions ( )
slot

◆ saveProbabilityFunctions()

void iAChartWithFunctionsWidget::saveProbabilityFunctions ( iAXmlSettings xml)

◆ saveTransferFunction

void iAChartWithFunctionsWidget::saveTransferFunction ( )
slot

◆ selectedFuncPoint()

int iAChartWithFunctionsWidget::selectedFuncPoint ( ) const

Get the index of the selected point in the selected function.

◆ selectedFunction()

iAChartFunction * iAChartWithFunctionsWidget::selectedFunction ( )

Get the currently selected function.

◆ setAllowTrfReset()

void iAChartWithFunctionsWidget::setAllowTrfReset ( bool  allow)

Set whether the user is allowed to reset the transfer function.

◆ setEnableAdditionalFunctions()

void iAChartWithFunctionsWidget::setEnableAdditionalFunctions ( bool  enable)

Set whether the user can add additional functions (Bezier and Gaussian curves), in addition to the standard transfer function.

◆ setTransferFunction()

void iAChartWithFunctionsWidget::setTransferFunction ( iATransferFunction f)

Set the transfer functions to be displayed on top of the chart.

◆ showTFTable

void iAChartWithFunctionsWidget::showTFTable ( )
slot

◆ tfTableIsFinished

void iAChartWithFunctionsWidget::tfTableIsFinished ( )
slot

◆ transferFunctionChanged

void iAChartWithFunctionsWidget::transferFunctionChanged ( )
signal

◆ updateTFTable

void iAChartWithFunctionsWidget::updateTFTable ( )
signal

Member Data Documentation

◆ m_functions

std::vector<iAChartFunction*> iAChartWithFunctionsWidget::m_functions
protected

◆ m_selectedFunction

size_t iAChartWithFunctionsWidget::m_selectedFunction
protected

◆ m_showFunctions

bool iAChartWithFunctionsWidget::m_showFunctions
protected

The documentation for this class was generated from the following files: