[Qgis-developer] Can I change QgsAbstractGeometryV2::fromWkb signature ?

Matthias Kuhn matthias at opengis.ch
Wed Jan 27 00:49:48 PST 2016


Hi

On 01/26/2016 10:32 PM, Nyall Dawson wrote:
> On 27 January 2016 at 03:31, Sandro Santilli <strk at keybit.net> wrote:
>> On Tue, Jan 26, 2016 at 05:24:37PM +0100, Marco Hugentobler wrote:
>> That's a good news, thanks.
>> It would help to have a protocol defined to more easily tag
>> and identify which classes are and are not part of the API.
By default anything that is LIB_EXPORTed should be considered stable
API. There is already a tag which should catch most of the exceptions:

@note not available in Python bindings

If required another one can be added.

FWIW, the main goal should be that people writing code against the API
do not need to update their code with a minor version change.
Things available in Python should be treated extra-carefully.
Anything not LIB_EXPORTed (or private) should be considered an
implementation detail,
For anything in between it has to be considered carefully.
Whenever something needs to be changed it should be first evaluated if
it is possible to leave the current API in place (optionally deprecated).
Exceptions should be treated on a case-by-case basis.
Does this sound reasonable?

>>
>> For instance, I'm now seeing QgsClipper::clippedLineWKB which
>> also takes a pointer to unsigned char and no indication of
>> its length (again, expecting a WKB).
> Thanks for looking into this - the current situation is horrible. For
> instance, there's duplicate WKB parsers present in:
>
> - QgsSymbolV2::_getPolygon and QgsSymbolV2::_getLineString
> - QgsClipper::clippedLineWKB
> - QgsDistanceArea::measurePolygon (although I'm fairly certain that
> method isn't used anywhere and should just be marked deprecated)
> - the simplification code
>
> There's a lot of inefficiencies happening here... eg rendering
> features requires encoding the QGIS representation of the geometry as
> a wkb, just to be immediately decoded from the wkb back to a list of
> points.... arggg!

I think there are some different stories:

 * Places like the rendering where the internal data structures should
be used instead of WKB
 * Places like simplification that were explicitly implemented in WKB to
be able to work on the data before it's converted to an internal
structure for performance reasons.

Regards,
Matthias

> See also the discussion in https://github.com/qgis/qgis3.0_api/issues/15
>
> Nyall
>
>
>
>
>
>> --strk;
>> _______________________________________________
>> Qgis-developer mailing list
>> Qgis-developer at lists.osgeo.org
>> List info: http://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-developer
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> List info: http://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-developer

-- 
Matthias Kuhn
OPENGIS.ch - https://www.opengis.ch
Spatial • (Q)GIS • PostGIS • Open Source


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20160127/cede879b/attachment.sig>


More information about the Qgis-developer mailing list