The Fill_holes script is duplicated by the DeleteHoles algorithm,
and the DeleteHoles algorithm has many advantages:
- it's a full algorithm rather than a script
- uses qgis geometry classes and maintains curves/z/m
- has unit tests
- doesn't rely on non-standard external library (shapely)
(marked as feature for inclusion in release notes)
Copy min area parameter from 'Fill holes' algorithm to 'delete
holes' algorithm.
Also:
- make algorithm maintain z/m values
- make algorithm work with curved geometries
- add unit tests
All pointer based methods have been removed.
Now we have only:
void setGeometry( const QgsGeometry& geom )
and
QgsGeometry geometry() const
Benefits include avoiding a whole lot of tricky pointer lifetime
issues, potential memory leaks, and finally closing #777, which
has survived for over 9 years!...
Impacts on PyQGIS code:
- no more need for the messy
g = QgsGeometry( feature.geometry() )
workaround, just use g = feature.geometry() instead
- IMPORTANT: you can no longer test whether a feature has geometry
using `if f.geometry():`, since QgsFeature::geometry() will
*always* return an object. Instead, use
`if not f.geometry().isEmpty():`, or preferably the new method
`if not f.hasGeometry():`
Fix#777