0.2.0
Primary feature:
Surface.intersect()method addedTo support intersection, needed
CurvedPolygontype, i.e. an object defined only by its curved sides (whereas aSurfacemay have interior control points)Added
Curve.specialize()method for chopping aCurveat 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 thenewton_refine()helperAdded 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.curvemodule, but was moved. Since, documentation has been added forget_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_yandSurface.widthproperties to allow tracking a sub-surface during the subdivision process (this is an analogue to theCurve.startandCurve.endproperties)Added
Curve.edge_index,Curve.next_edgeandCurve.previous_edgeproperties to allow tracking when curves are actually the sides of aSurface