0.7.0

PyPI link to release 0.7.0 Documentation for release 0.7.0

Robustness

  • Geometric curve-curve intersection has better handling for cases when the number of intersection candidates grows large (MAX_CANDIDATES == 64):

    • First tries to reduce the number of candidates by checking if the actual convex hulls of each segment in a candidate pair intersect. This is a much “finer” check than using the “blunt” bounding box check.

    • If the convex hull refinement fails, checks if the curves are coincident, i.e. different segments / parameterizations along the same algebraic curve. This is done by using the Curve.locate() function to try to project each of the four endpoints onto the other curve and then re-parameterizing each curve onto a common interval.

Data Structures

  • Storing xy-points as columns (rather than rows). This was a very large and breaking change, started in b44af8c. See #51 for more information.

Python Changes

Non-Public API

  • Requiring contiguous 1D arrays for Cython functions (9ede37d).