SimCenterCommon
Common functionality used within different SimCenter projects
QCPAbstractPlottable1D< DataType > Class Template Reference

A template base class for plottables with one-dimensional data. More...

#include <qcustomplot.h>

Inheritance diagram for QCPAbstractPlottable1D< DataType >:
Collaboration diagram for QCPAbstractPlottable1D< DataType >:

Public Member Functions

 QCPAbstractPlottable1D (QCPAxis *keyAxis, QCPAxis *valueAxis)
 
virtual ~QCPAbstractPlottable1D ()
 
virtual int dataCount () const
 
virtual double dataMainKey (int index) const
 
virtual double dataSortKey (int index) const
 
virtual double dataMainValue (int index) const
 
virtual QCPRange dataValueRange (int index) const
 
virtual QPointF dataPixelPosition (int index) const
 
virtual bool sortKeyIsMainKey () const
 
virtual QCPDataSelection selectTestRect (const QRectF &rect, bool onlySelectable) const
 
virtual int findBegin (double sortKey, bool expandedRange=true) const
 
virtual int findEnd (double sortKey, bool expandedRange=true) const
 
virtual double selectTest (const QPointF &pos, bool onlySelectable, QVariant *details=0) const
 
virtual QCPPlottableInterface1Dinterface1D ()
 
- Public Member Functions inherited from QCPAbstractPlottable
 QCPAbstractPlottable (QCPAxis *keyAxis, QCPAxis *valueAxis)
 
virtual ~QCPAbstractPlottable ()
 
QString name () const
 
bool antialiasedFill () const
 
bool antialiasedScatters () const
 
QPen pen () const
 
QBrush brush () const
 
QCPAxiskeyAxis () const
 
QCPAxisvalueAxis () const
 
QCP::SelectionType selectable () const
 
bool selected () const
 
QCPDataSelection selection () const
 
QCPSelectionDecoratorselectionDecorator () const
 
void setName (const QString &name)
 
void setAntialiasedFill (bool enabled)
 
void setAntialiasedScatters (bool enabled)
 
void setPen (const QPen &pen)
 
void setBrush (const QBrush &brush)
 
void setKeyAxis (QCPAxis *axis)
 
void setValueAxis (QCPAxis *axis)
 
Q_SLOT void setSelectable (QCP::SelectionType selectable)
 
Q_SLOT void setSelection (QCPDataSelection selection)
 
void setSelectionDecorator (QCPSelectionDecorator *decorator)
 
virtual QCPRange getKeyRange (bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth) const =0
 
virtual QCPRange getValueRange (bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth, const QCPRange &inKeyRange=QCPRange()) const =0
 
void coordsToPixels (double key, double value, double &x, double &y) const
 
const QPointF coordsToPixels (double key, double value) const
 
void pixelsToCoords (double x, double y, double &key, double &value) const
 
void pixelsToCoords (const QPointF &pixelPos, double &key, double &value) const
 
void rescaleAxes (bool onlyEnlarge=false) const
 
void rescaleKeyAxis (bool onlyEnlarge=false) const
 
void rescaleValueAxis (bool onlyEnlarge=false, bool inKeyRange=false) const
 
bool addToLegend (QCPLegend *legend)
 
bool addToLegend ()
 
bool removeFromLegend (QCPLegend *legend) const
 
bool removeFromLegend () const
 
- Public Member Functions inherited from QCPLayerable
 QCPLayerable (QCustomPlot *plot, QString targetLayer=QString(), QCPLayerable *parentLayerable=0)
 
virtual ~QCPLayerable ()
 
bool visible () const
 
QCustomPlotparentPlot () const
 
QCPLayerableparentLayerable () const
 
QCPLayerlayer () const
 
bool antialiased () const
 
void setVisible (bool on)
 
Q_SLOT bool setLayer (QCPLayer *layer)
 
bool setLayer (const QString &layerName)
 
void setAntialiased (bool enabled)
 
bool realVisibility () const
 

Protected Member Functions

void getDataSegments (QList< QCPDataRange > &selectedSegments, QList< QCPDataRange > &unselectedSegments) const
 
void drawPolyline (QCPPainter *painter, const QVector< QPointF > &lineData) const
 
- Protected Member Functions inherited from QCPAbstractPlottable
virtual QRect clipRect () const Q_DECL_OVERRIDE
 
virtual void draw (QCPPainter *painter) Q_DECL_OVERRIDE=0
 
virtual QCP::Interaction selectionCategory () const Q_DECL_OVERRIDE
 
void applyDefaultAntialiasingHint (QCPPainter *painter) const Q_DECL_OVERRIDE
 
virtual void selectEvent (QMouseEvent *event, bool additive, const QVariant &details, bool *selectionStateChanged) Q_DECL_OVERRIDE
 
virtual void deselectEvent (bool *selectionStateChanged) Q_DECL_OVERRIDE
 
virtual void drawLegendIcon (QCPPainter *painter, const QRectF &rect) const =0
 
void applyFillAntialiasingHint (QCPPainter *painter) const
 
void applyScattersAntialiasingHint (QCPPainter *painter) const
 
- Protected Member Functions inherited from QCPLayerable
virtual void parentPlotInitialized (QCustomPlot *parentPlot)
 
virtual void mousePressEvent (QMouseEvent *event, const QVariant &details)
 
virtual void mouseMoveEvent (QMouseEvent *event, const QPointF &startPos)
 
virtual void mouseReleaseEvent (QMouseEvent *event, const QPointF &startPos)
 
virtual void mouseDoubleClickEvent (QMouseEvent *event, const QVariant &details)
 
virtual void wheelEvent (QWheelEvent *event)
 
void initializeParentPlot (QCustomPlot *parentPlot)
 
void setParentLayerable (QCPLayerable *parentLayerable)
 
bool moveToLayer (QCPLayer *layer, bool prepend)
 
void applyAntialiasingHint (QCPPainter *painter, bool localAntialiased, QCP::AntialiasedElement overrideElement) const
 

Protected Attributes

QSharedPointer< QCPDataContainer< DataType > > mDataContainer
 
- Protected Attributes inherited from QCPAbstractPlottable
QString mName
 
bool mAntialiasedFill
 
bool mAntialiasedScatters
 
QPen mPen
 
QBrush mBrush
 
QPointer< QCPAxismKeyAxis
 
QPointer< QCPAxismValueAxis
 
QCP::SelectionType mSelectable
 
QCPDataSelection mSelection
 
QCPSelectionDecoratormSelectionDecorator
 
- Protected Attributes inherited from QCPLayerable
bool mVisible
 
QCustomPlotmParentPlot
 
QPointer< QCPLayerablemParentLayerable
 
QCPLayermLayer
 
bool mAntialiased
 

Additional Inherited Members

- Signals inherited from QCPAbstractPlottable
void selectionChanged (bool selected)
 
void selectionChanged (const QCPDataSelection &selection)
 
void selectableChanged (QCP::SelectionType selectable)
 
- Signals inherited from QCPLayerable
void layerChanged (QCPLayer *newLayer)
 

Detailed Description

template<class DataType>
class QCPAbstractPlottable1D< DataType >

A template base class for plottables with one-dimensional data.

This template class derives from QCPAbstractPlottable and from the abstract interface QCPPlottableInterface1D. It serves as a base class for all one-dimensional data (i.e. data with one key dimension), such as QCPGraph and QCPCurve.

The template parameter DataType is the type of the data points of this plottable (e.g. QCPGraphData or QCPCurveData). The main purpose of this base class is to provide the member mDataContainer (a shared pointer to a QCPDataContainer<DataType>) and implement the according virtual methods of the QCPPlottableInterface1D, such that most subclassed plottables don't need to worry about this anymore.

Further, it provides a convenience method for retrieving selected/unselected data segments via getDataSegments. This is useful when subclasses implement their draw method and need to draw selected segments with a different pen/brush than unselected segments (also see QCPSelectionDecorator).

This class implements basic functionality of QCPAbstractPlottable::selectTest and QCPPlottableInterface1D::selectTestRect, assuming point-like data points, based on the 1D data interface. In spite of that, most plottable subclasses will want to reimplement those methods again, to provide a more accurate hit test based on their specific data visualization geometry.

Definition at line 3834 of file qcustomplot.h.

Constructor & Destructor Documentation

template<class DataType >
QCPAbstractPlottable1D< DataType >::QCPAbstractPlottable1D ( QCPAxis keyAxis,
QCPAxis valueAxis 
)

Forwards keyAxis and valueAxis to the QCPAbstractPlottable constructor and allocates the mDataContainer.

Definition at line 4062 of file qcustomplot.h.

template<class DataType >
QCPAbstractPlottable1D< DataType >::~QCPAbstractPlottable1D ( )
virtual

Definition at line 4069 of file qcustomplot.h.

Member Function Documentation

template<class DataType >
int QCPAbstractPlottable1D< DataType >::dataCount ( ) const
virtual

Returns the number of data points of the plottable.

Implements QCPPlottableInterface1D.

Definition at line 4077 of file qcustomplot.h.

template<class DataType >
double QCPAbstractPlottable1D< DataType >::dataMainKey ( int  index) const
virtual

Returns the main key of the data point at the given index.

What the main key is, is defined by the plottable's data type. See the QCPDataContainer DataType documentation for details about this naming convention.

Implements QCPPlottableInterface1D.

Definition at line 4086 of file qcustomplot.h.

template<class DataType >
double QCPAbstractPlottable1D< DataType >::dataMainValue ( int  index) const
virtual

Returns the main value of the data point at the given index.

What the main value is, is defined by the plottable's data type. See the QCPDataContainer DataType documentation for details about this naming convention.

Implements QCPPlottableInterface1D.

Definition at line 4118 of file qcustomplot.h.

template<class DataType >
QPointF QCPAbstractPlottable1D< DataType >::dataPixelPosition ( int  index) const
virtual

Returns the pixel position on the widget surface at which the data point at the given index appears.

Usually this corresponds to the point of dataMainKey/dataMainValue, in pixel coordinates. However, depending on the plottable, this might be a different apparent position than just a coord-to-pixel transform of those values. For example, QCPBars apparent data values can be shifted depending on their stacking, bar grouping or configured base value.

Implements QCPPlottableInterface1D.

Reimplemented in QCPBars.

Definition at line 4150 of file qcustomplot.h.

template<class DataType >
double QCPAbstractPlottable1D< DataType >::dataSortKey ( int  index) const
virtual

Returns the sort key of the data point at the given index.

What the sort key is, is defined by the plottable's data type. See the QCPDataContainer DataType documentation for details about this naming convention.

Implements QCPPlottableInterface1D.

Definition at line 4102 of file qcustomplot.h.

template<class DataType >
QCPRange QCPAbstractPlottable1D< DataType >::dataValueRange ( int  index) const
virtual

Returns the value range of the data point at the given index.

What the value range is, is defined by the plottable's data type. See the QCPDataContainer DataType documentation for details about this naming convention.

Implements QCPPlottableInterface1D.

Definition at line 4134 of file qcustomplot.h.

template<class DataType >
void QCPAbstractPlottable1D< DataType >::drawPolyline ( QCPPainter painter,
const QVector< QPointF > &  lineData 
) const
protected

A helper method which draws a line with the passed painter, according to the pixel data in lineData. NaN points create gaps in the line, as expected from QCustomPlot's plottables (this is the main difference to QPainter's regular drawPolyline, which handles NaNs by lagging or crashing).

Further it uses a faster line drawing technique based on QCPPainter::drawLine rather than QPainter::drawPolyline if the configured QCustomPlot::setPlottingHints() and painter style allows.

Definition at line 4343 of file qcustomplot.h.

template<class DataType >
int QCPAbstractPlottable1D< DataType >::findBegin ( double  sortKey,
bool  expandedRange = true 
) const
virtual

Returns the index of the data point with a (sort-)key that is equal to, just below, or just above sortKey. If expandedRange is true, the data point just below sortKey will be considered, otherwise the one just above.

This can be used in conjunction with findEnd to iterate over data points within a given key range, including or excluding the bounding data points that are just beyond the specified range.

If expandedRange is true but there are no data points below sortKey, 0 is returned.

If the container is empty, returns 0 (in that case, findEnd will also return 0, so a loop using these methods will not iterate over the index 0).

See also
findEnd, QCPDataContainer::findBegin

Implements QCPPlottableInterface1D.

Definition at line 4229 of file qcustomplot.h.

template<class DataType >
int QCPAbstractPlottable1D< DataType >::findEnd ( double  sortKey,
bool  expandedRange = true 
) const
virtual

Returns the index one after the data point with a (sort-)key that is equal to, just above, or just below sortKey. If expandedRange is true, the data point just above sortKey will be considered, otherwise the one just below.

This can be used in conjunction with findBegin to iterate over data points within a given key range, including the bounding data points that are just below and above the specified range.

If expandedRange is true but there are no data points above sortKey, the index just above the highest data point is returned.

If the container is empty, returns 0.

See also
findBegin, QCPDataContainer::findEnd

Implements QCPPlottableInterface1D.

Definition at line 4238 of file qcustomplot.h.

template<class DataType >
void QCPAbstractPlottable1D< DataType >::getDataSegments ( QList< QCPDataRange > &  selectedSegments,
QList< QCPDataRange > &  unselectedSegments 
) const
protected

Splits all data into selected and unselected segments and outputs them via selectedSegments and unselectedSegments, respectively.

This is useful when subclasses implement their draw method and need to draw selected segments with a different pen/brush than unselected segments (also see QCPSelectionDecorator).

See also
setSelection

Definition at line 4313 of file qcustomplot.h.

template<class DataType>
QCPPlottableInterface1D * QCPAbstractPlottable1D< DataType >::interface1D ( )
inlinevirtual

Returns a QCPPlottableInterface1D pointer to this plottable, providing access to its 1D interface.

Reimplemented from QCPAbstractPlottable.

Definition at line 3856 of file qcustomplot.h.

template<class DataType >
double QCPAbstractPlottable1D< DataType >::selectTest ( const QPointF &  pos,
bool  onlySelectable,
QVariant *  details = 0 
) const
virtual

Implements a point-selection algorithm assuming the data (accessed via the 1D data interface) is point-like. Most subclasses will want to reimplement this method again, to provide a more accurate hit test based on the true data visualization geometry.

Implements QCPAbstractPlottable.

Reimplemented in QCPFinancial, QCPStatisticalBox, QCPBars, QCPCurve, and QCPGraph.

Definition at line 4251 of file qcustomplot.h.

template<class DataType >
QCPDataSelection QCPAbstractPlottable1D< DataType >::selectTestRect ( const QRectF &  rect,
bool  onlySelectable 
) const
virtual

Implements a rect-selection algorithm assuming the data (accessed via the 1D data interface) is point-like. Most subclasses will want to reimplement this method again, to provide a more accurate hit test based on the true data visualization geometry.

Implements QCPPlottableInterface1D.

Reimplemented in QCPFinancial, QCPStatisticalBox, and QCPBars.

Definition at line 4180 of file qcustomplot.h.

template<class DataType >
bool QCPAbstractPlottable1D< DataType >::sortKeyIsMainKey ( ) const
virtual

Returns whether the sort key (dataSortKey) is identical to the main key (dataMainKey).

What the sort and main keys are, is defined by the plottable's data type. See the QCPDataContainer DataType documentation for details about this naming convention.

Implements QCPPlottableInterface1D.

Definition at line 4167 of file qcustomplot.h.

Member Data Documentation

template<class DataType>
QSharedPointer<QCPDataContainer<DataType> > QCPAbstractPlottable1D< DataType >::mDataContainer
protected

Definition at line 3860 of file qcustomplot.h.


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