This commit removes automatic edge extension for `Face Region` boundary shape. It applies the `Clear Edges` toggle for `Face Region`. It applies `Exclude Raised Areas` correctly. The problem of collision paths for `Clear Edges` with `Exclude Raised Areas` for certain use cases remains and is not fixed with this commit.
Remove all first-draft rotational-related code from Path workbench to make way for more stable, long-term integration of a rotational indexing capability.
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.
New option allows access to previously inaccessible faces.
Corrected property label names in UI panel, and added `Face Region` option to boundary shape list.
lazy_loader is copied to Ext now, modified external imports to lazy_load
add a few more imports to be lazy loaded, think the install path is correct now
[TD]"<" symbol embedded in html
revert changes to path modules for testing
use lazyloader in PathAreaOp.py
add back in deferred loading
temp change to print error message in tests
temp change to print error message in tests
add _init__.py to lazy_loader
make install in CMakeLists.txt one line
new feature enabled by name, excludes raised areas inside face, but mills over pockets and holes.
Apply 'ExcludeRaisedAreas' to all BoundaryShapes
Add algorithm to apply 'ExcludeRaisedAreas' to Stock and BoundBox