Qwt源码解读之QwtInterval 类

QwtInterval 类表征一个区间,这个区间由两个double类型的上限值max和下限值min所表示。它可以表示[min, max],[min, max),(min, max]和(min, max) 等4种情况。

代码分析:

[cpp]  view plain  copy
  1. class QWT_EXPORT QwtInterval  
  2. {  
  3. public:  
  4.     /*! 
  5.       Flag indicating if a border is included or excluded  
  6.       \sa setBorderFlags(), borderFlags() 
  7.     */  
  8.     enum BorderFlag  
  9.     {  
  10.         //! Min/Max values are inside the interval  
  11.         IncludeBorders = 0x00,  
  12.         //! Min value is not included in the interval  
  13.         ExcludeMinimum = 0x01,  
  14.         //! Max value is not included in the interval  
  15.         ExcludeMaximum = 0x02,  
  16.         //! Min/Max values are not included in the interval  
  17.         ExcludeBorders = ExcludeMinimum | ExcludeMaximum  
  18.     };  
  19.     //! Border flags  
  20.     typedef QFlags<BorderFlag> BorderFlags; // 是否包含左右边界的标志变量  
  21.   
  22.     QwtInterval();  
  23.     QwtInterval( double minValue, double maxValue,  
  24.         BorderFlags = IncludeBorders );  
  25.   
  26.     void setInterval( double minValue, double maxValue,  
  27.         BorderFlags = IncludeBorders );  
  28.   
  29.     QwtInterval normalized() const;   
  30.     QwtInterval inverted() const//  反转一个区间  
  31.     QwtInterval limited( double minValue, double maxValue ) const// 同 setMinValue(minValue) & setMaxValue(maxValue)  
  32.   
  33.     bool operator==( const QwtInterval & ) const;  
  34.     bool operator!=( const QwtInterval & ) const;  
  35.   
  36.     void setBorderFlags( BorderFlags );  
  37.     BorderFlags borderFlags() const;  
  38.   
  39.     double minValue() const;  
  40.     double maxValue() const;  
  41.     double width() const// 返回区间的宽度  
  42.     void setMinValue( double );  
  43.     void setMaxValue( double );  
  44.     bool contains( double value ) const;  
  45.     bool intersects( const QwtInterval & ) const// 测试两个区间是否有交集!  
  46.     QwtInterval intersect( const QwtInterval & ) const// 取两个区间的交集  
  47.     QwtInterval unite( const QwtInterval & ) const// 取两个区间的并集  
  48.     QwtInterval operator|( const QwtInterval & ) const;  
  49.     QwtInterval operator&( const QwtInterval & ) const;  
  50.     QwtInterval &operator|=( const QwtInterval & );  
  51.     QwtInterval &operator&=( const QwtInterval & );  
  52.   
  53.     QwtInterval extend( double value ) const//  扩大一个区间  
  54.     QwtInterval operator|( double ) const;  
  55.     QwtInterval &operator|=( double );  
  56.   
  57.     bool isValid() const;  
  58.     bool isNull() const;  
  59.     void invalidate(); // 使无效(即初始化至初始状态),一个好的命名示例,如果是我们写代码,很可能写成initial();   
  60.     QwtInterval symmetrize( double value ) const// 对称化,使value成为该区间的中心点  
  61. private:  
  62.     double d_minValue;  
  63.     double d_maxValue;  
  64.     BorderFlags d_borderFlags;  
  65. };  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值