Skip to content

Releases: JuliaGeo/GeometryOps.jl

v0.1.26

22 Jun 20:40
078f39a
Compare
Choose a tag to compare

GeometryOps v0.1.26

Diff since v0.1.25

Merged pull requests:

v0.1.25

16 May 20:24
Compare
Choose a tag to compare

GeometryOps v0.1.25

Diff since v0.1.24

Merged pull requests:

Closed issues:

  • Registration issue (#324)

v0.1.24

10 May 03:06
3917c86
Compare
Choose a tag to compare

GeometryOps v0.1.24

Diff since v0.1.23

Merged pull requests:

Closed issues:

  • buffering (#31)
  • Implement what we can, wrap what we can't (#76)
  • Lazy apply (#82)
  • "Prepared geometry" and other such wrapper types (#87)
  • Point in polygon check failing on malformed input (#96)
  • Curried predicate functions (#148)
  • Beware: SortTileRecursiveTree does not always return comprehensive results (#156)
  • Which earth radius to use (#221)
  • Can we make global named constants for all the numeric constants in Core? (#232)
  • init not documented for applyreduce (#243)
  • applyreduce has 1 allocation where sum does not (#244)

v0.1.23

01 May 03:03
d0ab6c9
Compare
Choose a tag to compare

GeometryOps v0.1.23

Diff since v0.1.22

v0.1.22

01 May 02:51
f2a52ef
Compare
Choose a tag to compare

GeometryOps v0.1.22

Diff since v0.1.21

  • Add extent predicates (extent-geometry and extent-extent)
  • Add a FosterHormannClipping algorithm that parametrizes and controls polygon clipping. This framework allows us to implement tree acceleration etc. later as well.

Merged pull requests:

  • update the segmentize docs to reflect manifold changes (#279) (@asinghvi17)

Closed issues:

  • Introducing a spatial index interface (#131)

v0.1.21

30 Apr 23:11
fb0bad6
Compare
Choose a tag to compare

GeometryOps v0.1.21

Diff since v0.1.20

Merged pull requests:

v0.1.20

26 Apr 21:35
0dba0e6
Compare
Choose a tag to compare

GeometryOps v0.1.20

Diff since v0.1.19

  • Experimental extent support in predicates (so you can now do GO.intersects(extent, geom), GO.intersects(extent, extent), or GO.intersects(geom, extent) for all predicates)
  • Fix the order of finalization in multithreaded reproject

Merged pull requests:

v0.1.19

20 Apr 04:01
014ae20
Compare
Choose a tag to compare

GeometryOps v0.1.19

Diff since v0.1.18

  • Introduces a new SpatialTreeInterface module that provides an interface for spatial trees, built somewhat on top of AbstractTrees.jl. Currently it is implemented for SortTileRecursiveTree.jl and the FlatNoTree wrapper.
    • Provides functionality to query any tree that satisfies the interface, with an arbitrary predicate, and to perform a dual-tree query ("query" => "depth-first search").
    • Allows any extent-like thing by default via the node_extent interface function, so this could also accept e.g. S2 cell collections or spherical caps.
  • Introduces a new module LoopStateMachine that allows a function called within a loop to cause statements like continue, break, or return x to be executed. See the module page for more information.
    The module includes:
    • Action struct for representing different control flow actions
    • @controlflow macro for processing actions within loops
    • Support for :continue, :break, :return, and :full_return actions
  • Introduces new convenience functions to access edges of polygons, like eachedge, to_edgelist, and edge_extents, as well as lazy, nonallocating variants.

Merged pull requests:

v0.1.18

17 Apr 13:45
06b6e3e
Compare
Choose a tag to compare

GeometryOps v0.1.18

Diff since v0.1.17

  • Add AdaptivePredicates as the exact backend for orient. At some point we should switch to an ecosystem wide (DelaunayTriangulation + GeometryOps + ...) representation for predicate kernels (Exact, Adaptive, Auto (choose adaptive if available and exact if not), and Fast).
  • Fix touches for multi geometries

https://github.com/JuliaGeometry/AdaptivePredicates.jl is a library that implements adaptive predicates - substantially faster, BUT harder to construct, than exact predicates. Adaptive predicates are valid through the range of coordinates that geometries usually have, but we may need exact predicates if they are not.

Merged pull requests:

v0.1.17

17 Apr 03:35
5c26fd0
Compare
Choose a tag to compare

GeometryOps v0.1.17

Diff since v0.1.16

  • Add an extension on TGGeometry.jl, a Julia wrapper of the tg library for fast, non-exact geometric predicates. Access by e.g. GO.intersects(GO.TG(), geom1, geom2). #271
  • Refactor reproject, in the Proj extension, to be completely safe when invoked with threaded=true. Note that it will still not be thread safe if invoked in multiple threads at the same time. See below for the changes that were made in the course of this refactor. #288
  • Refactor the apply pipeline to get rid of closures in favour of Applicators, which are able to run apply on arrays, geoms and featurecollections. Some examples are ApplyToPoint, ApplyToGeom, etc. These are mainly used by internal methods in the apply pipeline. #288
  • Add a TaskFunctors struct that allows one to use individual functors per task. This allows thread safety for reentrant C APIs. #288

Merged pull requests:

Closed issues:

  • reproject will not work with Proj transformations and threaded=true (#88)
  • Using reproject in a threaded context makes Julia crash (#287)