Releases: google/s2geometry
Releases · google/s2geometry
v0.13.1
v0.13.0
Interface Changes
- Bump required versions
- abseil-cpp: LTS 20250814
- clang: 14
- CMake: 3.22
- OpenSSL: 1.1
- Require C++17
Fixes/enhancements
- New function: S2DensityTree::Dilate
- S2CellId: Make lookup tables constexpr, removing runtime init
- New
S2Cell::IsDistanceLessand related predicates - Do not use
#pragma STDC FP_CONTRACT offfor gcc to try to
prevent warnings. gcc has its own pragma (which was always
used) - Switch some
ABSL_LOG(ERROR)s toDFATAL - New functions
- MutableS2ShapeIndex::Remove()
- S2EdgeVectorShape::set_dimension()
- S2Polygon::MakeFull()
- Modernize
ExactFloatinterface- Replace
exactfloat::is_nan()withisnan(const ExactFloat&) - Replace
ToDouble()withexplicit operator double() - Add
fpclassify(const ExactFloat&)
- Replace
- Fix S2ShapeNestingQuery when two chains share a vertex
- Fix S2Polygon bug when intersecting polyline
- Add S2ClosestEdgeQuery::VisitClosestShapes
- Delete deprecated S2Error::text(); use message() instead
- Ensure _fp_contract_off.h is included everywhere
- Add thread annotations to SpinLock
- Convert many const vector<>&s to Span<>s
- Add noexcept to move operators
- Make some comparisons stable for sorting
- Guard against overflow in Decode functions
- Remove
S2_DEFINE_*flags macros and useABSL_FLAGdirectly
What's Changed
- Fixed where
cc_configure_extensioncomes from. by @vtsao-openai in #410 - S1Angle::SinCos: Disable sincos for glibc by @jmr in #414
- workflows: Disable macos and enable ubuntu-22 by @jmr in #412
- Fix some comments in s2builderutil_snap_functions by @rsned in #418
- Update s2builder.h comments by @rsned in #419
- CMakeLists: Make installation optional by @idevtm in #421
- CMakeLists: Work around clang sized dealloc bug by @jmr in #422
- dependabot.yml: Add daily github-actions update by @jmr in #424
- MODULE.bazel: Update by @rsned in #427
- test.yml: build with --parallel by @jmr in #429
- test.yml: Run with ctest --parallel by @jmr in #430
- GetCommonAncestorLevel: work around bit_width return type bug by @idevtm in #431
- Try to fix CMakeLists.txt by @MBkkt in #433
- Fix warnings by @MBkkt in #436
- Remove incorrect thread-safety annotation by @MBkkt in #437
- Update to 2025-07-09 google3 version by @jmr in #440
- README.md: Bump abseil-cpp and C++ version by @jmr in #444
- exactfloat: Replace port.h macros with absl::endian by @jmr in #445
- Publish smcallis's username by @jmr in #443
- Add design docs for S2ValidationQuery by @smcallis in #442
- Add tag_regex for dynamic version by @b4rdos in #451
- Update to 2025-09-24 google3 version by @jmr in #454
- Fix bazel build by @jmr in #455
- bazel.yml: Add Bazel workflow by @jmr in #459
- Update to 2025-10-24 google3 version by @jmr in #465
- Update to 2025-11-06 google3 version by @jmr in #472
New Contributors
- @vtsao-openai made their first contribution in #410
- @rsned made their first contribution in #418
- @idevtm made their first contribution in #421
- @smcallis made their first contribution in #442
- @dependabot[bot] made their first contribution in #447
- @b4rdos made their first contribution in #451
Full Changelog: v0.12.0...v0.13.0
v0.12.0
Interface Changes
- Remove glog and gflags dependencies. Now abseil-cpp is used.
- ABSL_LOG macros are used instead of S2_LOG
- The indirection could be added back if requested
- ABSL_CHECK macros are used instead of S2_CHECK
- S2_DEFINE_ now forwards to ABSL_FLAG
- ABSL_LOG macros are used instead of S2_LOG
- New files:
- s2chain_interpolation_query
- s2density_tree
- s2gmock_matchers
- s2fractal
- s2shapeutil_count_vertices
- s2shapeutil_edge_wrap
- New S2Shape functions:
- Incoming
- Outgoing
- IncidentOn
- Remove S2Shape::id()
- New predicates in s2predicates.h
- S2Region::GetCellUnionBound is now pure virtual
- Replace S2Testing::Random, which was based on random(3), with
new s2random:: namespace, based on abseil-cpp's random library.
This removes the use of global state. - Use int64_t instead of int64, etc.
- constexpr fixes
- Remove some old SWIG workarounds.
- Now requires abseil-cpp LTS 20240116
- S2Shape derived classes: Add decoding interface with S2Error
- S2Error: Interface is now similar to absl::Status, just with a
different error code type. In the future, this will probably
be replaced by absl::Status. - S2CellId: Made some functions constexpr
- s2edge_crossings: Fix CompareEdges for a case that never happens
- S2Polygon uses new S2LegacyValidQuery to validate geometry.
- S2ValidationQuery: New class
What's Changed
- Avoid deprecated
std::iteratorby @pateldeev in #353 - abseil-cpp supports vlog by @pateldeev in #354
- Update to latest google3 version by @jmr in #360
- Remove unused variable by @MBkkt in #366
- Update to 2024-06-21 google3 version by @jmr in #367
- Fix big endian build by @rschu1ze in #372
- Fix build with libcxx16 by @rschu1ze in #373
- Create and install a cmake config version file by @benbovy in #377
- Fix typos by @mwtoews in #378
- A bazel build and regression harness for s2geometry by @spendres in #361
- apply PEP621 by @zacharyburnett in #388
- Update CMakeLists.txt for python bindings by @andyneff in #394
- s2loop_measures_test: Disable GetSignedArea on arm64 macOS by @jmr in #396
- README.md: Update macOS instructions by @jmr in #397
- Fix macos build error by @andyneff in #399
- #402 update googletest for bazel build by @spendres in #404
- Update to latest google3 version by @jmr in #403
- Suggested fix for linking by @andyneff in #405
- automatically build library with
cmakeand test withctestby @zacharyburnett in #390 - Skip GetSignedArea.ErrorAccumulation test on macOS by @jmr in #407
New Contributors
- @pateldeev made their first contribution in #353
- @rschu1ze made their first contribution in #372
- @benbovy made their first contribution in #377
- @mwtoews made their first contribution in #378
- @spendres made their first contribution in #361
- @zacharyburnett made their first contribution in #388
- @andyneff made their first contribution in #394
Full Changelog: v0.11.1...v0.12.0
v0.11.1
v0.11.0
Interface Changes
- Add new files:
- s2hausdorff_distance_query: Computes "discrete" Hausdorff distance
- s2shape_nesting_query: Allows shell/hole queries
- Add move constructors/assignment for many types
- Remove deprecated Interpolate(t, a, b) (use Interpolate(a, b, t))
- Add AbslHashValue for S2CellUnion
- Require C++14 instead of C++11 (abseil-cpp requires it now)
- Require googletest >= 1.10 (for gmock)
- Location is now specified with -DGOOGLETEST_ROOT
- New classes:
- S2CellIterator
- S2CellIteratorJoin
- S2Coder
- New StableAngle function
- Delete many deprecated functions
- S2Point is now a different class from Vector3_d, not a typedef for it
- New edge/circle intersection ordering predicates
- New functions GetUVCoordOfEdge and GetIJCoordOfEdge
- Replace const char * with absl::string_view
What's Changed
- Update to 2022-04-08 google3 version by @jmr in #239
- Update to latest google3 version by @jmr in #254
- Fix build on big-endian architectures by @kgotlinux in #258
- Fix RemoveLast by @MBkkt in #267
- python: Named component accessors for S2Point by @podsvirov in #268
- Expose more functionality via the SWIG wrapper by @MikePlayle in #257
- Fix -DCMAKE_CXX_STANDARD ignored by CMakeLists by @LafeWessel in #273
- fix little typo problem in README.md by @MarkLai0317 in #274
- README.md: Add warning about API/ABI stability by @jmr in #281
- Fix undefined sanitizer issue in compact_array by @MBkkt in #284
- Allow already have abseil by @MBkkt in #285
- Remove trailing null from Python strings by @MikePlayle in #282
- Add missing comment by @MBkkt in #286
- Fix possible warning in header by @MBkkt in #287
- Fix missing include by @MBkkt in #291
- Remove unused variables by @MBkkt in #293
- Update to latest google3 version by @jmr in #297
- Fix address sanitizer issue in S2Loop move ctor/assign by @MBkkt in #298
- Add S2_USE_SYSTEM_INCLUDES cmake options to avoid s2 compile time warnings… by @MBkkt in #300
- Update to latest google3 version by @jmr in #312
- Add ability to create Python wheels by @selimnairb in #313
- value_lexicon: Fix build with abseil LTS 2023-08-02 by @acelyc111 in #334
- Add a CMake option BUILD_TESTS to decide whether to build S2 unit tests by @acelyc111 in #333
- Fix several MSVC build issues by @jherico in #338
- Add modern cmake config targets to s2geometry by @jherico in #339
New Contributors
- @kgotlinux made their first contribution in #258
- @MikePlayle made their first contribution in #257
- @LafeWessel made their first contribution in #273
- @MarkLai0317 made their first contribution in #274
- @selimnairb made their first contribution in #313
- @acelyc111 made their first contribution in #334
- @jherico made their first contribution in #338
Full Changelog: v0.10.0...v0.11.0
v0.10.0
- Add new files
- s2buffer_operation
- s2builderutil_get_snapped_winding_delta
- s2builderutil_lax_polyline_layer
- s2memory_tracker
- s2shapeutil_conversion
- s2winding_operation
- s2wrapped_shape
- thread_testing
- Expose some new functions in pywraps2
- Remove internal absl; depend on released absl
- Require SWIG 4
- Remove internal files that are no longer needed
- Improved documentation of EncodedS2ShapeIndex
- Fix accidental dependence on gtest even when not enabled.
Pre-release v0.10.0-2022.02.23.00
- Add new files
- s2buffer_operation
- s2builderutil_get_snapped_winding_delta
- s2builderutil_lax_polyline_layer
- s2memory_tracker
- s2shapeutil_conversion
- s2winding_operation
- s2wrapped_shape
- thread_testing
- Expose some new functions in pywraps2
- Remove internal absl; depend on released absl
- Require SWIG 4
- Remove internal files that are no longer needed
- Improved documentation of EncodedS2ShapeIndex
Release v0.9.0
The same as v0.9.0-2019.03.04.00.
Pre-release v0.9.0-2019.03.04.00
Fix gunit_prod dependency.
Pre-release v0.9.0-2019.03.01.00
Changes since v0.9.0-2019.02.11.00:
New functionality:
- Add S2ShapeIndex Dump function
- Add Init to Graph nested classes
- S2Polygon::InitToOperation: Propagate S2Error
Bug fixes:
- Fix S2BooleanOperation empty/full handling
- Minor compilation fixes for nacl
- Fix LaxPolygonLayer bug
- Fix rare bug in S2BooleanOperation
- Fix rare bug in VisitCrossingEdgePairs
- Fix UB discovered by -D_GLIBCXX_DEBUG
- S2Cap::Add: Fix bug with empty other cap
- OwningShape: Fix potential memory leak
- S2Builder: Clear layer_is_full_polygon_predicates_
- S2EdgeTesselator: Improve error estimation