blocking operation via task manager
Allows use of the task manager progress reporting system from
operations which are blocking (and cannot be made background
tasks!), e.g. layout exporting, project loading.
Because:
- Exactly follows curves and doesn't require segmentizing input geometry
- Also interpolates z/m values if they are present in input geometry
- Is faster
This algorithm returns the portion of a line (or curve) which falls
between the specified start and end distances (measured from the
beginning of the line).
Z and M values are linearly interpolated from existing values.
Returns a new curve representing a substring of a curve, from
a start distance and end distance.
If z or m values are present, the output z and m will be interpolated using
the existing vertices' z or m values.
Handles curved geometries without loss.
Algorithm appears to freeze without progress while `extent_engine.intersects(geom.constGet())` returns false.
This keeps the progress bar continuous and smooth, even if the feature ends up not being added.
(noticed this because the algo hangs for 2 mins while processing a large dataset which I think is outside the extent somehow. None of the points going in. No apparent progress.)
Until now there was just one scalar and vector configuration
for a mesh layer. It is however most useful to have different
rendering settings for each dataset group (quantity).
Some formats like .2dm only contain definition of mesh structure,
in order to show some data users need to add extra files with data
on that mesh. Until now the extra datasets were not persisted.
Allows processing models to be stored inside QGIS project files,
so that opening the project makes that model available.
Some models are so intrinsically linked to the logic inside
a particular project that they have no meaning (or are totally
broken) outside of that project (e.g. models which rely
on the presence of particular map layers, relations, etc)
This change allows these models to be stored inside that project,
avoid cluttering up the "global" model provider with models
which make no sense, and making it easier to distribute a single
project with these models included.
Models are stored inside projects by clicking the new "embed
in project" button in the modeler dialog toolbar. Models can be
removed from a project from the model's right click menu in the
toolbox.
Refactor the existing "raster pixels to polygons" algorithm and
create a new "pixels to points" algorithm, which creates a point
feature at the center of every pixel. nodata pixels are skipped.