You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add an interactive Shape cross-section tool that cuts selected solids with a shared local plane and shows a temporary wire preview (no sketch commit in v0).
Problem
There is no way to inspect a plane cut through solids before implementing sketch-from-shape.
Section experiments need a shape-local plane (local frame + offset), multi-select behavior, and clear temporary AIS feedback.
Implemented scope
Feature:
Toolbar mode Shape_cross_section with Options for local XY / XZ / YZ, Invert normal, Hide back side (display-only AIS clip, on by default), bbox-ranged Offset slider, and Clip (undoable half-space BREP cut: keep positive-normal side, replace originals).
Shared cutting plane for multi-select: orientation from the first selected solid's local axes; origin at the selection bbox center.
Temporary cyan section wires plus yellow translucent plane fill, outline, and normal arrow (preview AIS not in document / undo; Clip commits document shapes with undo).
Auto-preview on mode enter (if solids already selected), on selection change, and when plane/offset change. Offset/plane dragging updates the yellow plane immediately; section wires run asynchronously (cancel + latest-pending) so Options stays responsive.
Desktop: parallel per-solid section preview (worker pool). WASM: serial for that pool (see agents/plans/wasm-multithreading.md).
Empty selection shows a bold Options prompt to select shapes; clearing selection or leaving the mode removes the preview.
Solids the plane misses are skipped; preview clears only if nothing intersects.
Shape local frames (gp_Ax3) baked on move/rotate/scale finalize and persisted in JSON / shape undo records.
Code (high level):
src/shp_cross_section.h / .cpp
Mode, Options, and enter-selection restore in gui* / mode.h
Summary
Add an interactive Shape cross-section tool that cuts selected solids with a shared local plane and shows a temporary wire preview (no sketch commit in v0).
Problem
Implemented scope
Feature:
Shape_cross_sectionwith Options for local XY / XZ / YZ, Invert normal, Hide back side (display-only AIS clip, on by default), bbox-ranged Offset slider, and Clip (undoable half-space BREP cut: keep positive-normal side, replace originals).agents/plans/wasm-multithreading.md).gp_Ax3) baked on move/rotate/scale finalize and persisted in JSON / shape undo records.Code (high level):
src/shp_cross_section.h/.cppgui*/mode.hShp+ deltas / move-rotate-scaletests/shp_tests.cppDocs:
docs/usage.md,docs/usage-settings.md,CHANGELOG.mdsrc/doc/gui.md,src/doc/shape.md,agents/plans/cross-section-tool.mdAcceptance criteria
EzyCad_tests --gtest_filter=Shp_cross_section.*:Shp_test.Cross_section*src/stays dual-version compatible.Follow-ups (out of scope)
agents/plans/wasm-multithreading.md).Related
agents/plans/cross-section-tool.mdagents/drafts/issues/active/gh-218-cross-section-tool.mdagents/plans/wasm-alt-drag-multiselect.md)