QGIS API Documentation 3.31.0-Master (9f23a2c1dc)
qgsabstractprofilesurfacegenerator.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsabstractprofilesurfacegenerator.h
3 ---------------
4 begin : April 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 QGSABSTRACTPROFILESURFACEGENERATOR_H
18#define QGSABSTRACTPROFILESURFACEGENERATOR_H
19
20#include "qgis_core.h"
21#include "qgis_sip.h"
23#include <memory>
24
25#include <qgslinesymbol.h>
26#include <qgsfillsymbol.h>
27
28#define SIP_NO_FILE
29
38{
39 public:
40
42
44 QMap< double, double > mDistanceToHeightMap;
45 double minZ = std::numeric_limits< double >::max();
46 double maxZ = std::numeric_limits< double >::lowest();
47
49 std::unique_ptr< QgsLineSymbol > mLineSymbol;
50 std::unique_ptr< QgsFillSymbol > mFillSymbol;
51 double mElevationLimit = std::numeric_limits< double >::quiet_NaN();
52
53 QMap< double, double > distanceToHeightMap() const override;
54 QgsPointSequence sampledPoints() const override;
55 QgsDoubleRange zRange() const override;
56 QVector< QgsGeometry > asGeometries() const override;
57 QgsProfileSnapResult snapPoint( const QgsProfilePoint &point, const QgsProfileSnapContext &context ) override;
58 QVector<QgsProfileIdentifyResults> identify( const QgsProfilePoint &point, const QgsProfileIdentifyContext &context ) override;
59 void renderResults( QgsProfileRenderContext &context ) override;
60 void copyPropertiesFromGenerator( const QgsAbstractProfileGenerator *generator ) override;
61};
62
71{
72 public:
73
75
79 Qgis::ProfileSurfaceSymbology symbology() const;
80
84 QgsLineSymbol *lineSymbol() const;
85
89 QgsFillSymbol *fillSymbol() const;
90
101 double elevationLimit() const;
102
113 void setElevationLimit( double limit );
114
115 protected:
116
118 std::unique_ptr< QgsLineSymbol > mLineSymbol;
119 std::unique_ptr< QgsFillSymbol > mFillSymbol;
120 double mElevationLimit = std::numeric_limits< double >::quiet_NaN();
121
122};
123
124
125#endif // QGSABSTRACTPROFILESURFACEGENERATOR_H
ProfileSurfaceSymbology
Surface symbology type for elevation profile plots.
Definition: qgis.h:2579
@ Line
The elevation surface will be rendered using a line symbol.
Abstract base class for objects which generate elevation profiles.
Abstract base class for storage of elevation profiles.
virtual QgsDoubleRange zRange() const =0
Returns the range of the retrieved elevation values.
virtual void renderResults(QgsProfileRenderContext &context)=0
Renders the results to the specified context.
virtual QMap< double, double > distanceToHeightMap() const =0
Returns the map of distance (chainage) to height.
virtual QgsPointSequence sampledPoints() const =0
Returns a list of sampled points, with their calculated elevation as the point z value.
virtual QgsProfileSnapResult snapPoint(const QgsProfilePoint &point, const QgsProfileSnapContext &context)
Snaps a point to the generated elevation profile.
virtual QVector< QgsProfileIdentifyResults > identify(const QgsProfilePoint &point, const QgsProfileIdentifyContext &context)
Identify results visible at the specified profile point.
virtual QVector< QgsGeometry > asGeometries() const =0
Returns a list of geometries representing the calculated elevation results.
virtual void copyPropertiesFromGenerator(const QgsAbstractProfileGenerator *generator)
Copies properties from specified generator to the results object.
Abstract base class for objects which generate elevation profiles which represent a continuous surfac...
Abstract base class for storage of elevation profiles which represent a continuous surface (e....
std::unique_ptr< QgsFillSymbol > mFillSymbol
std::unique_ptr< QgsLineSymbol > mLineSymbol
QgsRange which stores a range of double values.
Definition: qgsrange.h:203
A fill symbol type, for rendering Polygon and MultiPolygon geometries.
Definition: qgsfillsymbol.h:30
A line symbol type, for rendering LineString and MultiLineString geometries.
Definition: qgslinesymbol.h:30
Encapsulates the context of identifying profile results.
Encapsulates a point on a distance-elevation profile.
Abstract base class for storage of elevation profiles.
Encapsulates the context of snapping a profile point.
Encapsulates results of snapping a profile point.
QVector< QgsPoint > QgsPointSequence