Commit Graph
1217 Commits
Author SHA1 Message Date
ramox81 c9c5b35d29 Retain native PRESSPULL surface data across CAD formats 2026-09-04 15:53:15 +03:00
ramox81 9279384e9a Complete PRESSPULL selection, face editing and extrusion history 2026-09-04 15:31:30 +03:00
ramox81 479bf87988 Complete LOFT commands, surfaces, previews and editable history 2026-09-04 13:03:33 +03:00
Karim Jerbi 886d5777d8 fix(ViewCube): WCS dropdown no longer appears to clip view cube
- enlarged render area for the viewcube container, and increased the gap between cube region and WCS dropdown
2026-09-04 10:21:33 +01:00
ramox81 ad47b17603 Complete SWEEP command options and kernel integration 2026-09-04 11:15:44 +03:00
Hakan Seven 3088e641aa fix(view): stabilize 3D navigation and hidden lines
Refresh stale depth bounds after geometry edits, allow orbiting through camera poles, and preserve hidden-line occlusion for selected solids.\n\nFixes #957
2026-09-03 20:22:35 +03:00
Hakan Seven b5a926cc20 Merge remote-tracking branch 'origin/main' into review/pr-986
# Conflicts:
#	Cargo.lock
#	Cargo.toml
2026-09-03 19:52:20 +03:00
Karim Jerbi 688785a6cf feat(model-space): theme-aware model space canvas and CAD selection/grip sysvars
Model space appearance now follows the active UI theme instead of a
hardcoded dark background. Canvas mode is user-selectable (Match Theme /
Classic CAD Dark / Custom RGB), with matching controls for the paper
sheet and desk surround backgrounds and grid opacity.
Implements industry-standard CAD system variables, all settable via
command name, SETVAR, and the Options dialog:
- COLORTHEME (0/1 dark/light UI scheme, preserves custom palettes)
- COLORSCHEME (interactive named-theme selection)
- BACKGROUND (THEME/CLASSIC/DEFAULT/DESK presets, RGB triplets)
- SELECTIONAREA, SELECTIONAREAOPACITY (translucent marquee fill)
- WINDOWSAREACOLOR/WINDOWAREACOLOR, CROSSINGAREACOLOR (ACI or theme)
- SELECTIONEFFECT, SELECTIONEFFECTCOLOR (GPU highlight pass, driven by
  selection_generation invalidation — no retessellation)
- SELECTIONPREVIEW (bit 0 = idle rollover, bit 1 = in-command hover)
- GRIPSIZE, GRIPCOLOR, GRIPHOT, GRIPHOVER (grip overlay styling)
2026-09-03 17:44:44 +01:00
ramox81 1a913ee640 Fix revolve angle and wireframe display 2026-09-03 16:24:43 +03:00
ramox81 5bbb0bbe1f Harden revolve validation and properties 2026-09-03 15:01:38 +03:00
ramox81 2e112f9aeb Complete revolve workflow and properties 2026-09-03 13:40:23 +03:00
ramox81 ea6eb58c53 Fix extruded solid grip preview and taper range 2026-09-03 10:35:02 +03:00
Karim Jerbi 46190ccba1 refactor(selection): migrate Scene.selection to Arc<RefCell> to avoid per-frame deep clone
Scene.selection was Rc<RefCell<SelectionState>> (31 fields, ~1.6KB
with poly_points) cloned deep per view_main per pane via
(*sel_ref).clone() at view/mod.rs:760. Replace with
Arc<RefCell<SelectionState>> (Arc::new(RefCell::new(...)) at
scene/mod.rs:1436,1868), SelectionCanvas holds Arc<RefCell> and
selection_overlay takes Arc<RefCell> (overlay.rs:365,415),
view_main does Arc::clone(&tab.scene.selection) (atomic bump)
instead of deep clone. sel_ref stays borrowed for field reads
(vp_size etc.).

Bench (release, n=5000): SelectionState::clone 39-68ns (64pts) /
11-22ns (0pts) vs Arc::clone 7ns — 5-9x on the hot path.

Tests:
- selection_is_arc_not_refcell: asserts type_name contains Arc
- bench_selection_state_clone / bench_selection_arc_clone / bench_selection_state_clone_empty (ignored, release)
2026-09-02 22:14:32 +01:00
Hakan Seven 2cd1d36661 fix(render): match model lineweight preview curve 2026-09-02 23:28:34 +03:00
Hakan Seven 76bdab1e5b feat(display): add model lineweight scale 2026-09-02 23:03:04 +03:00
Hakan Seven edbc4d8ff8 fix(render): correct lineweight display scaling
Remove the global display boost and scale paper-space lineweights with the current sheet zoom across wire, block-wire, and hatch paths.

Fixes #962
2026-09-02 22:32:53 +03:00
Hakan Seven fddf505c20 Fix revolve history import 2026-09-02 19:35:32 +03:00
Hakan Seven b1deec753c Merge main and preserve revolve history grips 2026-09-02 18:05:50 +03:00
Hakan Seven 47549b168b Merge main and preserve loft history grips 2026-09-02 17:56:00 +03:00
Hakan Seven d93be37d35 Merge main and preserve sweep history grips 2026-09-02 17:50:30 +03:00
Hakan Seven 0ab1860948 Prevent grip clicks from starting area selection (#972)
Prevent grip clicks from starting area selection
2026-09-02 17:47:13 +03:00
Hakan Seven dba81bc8b6 Use feature edges for normal 3D selection (#971)
Use feature edges for normal 3D selection
2026-09-02 17:45:27 +03:00
Hakan Seven 7f03456cfe fix(selection): limit solid edge candidates 2026-09-02 17:44:58 +03:00
Hakan Seven fe669b7d90 fix(extrude): preserve region profiles 2026-09-02 17:41:21 +03:00
ramox81 e998af57d6 Add live extrusion draft grip preview 2026-09-02 17:34:09 +03:00
ramox81 15c44c0f3a Restore revolve profile and axis grips 2026-09-02 17:01:35 +03:00
ramox81 7fbde18151 Restore loft section grip editing 2026-09-02 16:26:14 +03:00
ramox81 110433a2ff Isolate sweep grip routing helpers 2026-09-02 16:00:45 +03:00
ramox81 e2472c68b8 Restore sweep construction grips 2026-09-02 15:58:36 +03:00
ramox81 e1386e123c Restore extrusion profile grip editing 2026-09-02 15:32:41 +03:00
ramox81 708c30831c Capture pointer input during grip edits 2026-09-02 15:21:57 +03:00
ramox81 a706858ff1 Use solid edges for normal selection 2026-09-02 14:38:22 +03:00
ramox81 a07424928b Add extrusion history grips 2026-09-02 14:18:12 +03:00
ramox81 d23a910de7 Align EXTRUDE command state and path behavior 2026-09-02 11:29:59 +03:00
ramox81 847d218c35 Complete EXTRUDE behavior and properties 2026-09-02 10:25:00 +03:00
Hakan Seven 5c7e8976e1 fix(sweep): validate property geometry 2026-09-02 00:51:20 +03:00
ramox81 5b26fc938e Keep derived sweep rows visible 2026-09-01 23:30:58 +03:00
ramox81 529ecd8cd6 Merge remote-tracking branch 'fork/codex/polysolid-parity' into codex/polysolid-parity
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	src/scene/model/solid_history.rs
2026-09-01 23:14:21 +03:00
ramox81 8ec47061fe Align polysolid sweep properties 2026-09-01 23:10:40 +03:00
Hakan Seven 227a41ec59 fix(polysolid): preserve kernel history behavior 2026-09-01 23:09:35 +03:00
Hakan Seven efd4765c8f Merge remote-tracking branch 'origin/main' into review-pr-955
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	src/scene/model/solid_history.rs
2026-09-01 22:56:53 +03:00
Hakan Seven 40b9124bd0 Merge pull request #954 from ramox81/codex/pyramid-command-properties
Match pyramid creation and properties behavior
2026-09-01 22:52:12 +03:00
Hakan Seven 8f5bffd74a fix(pyramid): preserve displayed construction values 2026-09-01 22:51:42 +03:00
Hakan Seven 6606da5029 fix(blocks): complete block-backed instance rendering 2026-09-01 22:41:12 +03:00
ramox81 1dd6b115cf feat(model): align polysolid workflow 2026-09-01 22:01:43 +03:00
ramox81 11233aa66a Match torus property behavior 2026-09-01 12:39:37 +03:00
ramox81 f9641bd9d5 Correct pyramid rotation and property sections 2026-09-01 11:19:06 +03:00
ramox81 0bfa48909f Match pyramid creation and properties behavior 2026-09-01 10:38:05 +03:00
ramox81 059e219cb6 Fix sphere edge rendering 2026-09-01 09:16:29 +03:00
Hakan Seven 6d6defa0ad fix(color): show color book identity 2026-09-01 08:44:28 +03:00