132 Commits

Author SHA1 Message Date
Jean Felder
711934f56f qgssfcgalgeometry: Throw en exception in case of error
This replaces the lastError workflow.
2025-09-05 09:30:02 +10:00
Jean Felder
d52606061c chore(qgssfcgalgeometry): Improve not supported comment
It is not possible to compile QGIS with SFCGAL 1.X
2025-09-05 09:30:02 +10:00
Jean Felder
3b5e5c6039 fix(qgssfcgalgeometry): Add missing SIP_THROW annotation 2025-09-05 09:30:02 +10:00
Jean Felder
46b581f4c6 feat(sfcgal): Add approximateMedialAxis algorithm 2025-09-05 09:30:02 +10:00
Jean Felder
5fb794731c qgssfcgalgeometry: Remove unused parameter in difference methods 2025-09-05 09:30:02 +10:00
Jean Felder
e84e6fe84b qgssfcgalgeometry: Remove unused parameter in intersection methods 2025-09-05 09:30:02 +10:00
Jean Felder
4df0b9014f qgssfcgalgeometry: Replace errorMsg by a lastError workflow 2025-09-05 09:30:02 +10:00
Jean Felder
820aa33fe7 sfcgal: Downgrade min version to SFCGAL 2.0 2025-09-05 09:30:02 +10:00
Jean Felder
22be110457 qgssfcgalgeometry: Fix SFCGAL typo 2025-09-05 09:30:02 +10:00
Jean Felder
37068f1915 qgssfcgalgeometry: Remove unused parameter flags in isValid 2025-09-05 09:30:02 +10:00
Jean Felder
d3c8c2d37f qgssfcgalgeometry: Add missing SIP_OUT parameter to combine 2025-09-05 09:30:02 +10:00
Jean Felder
1391badd27 qgssfcgalgeometry: Remove not implemented boundingBox3D method 2025-09-05 09:30:02 +10:00
bdm-oslandia
9edd0de3a2 fixes from review 2025-09-05 09:30:02 +10:00
bdm-oslandia
e1c089f773 add SFCGAL sip module 2025-09-05 09:30:02 +10:00
bdm-oslandia
52d29656e9 add sip for combine 2025-09-05 09:30:02 +10:00
bdm-oslandia
40db5c8ef1 add sfcgal sip files 2025-09-05 09:30:02 +10:00
Loïc Bartoletti
b730835376
Merge pull request #62835 from ptitjano/rectangle-isvalid
QgsRectangle: introduce isValid
2025-09-04 07:44:35 +02:00
Jean Felder
6bf5a1b90b
qgsrectangle: Add isvalid method 2025-08-11 12:34:58 +02:00
Valentin Buira
f6e38c7627
qgsrectangle: Improve isNull documentation 2025-08-11 11:02:38 +02:00
Loïc Bartoletti
42f90dfc74 refactor(QgsGeometryUtils): remove useless parameter distanceFromStart in interpolatePointOnSegment function 2025-08-05 14:33:49 +02:00
Loïc Bartoletti
12bf031796 docs(QgsGeometryUtils): Explicit mention CircularArc about the three fillet arc points 2025-08-05 13:45:54 +02:00
Loïc Bartoletti
1d246cdb27 refactor(QgsGeometryUtils): replace raw pointers by smart pointers 2025-08-05 11:53:27 +02:00
Loïc Bartoletti
bd5eb76ba7 style: replace seg* by segment* 2025-08-05 11:00:53 +02:00
Loïc Bartoletti
b76cbadde8 refactor(chamfer/fillet): move logic to qgsgeometryutils 2025-08-05 07:24:23 +02:00
Loïc Bartoletti
98d9c612aa refactor(chamfer/fillet): const'em all 2025-08-05 07:24:23 +02:00
Loïc Bartoletti
ccad35a431 fix(version): replace 3.40 by 4.0 for QgsGeometry chamfer/fillet 2025-08-05 07:24:22 +02:00
Loïc Bartoletti
391a07bb12 fix(version): replace 3.40 by 4.0 for QgsGeometryUtilsBase chamfer/fillet 2025-08-05 07:24:22 +02:00
Loïc Bartoletti
fe1a52b070 feat(tests): add Python tests for QgsGeometry chamfer and fillet methods 2025-08-05 07:24:22 +02:00
Loïc Bartoletti
922964da6f feat(geometry): add chamfer and fillet methods to QgsGeometry
Add vertex-based and segment-based chamfer() and fillet() methods with
Z/M coordinate interpolation support. Handles both LineString modification
and standalone segment operations for CAD-style corner editing.
2025-08-05 07:24:22 +02:00
Loïc Bartoletti
351ae63ab1 feat(geometry): add chamfer and fillet core functions to QgsGeometryUtilsBase
Add createChamfer() and createFillet() methods for 2D geometric operations.
These low-level functions handle segment intersection, angle calculation,
and tangent point computation for CAD-style corner modifications.
2025-08-05 07:24:22 +02:00
Martin Dobias
d3e7411417 QgsOrientedBox3D: new constructor using rotation + longestSide() 2025-07-30 22:57:27 +02:00
Alessandro Pasotti
ae2cf3bed9 Expose QgsPolyline to SIP 2025-06-24 11:11:32 +12:00
Alessandro Pasotti
89e165dfdf [GML] Add parsing support for Z geometries
Funded by: QGIS Danish User Group
2025-06-24 11:11:32 +12:00
Germán Carrillo
24565cf6cc [fix] Make Oriented Minimum Bounding Box of a singlepart point return the bounding box of the point, instead of features with no extent and misleading geometric attributes 2025-06-19 10:33:29 +12:00
Jacky Volpes
3bb6b9799e fix(qgsgeometry): add grid size for merge lines 2025-06-17 13:32:10 +12:00
Nyall Dawson
fa96f4c9bb Cleanup geometry collection creation from wkt
- don't create a whole set of empty possible geometries, just use wkb types
  directly
- don't expose to python -- this method is an internal detail. No-one
  has been relying on it, as calling it would have immediately crashed
  due to the missing SIP_TRANSFER annotation.
2025-06-05 10:27:23 +10:00
Alexander Bruy
3cf314fcdd add a flag to coerceToType() to control whether duplicated nodes should
be kept
2025-05-06 07:48:08 +10:00
Nyall Dawson
67036b670f Add isMaximal method to QgsRectangle 2025-04-24 12:00:42 +02:00
Nyall Dawson
4a6fef278e Cleanup docs, don't mention QString in python docs 2025-04-19 18:17:34 +10:00
Nyall Dawson
0e6d5f5593 Properly silence overloaded-virtual warning on Fedora 42 2025-04-12 06:38:32 +10:00
Nyall Dawson
71420a5628 Cleanup global constants
- Deprecate global geographic crs strings, these should not be used
- Move some global constants to Qgis, and monkey patch for
  API compatibility
- Deprecate global qgsVsiPrefix. Use QgsGdalUtils::vsiPrefixForPath()
  instead
2025-04-03 11:44:59 +10:00
Nyall Dawson
3f6b490218 Sipify 2025-04-02 11:11:10 +10:00
Nyall Dawson
afd2e4f42d Fix doxygen class briefs which aren't full sentences 2025-04-01 09:44:00 +10:00
Nyall Dawson
5f82c62212 Add missing sip downcasts for triangulated surface, polyhedral surface 2025-03-12 11:05:35 +10:00
Nyall Dawson
403bdbd405 Don't allow qgsgeometry_cast to cast away const 2025-03-12 11:05:35 +10:00
Nyall Dawson
632d196e62 Don't show useless "available in python as" notes in PyQGIS docs
Since the method name used in the docs is ALREADY the python version!
2025-02-28 18:32:09 +10:00
Nyall Dawson
a152cbecdb
Fix numerous leaks in sip method code
From the sip documentation:

    If state is not NULL then the location it points to is set to
    describe the state of the returned C/C++ instance and is the
    value returned by any %ConvertToTypeCode. The calling code
    must then release the value at some point to prevent a memory
    leak by calling sipReleaseType().

These methods were only calling sipReleaseType in the case that
an error occurred, which is incorrect -- it should always be
called.
2025-02-17 10:42:19 +10:00
Loïc Bartoletti
a6beaa96e8 docs(QgsCircle): pet doxygen 2025-02-14 08:56:11 +10:00
Loïc Bartoletti
e637eb3df2 move SegmentCalculationMethod to qgis.h 2025-02-14 08:56:11 +10:00
Loïc Bartoletti
157383300c feat(QgsCircle): Add segment calculation methods 2025-02-14 08:56:11 +10:00