383 Commits

Author SHA1 Message Date
Loïc Bartoletti
3ab676e603 QgsGeometryUtils: move 2D distance code into QgsGeometryUtils.h and uses it 2023-12-01 11:17:11 +01:00
Loïc Bartoletti
361fbded94 QgsGeometry: use NoOrientation enum and fix some possible nullptr uses 2023-11-24 09:18:02 +00:00
Loïc Bartoletti
0f27fd3b1e QgsGeometry: add methods to return orientation 2023-11-24 07:43:24 +00:00
dubravat
e1ba6f5272 Mistype in QgsGeometryUtils::segmentSide description was fixed 2023-11-23 08:28:20 +10:00
Nyall Dawson
25b75353b5 Add coverage union algorithm 2023-11-02 22:03:20 +10:00
Nyall Dawson
c8eefd0558 Expose GEOS coverage simplify as a processing algorithm 2023-11-02 22:03:20 +10:00
Sandro Santilli
f42699979c Drop the temporary QgsRectangle::createNull static, not more needed 2023-10-23 10:07:42 +10:00
Sandro Santilli
1df4c52321 Add a QgsRectangle::createNull() temporary static method 2023-10-21 16:07:32 +13:00
Sandro Santilli
94ef53286b Rename QgsBox3d::setMinimal() to setNull()
The method was introduced in this version so it should be ok to
rename with no formal deprecation notice
2023-10-20 07:03:55 +13:00
Sandro Santilli
0ec5f0debb Add QgsRectangle::setNull(), deprecating setMinimal() 2023-10-20 07:03:55 +13:00
Julien Cabieces
29f19dafc6 fix sip 2023-09-27 18:39:19 +02:00
Julien Cabieces
7ef5717c7a add deprecated instructions 2023-09-25 11:12:15 +02:00
Julien Cabieces
5315ae6cc5 make avoidIntersections return an enum 2023-09-25 08:42:03 +02:00
Jean Felder
d7bdfe000c geometry: Remove duplicated 2d boundingbox logic 2023-09-02 12:38:44 +10:00
Jean Felder
cdc2abea90 qgsgeometry: Add support for 3D boundingbox 2023-09-02 12:38:44 +10:00
bdm-oslandia
40089e6230 qgsabstractgeometry: Add support for box3d intersection 2023-09-02 12:38:44 +10:00
bdm-oslandia
5774acf8d0 qgsabstractgeometry: Add boundingBox3D logic
With this change `QgsAbstractGeometry::calculateBoundingBox()` is now
computed from `QgsAbstractGeometry::calculateBoundingBox3D()`.
2023-09-02 12:38:44 +10:00
Nyall Dawson
22fd8d9698 Add method to detect whether two QgsOrientedBox3Ds intersect 2023-08-03 22:13:03 +10:00
Nyall Dawson
5b0b7e3c2f Add repr for QgsBox3D, QgsOrientedBox3D 2023-08-03 15:27:22 +10:00
Nyall Dawson
519c32a3ff Hold GIL for more methods 2023-08-03 15:27:22 +10:00
Nyall Dawson
c3159d5a28 Add method to get corners of QgsBox3D 2023-08-03 15:27:22 +10:00
Nyall Dawson
5bdbcc4f6c Add more helpful methods for 3d objects 2023-08-03 15:27:22 +10:00
Nyall Dawson
6c24fa8571 Add some more convenience methods for QgsOrientedBox3D 2023-08-03 15:27:22 +10:00
bdm-oslandia
e0f71afeaa
qgsgeometry: Add fromBox3D constructor 2023-07-26 09:17:17 +02:00
bdm-oslandia
4c23966008
qgsgeometry: Add fromPoint constructor 2023-07-26 08:58:49 +02:00
Martin Dobias
ecc1bf2c19 sip fix 2023-07-20 14:03:55 +02:00
Martin Dobias
e8f0e1cca1 fixes after rebase 2023-07-20 14:03:55 +02:00
Martin Dobias
5e3c230262 Small additions to QgsBox3d and QgsOrientedBox3D API
- operators to move QgsBox3d by a QgsVector3D
- reproject QgsOrientedBox3D and get its axis-aligned bounding box
- get length of sides of QgsOrientedBox3D
- transform QgsOrientedBox3D with a QgsMatrix4x4
2023-07-20 14:03:55 +02:00
Nyall Dawson
5967344117 Rename QgsBox3d to QgsBox3D for consistency, monkey patch in old
name for PyQGIS compatibility
2023-07-20 15:31:00 +10:00
Nyall Dawson
aafd4f96fe Add more efficient multipoint constructor which can avoid point cloning 2023-07-19 16:52:05 +10:00
Nyall Dawson
78ecd083d3 Add a bunch of optimised/easier to use constructor variants
for creating QgsMultiPoint objects
2023-07-19 16:52:05 +10:00
Nyall Dawson
9e5015aa47 Add equality operators for QgsOrientedBox3D 2023-07-18 12:35:45 +02:00
Nyall Dawson
8beb6a08c4 Add method to get corners of oriented box 3d 2023-07-18 12:35:45 +02:00
Nyall Dawson
c4b3608462 Rename to QgsOrientedBox3d 2023-07-16 14:43:38 +10:00
Nyall Dawson
8ca716907e Move QgsOrientedBoundingBox out to own file 2023-07-16 14:43:38 +10:00
Nyall Dawson
f5b4fbd9f1 Add QgsSphere::centerVector for returning center of sphere as a
vector
2023-07-16 14:43:38 +10:00
Nyall Dawson
5ab122bc62 Add new class QgsSphere for representing 3d spheres 2023-07-16 14:43:38 +10:00
bdm-oslandia
80a9043cad
qgsbox3d: Add combineWith methods 2023-07-06 14:12:02 +02:00
bdm-oslandia
1bae6ee1f1
qgsbox3d: Add a new contains method based on x,y,z coordinates 2023-07-06 14:12:02 +02:00
bdm-oslandia
58c161f1b5
qgsbox3d: Add is3D method 2023-07-06 14:12:00 +02:00
bdm-oslandia
06a09f83f3
qgsbox3d: Add support for toString method 2023-07-05 09:12:36 +02:00
bdm-oslandia
0773042adb
qgsbox3d: Add isEmpty method
This has is the following logic:

- QgSBox3d().isEmpty() == True
- QgSBox3d().isEmpty(0, 0, 0, 0, 0, 0) == True
- QgSBox3d().isEmpty(1, 1, 1, 1, 1, 1) == True
2023-07-05 09:12:36 +02:00
bdm-oslandia
0f961e890b
qgsbox3d: Add isNull method
This has is the following logic:

- QgSBox3d().isNull() == True
- QgSBox3d().isNull(0, 0, 0, 0, 0, 0) == False
- QgSBox3d().isNull(1, 1, 1, 1, 1, 1) == False
2023-07-05 09:12:36 +02:00
bdm-oslandia
6d1a08a5c3
qgsbox3d: Use nan for default values
This will be necessary to properly define `isNull` method in the next
commit.
This way, it behaves the same as `QgsPoint`.

Co-Authored by Jean Felder
2023-07-05 09:12:35 +02:00
bdm-oslandia
5293002ad3
qgsbox3d: Add a setMinimal method 2023-07-05 00:39:11 +02:00
bdm-oslandia
34e123e846
qgsbox3d: Add a normalize step parameter to the constructors
This allows to choose if a normalization step needs to be applied. It
is set to True by default to allow backward compatibility with the
api.
2023-07-04 17:32:10 +02:00
bdm-oslandia
48800e7802
qgsbox3d: Add 3d optional parameters to the QgsRectangle constructor 2023-07-04 17:32:10 +02:00
Nyall Dawson
4b673bf860 Improve documentation 2023-06-29 20:43:08 +10:00
Nyall Dawson
933db142c5 Add method to test whether 3 points are collinear 2023-06-29 20:43:08 +10:00
Nyall Dawson
b14d42d147 Add method to return the fraction along a line for a point 2023-06-29 20:43:08 +10:00