Plane clipping uses two `QParameters` named
`CLIP_PLANE_ARRAY_PARAMETER_NAME` and
`CLIP_PLANE_MAX_PLANE_PARAMETER_NAME`. When clipping is disabled both
parameters need to be removed to prevent side effects on the shader
code. However, the loops which iterates through the parameters breaks
as soon one parameter is found. This means that the second parameter
is never removed.
This issue is fixed by removing the `break` condition. This way, both
parameters are always removed from the material.
This disables the workarounds for nodes of 3D tiles with large spatial extent
when the scene is shown as globe, because in case of globe those workarounds
are not needed, and actually break the functionality.
With this fix, google 3D tiles work with globe 🎉
If we are trying to view a global layer in a small area local
projection, then the transform of the map extent to the layer's
local projection can often fail.
Add fallback to try the opposite logic, and see if we can first
calculate the visible region in the layers extent, and then
transform that small region back to the map's crs
Fixes#60807
The query was testing whether [dbo].[geometry_columns] exists,
but then attempting to create just [geometry_columns] (without
"dbo").
This fails if the table will be created in any schema other then
"dbo".
Adjust to check whether just [geometry_columns] exists, so that
we are checking whether the table exists in the ACTUAL schema
we'll be creating it in.
Fixes#57614
Executing any SQL on a SQL Server connection would result in the
connection being dropped while it was still in use, leaving
the provider in a interdeterminate state which would often
refuse to run futher queries.
The QSqlQuery class does NOT have a virtual destructor, so we
need to explicitly use the QgsMssqlQuery class for the results
iterator so that the QgsMssqlQuery destructor gets called and
the shared reference to the QgsMssqlDatabase instance gets
released correctly.
Fixes msvc build issue caused by uniqueqobject pointer, we revert back
to raw pointers. Fixes QGIS crash on 3D window closed when editing tools
are selected. We can't delete QgsRubberBand3D entities from this class
as they are owned by RubberBandRootEntity, which deletes them on windows
close. Only point rubberbands leave artifacts in scene whene deleted by
default destructor.
Corrected logical error where Z and M values were not retrieved from layerPoint.
Additionally, ensured Z and M values are captured via match without reprojection
to prevent multiple transformations causing recessions.
proj_crs_get_geodetic_crs considers a geocentric crs as already a
geographic CRS, whereas this method advertises that it will always
return a geographic latitude/longitude based CRS
So we build a geographic CRS using the same datum as the original CRS