`Qgs3DExportObject` handle 3 different kind of geometries:
- points
- lines
- triangles
Depending on the type of geometries, up to 3 different functions can
be called:
- `setType` to set the geometry type
- `setupPositionCoordinates` to set the positions
- `setupFaces` or `setupLine` to set the indexes
With this change, one only need to call one function to setup all the
buffers:
- `setupLine` to setup a Line geometry
- `setupPoint` to setup a Point geometry
- `setupTriangle` to setup a Triangle geometry
These tests involve re-opening a LOT of grass layers, which
in turn requires calls to qgis.g.info to retrieve the layer CRS.
On newer GRASS versions this has slowed down significantly. While
it shouldn't impact actual QGIS users (they won't be reopening as
many datasets in such a short period of time as the test is doing),
it is causing test timeouts and fragility.
Workaround this by re-working all tests to use the newer PROJ_SRID
metadata approach, so that we get CRS information on the first
call to qgis.g.info and don't need to fallback to subsequent calls
to retrieve the CRS using the older, lossy metadata keys. This
drops test execution time from ~45 seconds to ~30 seconds on
my machine. (The downside is less/no test coverage for the older
CRS metadata key handling)
- an old style Qt<5 signal connection pattern
- a wrong expected sender() in the onRefreshFinished() slot
None of them seemed to affect normal usage, but the error on the
onRefreshFinished() slot generated an erroneous log message
'Token refresh finished but no reply object accessible' that complicates
diagnostic.
This fixes the following compilation error:
```
definition of implicit copy assignment operator for
'QgsSfcgalGeometry' is deprecated because it has a user-provided copy
constructor [-Werror,-Wdeprecated-copy-with-user-provided-copy] 89 |
QgsSfcgalGeometry( const QgsSfcgalGeometry &otherGeom ) SIP_THROW(
QgsSfcgalException );
```