QGIS API Documentation 3.29.0-Master (8c80f25a4f)
qgsrasterlayerprofilegenerator.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsrasterlayerprofilegenerator.h
3 ---------------
4 begin : March 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 QGSRASTERLAYERPROFILEGENERATOR_H
18#define QGSRASTERLAYERPROFILEGENERATOR_H
19
20#include "qgis_core.h"
21#include "qgis_sip.h"
25
26#include <memory>
27
29class QgsCurve;
30class QgsRasterLayer;
33class QgsLineSymbol;
35
36#define SIP_NO_FILE
37
46{
47
48 public:
49
50 QString type() const override;
51 QVector<QgsProfileIdentifyResults> identify( const QgsProfilePoint &point, const QgsProfileIdentifyContext &context ) override;
52
53 private:
54
55 QPointer< QgsRasterLayer > mLayer;
56
58};
59
68{
69
70 public:
71
76
78
79 QString sourceId() const override;
80 Qgis::ProfileGeneratorFlags flags() const override;
81 bool generateProfile( const QgsProfileGenerationContext &context = QgsProfileGenerationContext() ) override;
82 QgsAbstractProfileResults *takeResults() override;
83 QgsFeedback *feedback() const override;
84
85 private:
86 QString mId;
87 std::unique_ptr<QgsRasterBlockFeedback> mFeedback = nullptr;
88
89 std::unique_ptr< QgsCurve > mProfileCurve;
90
93 QgsCoordinateTransformContext mTransformContext;
94
95 double mOffset = 0;
96 double mScale = 1;
97
98 QPointer< QgsRasterLayer > mLayer;
99 std::unique_ptr< QgsRasterDataProvider > mRasterProvider;
100
101 std::unique_ptr< QgsRasterLayerProfileResults > mResults;
102
103 int mBand = 1;
104 double mRasterUnitsPerPixelX = 1;
105 double mRasterUnitsPerPixelY = 1;
106
107 double mStepDistance = std::numeric_limits<double>::quiet_NaN();
108
110
111};
112
113#endif // QGSRASTERLAYERPROFILEGENERATOR_H
Abstract base class for storage of elevation profiles.
virtual QString type() const =0
Returns the unique string identifier for the results type.
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....
QVector< QgsProfileIdentifyResults > identify(const QgsProfilePoint &point, const QgsProfileIdentifyContext &context) override
Identify results visible at the specified profile point.
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:36
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:45
A line symbol type, for rendering LineString and MultiLineString geometries.
Definition: qgslinesymbol.h:30
Encapsulates the context in which an elevation profile is to be generated.
Encapsulates the context of identifying profile results.
Encapsulates a point on a distance-elevation profile.
Encapsulates properties and constraints relating to fetching elevation profiles from different source...
Encapsulates the context of snapping a profile point.
Feedback object tailored for raster block reading.
Base class for raster data providers.
Implementation of QgsAbstractProfileGenerator for raster layers.
~QgsRasterLayerProfileGenerator() override
Implementation of QgsAbstractProfileResults for raster layers.
Represents a raster layer.