![]() |
open_iA
2019.12
A tool for the visual analysis and processing of volumetric datasets, with a focus on industrial computed tomography.
|
A chart widget which can show an arbitrary number of plots. More...
#include <iAChartWidget.h>
Public Types | |
| enum | AxisMappingType { Linear, Logarithmic } |
| enum | Mode { NO_MODE, MOVE_VIEW_MODE, X_ZOOM_MODE, Y_ZOOM_MODE } |
| enum | SelectionMode { SelectionDisabled, SelectPlot } |
Public Slots | |
| void | resetView () |
| Reset view (zoom and shift in x and y direction) such that all plots are fully visible. More... | |
| 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. More... | |
Signals | |
| void | dblClicked () |
| Fires whenever the user double-clicks on the chart. More... | |
| void | plotsSelected (std::vector< size_t > const &plotIDs) |
| Fires whenever one or more plots are selected. More... | |
| void | xAxisChanged () |
| Fires whenever the displayed x axis has changed (i.e. More... | |
Public Member Functions | |
| virtual int | activeHeight () const |
| Retrieve height of active region of the chart. More... | |
| virtual int | activeWidth () const |
| Retrieve width of active region of the chart. More... | |
| void | addImageOverlay (QSharedPointer< QImage > imgOverlay) |
| Add an image overlay to the chart. More... | |
| void | addPlot (QSharedPointer< iAPlot > plot) |
| Add a plot to the chart. More... | |
| void | addXMarker (double xPos, QColor const &color) |
| Adds a marker at a specific x position (in data space, see screenX2DataBin for details) in the given color. More... | |
| virtual int | bottomMargin () const |
| Retrieve bottom margin (in pixels). More... | |
| bool | categoricalAxis () const |
| Whether the axis of this chart is categorical type (as determined by the first plot). More... | |
| void | clearMarkers () |
| Remove all markers. More... | |
| void | clearPlots () |
| Remove all plots from the chart. More... | |
| QPoint | contextMenuPos () const |
| Get the position where the context menu was last shown. More... | |
| int | dataBin2ScreenX (long x) const |
| Convert a bin number to a screen coordinate. More... | |
| QImage | drawOffscreen () |
| Draws the chart off screen and returns an image of the result. More... | |
| iAChartWidget (QWidget *parent, QString const &xLabel, QString const &yLabel) | |
| bool | isContextMenuVisible () const |
| Check whether currently a context menu is shown. More... | |
| bool | isDrawnDiscrete () const |
| Check whether all plots currently in the chart have discrete (categorical also counts as discrete for this purpose). More... | |
| bool | isTooltipShown () const |
| Check whether currently tooltips are enabled. More... | |
| virtual int | leftMargin () const |
| Retrieve left margin (in pixels). More... | |
| double | maxXZoom () const |
| Get the maximum zoom factor in x direction that can be in use. More... | |
| const std::vector< QSharedPointer< iAPlot > > & | plots () |
| Retrieve all plots currently in the chart. More... | |
| void | removeImageOverlay (QImage *imgOverlay) |
| Remove an image overlay from the chart. More... | |
| void | removePlot (QSharedPointer< iAPlot > plot) |
| Remove a plot from the chart. More... | |
| void | removeXMarker (double xPos) |
| Remove the marker at the given x position (in data space, see screenX2DataBin for details). More... | |
| void | resetYBounds () |
| Reset y bounds to the range specified by the current plots. More... | |
| long | screenX2DataBin (int x) const |
| Convert an x screen coordinate to a bin space index; Note that there are three different spaces to consider: More... | |
| void | setBackgroundColor (QColor const &color) |
| Sets the background color of the whole chart. More... | |
| void | setCaptionPosition (QFlags< Qt::AlignmentFlag >) |
| Set position of x axis caption (Center/Left, Bottom/Top, via Qt::Align... flags). More... | |
| void | setSelectionMode (SelectionMode mode) |
| Determine how a selection works; see SelectionMode: either disable selection, or allow selection of single plots. More... | |
| void | setShowXAxisLabel (bool show) |
| Set whether x axis caption should be shown or not. More... | |
| void | setXBounds (double minVal, double maxVal) |
| Set custom x bounds (the interval the x axis covers). More... | |
| void | setXCaption (QString const &caption) |
| Set the caption shown along the x axis. More... | |
| void | setYBounds (iAPlotData::DataType minVal, iAPlotData::DataType maxVal) |
| Set custom y bounds (the interval the y axis covers). More... | |
| void | setYCaption (QString const &caption) |
| Set the caption shown along the y axis. More... | |
| void | setYMappingMode (AxisMappingType drawMode) |
| Set either linear or logarithmic mapping mode. More... | |
| void | updateBounds (size_t startPlot=0) |
| Update all bounds such that all current plots are in the visible area of the chart. More... | |
| 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. More... | |
| 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. More... | |
| double | xRange () const |
| Get the range in x direction (i.e. maximum - minimum of x bounds) More... | |
| ~iAChartWidget () | |
| double | xZoom () const |
| Get x/y zoom and shift. More... | |
| double | yZoom () const |
| int | xShift () const |
| int | yShift () const |
| iAPlotData::DataType | minYDataValue (size_t startPlot=0) const |
| Retrieve minimum/maximum y data value. More... | |
| iAPlotData::DataType | maxYDataValue (size_t startPlot=0) const |
| const iAMapper & | xMapper () const |
| Get mapper for x/y coordinates. More... | |
| const iAMapper & | yMapper () const |
| virtual const iAPlotData::DataType * | yBounds () const |
| Get x/y bounds as array of size 2 (minimum, maximum) More... | |
| virtual const double * | xBounds () const |
Static Public Attributes | |
| static const size_t | MaxPossiblePlot = std::numeric_limits<size_t>::max() |
Protected Member Functions | |
| virtual void | changeMode (int newMode, QMouseEvent *event) |
| virtual void | drawAxes (QPainter &painter) |
| virtual void | drawBackground (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. More... | |
| 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 | paintGL () override |
| void | contextMenuEvent (QContextMenuEvent *event) override |
| void | keyReleaseEvent (QKeyEvent *event) override |
| bool | event (QEvent *event) override |
Protected Attributes | |
| bool | m_contextMenuVisible |
| int | m_dragStartPosX |
| int | m_dragStartPosY |
| int | m_mode |
| int | m_translationStartX |
| int | m_translationStartY |
| int | m_translationX |
| int | m_translationY |
| QString | m_xCaption |
| QSharedPointer< iAMapper > | m_xMapper |
| Main mappers from diagram coordinates to pixel coordinates, for each axis: More... | |
| 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 |
A chart widget which can show an arbitrary number of plots.
| enum iAChartWidget::Mode |
| iAChartWidget::iAChartWidget | ( | QWidget * | parent, |
| QString const & | xLabel, | ||
| QString const & | yLabel | ||
| ) |
| iAChartWidget::~iAChartWidget | ( | ) |
|
virtual |
Retrieve height of active region of the chart.
The active region is where plots are drawn, without space for axes (in pixels).
|
virtual |
Retrieve width of active region of the chart.
The active region is where plots are drawn, without space for axes (in pixels).
| void iAChartWidget::addImageOverlay | ( | QSharedPointer< QImage > | imgOverlay | ) |
Add an image overlay to the chart.
| void iAChartWidget::addPlot | ( | QSharedPointer< iAPlot > | plot | ) |
Add a plot to the chart.
| void iAChartWidget::addXMarker | ( | double | xPos, |
| QColor const & | color | ||
| ) |
Adds a marker at a specific x position (in data space, see screenX2DataBin for details) in the given color.
|
virtual |
Retrieve bottom margin (in pixels).
| bool iAChartWidget::categoricalAxis | ( | ) | const |
Whether the axis of this chart is categorical type (as determined by the first plot).
|
protectedvirtual |
Reimplemented in iADiagramFctWidget.
| void iAChartWidget::clearMarkers | ( | ) |
Remove all markers.
| void iAChartWidget::clearPlots | ( | ) |
Remove all plots from the chart.
|
overrideprotected |
| QPoint iAChartWidget::contextMenuPos | ( | ) | const |
Get the position where the context menu was last shown.
| int iAChartWidget::dataBin2ScreenX | ( | long | x | ) | const |
Convert a bin number to a screen coordinate.
| x | the bin space index; see screenX2DataBin for details |
|
signal |
Fires whenever the user double-clicks on the chart.
|
protectedvirtual |
|
protectedvirtual |
| QImage iAChartWidget::drawOffscreen | ( | ) |
Draws the chart off screen and returns an image of the result.
|
protectedvirtual |
|
overrideprotected |
| bool iAChartWidget::isContextMenuVisible | ( | ) | const |
Check whether currently a context menu is shown.
| bool iAChartWidget::isDrawnDiscrete | ( | ) | const |
Check whether all plots currently in the chart have discrete (categorical also counts as discrete for this purpose).
If a single plot is continuous, it will report false.
| bool iAChartWidget::isTooltipShown | ( | ) | const |
Check whether currently tooltips are enabled.
|
overrideprotected |
|
overrideprotected |
|
virtual |
Retrieve left margin (in pixels).
| double iAChartWidget::maxXZoom | ( | ) | const |
Get the maximum zoom factor in x direction that can be in use.
| iAPlotData::DataType iAChartWidget::maxYDataValue | ( | size_t | startPlot = 0 | ) | const |
| iAPlotData::DataType iAChartWidget::minYDataValue | ( | size_t | startPlot = 0 | ) | const |
Retrieve minimum/maximum y data value.
|
overrideprotected |
|
overrideprotected |
Overriden Qt events.
|
overrideprotected |
|
overrideprotected |
|
overrideprotected |
| const std::vector< QSharedPointer< iAPlot > > & iAChartWidget::plots | ( | ) |
Retrieve all plots currently in the chart.
|
signal |
Fires whenever one or more plots are selected.
| plotIDs | the IDs of the selected plots |
| void iAChartWidget::removeImageOverlay | ( | QImage * | imgOverlay | ) |
Remove an image overlay from the chart.
| void iAChartWidget::removePlot | ( | QSharedPointer< iAPlot > | plot | ) |
Remove a plot from the chart.
| void iAChartWidget::removeXMarker | ( | double | xPos | ) |
Remove the marker at the given x position (in data space, see screenX2DataBin for details).
|
slot |
Reset view (zoom and shift in x and y direction) such that all plots are fully visible.
| void iAChartWidget::resetYBounds | ( | ) |
Reset y bounds to the range specified by the current plots.
| long iAChartWidget::screenX2DataBin | ( | int | x | ) | const |
Convert an x screen coordinate to a bin space index; Note that there are three different spaces to consider:
| x | the x screen coordinate to convert |
| void iAChartWidget::setBackgroundColor | ( | QColor const & | color | ) |
Sets the background color of the whole chart.
| void iAChartWidget::setCaptionPosition | ( | QFlags< Qt::AlignmentFlag > | captionPosition | ) |
Set position of x axis caption (Center/Left, Bottom/Top, via Qt::Align... flags).
|
slot |
Determines whether the x axis is drawn at location of zero in the data, or at the bottom of the chart region.
| enable | if true, the x axis is drawn where the value 0 is on the y axis; if false, it is drawn at the bottom of the chart region. |
| void iAChartWidget::setSelectionMode | ( | SelectionMode | mode | ) |
Determine how a selection works; see SelectionMode: either disable selection, or allow selection of single plots.
| void iAChartWidget::setShowXAxisLabel | ( | bool | show | ) |
Set whether x axis caption should be shown or not.
| void iAChartWidget::setXBounds | ( | double | minVal, |
| double | maxVal | ||
| ) |
Set custom x bounds (the interval the x axis covers).
| void iAChartWidget::setXCaption | ( | QString const & | caption | ) |
Set the caption shown along the x axis.
| void iAChartWidget::setYBounds | ( | iAPlotData::DataType | minVal, |
| iAPlotData::DataType | maxVal | ||
| ) |
Set custom y bounds (the interval the y axis covers).
| void iAChartWidget::setYCaption | ( | QString const & | caption | ) |
Set the caption shown along the y axis.
| void iAChartWidget::setYMappingMode | ( | AxisMappingType | drawMode | ) |
Set either linear or logarithmic mapping mode.
|
protectedvirtual |
| void iAChartWidget::updateBounds | ( | size_t | startPlot = 0 | ) |
Update all bounds such that all current plots are in the visible area of the chart.
| void iAChartWidget::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 iAChartWidget::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.
|
overrideprotected |
|
signal |
Fires whenever the displayed x axis has changed (i.e.
if it has been shifted, zoomed, or reset).
|
protectedvirtual |
|
virtual |
| const iAMapper & iAChartWidget::xMapper | ( | ) | const |
Get mapper for x/y coordinates.
| double iAChartWidget::xRange | ( | ) | const |
Get the range in x direction (i.e. maximum - minimum of x bounds)
|
inline |
|
inline |
Get x/y zoom and shift.
|
virtual |
Get x/y bounds as array of size 2 (minimum, maximum)
| const iAMapper & iAChartWidget::yMapper | ( | ) | const |
|
inline |
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Main mappers from diagram coordinates to pixel coordinates, for each axis:
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |
1.8.16