[FEATURE] fix#31575 mesh layer speed rendering improvements (LOD)
As mesh layer could have millions of triangles, rendering could be very slow, especially when all the triangles are displayed in the view whereas triangles are too small to be viewed.
For those situations QGIS has an option to simplify the mesh. Simplification leads to one or more simplified mesh that represents levels of detail (LOD). When rendering the mesh, the appropriate level of detail is chosen to have an adequate rendering depending on the view.
Turns out this index is MUCH (magnitudes) faster for use in pal. So
grab an updated version of the upstream library and place in external libs,
and use this for indices in pal.
(we should probably investigate whether this is faster for snapping and
other index use too!)
This library, original taken from https://github.com/sijk/qt-unix-signals
(but a maintained fork exists at https://github.com/nyalldawson/qt-unix-signals),
handles unix signal watching using the Qt libraries.
It allows for detection of signals like SIGINT and SIGTERM,
and allows Qt applications to respond gracefully to these.
Included in external libraries for use in QGIS terminal
applications.
A very fast static spatial index for 2D points based on a flat KD-tree,
using https://github.com/mourner/kdbush.hpp
Compared to QgsSpatialIndex, this index:
- supports single point features only (no multipoints)
- is static (features cannot be added or removed from the index after construction)
- is much faster!
- supports true "distance based" searches, i.e. return all points within a radius
from a search point
instead of adding an extra CMakeLists in .ci/travis/code_layout to build API doc, astyle and run tests (indentation, spelling, sip, doc coverage), the top CMakeLists has been adapted to allow not building core libraries and possibly just the static code layout
* astyle has been moved from /src/astyle to /lib/astyle (I would propose to move all external libraries, and possibly add git submodules)
This functionality is available in OGR and there is no longer
a need for a dedicated QGIS plugin to do this task
Marked as feature for documentation + changelog reminder
Currently astyle.sh will rewrite files, even if no change are made.
This causes some editors (for example kate) to believe that the file
has been changed even if it is not the case. Letting the timestamp
untouched is not enough. So make 'flip' and 'unify_includes.pl'
operate on copies, and move the copies as the original file if
differences are found.