|
open_iA 2023.02
A tool for the visual analysis and processing of volumetric datasets, with a focus on industrial computed tomography.
|
A chart widget that can also show functions overlaid over the chart area (transfer function, Gaussian and Bezier curves) More...
#include <iAChartWithFunctionsWidget.h>
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. | |
| iAChartFunction * | selectedFunction () |
| 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< iAMapper > | m_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< iAMapper > | m_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() |
A chart widget that can also show functions overlaid over the chart area (transfer function, Gaussian and Bezier curves)
| iAChartWithFunctionsWidget::iAChartWithFunctionsWidget | ( | QWidget * | parent, |
| QString const & | label = "Greyvalue", |
||
| QString const & | yLabel = "" |
||
| ) |
|
virtual |
|
slot |
|
overrideprotectedvirtual |
Methods overrided from iAChartWidget.
Reimplemented from iAChartWidget.
|
slot |
| void iAChartWithFunctionsWidget::addGaussianFunction | ( | double | mean, |
| double | sigma, | ||
| double | multiplier | ||
| ) |
Add a Gaussian function with the given parameters.
|
signal |
|
slot |
|
overrideprotectedvirtual |
Reimplemented from iAChartWidget.
|
slot |
|
overrideprotectedvirtual |
Reimplemented from iAChartWidget.
|
protectedvirtual |
|
signal |
|
overrideprotected |
| std::vector< iAChartFunction * > & iAChartWithFunctionsWidget::functions | ( | ) |
Get all functions currently defined in this chart.
| bool iAChartWithFunctionsWidget::isFuncEndPoint | ( | int | index | ) | const |
|
overrideprotected |
|
slot |
| bool iAChartWithFunctionsWidget::loadProbabilityFunctions | ( | iAXmlSettings & | xml | ) |
|
slot |
|
slot |
|
overrideprotected |
|
overrideprotected |
|
overrideprotected |
Events overrided from Qt.
|
overrideprotected |
|
signal |
|
signal |
|
slot |
|
slot |
|
slot |
| void iAChartWithFunctionsWidget::saveProbabilityFunctions | ( | iAXmlSettings & | xml | ) |
|
slot |
| int iAChartWithFunctionsWidget::selectedFuncPoint | ( | ) | const |
Get the index of the selected point in the selected function.
| iAChartFunction * iAChartWithFunctionsWidget::selectedFunction | ( | ) |
Get the currently selected function.
| void iAChartWithFunctionsWidget::setAllowTrfReset | ( | bool | allow | ) |
Set whether the user is allowed to reset the transfer function.
| void iAChartWithFunctionsWidget::setEnableAdditionalFunctions | ( | bool | enable | ) |
Set whether the user can add additional functions (Bezier and Gaussian curves), in addition to the standard transfer function.
| void iAChartWithFunctionsWidget::setTransferFunction | ( | iATransferFunction * | f | ) |
Set the transfer functions to be displayed on top of the chart.
|
slot |
|
slot |
|
signal |
|
signal |
|
protected |
|
protected |
|
protected |