Self intersected wire may cause a loop, and BRepBuilderAPI_MakeWire may
mistakenly consider the wire to be closed. And this makes
BrepTools_WireExplorer unhappy and cause it to skip edges. We now use
ShapeAnalysis_FreeBounds to connect edges to wires.
'start' used to mean the initial resting position of the tool. Now it
is changed to mean the feed start position.
fromShape() has also improved to automatically guess 'retraction' and
'resume_height' parameters if not given, based on input shape boundary.
* Fixed non-circular curve orientation handling
* Section changed to use Part::CrossSection, because it seems
BRepAlgoAPI_Section has trouble with non-circular curves (LastParameter
becomes huge which causes discretization to produce many many points)
* Exposed Area.makeSections() to section with variable heights
* Modified Area.setPlane() to accept non-planar shape
* Exposed Area.getPlane() to obtain current workplane
* Exposed Area.Shapes attribute to return the current holding children
shape.
* Path.fromShapes can now convert any number of shapes to Path with
optimzied travel distances. It internally uses Path.sortWires to
minimize travel distances, and also sort wires by its Z height in case
of sectioned wires.
* The above python function is impelmented in Path::Area class.
* Path::FeatureShape is rewrote to take advantage of these two
functions.
* Add Path::FeatureAreaView to partially display a Path::FeatureArea's
sections.