64 Commits

Author SHA1 Message Date
Nyall Dawson
3f6b490218 Sipify 2025-04-02 11:11:10 +10:00
Nyall Dawson
afd2e4f42d Fix doxygen class briefs which aren't full sentences 2025-04-01 09:44:00 +10:00
Jean Felder
9eb3c37400 qgsprofilerenderer: Introduce a default symbol for subsections
This will be used in the next commit.
2025-03-25 09:47:50 +10:00
Jean Felder
030c04c9ea qgsprofilerenderer: Add support for subsections indicator
This adds support to display vertices lines over the profile graph to
display indicator at the location of the curve's vertices.

This is achieved with mainly 2 changes:
- `QgsProfilePlotRenderer::setSubsectionsSymbol()` allows to set the
line symbol of the vertical lines
- `renderSubsectionsIndicator` generates and renders the vertical
lines. It is called by `QgsProfilePlotRenderer::renderToImage()`.
2025-03-25 09:47:50 +10:00
Nyall Dawson
49d31fa527 Fix some malformed docs 2024-08-30 05:47:07 +10:00
Nyall Dawson
3a578d6712 Header update 2024-08-13 20:28:55 +10:00
Nyall Dawson
be8dce7d0d Valid improvements from new sipify 2024-08-13 20:28:55 +10:00
Nyall Dawson
6f652d251b Drop no-value copy constructor dox 2024-07-25 04:02:55 +10:00
Nyall Dawson
28943f9c1b Remove a bunch of useless default constructor doxygen 2024-07-23 02:08:28 +10:00
Germán Carrillo
127ec157e9 [profile] Address review 2024-05-22 13:44:52 +10:00
Germán Carrillo
65ad23a769 [core] Introduce QgsProfileSourceRegistry to store sources other than map layers, e.g., based on web services 2024-05-22 13:44:52 +10:00
Nyall Dawson
3201a62702 Add missing documentation 2023-05-27 06:34:04 +10:00
Nyall Dawson
7f8fd5ea8e Create QgsProfileExporterTask task for generating and exporting
elevation profiles to files
2023-05-27 06:34:04 +10:00
Nyall Dawson
33ffe9f6b9 [api] Add framework for exporting elevation profile results
as vector layers
2023-05-27 06:34:04 +10:00
Nyall Dawson
b99a349e66 Fix pixelated appearance of elevation profile chart on hidpi displays 2023-05-24 08:10:45 +10:00
Nyall Dawson
f9c3da1e06 Move unit enums to Qgis, promote to enum class 2023-02-19 13:29:06 +10:00
Nyall Dawson
4cf399f7c9 Implement layout elevation profile plot rendering 2023-01-27 17:38:59 +10:00
Nyall Dawson
97bb5f6e95 Try to fix build 2022-05-06 08:58:41 +10:00
Nyall Dawson
3c086ead05 Add framework for identifying results from profile generators 2022-05-06 08:58:41 +10:00
Nyall Dawson
e6b65767cf Use different snap tolerances when snapping to points vs snapping
to continuous elevation surfaces

When snapping to a surface we want to be very "grabby" in the height
axis but ungrabby in the distance axis. For points we should be equally
grabby on either axis.
2022-04-29 19:58:21 +10:00
Nyall Dawson
0f13138e0c Fix typo 2022-04-29 19:58:21 +10:00
Nyall Dawson
a9e1f1125f Use DPI directly instead of scale factor 2022-04-29 19:58:21 +10:00
Nyall Dawson
548f3df629 Add elevation profile support for point cloud layers 2022-04-29 19:58:21 +10:00
Nyall Dawson
bad241ead2 Ensure that results from final plot area are always shown in plot, even when
a job was already in progress when the plot area was changed
2022-04-29 19:58:21 +10:00
Nyall Dawson
77052c6473 Add map units per pixel to QgsProfileGenerationContext 2022-04-29 19:58:21 +10:00
Nyall Dawson
5fb4f656c1 Fix doxygen warning 2022-04-28 13:54:47 +10:00
Nyall Dawson
bc7fa813e5 Only refine layers which benefit from refining (i.e. rasters) 2022-04-28 13:54:47 +10:00
Nyall Dawson
85966c7625 Add support for refining elevation plot based on scale and visible range
For some layer types (rasters, point clouds) this gives a much better
experience vs generating the profile completely upfront. (I.e. even
with super-detailed DEM layers the profile is now basically instant
to generate).
2022-04-28 13:54:47 +10:00
Nyall Dawson
5a6524f3aa Use "regenerate" instead of "update" for re-building the profile for
a layer, as "update" is ambiguous and is associated with "repainting"
a Qt widget
2022-04-27 10:24:12 +10:00
Nyall Dawson
ddfe22aedb Rename method to copyPropertiesFromGenerator and avoid some duplicate code 2022-04-27 10:24:12 +10:00
Nyall Dawson
e59c5d9881 Add dox note about source ID and layer IDs 2022-04-27 10:24:12 +10:00
Nyall Dawson
a35e74c656 Add api to allow redrawing of previously collected results for a single
elevation profile source

And use this to just redraw the existing results whenever a setting
relating only to the appearance of the profile chart is changed,
instead of regenerating the whole chart
2022-04-27 10:24:12 +10:00
Nyall Dawson
99da12fcac Add api to trigger regeneration of profile results for a single layer 2022-04-27 10:24:12 +10:00
Nyall Dawson
86704dbe16 Add means of linking profile results back to source layer 2022-04-27 10:24:12 +10:00
Nyall Dawson
5ff12f41e7 Account for non-equal axis scaling during snapping 2022-04-15 12:15:54 +10:00
Nyall Dawson
d163b4fb21 Use Snap context class instead 2022-04-15 12:15:54 +10:00
Nyall Dawson
a5f9b558f4 Move snapping results class to own file 2022-04-15 12:15:54 +10:00
Nyall Dawson
e1eb8ffd4d Use QgsProfilePoint 2022-04-15 12:15:54 +10:00
Nyall Dawson
4b008ed7ac Add QgsProfilePoint class 2022-04-15 12:15:54 +10:00
Nyall Dawson
20613ea608 Add since 2022-04-15 12:15:54 +10:00
Nyall Dawson
27dc6e7a7d Snap plot cursor to sampled heights
And add a "snapping" toggle to disable this behavior
2022-04-15 12:15:54 +10:00
Nyall Dawson
cca19d74ff Add an expression context to QgsProfileRequest 2022-04-14 14:16:26 +10:00
Nyall Dawson
b779bfc44a Spelling 2022-04-07 19:22:19 +10:00
Nyall Dawson
d2e5186d56 Add action to export profile graph to PDF 2022-04-07 19:22:19 +10:00
Nyall Dawson
0d88a6f834 Documentation 2022-04-07 19:22:19 +10:00
Nyall Dawson
9970782045 Use actual ranges of plot when rendering, use correct raster/mesh profile symbols 2022-04-07 19:22:19 +10:00
Nyall Dawson
305f0790cc Add range of z to QgsAbstractProfileResults 2022-04-07 19:22:19 +10:00
Nyall Dawson
6d4c2803f6 Start on profile renderer class 2022-04-07 19:22:19 +10:00
Nyall Dawson
cea1215bee Add cancelation support for profile generators 2022-04-07 19:22:19 +10:00
Nyall Dawson
141f7bf9f2 Plot wip 2022-04-07 19:22:19 +10:00