17#ifndef QGSPOINTCLOUDLAYERPROFILEGENERATOR_H
18#define QGSPOINTCLOUDLAYERPROFILEGENERATOR_H
85 double minZ = std::numeric_limits< double >::max();
86 double maxZ = std::numeric_limits< double >::lowest();
95 QString
type()
const override;
109 GEOSSTRtree *mPointIndex =
nullptr;
110 QPointer< QgsPointCloudLayer > mLayer;
112 std::unique_ptr< QgsCurve > mProfileCurve;
113 double mTolerance = 0;
115 double mZScale = 1.0;
116 double mMaxErrorInLayerCoordinates = 0;
154 QPointer< QgsPointCloudLayer > mLayer;
156 const QVector< QgsPointCloudSubIndex > mSubIndexes;
158 std::unique_ptr< QgsPointCloudRenderer > mRenderer;
159 double mMaximumScreenError = 0.3;
162 double mPointSize = 1;
166 bool mOpacityByDistanceEffect =
false;
169 std::unique_ptr<QgsFeedback> mFeedback =
nullptr;
171 std::unique_ptr< QgsCurve > mProfileCurve;
173 double mTolerance = 0;
182 double mZScale = 1.0;
184 double mStepDistance = std::numeric_limits<double>::quiet_NaN();
188 std::unique_ptr< QgsAbstractGeometry > mSearchGeometryInLayerCrs;
189 std::unique_ptr< QgsGeos > mSearchGeometryInLayerCrsGeometryEngine;
192 std::unique_ptr< QgsPreparedPointCloudRendererData > mPreparedRendererData;
194 std::unique_ptr< QgsPointCloudLayerProfileResults > mResults;
195 QVector< QgsPointCloudLayerProfileResults::PointResult > mGatheredPoints;
PointCloudSymbol
Rendering symbols for point cloud points.
@ Square
Renders points as squares.
QFlags< ProfileGeneratorFlag > ProfileGeneratorFlags
RenderUnit
Rendering size units.
@ Millimeters
Millimeters.
ProfileExportType
Types of export for elevation profiles.
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 QString type() const =0
Returns the unique string identifier for the results type.
virtual QVector< QgsAbstractProfileResults::Feature > asFeatures(Qgis::ProfileExportType type, QgsFeedback *feedback=nullptr) const
Returns a list of features representing the calculated elevation results.
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 terrain providers.
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.
QgsRange which stores a range of double values.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Does vector analysis using the GEOS library and handles import, export, and exception handling.
A collection of point cloud attributes.
Base class for storing raw data from point cloud nodes.
Smart pointer for QgsAbstractPointCloudIndex.
Qgis::ProfileGeneratorFlags flags() const override
Returns flags which reflect how the profile generator operates.
QgsPointCloudLayerProfileGenerator(QgsPointCloudLayer *layer, const QgsProfileRequest &request)
Constructor for QgsPointCloudLayerProfileGenerator.
~QgsPointCloudLayerProfileGenerator() override
QString sourceId() const override
Returns a unique identifier representing the source of the profile.
QgsFeedback * feedback() const override
Access to feedback object of the generator (may be nullptr).
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).
friend class QgsPointCloudLayerProfileResults
Qgis::PointCloudSymbol pointSymbol
void finalize(QgsFeedback *feedback)
Finalizes results – should be called after last point is added.
std::vector< PointResult > results
friend class QgsPointCloudLayerProfileGenerator
QString type() const override
Returns the unique string identifier for the results type.
bool opacityByDistanceEffect
QgsPointCloudLayerProfileResults()
Qgis::RenderUnit pointSizeUnit
Represents a map layer supporting display of point clouds.
Represents an indexed point cloud node's position in octree.
Abstract base class for 2d point cloud renderers.
Point cloud data request.
Base class for 2d point cloud renderer prepared data containers.
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.
Abstract base class for storage of elevation profiles.
Encapsulates properties and constraints relating to fetching elevation profiles from different source...
Encapsulates the context of snapping a profile point.
Encapsulates results of snapping a profile point.
A rectangle specified with double values.
A 3D vector (similar to QVector3D) with the difference that it uses double precision instead of singl...
QVector< QgsPoint > QgsPointSequence
double distanceAlongCurve