Public Member Functions | Public Attributes

QwtScaleMap Class Reference

A scale map. More...

#include <qwt_scale_map.h>

Collaboration diagram for QwtScaleMap:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 QwtScaleMap ()
 Constructor.
 QwtScaleMap (const QwtScaleMap &)
 Copy constructor.
 ~QwtScaleMap ()
QwtScaleMapoperator= (const QwtScaleMap &)
 Assignment operator.
void setTransformation (QwtScaleTransformation *)
const QwtScaleTransformationtransformation () const
 Get the transformation.
void setPaintInterval (int p1, int p2)
 Specify the borders of the paint device interval.
void setPaintXInterval (double p1, double p2)
 Specify the borders of the paint device interval.
void setScaleInterval (double s1, double s2)
 Specify the borders of the scale interval.
int transform (double x) const
double invTransform (double i) const
double xTransform (double x) const
double p1 () const
double p2 () const
double s1 () const
double s2 () const
double pDist () const
double sDist () const

Public Attributes

QT_STATIC_CONST double LogMin = 1.0e-150
QT_STATIC_CONST double LogMax = 1.0e150

Detailed Description

A scale map.

QwtScaleMap offers transformations from a scale into a paint interval and vice versa.

Definition at line 56 of file qwt_scale_map.h.


Constructor & Destructor Documentation

QwtScaleMap::QwtScaleMap (  )

Constructor.

The scale and paint device intervals are both set to [0,1].

Definition at line 86 of file qwt_scale_map.cpp.

References QwtScaleTransformation::Linear.

                        :
    d_s1(0.0),
    d_s2(1.0),
    d_p1(0.0),
    d_p2(1.0),
    d_cnv(1.0)
{
    d_transformation = new QwtScaleTransformation(
        QwtScaleTransformation::Linear);
}
QwtScaleMap::QwtScaleMap ( const QwtScaleMap other )

Copy constructor.

Definition at line 98 of file qwt_scale_map.cpp.

References QwtScaleTransformation::copy().

                                                :
    d_s1(other.d_s1),
    d_s2(other.d_s2),
    d_p1(other.d_p1),
    d_p2(other.d_p2),
    d_cnv(other.d_cnv)
{
    d_transformation = other.d_transformation->copy();
}
QwtScaleMap::~QwtScaleMap (  )

Destructor

Definition at line 111 of file qwt_scale_map.cpp.

{
    delete d_transformation;
}

Member Function Documentation

double QwtScaleMap::invTransform ( double  p ) const [inline]

Transform an paint device value into a value in the interval of the scale.

Parameters:
pValue relative to the coordinates of the paint device
See also:
transform()

Definition at line 175 of file qwt_scale_map.h.

References QwtScaleTransformation::invXForm().

Referenced by QwtPainter::drawColorBar(), QwtSlider::getValue(), QwtPlotPicker::invTransform(), QwtPlotItem::invTransform(), QwtPlotPanner::moveCanvas(), and QwtPlotSpectrogram::renderImage().

{
    return d_transformation->invXForm(p, d_p1, d_p2, d_s1, d_s2 );
}
QwtScaleMap & QwtScaleMap::operator= ( const QwtScaleMap other )

Assignment operator.

Definition at line 117 of file qwt_scale_map.cpp.

References QwtScaleTransformation::copy().

{
    d_s1 = other.d_s1;
    d_s2 = other.d_s2;
    d_p1 = other.d_p1;
    d_p2 = other.d_p2;
    d_cnv = other.d_cnv;

    delete d_transformation;
    d_transformation = other.d_transformation->copy();

    return *this;
}
double QwtScaleMap::p1 (  ) const [inline]
Returns:
First border of the paint interval

Definition at line 120 of file qwt_scale_map.h.

Referenced by QwtSlider::getScrollMode(), QwtPlotItem::paintRect(), QwtPlotSpectrogram::renderImage(), setPaintInterval(), and setPaintXInterval().

{
    return d_p1;
}
double QwtScaleMap::p2 (  ) const [inline]
Returns:
Second border of the paint interval

Definition at line 128 of file qwt_scale_map.h.

Referenced by QwtSlider::getScrollMode(), QwtPlotSpectrogram::renderImage(), setPaintInterval(), and setPaintXInterval().

{
    return d_p2;
}
double QwtScaleMap::pDist (  ) const [inline]
Returns:
qwtAbs(p2() - p1())

Definition at line 136 of file qwt_scale_map.h.

References qwtAbs.

Referenced by QwtPlotItem::paintRect().

{
    return qwtAbs(d_p2 - d_p1);
}
double QwtScaleMap::s1 (  ) const [inline]
Returns:
First border of the scale interval

Definition at line 104 of file qwt_scale_map.h.

Referenced by QwtPlotSpectrogram::renderImage(), QwtPlotItem::scaleRect(), and setScaleInterval().

{
    return d_s1;
}
double QwtScaleMap::s2 (  ) const [inline]
Returns:
Second border of the scale interval

Definition at line 112 of file qwt_scale_map.h.

Referenced by QwtPlotSpectrogram::renderImage(), and setScaleInterval().

{
    return d_s2;
}
double QwtScaleMap::sDist (  ) const [inline]
Returns:
qwtAbs(s2() - s1())

Definition at line 144 of file qwt_scale_map.h.

References qwtAbs.

Referenced by QwtPlotItem::scaleRect().

{
    return qwtAbs(d_s2 - d_s1);
}
void QwtScaleMap::setPaintInterval ( int  p1,
int  p2 
)

Specify the borders of the paint device interval.

Parameters:
p1first border
p2second border

Definition at line 184 of file qwt_scale_map.cpp.

References QwtScaleTransformation::Other, p1(), p2(), and QwtScaleTransformation::type().

Referenced by QwtPlot::canvasMap(), QwtPlotRasterItem::draw(), QwtPainter::drawColorBar(), QwtThermo::layoutThermo(), QwtRoundScaleDraw::QwtRoundScaleDraw(), QwtPlotSpectrogram::renderImage(), QwtRoundScaleDraw::setAngleRange(), and QwtPlotSvgItem::viewBox().

{
    d_p1 = p1;
    d_p2 = p2;

    if ( d_transformation->type() != QwtScaleTransformation::Other )
        newFactor();
}
void QwtScaleMap::setPaintXInterval ( double  p1,
double  p2 
)

Specify the borders of the paint device interval.

Parameters:
p1first border
p2second border

Definition at line 198 of file qwt_scale_map.cpp.

References QwtScaleTransformation::Other, p1(), p2(), and QwtScaleTransformation::type().

Referenced by QwtSlider::layoutSlider(), and QwtPlot::print().

{
    d_p1 = p1;
    d_p2 = p2;

    if ( d_transformation->type() != QwtScaleTransformation::Other )
        newFactor();
}
void QwtScaleMap::setScaleInterval ( double  s1,
double  s2 
)

Specify the borders of the scale interval.

Parameters:
s1first border
s2second border
Warning:
logarithmic scales might be aligned to [LogMin, LogMax]

Definition at line 157 of file qwt_scale_map.cpp.

References QwtScaleTransformation::Log10, LogMax, LogMin, QwtScaleTransformation::Other, s1(), s2(), and QwtScaleTransformation::type().

Referenced by QwtPlot::canvasMap(), QwtPlot::print(), QwtThermo::PrivateData::PrivateData(), QwtSlider::rangeChange(), QwtPlotSpectrogram::renderImage(), QwtThermo::setRange(), QwtAbstractScaleDraw::setScaleDiv(), setTransformation(), and QwtPlotSvgItem::viewBox().

{
    if (d_transformation->type() == QwtScaleTransformation::Log10 )
    {
        if (s1 < LogMin) 
           s1 = LogMin;
        else if (s1 > LogMax) 
           s1 = LogMax;
        
        if (s2 < LogMin) 
           s2 = LogMin;
        else if (s2 > LogMax) 
           s2 = LogMax;
    }

    d_s1 = s1;
    d_s2 = s2;

    if ( d_transformation->type() != QwtScaleTransformation::Other )
        newFactor();
}
void QwtScaleMap::setTransformation ( QwtScaleTransformation transformation )

Initialize the map with a transformation

Definition at line 134 of file qwt_scale_map.cpp.

References setScaleInterval(), and transformation().

Referenced by QwtPlot::canvasMap(), QwtPlot::print(), QwtThermo::setRange(), and QwtAbstractScaleDraw::setTransformation().

{
    if ( transformation == NULL )
        return;

    delete d_transformation;
    d_transformation = transformation;
    setScaleInterval(d_s1, d_s2);
}
int QwtScaleMap::transform ( double  s ) const [inline]

Transform a point related to the scale interval into an point related to the interval of the paint device and round it to an integer. (In Qt <= 3.x paint devices are integer based. )

Parameters:
sValue relative to the coordinates of the scale
See also:
xTransform()

Definition at line 188 of file qwt_scale_map.h.

References xTransform().

Referenced by QwtPlotCurve::closePolyline(), QwtPlotScaleItem::draw(), QwtPlotMarker::draw(), QmitkHistogram::draw(), QwtPlotSpectrogram::drawContourLines(), QwtPlotCurve::drawDots(), QwtRoundScaleDraw::drawLabel(), QwtPlotCurve::drawLines(), QwtPlotCurve::drawSteps(), QwtPlotCurve::drawSticks(), QwtPlotCurve::drawSymbols(), QwtRoundScaleDraw::drawTick(), QwtRoundScaleDraw::extent(), QwtScaleDraw::labelPosition(), QwtPlotPanner::moveCanvas(), QwtPlotPicker::transform(), QwtPlotItem::transform(), and QwtSlider::xyPosition().

{
    return qRound(xTransform(s));
}
const QwtScaleTransformation * QwtScaleMap::transformation (  ) const

Get the transformation.

Definition at line 146 of file qwt_scale_map.cpp.

Referenced by QwtPlotScaleItem::draw(), QwtScaleWidget::setScaleDiv(), and setTransformation().

{
    return d_transformation;
}
double QwtScaleMap::xTransform ( double  s ) const [inline]

Transform a point related to the scale interval into an point related to the interval of the paint device

Parameters:
sValue relative to the coordinates of the scale

Definition at line 155 of file qwt_scale_map.h.

References QwtScaleTransformation::Linear, QuadProgPP::log(), QwtScaleTransformation::Log10, QwtScaleTransformation::type(), and QwtScaleTransformation::xForm().

Referenced by QwtPlotCurve::closestPoint(), QwtPlotCurve::drawLines(), transform(), and QwtPlotSvgItem::viewBox().

{
    // try to inline code from QwtScaleTransformation

    if ( d_transformation->type() == QwtScaleTransformation::Linear )
        return d_p1 + (s - d_s1) * d_cnv;

    if ( d_transformation->type() == QwtScaleTransformation::Log10 )
        return d_p1 + log(s / d_s1) * d_cnv;

    return d_transformation->xForm(s, d_s1, d_s2, d_p1, d_p2 );
}

Member Data Documentation

QT_STATIC_CONST_IMPL double QwtScaleMap::LogMax = 1.0e150

Definition at line 88 of file qwt_scale_map.h.

Referenced by setScaleInterval().

QT_STATIC_CONST_IMPL double QwtScaleMap::LogMin = 1.0e-150

Definition at line 87 of file qwt_scale_map.h.

Referenced by setScaleInterval().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines