qwt_scale_map.h
Go to the documentation of this file.
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_SCALE_MAP_H
11 #define QWT_SCALE_MAP_H
12 
13 #include "qwt_global.h"
14 #include "qwt_transform.h"
15 
16 class QPointF;
17 class QRectF;
18 
27 {
28 public:
29  QwtScaleMap();
30  QwtScaleMap( const QwtScaleMap& );
31 
32  ~QwtScaleMap();
33 
34  QwtScaleMap &operator=( const QwtScaleMap & );
35 
36  void setTransformation( QwtTransform * );
37  const QwtTransform *transformation() const;
38 
39  void setPaintInterval( double p1, double p2 );
40  void setScaleInterval( double s1, double s2 );
41 
42  double transform( double s ) const;
43  double invTransform( double p ) const;
44 
45  double p1() const;
46  double p2() const;
47 
48  double s1() const;
49  double s2() const;
50 
51  double pDist() const;
52  double sDist() const;
53 
54  static QRectF transform( const QwtScaleMap &,
55  const QwtScaleMap &, const QRectF & );
56 
57  static QRectF invTransform( const QwtScaleMap &,
58  const QwtScaleMap &, const QRectF & );
59 
60  static QPointF transform( const QwtScaleMap &,
61  const QwtScaleMap &, const QPointF & );
62 
63  static QPointF invTransform( const QwtScaleMap &,
64  const QwtScaleMap &, const QPointF & );
65 
66  bool isInverting() const;
67 
68 private:
69  void updateFactor();
70 
71  double d_s1, d_s2; // scale interval boundaries
72  double d_p1, d_p2; // paint device interval boundaries
73 
74  double d_cnv; // conversion factor
75  double d_ts1;
76 
78 };
79 
83 inline double QwtScaleMap::s1() const
84 {
85  return d_s1;
86 }
87 
91 inline double QwtScaleMap::s2() const
92 {
93  return d_s2;
94 }
95 
99 inline double QwtScaleMap::p1() const
100 {
101  return d_p1;
102 }
103 
107 inline double QwtScaleMap::p2() const
108 {
109  return d_p2;
110 }
111 
115 inline double QwtScaleMap::pDist() const
116 {
117  return qAbs( d_p2 - d_p1 );
118 }
119 
123 inline double QwtScaleMap::sDist() const
124 {
125  return qAbs( d_s2 - d_s1 );
126 }
127 
137 inline double QwtScaleMap::transform( double s ) const
138 {
139  if ( d_transform )
140  s = d_transform->transform( s );
141 
142  return d_p1 + ( s - d_ts1 ) * d_cnv;
143 }
144 
154 inline double QwtScaleMap::invTransform( double p ) const
155 {
156  double s = d_ts1 + ( p - d_p1 ) / d_cnv;
157  if ( d_transform )
158  s = d_transform->invTransform( s );
159 
160  return s;
161 }
162 
164 inline bool QwtScaleMap::isInverting() const
165 {
166  return ( ( d_p1 < d_p2 ) != ( d_s1 < d_s2 ) );
167 }
168 
169 #ifndef QT_NO_DEBUG_STREAM
170 QWT_EXPORT QDebug operator<<( QDebug, const QwtScaleMap & );
171 #endif
172 
173 #endif
double p1() const
Definition: qwt_scale_map.h:99
double p2() const
double s1() const
Definition: qwt_scale_map.h:83
#define QWT_EXPORT
Definition: qwt_global.h:38
double sDist() const
QwtTransform * d_transform
Definition: qwt_scale_map.h:77
double d_cnv
Definition: qwt_scale_map.h:74
double s2() const
Definition: qwt_scale_map.h:91
A transformation between coordinate systems.
Definition: qwt_transform.h:35
QWT_EXPORT QDebug operator<<(QDebug, const QwtScaleMap &)
A scale map.
Definition: qwt_scale_map.h:26
double invTransform(double p) const
double pDist() const
bool isInverting() const
double d_ts1
Definition: qwt_scale_map.h:75
double transform(double s) const


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 03:48:10