You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
2.6 KiB
122 lines
2.6 KiB
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** |
|
* Qwt Widget Library |
|
* Copyright (C) 1997 Josef Wilgen |
|
* Copyright (C) 2002 Uwe Rathmann |
|
* |
|
* This library is free software; you can redistribute it and/or |
|
* modify it under the terms of the Qwt License, Version 1.0 |
|
*****************************************************************************/ |
|
|
|
#ifndef QWT_SCALE_DIV_H |
|
#define QWT_SCALE_DIV_H |
|
|
|
#include "qwt_global.h" |
|
#include "qwt_valuelist.h" |
|
#include "qwt_double_interval.h" |
|
|
|
class QwtDoubleInterval; |
|
|
|
/*! |
|
\brief A class representing a scale division |
|
|
|
A scale division consists of its limits and 3 list |
|
of tick values qualified as major, medium and minor ticks. |
|
|
|
In most cases scale divisions are calculated by a QwtScaleEngine. |
|
|
|
\sa QwtScaleEngine::subDivideInto, QwtScaleEngine::subDivide |
|
*/ |
|
|
|
class QWT_EXPORT QwtScaleDiv |
|
{ |
|
public: |
|
enum TickType { |
|
NoTick = -1, |
|
|
|
MinorTick, |
|
MediumTick, |
|
MajorTick, |
|
|
|
NTickTypes |
|
}; |
|
|
|
explicit QwtScaleDiv(); |
|
explicit QwtScaleDiv(const QwtDoubleInterval &, |
|
QwtValueList[NTickTypes]); |
|
explicit QwtScaleDiv(double lBound, double rBound, |
|
QwtValueList[NTickTypes]); |
|
|
|
int operator==(const QwtScaleDiv &s) const; |
|
int operator!=(const QwtScaleDiv &s) const; |
|
|
|
void setInterval(double lBound, double rBound); |
|
void setInterval(const QwtDoubleInterval &); |
|
QwtDoubleInterval interval() const; |
|
|
|
inline double lBound() const; |
|
inline double hBound() const; |
|
inline double range() const; |
|
|
|
bool contains(double v) const; |
|
|
|
void setTicks(int type, const QwtValueList &); |
|
const QwtValueList &ticks(int type) const; |
|
|
|
void invalidate(); |
|
bool isValid() const; |
|
|
|
void invert(); |
|
|
|
private: |
|
double d_lBound; |
|
double d_hBound; |
|
QwtValueList d_ticks[NTickTypes]; |
|
|
|
bool d_isValid; |
|
}; |
|
|
|
/*! |
|
Change the interval |
|
\lBound left bound |
|
\rBound right bound |
|
*/ |
|
inline void QwtScaleDiv::setInterval(double lBound, double hBound) |
|
{ |
|
d_lBound = lBound; |
|
d_hBound = hBound; |
|
} |
|
|
|
/*! |
|
\return lBound -> hBound |
|
*/ |
|
inline QwtDoubleInterval QwtScaleDiv::interval() const |
|
{ |
|
return QwtDoubleInterval(d_lBound, d_hBound); |
|
} |
|
|
|
/*! |
|
\return left bound |
|
\sa QwtScaleDiv::hBound |
|
*/ |
|
inline double QwtScaleDiv::lBound() const |
|
{ |
|
return d_lBound; |
|
} |
|
|
|
/*! |
|
\return right bound |
|
\sa QwtScaleDiv::lBound |
|
*/ |
|
inline double QwtScaleDiv::hBound() const |
|
{ |
|
return d_hBound; |
|
} |
|
|
|
/*! |
|
\return hBound() - lBound() |
|
*/ |
|
inline double QwtScaleDiv::range() const |
|
{ |
|
return d_hBound - d_lBound; |
|
} |
|
#endif
|
|
|