25 Commits

Author SHA1 Message Date
Nyall Dawson
5d476e51df Use QVector where possible in geometry classes 2017-11-14 21:52:09 +11:00
Matthias Kuhn
a70bfe6ff8
More doxymentation 2017-08-14 10:43:37 +02:00
Matthias Kuhn
8294c434c6
More doxymentation 2017-08-14 10:37:51 +02:00
Denis Rouzaud
86e8da74cb
Return enum instead of int from QgsGeometry operations 2017-08-13 23:08:45 +02:00
Matthias Kuhn
a9d7630a69 Rename QgsPointV2 to QgsPoint and QgsPoint to QgsPointXY
Because 3D coordinates should be the default.

References https://github.com/qgis/qgis3.0_api/issues/36
2017-06-02 19:53:37 +02:00
Denis Rouzaud
e99f54854b sipify batch 2017-05-23 10:35:12 +02:00
Martin Dobias
0a0c33dcf2 Remove QgsGeometryCache class
The geometry cache was only used for few geometry editing operations anyway. In earlier versions
of QGIS the geometry cache was also used by old snapping classes which have been replaced
by QgsPointLocator that also keeps a spatial index of geometries and it is not rebuilt on every re-render.

Reasons for removal:
- geometry cache was repopulated on every redraw of layers in editing mode, slowing down rendering
- data structure for the cache was a simple map with features accessed by their ID (no spatial index)
- the cache was only getting refreshed for the current view of the main map canvas (not a generic cache)
- not used for snapping anymore where caching was important to avoid roundtrips to data provider
2017-05-06 10:34:23 +08:00
Denis Rouzaud
7d459149c7 [sip] align missing bits and replace nullptr by 0 2017-05-02 08:09:53 +02:00
Denis Rouzaud
93971d5ed3 [sip] align pointer and reference in blacklisted files
this will facilitate sip diff checking
2017-05-01 17:49:43 +02:00
Martin Dobias
24c5b0326f Rewrite addTopologicalPoints() and remove legacy snapping code + unit test 2017-04-19 11:24:20 +08:00
alisovenko
f8d70619db Add SIP bindings 2017-01-11 09:51:38 +03:00
Juergen E. Fischer
4e8635b517 rename QgsVectorLayerEditUtils::deleteVertexV2 2016-08-10 12:12:28 +02:00
Juergen E. Fischer
0688621046 scripts/replacev2.sh run 2016-08-10 12:08:52 +02:00
Nyall Dawson
bd7d913379 Refine QgsFeature geometry getters/setters
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
2016-08-01 16:25:46 +10:00
Juergen E. Fischer
e503c705a1 change QgsAbstractGeometryV2::coordinateSequence() to return a
implicitly shared copy of an internal cache instead of recreating the
coordinate sequence again and again.

Improves performance of the nodetool on large features a lot (refs #13963)

Also introduce Qgs(Coordinate|Ring|Point)SequenceV2 typedefs.
2016-02-21 21:49:51 +01:00
Juergen E. Fischer
a90be95f7b sip sync 2016-02-14 03:50:49 +01:00
Nyall Dawson
0d433b092e Fix warnings 2016-01-27 20:56:32 +11:00
Nyall Dawson
4ec0912001 Fix inconsistent behaviour when deleting nodes with node tool
(fix #14168)
2016-01-27 20:12:20 +11:00
Nyall Dawson
4925a54f35 Followup e5ea5ff, better API 2015-10-09 20:35:28 +11:00
Nyall Dawson
b55708ec7b Fix doxygen warning 2015-10-09 06:52:04 +11:00
Nyall Dawson
e5ea5ff89a Fix add ring/fill ring tool works on first polygon (fix #13069)
Now the tools will prefer to operate on selected features first.
Improves editing of overlapping features.
2015-10-08 23:33:58 +11:00
Nyall Dawson
45a6f715b3 Fix fill ring tool creates more features than needed (fix #13354) 2015-10-08 22:40:58 +11:00
Nyall Dawson
2863f20d67 Add a const geometry getter to QgsFeature 2015-05-11 19:46:32 +10:00
Juergen E. Fischer
74e7314c36 update sip bindings II 2014-01-27 09:22:53 +01:00
Juergen E. Fischer
99f998aa30 - add missing sip bindings
- port widgets_tree.py to QtXml and update customization.xml (fixes #5752 and  #8054)
2013-06-22 19:41:34 +02:00