QGIS API Documentation  2.99.0-Master (b8fd1fd)
qgsmapunitscale.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmapunitscale.h
3  Struct for storing maximum and minimum scales for measurements in map units
4  -------------------
5  begin : April 2014
6  copyright : (C) Sandro Mani
7  email : smani at sourcepole dot ch
8 
9  ***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef QGSMAPUNITSCALE_H
19 #define QGSMAPUNITSCALE_H
20 
21 #include "qgis_core.h"
22 #include "qgis.h"
23 #include <QtCore>
24 
25 class QgsRenderContext;
26 
36 class CORE_EXPORT QgsMapUnitScale
37 {
38  public:
39 
44  explicit QgsMapUnitScale( double minScale = 0.0, double maxScale = 0.0 )
45  : minScale( minScale )
46  , maxScale( maxScale )
47  , minSizeMMEnabled( false )
48  , minSizeMM( 0.0 )
49  , maxSizeMMEnabled( false )
50  , maxSizeMM( 0.0 )
51  {}
52 
54  double minScale;
56  double maxScale;
57 
61  double minSizeMM;
65  double maxSizeMM;
66 
72  double computeMapUnitsPerPixel( const QgsRenderContext &c ) const;
73 
74  bool operator==( const QgsMapUnitScale &other ) const
75  {
76  return qgsDoubleNear( minScale, other.minScale )
77  && qgsDoubleNear( maxScale, other.maxScale )
78  && minSizeMMEnabled == other.minSizeMMEnabled
79  && qgsDoubleNear( minSizeMM, other.minSizeMM )
80  && maxSizeMMEnabled == other.maxSizeMMEnabled
81  && qgsDoubleNear( maxSizeMM, other.maxSizeMM );
82  }
83 
84  bool operator!=( const QgsMapUnitScale &other ) const
85  {
86  return !operator==( other );
87  }
88 };
89 
90 
91 #endif // QGSMAPUNITSCALE_H
92 
93 
94 
double minSizeMM
The minimum size in millimeters, or 0.0 if unset.
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool qgsDoubleNear(double a, double b, double epsilon=4 *DBL_EPSILON)
Compare two doubles (but allow some difference)
Definition: qgis.h:198
double maxScale
The maximum scale, or 0.0 if unset.
bool operator!=(const QgsMapUnitScale &other) const
bool minSizeMMEnabled
Whether the minimum size in mm should be respected.
bool operator==(const QgsMapUnitScale &other) const
Contains information about the context of a rendering operation.
QgsMapUnitScale(double minScale=0.0, double maxScale=0.0)
Constructor for QgsMapUnitScale.
double maxSizeMM
The maximum size in millimeters, or 0.0 if unset.
Struct for storing maximum and minimum scales for measurements in map units.
double minScale
The minimum scale, or 0.0 if unset.
bool maxSizeMMEnabled
Whether the maximum size in mm should be respected.