Qwt源码解读之QwtInterval 类
2016-08-09 10:34
344 查看
QwtInterval 类表征一个区间,这个区间由两个double类型的上限值max和下限值min所表示。它可以表示[min, max],[min, max),(min, max]和(min, max) 等4种情况。
代码分析:
[cpp] view
plain copy
class QWT_EXPORT QwtInterval
{
public:
/*!
Flag indicating if a border is included or excluded
\sa setBorderFlags(), borderFlags()
*/
enum BorderFlag
{
//! Min/Max values are inside the interval
IncludeBorders = 0x00,
//! Min value is not included in the interval
ExcludeMinimum = 0x01,
//! Max value is not included in the interval
ExcludeMaximum = 0x02,
//! Min/Max values are not included in the interval
ExcludeBorders = ExcludeMinimum | ExcludeMaximum
};
//! Border flags
typedef QFlags<BorderFlag> BorderFlags; // 是否包含左右边界的标志变量
QwtInterval();
QwtInterval( double minValue, double maxValue,
BorderFlags = IncludeBorders );
void setInterval( double minValue, double maxValue,
BorderFlags = IncludeBorders );
QwtInterval normalized() const;
QwtInterval inverted() const; // 反转一个区间
QwtInterval limited( double minValue, double maxValue ) const; // 同 setMinValue(minValue) & setMaxValue(maxValue)
bool operator==( const QwtInterval & ) const;
bool operator!=( const QwtInterval & ) const;
void setBorderFlags( BorderFlags );
BorderFlags borderFlags() const;
double minValue() const;
double maxValue() const;
double width() const; // 返回区间的宽度
void setMinValue( double );
void setMaxValue( double );
bool contains( double value ) const;
bool intersects( const QwtInterval & ) const; // 测试两个区间是否有交集!
QwtInterval intersect( const QwtInterval & ) const; // 取两个区间的交集
QwtInterval unite( const QwtInterval & ) const; // 取两个区间的并集
QwtInterval operator|( const QwtInterval & ) const;
QwtInterval operator&( const QwtInterval & ) const;
QwtInterval &operator|=( const QwtInterval & );
QwtInterval &operator&=( const QwtInterval & );
QwtInterval extend( double value ) const; // 扩大一个区间
QwtInterval operator|( double ) const;
QwtInterval &operator|=( double );
bool isValid() const;
bool isNull() const;
void invalidate(); // 使无效(即初始化至初始状态),一个好的命名示例,如果是我们写代码,很可能写成initial();
QwtInterval symmetrize( double value ) const; // 对称化,使value成为该区间的中心点
private:
double d_minValue;
double d_maxValue;
BorderFlags d_borderFlags;
};
代码分析:
[cpp] view
plain copy
class QWT_EXPORT QwtInterval
{
public:
/*!
Flag indicating if a border is included or excluded
\sa setBorderFlags(), borderFlags()
*/
enum BorderFlag
{
//! Min/Max values are inside the interval
IncludeBorders = 0x00,
//! Min value is not included in the interval
ExcludeMinimum = 0x01,
//! Max value is not included in the interval
ExcludeMaximum = 0x02,
//! Min/Max values are not included in the interval
ExcludeBorders = ExcludeMinimum | ExcludeMaximum
};
//! Border flags
typedef QFlags<BorderFlag> BorderFlags; // 是否包含左右边界的标志变量
QwtInterval();
QwtInterval( double minValue, double maxValue,
BorderFlags = IncludeBorders );
void setInterval( double minValue, double maxValue,
BorderFlags = IncludeBorders );
QwtInterval normalized() const;
QwtInterval inverted() const; // 反转一个区间
QwtInterval limited( double minValue, double maxValue ) const; // 同 setMinValue(minValue) & setMaxValue(maxValue)
bool operator==( const QwtInterval & ) const;
bool operator!=( const QwtInterval & ) const;
void setBorderFlags( BorderFlags );
BorderFlags borderFlags() const;
double minValue() const;
double maxValue() const;
double width() const; // 返回区间的宽度
void setMinValue( double );
void setMaxValue( double );
bool contains( double value ) const;
bool intersects( const QwtInterval & ) const; // 测试两个区间是否有交集!
QwtInterval intersect( const QwtInterval & ) const; // 取两个区间的交集
QwtInterval unite( const QwtInterval & ) const; // 取两个区间的并集
QwtInterval operator|( const QwtInterval & ) const;
QwtInterval operator&( const QwtInterval & ) const;
QwtInterval &operator|=( const QwtInterval & );
QwtInterval &operator&=( const QwtInterval & );
QwtInterval extend( double value ) const; // 扩大一个区间
QwtInterval operator|( double ) const;
QwtInterval &operator|=( double );
bool isValid() const;
bool isNull() const;
void invalidate(); // 使无效(即初始化至初始状态),一个好的命名示例,如果是我们写代码,很可能写成initial();
QwtInterval symmetrize( double value ) const; // 对称化,使value成为该区间的中心点
private:
double d_minValue;
double d_maxValue;
BorderFlags d_borderFlags;
};
相关文章推荐
- Qwt源码解读之QwtIntervalSample类和QwtSetSample类
- Qwt源码解读之区间类——QwtInterval
- Qwt源码解读之QwtIntervalSample类和QwtSetSample类
- Qwt源码解读之样本类——QwtIntervalSample、QwtSetSample、QwtOHLCSample
- Qwt源码解读之QwtInterval 类
- Qwt源码解读之QwtPlotItem类(二)
- Qwt源码解读之标尺相关类——QwtScaleDiv
- Qwt源码解读之QwtText类和QwtTextLabel类
- Qwt源码解读之QwtColorMap颜色类
- Qwt源码解读之拾取操作类(二)
- Qwt源码解读之标尺相关类
- Qwt源码解读之QwtPoint3D类
- Qwt源码解读之QwtPlotItem类(二)
- 状态状态机Qwt源码解读之QwtPickerMachine类
- Qwt源码解读之QwtPlot类
- Qwt源码解读之QwtSystemClock类和QwtSamplingThread类
- Qwt源码解读之列矩形类——QwtColumnRect
- Qwt源码解读之QwtSpline类
- Qwt源码解读之标尺相关类
- Qwt源码解读之标尺相关类——日期时间标尺绘制类QwtDateScaleDraw