1187 Commits

Author SHA1 Message Date
Nyall Dawson
c22c7bed68 Add warning to method 2025-04-01 20:05:56 +10:00
Nyall Dawson
fd6429e666 [api] Methods to create geocentric CRS from ellipsoid/other crs
Adds:

- QgsCoordinateReferenceSystem::createGeocentricCrs, which takes
an ellipsoid acronym and builds a matching geocentric CRS
- QgsCoordinateReferenceSystem::toGeocentricCrs, which takes
an existing CRS and returns a corresponding geocentric CRS with
the same datum/datum ensemble
2025-04-01 20:05:56 +10:00
Nyall Dawson
a3dd421f16 Clarify units 2025-04-01 20:05:56 +10:00
qgis-bot
63720ad4de auto sipify 🍺 2025-04-01 06:57:36 +00:00
Jan Caha
e9cd21031f
Change how "Get Z value from project terrain" tool is presented in Mesh Editing (#60709)
* move updateZValuesFromTerrain() to QgsMeshTransformVerticesByExpression

* update widget to work with new checkbox

* move test to TestQgsMeshEditor

* fix doc

* add project to calculate()

* change version

* remove QgsExpressionContext and use QgsProject if needed

* update tests

* fix clang issue

* Apply suggestions from code review - make more readable

Co-authored-by: Stefanos Natsis <uclaros@gmail.com>

* simplify

Co-authored-by: Stefanos Natsis <uclaros@gmail.com>

* fix text

Co-authored-by: Stefanos Natsis <uclaros@gmail.com>

* add note

* add the in string

* fix bracket and indentation

* fix docstring

* use new position if necessary

* default elevation

* do not skip values, use default Z value if not properly transformed

* simplify code

---------

Co-authored-by: Stefanos Natsis <uclaros@gmail.com>
2025-04-01 09:54:42 +03:00
qgis-bot
62f234f8e5 auto sipify 🍺 2025-03-31 23:46:52 +00:00
Nyall Dawson
4a10066b69 Fix grammar errors in class docstrings 2025-04-01 09:44:00 +10:00
Nyall Dawson
afd2e4f42d Fix doxygen class briefs which aren't full sentences 2025-04-01 09:44:00 +10:00
Nyall Dawson
b802f8a8b9 Fix double brief 2025-04-01 09:44:00 +10:00
Nyall Dawson
9e60e9bc5b Fix typo 2025-04-01 09:44:00 +10:00
qgis-bot
427e5f38ac auto sipify 🍺 2025-03-30 10:50:58 +00:00
Nyall Dawson
6d122f0038 Sipify 2025-03-30 20:48:07 +10:00
Nyall Dawson
ac71664a83 Fix multiparagraphs in initial class docstrings 2025-03-30 20:48:07 +10:00
Nyall Dawson
bdba8d6366 Refactor too long doxygen brief comments
These break the table of contents for the PyQGIS documentation
2025-03-30 20:48:07 +10:00
Nyall Dawson
29050007d7 Fix class documentation which starts with "this is..."/"a class..." etc 2025-03-30 20:48:07 +10:00
Nyall Dawson
602ef6c691 Don't start class briefs with "This class contains settings..."
It's unncessarily verbose, use just "Contains settings..." instead.
2025-03-30 20:48:07 +10:00
Nyall Dawson
b81e0d83f6 Fix non-compliant class brief documentation 2025-03-30 20:48:07 +10:00
qgis-bot
5887d14bc4 auto sipify 🍺 2025-03-30 08:06:22 +00:00
Nyall Dawson
1384b6052e Fix doc warning 2025-03-30 18:03:30 +10:00
Nyall Dawson
9ea131ded2 [api] Add scale calculation method for "scale at equator"
Always calculates the scale at the equator, regardless of the
actual visible map extent.

This method can be used to provide a consistent, static scale for
maps in geographic reference systems, regardless of the latitudes
actually visible in the map (permitting consistent appearance of
these maps when rendering relies on scale based visibility or
calculations). Otherwise a project in eg EPSG:4326 which uses
scale based visibility of layers and symbols will see layers
and features "randomly" disappear as the map is panned, even
though the user has not zoomed in or out of the map.

This method is only applicable when calculating scales with a
degree based reference system.
2025-03-30 18:03:30 +10:00
Nyall Dawson
71d5aadbc8 [api] scale calculation method can be set for QgsMapSettings 2025-03-30 18:03:30 +10:00
Nyall Dawson
170d962356 Add scale method handling to QgsScaleCalculator 2025-03-30 18:03:30 +10:00
Nyall Dawson
a2db8cf453 Add QgsProject setting for scale calculation method
Exposes the same methods as are available for layout scale bars,
and can be set for a particular project in the project properties
dialog
2025-03-30 18:03:30 +10:00
qgis-bot
644c1f835b auto sipify 🍺 2025-03-30 01:12:39 +00:00
qgis-bot
19848a7819 auto sipify 🍺 2025-03-29 09:09:07 +00:00
Mathieu Pellerin
e75a28f15a [editor widget] Fix relation reference widget filter expression's handling of current(_parent)_* variables and functions 2025-03-29 16:06:09 +07:00
qgis-bot
f2f0de0bc5 auto sipify 🍺 2025-03-28 21:58:29 +00:00
Nyall Dawson
c2e294c3fa Use class with static public methods instead of namespace
Namespaces don't work well with sip, eg losing the class docstrings.
2025-03-29 07:55:27 +10:00
Nyall Dawson
39e37e1fc5 Unify QgsMeshUtils into a single utility class
This was previously a namespace split over multiple files
2025-03-29 07:55:27 +10:00
qgis-bot
112eac014f auto sipify 🍺 2025-03-28 04:26:47 +00:00
Nyall Dawson
f480c2a04e Add all missing class brief descriptions 2025-03-28 14:23:56 +10:00
Nyall Dawson
d991480cbe Fix broken emphasis tag warning when building PyQGIS docs 2025-03-28 13:07:03 +10:00
qgis-bot
657c924383 auto sipify 🍺 2025-03-28 00:05:20 +00:00
Nyall Dawson
1f8a585c5c Make signal const 2025-03-28 10:02:25 +10:00
Nyall Dawson
aa65f01140 Make more symbol factory methods memory safe 2025-03-28 10:02:25 +10:00
Nyall Dawson
596ddb2f4e More memory safety for loading symbols 2025-03-28 10:02:25 +10:00
Nyall Dawson
7b56629478 Sipify 2025-03-27 14:00:26 +10:00
qgis-bot
a0c5680b64 auto sipify 🍺 2025-03-24 23:50:44 +00:00
Jean Felder
f57c1d72dd qgslayoutelevationprofilewidget: Add support for subsections indicator
This adds some new customization associated with the introduction of
subsections indicator:
- it allows to display or hide them
- it allows to change the associated symbology
2025-03-25 09:47:50 +10:00
Jean Felder
c769795e36 qgslayoutitem: Remove empty lines at the end of file 2025-03-25 09:47:50 +10:00
Jean Felder
21dfcd261d qgslayoutitemelevationprofile: 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:
- `setSubsectionsSymbol()` allows to set the line symbol of the
vertical lines
- Call `renderSubsectionsIndicator` on the `QgsProfilePlotRenderer`
2025-03-25 09:47:50 +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
qgis-bot
3ee7834ace auto sipify 🍺 2025-03-24 09:32:25 +00:00
Martin Dobias
c40d25ade9 Add 3D scene mode enum 2025-03-24 10:29:33 +01:00
Martin Dobias
e98bf79f1a Initial implementation of globe camera controller
This is a new navigation mode for QgsCameraController which is meant to work
just like the terrain-based navigation mode, but for 3D scenes with globe.

Initially, the new navigation mode can handle:
- zooming in/out with mouse wheel
- orbit around globe when dragging with left mouse button pressed
- left/right/up/down keys to orbit around globe
- shift + left/right keys to change heading angle
- shift + up/down keys to change pitch angle
- page up/page down keys to increase/decrease elevation

For camera pose, we use QgsCameraPose as for "flat" scenes, but the QCamera
is positioned/rotated slightly differently - the main change is that in case
of globe, we use ECEF coordinates of the camera pose's center point, convert
them to lat/lon coordinates in order to set up initial rotation of the camera
so that it is perpendicular to the tangent plane at the given ECEF coordinate.
2025-03-24 10:29:33 +01:00
qgis-bot
67a6c46e17 auto sipify 🍺 2025-03-24 00:28:36 +00:00
Nyall Dawson
a315e07657 Expand docs 2025-03-24 10:25:39 +10:00
Nyall Dawson
6953aec591 Just require ints instead of QNetworkAccessManager::Operation enum
The sip conversion code fails with enums under qt 6
2025-03-24 10:25:39 +10:00
Nyall Dawson
9b96cfde8b Move DOM compare function to QgsTestUtils 2025-03-24 10:25:39 +10:00