QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
qgsmeshlayerprofilegenerator.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmeshlayerprofilegenerator.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 QGSMESHLAYERPROFILEGENERATOR_H
18#define QGSMESHLAYERPROFILEGENERATOR_H
19
20#include <memory>
21
22#include "qgis_core.h"
23#include "qgis_sip.h"
28#include "qgstriangularmesh.h"
29
31class QgsCurve;
32class QgsMeshLayer;
35
36#define SIP_NO_FILE
37
38
47{
48
49 public:
50
51 QString type() const override;
52 QVector<QgsProfileIdentifyResults> identify( const QgsProfilePoint &point, const QgsProfileIdentifyContext &context ) override;
53
54 private:
55
56 QPointer< QgsMeshLayer > mLayer;
57
59};
60
61
70{
71
72 public:
73
78
80
81 QString sourceId() const override;
84 QgsFeedback *feedback() const override;
85
86 private:
87
88 double heightAt( double x, double y );
89
90 QString mId;
91 std::unique_ptr<QgsFeedback> mFeedback = nullptr;
92
93 std::unique_ptr< QgsCurve > mProfileCurve;
94
97 QgsCoordinateTransformContext mTransformContext;
98
99 double mOffset = 0;
100 double mScale = 1;
101 QPointer< QgsMeshLayer > mLayer;
102
103 double mStepDistance = std::numeric_limits<double>::quiet_NaN();
104
105 QgsTriangularMesh mTriangularMesh;
106
107 QgsCoordinateTransform mLayerToTargetTransform;
108
109 std::unique_ptr< QgsMeshLayerProfileResults > mResults;
110
112
113
114};
115
116#endif // QGSMESHLAYERPROFILEGENERATOR_H
Abstract base class for storage of elevation profiles.
virtual QString type() const =0
Returns the unique string identifier for the results type.
QgsAbstractProfileSurfaceGenerator(const QgsProfileRequest &request)
Constructor for QgsAbstractProfileSurfaceGenerator.
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.
Abstract base class for terrain providers.
Represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
Handles coordinate transforms between two coordinate systems.
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:44
~QgsMeshLayerProfileGenerator() override
QgsFeedback * feedback() const override
Access to feedback object of the generator (may be nullptr).
QgsMeshLayerProfileGenerator(QgsMeshLayer *layer, const QgsProfileRequest &request)
Constructor for QgsMeshLayerProfileGenerator.
QgsAbstractProfileResults * takeResults() override
Takes results from the generator.
bool generateProfile(const QgsProfileGenerationContext &context=QgsProfileGenerationContext()) override
Generate the profile (based on data stored in the class).
QString sourceId() const override
Returns a unique identifier representing the source of the profile.
Implementation of QgsAbstractProfileResults for mesh layers.
Represents a mesh layer supporting display of data on structured or unstructured meshes.
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.
A triangular/derived mesh with vertices in map coordinates.