# QwtLinearScaleEngine Class Reference

A scale engine for linear scales. More...

`#include <qwt_scale_engine.h>`

Inheritance diagram for QwtLinearScaleEngine:
[legend]

List of all members.

## Public Types

enum | Attribute { NoAttribute = 0x00, IncludeReference = 0x01, Symmetric = 0x02, Floating = 0x04, Inverted = 0x08 }
typedef QFlags< Attribute > | Attributes

## Public Member Functions

Attributes | attributes () const
virtual void | autoScale (int maxSteps, double &x1, double &x2, double &stepSize) const
virtual QwtScaleDiv | divideScale (double x1, double x2, int numMajorSteps, int numMinorSteps, double stepSize=0.0) const
double | lowerMargin () const
double | reference () const
void | setAttribute (Attribute, bool on=true)
void | setAttributes (Attributes)
void | setMargins (double lower, double upper)
void | setReference (double reference)
bool | testAttribute (Attribute) const
virtual QwtScaleTransformation * | transformation () const
double | upperMargin () const

## Protected Member Functions

QwtInterval | align (const QwtInterval &, double stepSize) const
QwtInterval | buildInterval (double v) const
QList< double > | buildMajorTicks (const QwtInterval &interval, double stepSize) const
void | buildMinorTicks (const QList< double > &majorTicks, int maxMinMark, double step, QList< double > &, QList< double > &) const
void | buildTicks (const QwtInterval &, double stepSize, int maxMinSteps, QList< double > ticks[QwtScaleDiv::NTickTypes]) const
bool | contains (const QwtInterval &, double val) const
double | divideInterval (double interval, int numSteps) const
QList< double > | strip (const QList< double > &, const QwtInterval &) const

## Detailed Description

A scale engine for linear scales.

The step size will fit into the pattern , where n is an integer.

## Member Typedef Documentation

typedef QFlags<Attribute> QwtScaleEngine::Attributes`[inherited]`

Layout attributes.

## Member Enumeration Documentation

enum QwtScaleEngine::Attribute`[inherited]`

Layout attributes

See also:
  setAttribute(), testAttribute(), reference(), lowerMargin(), upperMargin()

Enumerator:

  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.

## Member Function Documentation

QwtInterval QwtLinearScaleEngine::align | ( | const QwtInterval & | interval,
|  | double | stepSize
| ) |  | const`[protected]`

Align an interval to a step size.

The limits of an interval are aligned that both are integer multiples of the step size.

Parameters:

  interval | Interval
  stepSize | Step size

Returns:
  Aligned interval

QwtScaleEngine::Attributes QwtScaleEngine::attributes | ( |  | ) | const`[inherited]`

Return the scale attributes

See also:
  Attribute, setAttributes(), testAttribute()

void QwtLinearScaleEngine::autoScale | ( | int | maxNumSteps,
|  | double & | x1,
|  | double & | x2,
|  | double & | stepSize
| ) |  | const`[virtual]`

Align and divide an interval

Parameters:

  maxNumSteps | Max. number of steps
  x1 | First limit of the interval (In/Out)
  x2 | Second limit of the interval (In/Out)
  stepSize | Step size (Out)

See also:
  setAttribute()

Implements QwtScaleEngine.

QwtInterval QwtScaleEngine::buildInterval | ( | double | v | ) | const`[protected, inherited]`

Build an interval for a value.

In case of v == 0.0 the interval is [-0.5, 0.5], otherwide it is [0.5 * v, 1.5 * v]

QList< double > QwtLinearScaleEngine::buildMajorTicks | ( | const QwtInterval & | interval,
|  | double | stepSize
| ) |  | const`[protected]`

Calculate major ticks for an interval.

Parameters:

  interval | Interval
  stepSize | Step size

Returns:
  Calculated ticks

void QwtLinearScaleEngine::buildMinorTicks | ( | const QList< double > & | majorTicks,
|  | int | maxMinSteps,
|  | double | stepSize,
|  | QList< double > & | minorTicks,
|  | QList< double > & | mediumTicks
| ) |  | const`[protected]`

Calculate minor/medium ticks for major ticks.

Parameters:

  majorTicks | Major ticks
  maxMinSteps | Maximum number of minor steps
  stepSize | Step size
  minorTicks | Array to be filled with the calculated minor ticks
  mediumTicks | Array to be filled with the calculated medium ticks

void QwtLinearScaleEngine::buildTicks | ( | const QwtInterval & | interval,
|  | double | stepSize,
|  | int | maxMinSteps,
|  | QList< double > | ticks[QwtScaleDiv::NTickTypes]
| ) |  | const`[protected]`

Calculate ticks for an interval.

Parameters:

  interval | Interval
  stepSize | Step size
  maxMinSteps | Maximum number of minor steps
  ticks | Arrays to be filled with the calculated ticks

See also:
  buildMajorTicks(), buildMinorTicks

bool QwtScaleEngine::contains | ( | const QwtInterval & | interval,
|  | double | value
| ) |  | const`[protected, inherited]`

Check if an interval "contains" a value

Parameters:

  interval | Interval
  value | Value

See also:
  QwtScaleArithmetic::compareEps()

double QwtScaleEngine::divideInterval | ( | double | intervalSize,
|  | int | numSteps
| ) |  | const`[protected, inherited]`

Calculate a step size for an interval size

Parameters:

  intervalSize | Interval size
  numSteps | Number of steps

Returns:
  Step size

QwtScaleDiv QwtLinearScaleEngine::divideScale | ( | double | x1,
|  | double | x2,
|  | int | maxMajSteps,
|  | int | maxMinSteps,
|  | double | stepSize = `0.0`
| ) |  | const`[virtual]`

Calculate a scale division.

Parameters:

  x1 | First interval limit
  x2 | Second interval limit
  maxMajSteps | Maximum for the number of major steps
  maxMinSteps | Maximum number of minor steps
  stepSize | Step size. If stepSize == 0, the scaleEngine calculates one.

See also:
  QwtScaleEngine::stepSize(), QwtScaleEngine::subDivide()

Implements QwtScaleEngine.

double QwtScaleEngine::lowerMargin | ( |  | ) | const`[inherited]`

Returns:
  the margin at the lower end of the scale The default margin is 0.

See also:
  setMargins()

double QwtScaleEngine::reference | ( |  | ) | const`[inherited]`

Returns:
  the reference value

See also:
  setReference(), setAttribute()

void QwtScaleEngine::setAttribute | ( | Attribute | attribute,
|  | bool | on = `true`
| ) |  | `[inherited]`

Change a scale attribute

Parameters:

  attribute | Attribute to change
  on | On/Off

See also:
  Attribute, testAttribute()

void QwtScaleEngine::setAttributes | ( | Attributes | attributes | ) | `[inherited]`

Change the scale attribute

Parameters:

  attributes | Set scale attributes

See also:
  Attribute, attributes()

void QwtScaleEngine::setMargins | ( | double | lower,
|  | double | upper
| ) |  | `[inherited]`

Specify margins at the scale's endpoints.

Parameters:

  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.

Warning:
  - QwtLog10ScaleEngine measures the margins in decades.

See also:
  upperMargin(), lowerMargin()

void QwtScaleEngine::setReference | ( | double | r | ) | `[inherited]`

Specify a reference point.

Parameters:

  r | new reference value

The reference point is needed if options IncludeReference or Symmetric are active. Its default value is 0.0.

See also:
  Attribute

QList< double > QwtScaleEngine::strip | ( | const QList< double > & | ticks,
|  | const QwtInterval & | interval
| ) |  | const`[protected, inherited]`

Remove ticks from a list, that are not inside an interval

Parameters:

  ticks | Tick list
  interval | Interval

Returns:
  Stripped tick list

bool QwtScaleEngine::testAttribute | ( | Attribute | attribute | ) | const`[inherited]`

Check if a attribute is set.

Parameters:

  attribute | Attribute to be tested

See also:
  Attribute, setAttribute()

QwtScaleTransformation * QwtLinearScaleEngine::transformation | ( |  | ) | const`[virtual]`

Return a transformation, for linear scales

Implements QwtScaleEngine.

double QwtScaleEngine::upperMargin | ( |  | ) | const`[inherited]`

Returns:
  the margin at the upper end of the scale The default margin is 0.

See also:
  setMargins()