5932 Commits

Author SHA1 Message Date
Frédéric BRIOL 480e9cf0f6 fix(formulas): geographic intersection calculation in sjoberg_intersection when a segment lies on the equator
Multiply the longitude offset term by `sign_lon_diff` when calculating
equator crossings in `sjoberg_geodesic::lon_of_equator_intersection()`.

Without this multiplication, when `sign_lon_diff` is negative, the offset
is applied in the wrong direction, leading to a wrong intersection
longitude (e.g. returning a coordinate outside of the segments' bounds).
This in turn causes overlay/intersection algorithms to miss crossings on
the boundary.

Including regression test for sjoberg_intersection

Fixes #1482
2026-07-09 20:04:41 +02:00
Tinko Bartels 0925991e94 Merge pull request #1456 from tinko92/fix/antimeridian-crossing-box-longitude-normalization 2026-07-03 06:01:43 +08:00
Barend Gehrels a7875f621b fix: nearly identical input should give an intersection
Fixes: #1471
2026-07-02 07:37:56 +02:00
Marcel Jacobse d36b9a199f fix: degenerate linestring relation on boundary of areal
Fixes: #1474

* Fix degenerate linestring relation on boundary of areal
* Use hexadecimal for all interrupt flags
* Also support single-point linestrings
2026-06-29 18:46:27 +02:00
Vissarion Fisikopoulos 328f2d09b7 Merge pull request #1477 from tinko92/fix/bjam_leaking_cxx14
Fix/bjam leaking cxx14
2026-06-29 13:31:06 +03:00
Tinko Sebastian Bartels 486b58b27f Narrow the condition for the parent assignment optimisation to union only, fixing case_bitset_3. 2026-06-28 19:34:50 +08:00
Tinko Sebastian Bartels 70b4b191d3 Move cxx14 checks from build.jam to buildable targets to address #1460 2026-06-28 17:26:19 +08:00
Barend Gehrels a9660c92d1 fix: failing tests on macos in release mode
Implements: #1464
2026-06-26 12:40:04 +02:00
Marcel Jacobse f3a25b2fd5 Add comment for haversine - cosine relation 2026-06-01 11:14:03 +02:00
Marcel Jacobse e23b0d7c11 Improve readability of formulas 2026-06-01 11:14:03 +02:00
Marcel Jacobse 6df9bf7dc0 Add curly braces for if statement 2026-06-01 11:14:03 +02:00
Marcel Jacobse 749244dfd5 Qualify sqrt call with math namespace 2026-06-01 11:14:03 +02:00
Marcel Jacobse 4f578550fe Improve short-distance accuracy of Andoyer inverse
Use haversine formula instead of law of cosines to avoid numerical loss
of precision for close points as suggested in #1217.

This had the side-effect of returning non-zero azimuths for smaller
angles than before, which resulted in quite inaccurate non-zero reduced
length and geodesic scale values too. To fix this, division by the
cosine of the latitudes was changed to be done implicitly within atan2,
which together with use of the haversine formula improves accuracy for
all result values.
2026-06-01 11:14:03 +02:00
Tinko Sebastian Bartels 81684e85a5 Remove dependency on Boost.TypeTraits. 2026-05-22 00:12:22 +08:00
Tinko Sebastian Bartels 3d2d3734e0 [extensions] Remove dependency on Boost.TypeTraits. 2026-05-22 00:09:22 +08:00
Tinko Sebastian Bartels 0a3b0e3145 Remove dependency on boost/cstdint.hpp 2026-05-22 00:09:22 +08:00
Tinko Sebastian Bartels bacf0c793d [extensions] Remove dependency on boost/cstdint.hpp 2026-05-22 00:09:22 +08:00
Tinko Sebastian Bartels 35a7f48f6a Remove dependency on Boost.StaticAssert. 2026-05-22 00:09:22 +08:00
Tinko Sebastian Bartels 18a521a051 [extensions] Remove dependency on Boost.StaticAssert. 2026-05-22 00:09:22 +08:00
Tinko Sebastian Bartels 232665e147 Remove dependencies on Boost.Array excluding examples that document adapted/boost_array.hpp 2026-05-22 00:09:22 +08:00
Tinko Sebastian Bartels 3f0bc5d9fc Use C++11 explicitly deleted copy constructors over boost::noncopyable. 2026-05-22 00:09:22 +08:00
Tinko Sebastian Bartels 7c4a07654a Use std::addressof over boost::addressof 2026-05-22 00:09:06 +08:00
Tinko Bartels be4284093b Merge pull request #1458 from tinko92/refactor/use-static-vector-over-varray
Drop varray implementation in favor of Boost.Container static_vector.
2026-05-07 00:07:35 +08:00
Barend Gehrels fe0f2f85c0 fix(rtree): clamp content differences to prevent FMA-induced numerical instability
Might fix #1452
2026-04-21 17:15:45 +02:00
Barend Gehrels 8b6e213c49 fix: node invariant at exception
Fixes: #1399
2026-04-21 17:14:18 +02:00
Tinko Sebastian Bartels 951e9fe10f Drop varray implementation in favor of Boost.Container static_vector. 2026-04-19 18:31:28 +08:00
Tinko Sebastian Bartels 7e9a5310d3 Skip unnecessary, error-introducing longitude normalization on antimeridian-crossing box. 2026-04-11 14:11:18 +08:00
Tinko Sebastian Bartels dd01797671 Prevent FP contractions to FMA in index/detail/algorithms/content.hpp to fix #1452 on GCC with x86-64-v3. 2026-03-28 19:49:20 +08:00
Yegor Shved 32f203328d Update to range::back(ring) for issue 1450
Chaned ring.back() to *(boost::end(ring) - 1) and then to range::back(ring)
2026-02-25 08:30:05 +01:00
Yegor Shved 5f964c9dc9 Change back() method to iterator for 1450
The issue is about absence of back() method in a ring. This commit solves the issue using different approach:
such behavior is achieved using iterator difference by 1.
2026-02-25 08:30:05 +01:00
ivanpanch 91700dca22 Fix mistakes (#1429)
* Update geometry.qbk

* Update introduction.qbk

* Update compiling.qbk

* Update design_rationale.qbk

* Update introduction.qbk

* Update quickstart.qbk

* Update creation.qbk

* Update query.qbk

* Update reference.qbk

* Update

* Update

* Update

* Update

* Update buffer_with_strategies.qbk

* Update expand.qbk

* Update expand.qbk

* Update union.hpp

* Update point.qbk

* Update box.qbk

* Update cs.hpp

* Update closure.hpp

* Update point.hpp

* Update rtree.hpp

* Update choose_next_node.hpp

* Update iterator.hpp

* Update point_in_poly_winding.hpp

* Update spatial_query.hpp

* Update imw_p.hpp

* Update remove.hpp

* Update redistribute_elements.hpp

* Update redistribute_elements.hpp

* Update insert.hpp

* Update redistribute_elements.hpp

* Update point_in_poly_crossings_multiply.hpp

* Update closeable_view.hpp

* Update example_adapting_a_legacy_geometry_object_model.qbk

* Update acknowledgments.qbk

* Update indexable.hpp

* Update for_each.hpp

* Update iterators.hpp

* Update spatial_query.hpp

* Update query_iterators.hpp
2025-10-09 19:58:48 +02:00
Harsha Totakura 8128f25992 [rstar]: Use the dynamic type while calling epsilon().
Current call to epsilon is made with the assumption that the dynamic type `content_type` is compatible with double. This does not hold true for numeric types that are bigger than double, e.g: `absl::uint128`. This CL fixes it by binding the call to `content_type`'s type.
2025-10-09 19:57:27 +02:00
Vissarion Fisikopoulos 5ad341e1bd Merge pull request #1409 from vissarion/feat/polysurf_is_valid
feat: Implement is_valid algorithm for polyhedral surfaces
2025-09-03 15:18:56 +03:00
tinko92 73cd3b79b0 Merge pull request #1418 from tinko92/fix/srs-compile-times
Refactor epsg, esri, iau2000 for faster compile times.
2025-08-04 16:22:02 +08:00
Barend Gehrels 0a8c111d57 fix: avoid stack overflow in traverse 2025-08-04 07:53:12 +02:00
Tinko Sebastian Bartels 69df6f89ed Define BOOST_GEOMETRY_DEBUG_SEGMENT_IDENTIFIER when BOOST_GEOMETRY_DEBUG_TRAVERSE_GRAPH is defined. 2025-08-01 20:20:26 +02:00
Tinko Sebastian Bartels bb8a7c542c Refactor epsg, esri, iau2000 for faster compile times. 2025-07-25 08:57:17 +08:00
Barend Gehrels 726a66547e feat: add supported combinations for convert 2025-07-17 18:47:00 +02:00
Vissarion Fisikopoulos 0ff86d14bc chore: fix warnings 2025-07-17 12:24:38 +03:00
Vissarion Fisikopoulos 7d46cebe25 feat: Implement is_valid algorithm for polyhedral surfaces 2025-07-17 12:24:33 +03:00
Wolfgang Bangerth fd6d0e7efd Avoid static variables and functions in header files. 2025-05-15 19:00:51 +02:00
Barend Gehrels 111f0dfb87 fix: consider clusters in turn_in_piece_visitor 2025-05-13 22:17:29 +02:00
Vissarion Fisikopoulos 9826b15b2f feat: Add geometry polyhedral surface class, concepts, documentation and unit tests (#1402)
Co-authored-by: Siddharth kumar <sid021099kumar@gmail.com>
2025-05-12 12:08:51 +03:00
Vissarion Fisikopoulos f8a3081b0b chore: remove unused-local-typedefs warnings 2025-04-28 16:41:03 +03:00
Vissarion Fisikopoulos 38455d07a7 chore: remove deprecated headers 2025-04-28 16:15:12 +03:00
Barend Gehrels 805ff654e8 feat: major rewrite of traversal 2025-04-25 19:47:35 +02:00
Barend Gehrels 63104f0e27 feat: make side strategy configurable 2025-04-25 08:34:42 +02:00
Vissarion Fisikopoulos 51a919dea5 Merge pull request #1379 from barendgehrels/fix/issue_629
fix: avoid warnings for coordinate conversions and unused parameters
2025-03-18 15:06:34 +02:00
Vissarion Fisikopoulos 763683eaba Merge pull request #1370 from vissarion/fix/half_period_check
Relax half period check in spheroidal normalization
2025-03-18 14:41:07 +02:00
Vissarion Fisikopoulos 75c7dfded7 chore: Replace typedefs by using 2025-03-18 13:20:09 +02:00