* 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>
* cannot return min max if triangular mesh does not exist
* only create QgsRenderedLayerStatistics if values changed to prevent loop in rendering
* this was set from two places, remove it from here
* Revert "this was set from two places, remove it from here"
This reverts commit 5d8fbcc321330f1054e5e07cad2ee70c0f9aa661.
* add test case for not existing triangular mesh
* only emit signals here, everything else is handled in renderer creation (avoids double rendering of the mesh layer)
* while updating the widget the component signals need to be blocked
* do not update render here
* add const
* 3D map should not update layer statistics
* update renderer settings from here, signals are emitted from mesh layer
* update test to simulate main canvas extent update
* do rendering in single pass
* emit renderer changed and remove emit of legendChanged
This brings to renderer for Mesh Contours option to set renderer Min Max based on extent (specific canvas, changing canvas) in the same way as renderers for Raster Layer.
* add removeDatasetGroup() function for mesh data provider and mesh layer
* make dataset group names unique
* fix typo
* add mesh removing to the widget
* fix icon
* add check that added dataset group path is unique to avoid duplicate data and emit message if it is not
* sipify
* fix mistake
* check if uri is correct - just for case
* add tests
* add tests
* fix docstring
* add docstring
* add missing override
* explicitly convert number to string
* update tests to reflect that you cannot add same file as dataset group twice
* fix docstring
* pass by value
* fix docstrings
* const variables
* rename signal
* drop include
* simplify regex
* make test better
* sipify
* add docstring
* fix styling and typo
* fix tests
* fix precommit issues
* fix issue
* Update src/core/mesh/qgsmeshlayer.h
fix docstring
Co-authored-by: Stefanos Natsis <uclaros@gmail.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* const stuff
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* sipify
---------
Co-authored-by: Stefanos Natsis <uclaros@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
In this mode, the user can specify a QGIS expression for the
lower and upper value corresponding to raster bands, using
variables like @band, @band_name and @band_description.
E.g
@band * 100
Can be used when each band represents a 100 m vertical slice
of data.
The expression will be evaluated when required to determine
the actual elevation range corresponding to each band.
This differs from the existing "Fixed Elevation Range Per Band"
mode in that "Fixed Elevation Range Per Band" requires users
to manually enter an elevation for each band separately,
and these values are then treated as constants. That mode works
best for rasters with non-regular steps in the band
elevation values, while this new mode is better for regular
band elevation steps
The original workaround was only supposed to apply to QList/
QVector of QVariantMaps. By replacing them all in sip we
break mapping of signals defined in c++ which are emitted
by Python code.
Fixes exceptions after running processing algorithms in Qt6
builds.