[QGIS-Developer] Empty vs. Null rectangle, bogus ?
Sandro Santilli
strk at kbt.io
Thu Oct 21 01:20:04 PDT 2021
I've added - in my PR https://github.com/qgis/QGIS/pull/45384 -
a test for QgsRectangle doing this:
QgsRectangle r1( 0, 0, 0, 0 );
QVERIFY( ! r1.isNull() );
QVERIFY( r1.isEmpty() );
QgsRectangle r2( 1, 1, 1, 1 );
QVERIFY( ! r2.isNull() );
QVERIFY( r2.isEmpty() );
The first test fails, the second succeeds.
See
https://cdash.orfeo-toolbox.org/testDetails.php?test=32862378&build=87747
This confirms the confusion in the meaning of "null"
--strk;
On Mon, Oct 18, 2021 at 08:05:22PM +0200, Sandro Santilli wrote:
> Still chasing bug
> QgsVectorLayerFeatureIterator::QgsVectorLayerFeatureIterator
> I reached QgsRectangle, whose "Null" or "Empty" nature changes
> behavior of QgsFeatureVectorFeatureIterator in a way that prevents
> proper WithinDistance filter from working.
>
> Details are written in
> https://github.com/qgis/QGIS/issues/45352
> but what I wanted to ask here is:
>
> According to the comments Empty means that some information is still
> available (bounding box of a point) but the unit test for QgsRectangle
> (and the isEmpty method implementation) seem to check for Max < Min,
> which would NOT be the case for the bounding box of a point,
> so is puzzling.
>
> I'm not sure how to proceed for fixing the bug I'm seeing because
> one simple fix would be avoiding to call setRectangle on a QgsRequest
> if the iterator's mFilterRect is Empty, but a more complex solution
> could be to *allow* those QgsRequests to have multiple filters, rather
> than one excluding the other.
>
> Also I've yet to understand WHY at construction time a
> QgsAbstractFeatureIterator shoul dhave an Empty rather than Null
> rectangle, which brings back to the first question (is the distinction
> really defined?).
>
> --strk;
>
> Libre GIS consultant/developer
> https://strk.kbt.io/services.html
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
--
Libre GIS consultant/developer
https://strk.kbt.io/services.html
More information about the QGIS-Developer
mailing list