0.2.0
Primary feature:
Surface.intersect()
method addedTo support intersection, needed
CurvedPolygon
type, i.e. an object defined only by its curved sides (whereas aSurface
may have interior control points)Added
Curve.specialize()
method for chopping aCurve
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 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.curve
module, 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_y
andSurface.width
properties to allow tracking a sub-surface during the subdivision process (this is an analogue to theCurve.start
andCurve.end
properties)Added
Curve.edge_index
,Curve.next_edge
andCurve.previous_edge
properties to allow tracking when curves are actually the sides of aSurface