231 Commits

Author SHA1 Message Date
Nyall Dawson
d704163884 Rename QgsRectangle::buffer to buffered and mark as const 2017-09-25 17:20:36 +10:00
Nyall Dawson
01d34ede9d Sip sync 2017-09-25 17:12:03 +10:00
Nyall Dawson
e7b08d520e Expand geometry test coverage 2017-09-22 09:54:23 +10:00
Nyall Dawson
9e61cd63df Move overriden methods from headers to cpp files
Since they can't be inlined anyway
2017-09-19 17:22:33 +10:00
Nyall Dawson
f387210e4a Move QgsPolygonV2 equality operators up to QgsCurvePolygon 2017-09-19 17:22:33 +10:00
Nyall Dawson
bb425e4540 Cleaner signature for QgsAbstractGeometry::closestSegment 2017-09-19 17:22:33 +10:00
Nyall Dawson
54c988f918 Make QgsAbstractGeometry::toCurveType pure virtual, and implement
for all geometry types

Previously this method would return nullptrs for many geometry
types
2017-09-19 17:22:33 +10:00
Nyall Dawson
5bb359db90 Boost test coverage of geometry classes 2017-09-19 17:22:33 +10:00
Nyall Dawson
9b6e79cd18 Expand QgsTriangle test coverage 2017-09-19 17:22:32 +10:00
Nyall Dawson
a15340fc2c Extend geometry test coverage 2017-09-19 17:22:32 +10:00
Nyall Dawson
d3db082cd2 Extend unit tests for QgsPolygonV2, QgsPoint 2017-09-19 17:22:32 +10:00
Nyall Dawson
328fc9cb8d Consistently use unsigned int for QgsRegularPolygon 2017-09-19 17:22:32 +10:00
Nyall Dawson
92d739619d Fix memory leak in QgsEllipse 2017-09-19 17:22:32 +10:00
lbartoletti
5c3a72014a fix qgsgeometry sip 2017-09-08 08:06:21 +02:00
lbartoletti
629f46d308 add overload methods 2017-09-08 08:06:21 +02:00
Nyall Dawson
f1313af914 Add some more unit tests 2017-09-06 11:25:17 +10:00
Nyall Dawson
f12bb74b58 Add missing docs 2017-09-06 11:25:16 +10:00
Nyall Dawson
6ab7ebadec Metatype Qgs(Referenced)Rectangle/PointXY 2017-09-06 11:25:16 +10:00
Nyall Dawson
1194b5abea Use inheritance rather than composition for QgsReferencedGeometries
See https://github.com/qgis/QGIS/pull/4720#issuecomment-308652392
for discussion of the rationale
2017-09-06 11:25:16 +10:00
Denis Rouzaud
8053b96ec0 fix constructor and skip method with same python signature 2017-09-06 11:25:16 +10:00
Nyall Dawson
1a961e8045 Template based referenced geometry class 2017-09-06 11:25:16 +10:00
lbartoletti
e30f7044c9 [FEATURE][Processing] Minimal enclosing circle 2017-09-03 07:37:53 +10:00
Nyall Dawson
c2f8a8224b Geometry error string is not shared
Instead move it to a private QgsGeometry member. It's copied
with QgsGeometry, but not the underlying private geometry
data.

This means the error string can be changed without detaching
(and copying) the geometry data.

Also make greater use of error string for all use of GEOS
functions.
2017-08-31 08:36:01 +10:00
Nyall Dawson
d8607222e0 Expose GEOS Hausdorff distance calculations to QgsGeometry 2017-08-31 08:02:44 +10:00
Matthias Kuhn
0683528d9a
More doxymentation 2017-08-14 10:52:43 +02:00
Matthias Kuhn
a4dac6ace2
Define params as /Out/ 2017-08-14 08:58:59 +02:00
Denis Rouzaud
86e8da74cb
Return enum instead of int from QgsGeometry operations 2017-08-13 23:08:45 +02:00
Matthias Kuhn
b51a5f7b6f Simplify QgsGeometryEngine code 2017-08-13 20:19:32 +02:00
Matthias Kuhn
e3787effc6 Doxymentation 2017-08-13 20:19:32 +02:00
Matthias Kuhn
581b89e0ec Use pointers and not references to QgsAbstractGeometry
because using this more consistently throughout the codebase makes it
easier to maintain code.
We also do not want to call the copy constructor on them, using pointers
just makes this more obvious. Further, casting is also something
that's commonly done on pointers and not references.

And if you want a value or a reference, just use QgsGeometry, it's meant
to be handled like this.
2017-08-13 20:19:32 +02:00
Matthias Kuhn
d0f33d6d05
Expose makeValid() errors to QgsGeometry::error() 2017-08-13 12:18:55 +02:00
Matthias Kuhn
d9ad859a81
Fix misplaced SIP_TRANSFER 2017-08-13 10:28:42 +02:00
Matthias Kuhn
639d0640a9
NULL to nullptr 2017-08-12 19:26:20 +02:00
Matthias Kuhn
a6800d6a5a
Add qgsgeometry_cast
Because it
- is faster than dynamic_cast
- doesn't rely on RTTI
- encapsulates type checking in one place
2017-08-12 19:26:20 +02:00
Nyall Dawson
4ab4a1fcad Spell check 'mitre' -> 'miter' (i.e. use en-us variation) 2017-08-07 18:08:57 +10:00
Nyall Dawson
ecaee1a3f2 QgsGeometry::vertexAt now returns QgsPoint, not QgsPointXY
Since it's easy to convert from a QgsPoint to a QgsPointXY,
but impossible to recover the Z/M values lost by only
returning a QgsPointXY.
2017-07-28 11:48:50 +10:00
Juergen E. Fischer
4f9a9e0360 s/( )/()/; s/== /== /; s/!= /!= /; 2017-07-19 09:19:37 +02:00
Matthias Kuhn
2b2d5e3637 [FEATURE] Give access to geometry errors
When methods are called that use GEOS to create new geometries, the
result geometries now contain information about what has gone wrong in
case of an error.

In practice, this means it's possible to give more detailed information
in place (and not only in the message log) when things like processing
algorithms fail.
2017-07-17 08:38:01 +02:00
Harrissou Sant-anna
99ea2e8e8f Use Cartesian instead of cartesian 2017-07-13 17:40:55 +02:00
Matthias Kuhn
9581fe0a10 [FEATURE] Add snapping results to default value calculation
... as @snapping_results variable
2017-07-07 12:58:55 +02:00
Ilya Zverev
80bc6d2674 Update SIP file for QgsRectangle 2017-06-26 16:28:54 +02:00
Matthias Kuhn
a3f14df367 Update docstrings 2017-06-26 08:21:11 +02:00
Matthias Kuhn
13775c2170 More generic closest point on line interpolation 2017-06-26 08:21:11 +02:00
Matthias Kuhn
75e5726fe4 Improve API docstrings 2017-06-26 08:21:11 +02:00
Radim Blazek
5c6e794b2d nearest point measure in identify tool 2017-06-22 15:32:07 +02:00
Sandro Santilli
57bf9daaac Document semantic of SegmentationToleranceType
.. and default of QgsCircularString::curveToLine

[ci skip]
2017-06-21 18:35:32 +02:00
Nyall Dawson
e74395d95b [FEATURE] Subdivide algorithm for QgsGeometry
Subdivides the geometry. The returned geometry will be a collection
containing subdivided parts from the original geometry, where no
part has more then the specified maximum number of nodes.
2017-06-14 22:57:20 +10:00
Nyall Dawson
bde0c7267e Expose GEOS clip by rect algorithm via QgsGeometry API
Performs a fast, non-robust intersection between the geometry and
a rectangle. The returned geometry may be invalid.
2017-06-14 22:02:01 +10:00
Matthias Kuhn
501081f863 Remove unrequired SIP_SKIP 2017-06-14 07:37:31 +02:00
Matthias Kuhn
37a306e3f2 Fix tests 2017-06-14 07:37:31 +02:00