Base class for scale engines. More...
#include <qwt_scale_engine.h>
Classes | |
class | PrivateData |
Public Types | |
enum | Attribute { NoAttribute = 0x00, IncludeReference = 0x01, Symmetric = 0x02, Floating = 0x04, Inverted = 0x08 } |
typedef QFlags< Attribute > | Attributes |
Layout attributes. | |
Public Member Functions | |
Attributes | attributes () const |
virtual void | autoScale (int maxNumSteps, double &x1, double &x2, double &stepSize) const =0 |
uint | base () const |
virtual QwtScaleDiv | divideScale (double x1, double x2, int maxMajorSteps, int maxMinorSteps, double stepSize=0.0) const =0 |
Calculate a scale division. | |
double | lowerMargin () const |
QwtScaleEngine (uint base=10) | |
double | reference () const |
void | setAttribute (Attribute, bool on=true) |
void | setAttributes (Attributes) |
void | setBase (uint base) |
void | setMargins (double lower, double upper) |
Specify margins at the scale's endpoints. | |
void | setReference (double reference) |
Specify a reference point. | |
void | setTransformation (QwtTransform *) |
bool | testAttribute (Attribute) const |
QwtTransform * | transformation () const |
double | upperMargin () const |
virtual | ~QwtScaleEngine () |
Destructor. | |
Protected Member Functions | |
QwtInterval | buildInterval (double v) const |
Build an interval around a value. | |
bool | contains (const QwtInterval &, double val) const |
double | divideInterval (double interval, int numSteps) const |
QList< double > | strip (const QList< double > &, const QwtInterval &) const |
Private Attributes | |
PrivateData * | d_data |
Base class for scale engines.
A scale engine tries to find "reasonable" ranges and step sizes for scales.
The layout of the scale can be varied with setAttribute().
Qwt offers implementations for logarithmic and linear scales.
Definition at line 45 of file qwt_scale_engine.h.
typedef QFlags<Attribute> QwtScaleEngine::Attributes |
Layout attributes.
Definition at line 79 of file qwt_scale_engine.h.
Layout attributes
NoAttribute |
No attributes. |
IncludeReference |
Build a scale which includes the reference() value. |
Symmetric |
Build a scale which is symmetric to the reference() value. |
Floating |
The endpoints of the scale are supposed to be equal the outmost included values plus the specified margins (see setMargins()). If this attribute is *not* set, the endpoints of the scale will be integer multiples of the step size. |
Inverted |
Turn the scale upside down. |
Definition at line 54 of file qwt_scale_engine.h.
QwtScaleEngine::QwtScaleEngine | ( | uint | base = 10 | ) | [explicit] |
Constructor
base | Base of the scale engine |
Definition at line 227 of file qwt_scale_engine.cpp.
QwtScaleEngine::~QwtScaleEngine | ( | ) | [virtual] |
Destructor.
Definition at line 235 of file qwt_scale_engine.cpp.
Definition at line 455 of file qwt_scale_engine.cpp.
virtual void QwtScaleEngine::autoScale | ( | int | maxNumSteps, |
double & | x1, | ||
double & | x2, | ||
double & | stepSize | ||
) | const [pure virtual] |
Align and divide an interval
maxNumSteps | Max. number of steps |
x1 | First limit of the interval (In/Out) |
x2 | Second limit of the interval (In/Out) |
stepSize | Step size (Return value) |
Implemented in QwtLogScaleEngine, QwtLinearScaleEngine, and QwtDateScaleEngine.
uint QwtScaleEngine::base | ( | ) | const |
Definition at line 504 of file qwt_scale_engine.cpp.
QwtInterval QwtScaleEngine::buildInterval | ( | double | value | ) | const [protected] |
Build an interval around a value.
In case of v == 0.0 the interval is [-0.5, 0.5], otherwide it is [0.5 * v, 1.5 * v]
value | Initial value |
Definition at line 400 of file qwt_scale_engine.cpp.
bool QwtScaleEngine::contains | ( | const QwtInterval & | interval, |
double | value | ||
) | const [protected] |
Check if an interval "contains" a value
interval | Interval |
value | Value |
Definition at line 346 of file qwt_scale_engine.cpp.
double QwtScaleEngine::divideInterval | ( | double | intervalSize, |
int | numSteps | ||
) | const [protected] |
Calculate a step size for an interval size
intervalSize | Interval size |
numSteps | Number of steps |
Definition at line 331 of file qwt_scale_engine.cpp.
virtual QwtScaleDiv QwtScaleEngine::divideScale | ( | double | x1, |
double | x2, | ||
int | maxMajorSteps, | ||
int | maxMinorSteps, | ||
double | stepSize = 0.0 |
||
) | const [pure virtual] |
Calculate a scale division.
x1 | First interval limit |
x2 | Second interval limit |
maxMajorSteps | Maximum for the number of major steps |
maxMinorSteps | Maximum number of minor steps |
stepSize | Step size. If stepSize == 0.0, the scaleEngine calculates one. |
Implemented in QwtLogScaleEngine, QwtLinearScaleEngine, and QwtDateScaleEngine.
double QwtScaleEngine::lowerMargin | ( | ) | const |
Definition at line 285 of file qwt_scale_engine.cpp.
double QwtScaleEngine::reference | ( | ) | const |
Definition at line 478 of file qwt_scale_engine.cpp.
void QwtScaleEngine::setAttribute | ( | Attribute | attribute, |
bool | on = true |
||
) |
Change a scale attribute
attribute | Attribute to change |
on | On/Off |
Definition at line 421 of file qwt_scale_engine.cpp.
void QwtScaleEngine::setAttributes | ( | Attributes | attributes | ) |
Change the scale attribute
attributes | Set scale attributes |
Definition at line 446 of file qwt_scale_engine.cpp.
void QwtScaleEngine::setBase | ( | uint | base | ) |
Set the base of the scale engine
While a base of 10 is what 99.9% of all applications need certain scales might need a different base: f.e 2
The default setting is 10
base | Base of the engine |
Definition at line 495 of file qwt_scale_engine.cpp.
void QwtScaleEngine::setMargins | ( | double | lower, |
double | upper | ||
) |
Specify margins at the scale's endpoints.
lower | minimum distance between the scale's lower boundary and the smallest enclosed value |
upper | minimum distance between the scale's upper boundary and the greatest enclosed value |
Margins can be used to leave a minimum amount of space between the enclosed intervals and the boundaries of the scale.
Definition at line 317 of file qwt_scale_engine.cpp.
void QwtScaleEngine::setReference | ( | double | r | ) |
Specify a reference point.
r | new reference value |
The reference point is needed if options IncludeReference or Symmetric are active. Its default value is 0.0.
Definition at line 469 of file qwt_scale_engine.cpp.
void QwtScaleEngine::setTransformation | ( | QwtTransform * | transform | ) |
Assign a transformation
transform | Transformation |
The transformation object is used as factory for clones that are returned by transformation()
The scale engine takes ownership of the transformation.
Definition at line 253 of file qwt_scale_engine.cpp.
QList< double > QwtScaleEngine::strip | ( | const QList< double > & | ticks, |
const QwtInterval & | interval | ||
) | const [protected] |
Remove ticks from a list, that are not inside an interval
ticks | Tick list |
interval | Interval |
Definition at line 369 of file qwt_scale_engine.cpp.
bool QwtScaleEngine::testAttribute | ( | Attribute | attribute | ) | const |
attribute | Attribute to be tested |
Definition at line 435 of file qwt_scale_engine.cpp.
QwtTransform * QwtScaleEngine::transformation | ( | ) | const |
Create and return a clone of the transformation of the engine. When the engine has no special transformation NULL is returned, indicating no transformation.
Definition at line 270 of file qwt_scale_engine.cpp.
double QwtScaleEngine::upperMargin | ( | ) | const |
Definition at line 296 of file qwt_scale_engine.cpp.
PrivateData* QwtScaleEngine::d_data [private] |
Reimplemented in QwtDateScaleEngine.
Definition at line 141 of file qwt_scale_engine.h.