Qwt源码解读之QwtInterval 类

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

代码分析:

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;
};







  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值