ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
QCPDataRange Class Reference

Describes a data range given by begin and end index. More...

#include <qcustomplot.h>

Public Member Functions

 QCPDataRange ()
 
 QCPDataRange (int begin, int end)
 
bool operator== (const QCPDataRange &other) const
 
bool operator!= (const QCPDataRange &other) const
 
int begin () const
 
int end () const
 
int size () const
 
int length () const
 
void setBegin (int begin)
 
void setEnd (int end)
 
bool isValid () const
 
bool isEmpty () const
 
QCPDataRange bounded (const QCPDataRange &other) const
 
QCPDataRange expanded (const QCPDataRange &other) const
 
QCPDataRange intersection (const QCPDataRange &other) const
 
QCPDataRange adjusted (int changeBegin, int changeEnd) const
 
bool intersects (const QCPDataRange &other) const
 
bool contains (const QCPDataRange &other) const
 

Related Functions

(Note that these are not member functions.)

QDebug operator<< (QDebug d, const QCPDataRange &dataRange)
 

Detailed Description

Describes a data range given by begin and end index.

QCPDataRange holds two integers describing the begin (setBegin) and end (setEnd) index of a contiguous set of data points. The end index points to the data point just after the last data point that's part of the data range, similarly to the nomenclature used in standard iterators.

Data Ranges are not bound to a certain plottable, thus they can be freely exchanged, created and modified. If a non-contiguous data set shall be described, the class QCPDataSelection is used, which holds and manages multiple instances of QCPDataRange. In most situations, QCPDataSelection is thus used.

Both QCPDataRange and QCPDataSelection offer convenience methods to work with them, e.g. bounded, expanded, intersects, intersection, adjusted, contains. Further, addition and subtraction operators (defined in QCPDataSelection) can be used to join/subtract data ranges and data selections (or mixtures), to retrieve a corresponding QCPDataSelection.

QCustomPlot's data selection mechanism is based on QCPDataSelection and QCPDataRange.

Note
Do not confuse QCPDataRange with QCPRange. A QCPRange describes an interval in floating point plot coordinates, e.g. the current axis range.

Definition at line 1105 of file qcustomplot.h.

Constructor & Destructor Documentation

◆ QCPDataRange() [1/2]

QCPDataRange::QCPDataRange ( )

Creates an empty QCPDataRange, with begin and end set to 0.

Definition at line 2194 of file qcustomplot.cpp.

Referenced by bounded(), expanded(), and intersection().

◆ QCPDataRange() [2/2]

QCPDataRange::QCPDataRange ( int  begin,
int  end 
)

Creates a QCPDataRange, initialized with the specified begin and end.

No checks or corrections are made to ensure the resulting range is valid (isValid).

Definition at line 2202 of file qcustomplot.cpp.

Member Function Documentation

◆ adjusted()

QCPDataRange QCPDataRange::adjusted ( int  changeBegin,
int  changeEnd 
) const
inline

const

Returns a data range where changeBegin and changeEnd were added to the begin and end indices, respectively.

Definition at line 1133 of file qcustomplot.h.

Referenced by QCPGraph::draw(), and QCPCurve::draw().

◆ begin()

◆ bounded()

QCPDataRange QCPDataRange::bounded ( const QCPDataRange other) const

Returns a data range that matches this data range, except that parts exceeding other are excluded.

This method is very similar to intersection, with one distinction: If this range and the other range share no intersection, the returned data range will be empty with begin and end set to the respective boundary side of other, at which this range is residing. (intersection would just return a range with begin and end set to 0.)

Definition at line 2214 of file qcustomplot.cpp.

References intersection(), QCPDataRange(), and result.

Referenced by QCPErrorBars::getVisibleDataBounds(), and QCPDataContainer< DataType >::limitIteratorsToDataRange().

◆ contains()

bool QCPDataRange::contains ( const QCPDataRange other) const

Returns whether all data points of other are also contained inside this data range.

See also
intersects

Definition at line 2271 of file qcustomplot.cpp.

◆ end()

◆ expanded()

QCPDataRange QCPDataRange::expanded ( const QCPDataRange other) const

Returns a data range that contains both this data range as well as other.

Definition at line 2231 of file qcustomplot.cpp.

References QCPDataRange().

Referenced by QCPDataSelection::inverse().

◆ intersection()

QCPDataRange QCPDataRange::intersection ( const QCPDataRange other) const

Returns the data range which is contained in both this data range and other.

This method is very similar to bounded, with one distinction: If this range and the other range share no intersection, the returned data range will be empty with begin and end set to 0. (bounded would return a range with begin and end set to one of the boundaries of other, depending on which side this range is on.)

See also
QCPDataSelection::intersection

Definition at line 2247 of file qcustomplot.cpp.

References QCPDataRange(), and result.

Referenced by bounded().

◆ intersects()

bool QCPDataRange::intersects ( const QCPDataRange other) const

Returns whether this data range and other share common data points.

See also
intersection, contains

Definition at line 2260 of file qcustomplot.cpp.

◆ isEmpty()

bool QCPDataRange::isEmpty ( ) const
inline

Returns whether this range is empty, i.e. whether its begin index equals its end index.

See also
size, length

Definition at line 1129 of file qcustomplot.h.

Referenced by QCPErrorBars::getVisibleDataBounds(), QCPGraph::getVisibleDataBounds(), and QCPDataSelection::operator-=().

◆ isValid()

bool QCPDataRange::isValid ( ) const
inline

Returns whether this range is valid. A valid range has a begin index greater or equal to 0, and an end index greater or equal to the begin index.

Note
Invalid ranges should be avoided and are never the result of any of QCustomPlot's methods (unless they are themselves fed with invalid ranges). Do not pass invalid ranges to QCustomPlot's methods. The invalid range is not inherently prevented in QCPDataRange, to allow temporary invalid begin/end values while manipulating the range. An invalid range is not necessarily empty (isEmpty), since its length can be negative and thus non-zero.

Definition at line 1128 of file qcustomplot.h.

◆ length()

int QCPDataRange::length ( ) const
inline

Returns the number of data points described by this data range. Equivalent to size.

Definition at line 1121 of file qcustomplot.h.

References size.

◆ operator!=()

bool QCPDataRange::operator!= ( const QCPDataRange other) const
inline

Definition at line 1113 of file qcustomplot.h.

◆ operator==()

bool QCPDataRange::operator== ( const QCPDataRange other) const
inline

Definition at line 1110 of file qcustomplot.h.

◆ setBegin()

void QCPDataRange::setBegin ( int  begin)
inline

Sets the begin of this data range. The begin index points to the first data point that is part of the data range.

No checks or corrections are made to ensure the resulting range is valid (isValid).

See also
setEnd

Definition at line 1124 of file qcustomplot.h.

Referenced by QCPGraph::getNonNanSegments().

◆ setEnd()

void QCPDataRange::setEnd ( int  end)
inline

Sets the end of this data range. The end index points to the data point just after the last data point that is part of the data range.

No checks or corrections are made to ensure the resulting range is valid (isValid).

See also
setBegin

Definition at line 1125 of file qcustomplot.h.

Referenced by QCPGraph::getNonNanSegments().

◆ size()

int QCPDataRange::size ( ) const
inline

Returns the number of data points described by this data range. This is equal to the end index minus the begin index.

See also
length

Definition at line 1120 of file qcustomplot.h.

Referenced by QCPGraph::getChannelFillPolygon(), and QCPGraph::getFillPolygon().

Friends And Related Function Documentation

◆ operator<<()

QDebug operator<< ( QDebug  d,
const QCPDataRange dataRange 
)
related

Prints dataRange in a human readable format to the qDebug output.

Definition at line 1300 of file qcustomplot.h.

References begin(), and end().


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