Nyall Dawson
d5626d9236
Remove geos include from qgsgeometry.h
...
Avoids the need to include geos from some build targets
2018-04-26 17:28:59 +12:00
Nyall Dawson
70b67c6150
Add some more line segment methods
2018-04-24 10:07:51 +12:00
Nyall Dawson
8f1d1a31c9
Add reverse method to QgsLineSegment2D
2018-04-24 10:07:51 +12:00
Nyall Dawson
646b4af057
Add left of line test to QgsLineSegment2D
2018-04-24 10:07:51 +12:00
Nyall Dawson
c6a50fe772
Add QgsLineSegment2D class, for simple 2d line segments which
...
consist of just a 2D start and end point
2018-04-24 10:07:51 +12:00
Nyall Dawson
e047738981
Add QgsGeometry method to create wedge shaped buffers
...
Creates a wedge shaped buffer using circular strings, with
parameters for azimuth, wedge width (in degrees), outer radius
and inner radius.
2018-04-24 10:07:51 +12:00
Nyall Dawson
9a6d966d35
Allow using the longer arc with two point and center methods
2018-04-24 10:07:51 +12:00
Nyall Dawson
732d6bb475
Add convenience constructors to create QgsCircularStrings
...
Add constructors to create a circular string with a single arc:
- from 3 points on arc
- from 2 points and a center
2018-04-24 10:07:51 +12:00
Nyall Dawson
3f3b9515ef
Add convenience constructor to create QgsLineString between two points
2018-04-24 10:07:51 +12:00
Nyall Dawson
fbf6b4a383
Add geometry method to calculate mid point on an arc from p1->p2 with given center
...
And improve some docstrings
2018-04-24 10:07:51 +12:00
Loïc Bartoletti
2702a3092f
Fix warn doc
2018-04-21 08:16:14 +10:00
Loïc Bartoletti
0bacf0ff16
- Add some methods in QgsVector3D
...
- Move QgsVector3D from 3d to core
- Use QgsVector3D instead of QVector3D
2018-04-21 08:16:14 +10:00
Loïc Bartoletti
9d649e738a
Add skewLines intersection algorithm
2018-04-21 08:16:14 +10:00
Martin Dobias
45b264db08
Fixes after review
2018-04-18 13:04:05 +02:00
Nyall Dawson
37295ec48e
Expose extra arguments to QgsGeometry::transform
...
Previously these were only available via the raw QgsAbstractGeometry
API.
Also add more unit tests for QgsGeometry::transform
2018-04-10 17:49:18 +10:00
Nyall Dawson
2e7455c180
Add some geometry utils for interpolating points on lines
2018-04-06 12:43:52 +10:00
Nyall Dawson
63c5e74946
Fix clazy pass small and trivially copyable object by value warnings
2018-04-05 06:35:13 +10:00
Nyall Dawson
1ea20a4b35
Add method to swap x/y coordinates in geometries
...
This can be used to repair geometries which have
accidentally had their latitude and longitude coordinates
reversed.
2018-04-05 06:35:13 +10:00
Juergen E. Fischer
fcacb0db7c
doxygen fixes
2018-04-02 22:48:40 +02:00
Nyall Dawson
f02602b9bb
[needs-docs] geometry smooth algorithm now also retains and smooths z/m values
...
...instead of just discarding them
Applies to processing algorithm and expression function (and
QgsGeometry::smooth method)
2018-03-30 08:59:00 +11:00
Nyall Dawson
5d4e1bb31f
Add intersection/tangent methods to QgsCircle
2018-03-29 17:40:40 +11:00
Nyall Dawson
1efb3cb9b0
Add missing /Out/ annotations
2018-03-27 17:34:24 +10:00
Nyall Dawson
4bfc808ee6
Add some circle intersection and tangent utilities to QgsGeometryUtils
2018-03-27 17:44:25 +11:00
Alessandro Pasotti
84bdc92a8c
Add axisOrder to QgsAbstractGeometry GML generators
2018-03-20 13:04:17 +01:00
Nyall Dawson
6c179059a5
Add straightDistance2d and sinuosity measures to QgsCurve
2018-03-12 14:58:04 +11:00
Nyall Dawson
6bd7600aa3
Expose segmentization parameters to QgsGeometry::convertToStraightSegment
2018-03-04 12:10:27 +10:00
Matthias Kuhn
fc5073ddb0
Documentation fix
2018-03-02 12:44:02 -05:00
Nyall Dawson
3ffbd84f5f
Add a bounding box intersection test to QgsGeometry
...
We only previously had methods for exact intersections - this
commit adds a new QgsGeometry.boundingBoxIntersects() method
which can be used to test if just the bounding boxes of
geometries/rectangles intersect.
It's fast, and doesn't care about invalid geometries (unlike
the exact intersects checks)
2018-02-20 13:20:38 +10:00
Nyall Dawson
3d4f6f82bb
Followup 0548f4, fixes to layer metadata and metadata widget
...
Address outstanding review requests so that this PR can be merged
2018-02-20 11:10:55 +10:00
Blottiere Paul
a6a3e0b1d4
Fix spelling check and sip binding
2018-02-16 10:06:42 +00:00
Blottiere Paul
35d0f57807
Update documentation
2018-02-16 10:06:42 +00:00
Blottiere Paul
76a57b8345
The first point in 3D is used to propagate Z dimension
2018-02-16 10:06:42 +00:00
Nyall Dawson
ff7bb9aa53
Remove inefficient method for creating empty geometry of same
...
WKB type, and use optimized method instead
Refs #17809
2018-02-12 08:56:12 +10:00
Nyall Dawson
65827adc7d
Provide an optimised constructor for a null QgsRectangle
...
This is used a lot, yet the current constructor calls the
normalize() method which does a bunch of operations for no
result.
So instead provide a simple optimised null QgsRectangle
constructor and save a lot of cycles.
Refs #17809
2018-02-12 08:56:12 +10:00
Denis Rouzaud
0e7cea2244
QgsGeometryUtils: rename 2 methods
...
- projPointOnSegment has been renamed to projectPointOnSegment
- getSelfIntersections has been renamed to selfIntersections
2018-01-24 03:38:59 -09:00
Denis Rouzaud
0cc29569f5
reformulate doxymentation
2018-01-23 21:28:00 -04:00
Denis Rouzaud
6a2a626926
move QgsCadUtils::lineCircleIntersection to QgsGeometryUtils
...
also add a test
2018-01-23 15:01:10 -09:00
Denis Rouzaud
7722010ca8
rename *.sip to *.sip.in for the auto generated sip files
2018-01-17 10:16:37 -04:00
Denis Rouzaud
6d94ac9c6c
run sipify
2018-01-12 21:10:16 -04:00
Denis Rouzaud
d87c60512c
[sipify] fix bad handling of \see within sentences
...
and other docstrings improvements
2018-01-09 21:40:10 -04:00
Denis Rouzaud
5babec5e07
run sipify
2018-01-09 11:40:39 -04:00
Nyall Dawson
164c439af9
Add missing docs
2018-01-05 10:03:52 +10:00
Nyall Dawson
2d43dac0b5
Refine behavior of QgsGeometry equals tests
...
Before we had two checks - equals() and isGeosEqual() which
performed the exact same check (since equals() called the geos
equality test)
Since the geos equality test is a slow, topological test, which
considers two geometries equal if their component edges overlap,
but disregards ordering of vertices this is not always what we
want. There's also the issue that geos cannot consider m values
when testing the geometries, so two geometries with different
m values would be reported equal.
So, now calling QgsGeometry::equals performs a very fast, strict
equality test where geometries are only equal if the have exactly
the same vertices, type, and order.
And swap most code which was calling the slow geos test to instead
use the fast strict native test.
2018-01-05 09:59:22 +10:00
Nyall Dawson
13aa5211d1
Expand equality operators for QgsAbstractGeometry subclasses
2018-01-05 09:37:27 +10:00
Nyall Dawson
6ac6939bf8
Sipify
2017-12-23 14:21:32 +10:00
Nyall Dawson
4ff72de62e
Merge pull request #5858 from lbartoletti/segment_intersection
...
Segment intersection
2017-12-22 21:43:13 +11:00
Denis Rouzaud
5dc9b5869a
fix empty lines with spaces
2017-12-19 21:17:29 -04:00
Denis Rouzaud
64c99e054c
run sipify for code snippets
2017-12-19 21:17:29 -04:00
Denis Rouzaud
90e5196996
run sipify
2017-12-19 14:55:46 -04:00
Denis Rouzaud
be8d1d7782
run sipify
2017-12-16 10:45:52 -04:00