QGIS API Documentation 3.99.0-Master (752b475928d)
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;
53 QVector<QgsProfileIdentifyResults> identify( const QgsProfilePoint &point, const QgsProfileIdentifyContext &context ) override;
54
55 private:
56
57 QPointer< QgsMeshLayer > mLayer;
58
60};
61
62
71{
72
73 public:
74
79
81
82 QString sourceId() const override;
85 QgsFeedback *feedback() const override;
86
87 private:
88
89 double heightAt( double x, double y );
90
91 QString mId;
92 std::unique_ptr<QgsFeedback> mFeedback = nullptr;
93
94 std::unique_ptr< QgsCurve > mProfileCurve;
95
98 QgsCoordinateTransformContext mTransformContext;
99
100 double mOffset = 0;
101 double mScale = 1;
102 QPointer< QgsMeshLayer > mLayer;
103
104 double mStepDistance = std::numeric_limits<double>::quiet_NaN();
105
106 QgsTriangularMesh mTriangularMesh;
107
108 QgsCoordinateTransform mLayerToTargetTransform;
109
110 std::unique_ptr< QgsMeshLayerProfileResults > mResults;
111
113
114
115};
116
117#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.