0.2.0

PyPI link to release 0.2.0 Documentation for release 0.2.0

  • Primary feature: Surface.intersect() method added

  • To support intersection, needed CurvedPolygon type, i.e. an object defined only by its curved sides (whereas a Surface may have interior control points)

  • Added Curve.specialize() method for chopping a Curve at arbitrary parameter values (this is also used in surface-surface intersection)

  • Added images to most documented functions and methods to illustrate the concept at hand. For example the classify_intersection() helper has seven images to enumerate all of the possible cases covered in the algorithm.

  • Added Surface.locate() method, made possible by the newton_refine() helper

  • Added Algorithm Helpers doc to try to explain some of the core algorithms at work (not all are documented yet). Some of this content was previously documented in the bezier.curve module, but was moved. Since, documentation has been added for get_curvature, newton_refine (for surfaces), classify_intersection (to determine how two curves interact while intersecting) and for some helper classes.

  • Added Surface.base_x, Surface.base_y and Surface.width properties to allow tracking a sub-surface during the subdivision process (this is an analogue to the Curve.start and Curve.end properties)

  • Added Curve.edge_index, Curve.next_edge and Curve.previous_edge properties to allow tracking when curves are actually the sides of a Surface