QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgsmapunitscale.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmapunitscale.cpp
3  -------------------
4  begin : April 2014
5  copyright : (C) Sandro Mani
6  email : smani at sourcepole dot ch
7 
8  ***************************************************************************
9  * *
10  * This program is free software; you can redistribute it and/or modify *
11  * it under the terms of the GNU General Public License as published by *
12  * the Free Software Foundation; either version 2 of the License, or *
13  * (at your option) any later version. *
14  * *
15  ***************************************************************************/
16 
17 #include "qgsmapunitscale.h"
18 #include "qgsrendercontext.h"
19 
21 {
22  double mup = c.mapToPixel().mapUnitsPerPixel();
23  double renderScale = c.rendererScale();
24  if ( !qgsDoubleNear( minScale, 0 ) )
25  {
26  mup = std::min( mup / ( renderScale / minScale ), mup );
27  }
28  if ( !qgsDoubleNear( maxScale, 0 ) )
29  {
30  mup = std::max( mup / ( renderScale / maxScale ), mup );
31  }
32  return mup;
33 }
QgsRenderContext
Contains information about the context of a rendering operation.
Definition: qgsrendercontext.h:58
qgsDoubleNear
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
Definition: qgis.h:315
qgsrendercontext.h
c
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
Definition: porting_processing.dox:1
QgsMapUnitScale::computeMapUnitsPerPixel
double computeMapUnitsPerPixel(const QgsRenderContext &c) const
Computes a map units per pixel scaling factor, respecting the minimum and maximum scales set for the ...
Definition: qgsmapunitscale.cpp:20
qgsmapunitscale.h
QgsMapUnitScale::minScale
double minScale
The minimum scale, or 0.0 if unset.
Definition: qgsmapunitscale.h:56
QgsMapUnitScale::maxScale
double maxScale
The maximum scale, or 0.0 if unset.
Definition: qgsmapunitscale.h:62