1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/* -*- 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