QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgsprofilerequest.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsprofilerequest.h
3 ---------------
4 begin : February 2022
5 copyright : (C) 2022 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
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#ifndef QGSPROFILEREQUEST_H
18#define QGSPROFILEREQUEST_H
19
20#include "qgis_core.h"
21#include "qgis_sip.h"
25
26#include <memory>
27
28class QgsCurve;
30
37class CORE_EXPORT QgsProfileRequest
38{
39
40 public:
41
49
54
56
60 QgsProfileRequest &operator=( const QgsProfileRequest &other );
61
62 bool operator==( const QgsProfileRequest &other ) const;
63 bool operator!=( const QgsProfileRequest &other ) const;
64
74 QgsProfileRequest &setProfileCurve( QgsCurve *curve SIP_TRANSFER );
75
83 QgsCurve *profileCurve() const;
84
93
102
109 QgsCoordinateTransformContext transformContext() const;
110
117 QgsProfileRequest &setTransformContext( const QgsCoordinateTransformContext &context );
118
129 QgsProfileRequest &setTolerance( double tolerance );
130
141 double tolerance() const { return mTolerance; }
142
150 QgsProfileRequest &setTerrainProvider( QgsAbstractTerrainProvider *provider SIP_TRANSFER );
151
157 QgsAbstractTerrainProvider *terrainProvider() const;
158
172 QgsProfileRequest &setStepDistance( double distance );
173
187 double stepDistance() const { return mStepDistance; }
188
193 QgsExpressionContext &expressionContext() { return mExpressionContext; }
194
199 const QgsExpressionContext &expressionContext() const SIP_SKIP { return mExpressionContext; }
200
205 QgsProfileRequest &setExpressionContext( const QgsExpressionContext &context );
206
207 private:
208
209 std::unique_ptr< QgsCurve> mCurve;
211 QgsCoordinateTransformContext mTransformContext;
212
213 double mTolerance = 0;
214
215 double mStepDistance = std::numeric_limits<float>::quiet_NaN();
216
217 std::unique_ptr< QgsAbstractTerrainProvider > mTerrainProvider;
218 QgsExpressionContext mExpressionContext;
219
220};
221
222#endif // QGSPROFILEREQUEST_H
Abstract base class for terrain providers.
This class represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
Abstract base class for curved geometry type.
Definition: qgscurve.h:35
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Encapsulates properties and constraints relating to fetching elevation profiles from different source...
QgsExpressionContext & expressionContext()
Returns the expression context used to evaluate expressions.
double stepDistance() const
Returns the profile step distance (in crs() units).
double tolerance() const
Returns the tolerance of the request (in crs() units).
const QgsExpressionContext & expressionContext() const
Returns the expression context used to evaluate expressions.
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_TRANSFER
Definition: qgis_sip.h:36
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
const QgsCoordinateReferenceSystem & crs