QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
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"
24 #include "qgsexpressioncontext.h"
25 
26 #include <memory>
27 
28 class QgsCurve;
30 
37 class CORE_EXPORT QgsProfileRequest
38 {
39 
40  public:
41 
49 
53  QgsProfileRequest( const QgsProfileRequest &other );
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
QgsCurve
Abstract base class for curved geometry type.
Definition: qgscurve.h:35
QgsExpressionContext
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Definition: qgsexpressioncontext.h:406
QgsCoordinateTransformContext
Contains information about the context in which a coordinate transform is executed.
Definition: qgscoordinatetransformcontext.h:57
operator==
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
Definition: qgsfeatureiterator.h:425
qgscoordinatetransformcontext.h
crs
const QgsCoordinateReferenceSystem & crs
Definition: qgswfsgetfeature.cpp:105
QgsProfileRequest::stepDistance
double stepDistance() const
Returns the profile step distance (in crs() units).
Definition: qgsprofilerequest.h:187
QgsProfileRequest::expressionContext
QgsExpressionContext & expressionContext()
Returns the expression context used to evaluate expressions.
Definition: qgsprofilerequest.h:193
operator!=
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
Definition: qgsfeatureiterator.h:430
QgsProfileRequest::expressionContext
const QgsExpressionContext & expressionContext() const
Returns the expression context used to evaluate expressions.
Definition: qgsprofilerequest.h:199
qgsexpressioncontext.h
SIP_SKIP
#define SIP_SKIP
Definition: qgis_sip.h:126
qgis_sip.h
SIP_TRANSFER
#define SIP_TRANSFER
Definition: qgis_sip.h:36
QgsProfileRequest
Encapsulates properties and constraints relating to fetching elevation profiles from different source...
Definition: qgsprofilerequest.h:37
QgsCoordinateReferenceSystem
This class represents a coordinate reference system (CRS).
Definition: qgscoordinatereferencesystem.h:211
QgsProfileRequest::tolerance
double tolerance() const
Returns the tolerance of the request (in crs() units).
Definition: qgsprofilerequest.h:141
QgsAbstractTerrainProvider
Abstract base class for terrain providers.
Definition: qgsterrainprovider.h:40
qgscoordinatereferencesystem.h