<div dir="ltr"><div>Hi PSC,</div><div><br></div><div>We are pleased to announce that the QGIS Porting to C++ and Harmonisation of Processing Algorithms grant is now complete. You can read about the motivation behind this work at <a href="https://github.com/qgis/QGIS-Enhancement-Proposals/issues/271">https://github.com/qgis/QGIS-Enhancement-Proposals/issues/271</a>.<br><br>The work has been completed with several pull requests:<br><br> * Port various geometry algorithms to C++ <a href="https://github.com/qgis/QGIS/pull/53787">https://github.com/qgis/QGIS/pull/53787</a><br> * Port Align Rasters tool to Processing <a href="https://github.com/qgis/QGIS/pull/53874">https://github.com/qgis/QGIS/pull/53874</a><br> * Port Raster Calculator algorithm to C++ <a href="https://github.com/qgis/QGIS/pull/54035">https://github.com/qgis/QGIS/pull/54035</a><br> * Port XYZ Tiles algorithms to C++ <a href="https://github.com/qgis/QGIS/pull/54321">https://github.com/qgis/QGIS/pull/54321</a><br><br>Existing Processing algorithms Voronoi Polygons and Delaunay Triangulation have been ported to C++ and now use GEOS instead of the unmaintained Python module. Both algorithms have been given additional parameters to disable post-processing step (adding attributes of input points for Voronoi polygons and adding feature IDs of the 3 points forming a triangle for Delaunay triangulation) and thus improve algorithm performance. The Concave Hull algorithm has been ported to C++ and uses GEOS for QGIS builds with GEOS >= 3.11, while a port of the existing implementation based on Delaunay triangulation is used for builds with older GEOS versions.<br><br>Two algorithms for generating XYZ tiles (directory and MBTiles variants) have been ported to C++ using a safer and cleaner multi-threading approach.<br><br>The Align Rasters tool (available from the Raster → Align Rasters menu), which was not exposed to Processing, has been removed and a new Processing algorithm with the same functionality has been added. To make this possible, we have added a new `QgsProcessingParameterAlignRasterLayers` parameter type to Processing, which provides an adapter to `QList<QgsAlignRaster::Item>`.<br>The "Raster" menu item now opens the Processing algorithm. We have also added a separate, simplified modeler-only version of the algorithm that accepts a single raster to align and returns a single raster layer output.<br><br>The existing Raster Calculator algorithm has been ported to C++. The algorithm now has two variants: a toolbox version that works the same way as before, and a modeler version that uses the same approach to input naming as the GDAL raster calculator (in the formula, you should use letters instead of layer names). The old algorithm implementation has been retained for compatibility with existing models and will be removed in QGIS 4. We have also added a separate raster calculator algorithm for creating virtual raster layers.<br><br>Many thanks to QGIS.org for supporting this work!</div><div><br></div><div>Regards</div><div>Alex + Martin</div><div><br></div></div>