FreeCAD: master 5c6de6dd

Author Committer Branch Timestamp Parent
Gabriel Wicke Gabriel Wicke master 2020-06-06 23:29:36 master 886d9656
Changeset Path: Area based unified projection implementation

Generalize the `extractFaceOffset` method to `getOffsetArea`, which can
handle both face offsetting and projection. Another difference is that
the new method exposes Area's ability to preserve internal holes,
defaulting to preserving. The method is moved to the PathUtils module,
reflecting its generality and fairly wide used across Path.

This method is then used to provide a drop-in alternative to
`FindUnifiedRegions` via a small wrapper in PathSurfaceSupport. The Area
implementation is generally quick, but can fail (throw) in some cases,
so the wrapper is trying the Area method as an optimization first, and
falls back to the full `FindUnifiedRegions` logic if that fails.
mod - src/Mod/Path/PathScripts/PathMillFace.py Diff File
mod - src/Mod/Path/PathScripts/PathProfile.py Diff File
mod - src/Mod/Path/PathScripts/PathSurfaceSupport.py Diff File
mod - src/Mod/Path/PathScripts/PathUtils.py Diff File
mod - src/Mod/Path/PathScripts/PathWaterline.py Diff File