Commit Graph
28 Commits
Author SHA1 Message Date
yztink 2f10a66bff fix(draw): support line tangency in arc construction and resolve trim contact precision
- Implement Apollonius PPC (Point-Point-Curve) and multi-tangent CCP solvers for lines in arc.rs
- Support tangent line snapping for all 3-input arc combinations (Tangent-Point-Point, Point-Tangent-Point, Tangent-Tangent-Point, Tangent-Point-Tangent, Point-Tangent-Tangent)
- Resolve TangentGeom::Line f32 truncation in snap.rs to preserve true f64 key vertices during tangent evaluation and TangentObject construction
- Preserve strict CUT_TOLERANCE (1e-7) in trim.rs while ensuring tangent contact points are detected accurately
- Add unit tests for line tangency solvers, tangent trim detection, and angular precision sweeps
2026-10-10 23:01:22 -07:00
yztink d5d6733d82 feat(snap): add transparent object snap overrides in active commands
Allow users to temporarily override object snaps during active point prompts by typing at least the first 3 letters of any snap mode (e.g. MID, END, CEN, PER, NON). The override activates for the next point pick only and automatically restores running snaps once consumed or cancelled.
2026-10-10 17:01:12 -07:00
yztink 2b7a514701 fix(script): repeat last command on blank line when outside active command 2026-10-05 15:35:29 -07:00
yztink 973d7b0bb6 feat(ucs): align UCS Face origin and axes to nearest vertex and edge 2026-10-03 22:32:57 -07:00
yztink 6840687f32 fix(ucs): enable solid face raycasting and model hydration in UCS FACE 2026-10-03 22:32:57 -07:00
yztink 384519f2cc feat(commandline): allow history to never fade when fade time is 0 2026-10-03 11:35:39 -07:00
yztink 9345c7799c fix(layer): refresh ribbon and layer panel when entities register novel layers 2026-10-02 23:17:08 -07:00
yztink c9d9f9c2bb feat(sysvar): add DYNMODE system variable and command for Dynamic Input 2026-10-02 21:01:02 -07:00
yztink f32d0422d2 fix(script): support AutoCAD .scr scripts with multi-line, single-line, and prefix handling 2026-10-01 23:34:15 -07:00
yztink 3ed1bddcee fix(snap): do not snap tangent across ellipse arc break 2026-09-29 17:11:08 -07:00
yztink 596558f80a fix: resolve tangent snap when continuing an arc 2026-09-28 22:52:21 -07:00
yztink a35fc949f3 fix(ellipse): accurately transform ellipse and elliptical arcs in blocks and standard transforms
- Add transform_ellipse_geometry helper in scene::view::transform to compute exact principal semi-axes, normal, ratio, and shifted arc parameters under any affine transform (negative scales, reflections, negative rotations, non-uniform scaling, and translations).
- Use transform_ellipse_geometry in block_cache::transform_tangent for TangentGeom::PlanarEllipse so GPU analytical instances and curve endpoints match true WCS positions.
- Update entities::ellipse::apply_transform to use transform_ellipse_geometry for complete scaling, rotation, mirroring, and affine transformations.
- Clean up tangent parameters in to_render for Ellipse so start_param and end_param are consistently unwrapped.
- Add comprehensive unit tests in transform.rs, block_cache.rs, and ellipse.rs verifying negative rotations, negative scales, and distant origins.
2026-09-28 16:09:41 -07:00
yztink c827b87cf9 fix(trim): snap trim cut parameters to exact boundary contact points 2026-09-28 01:56:47 -07:00
yztink 92fa661065 feat(draw): add fluid tangent arc, circle, and line construction with ellipse support 2026-09-28 01:56:03 -07:00
yztink 43a16af060 test(commands): remove test relying on external opencad-py-runner plugin 2026-09-26 10:09:04 -07:00
yztink 7c0af700e8 fix(commands): record last_cmd on plugin dispatch to repeat on Enter
When a plugin command was dispatched, record_recent was called but
tabs[i].last_cmd was never set. Consequently, pressing Enter or Space on
an empty command line after running a plugin command failed to repeat it.

This records tabs[i].last_cmd on plugin dispatch and requests command-line
focus and dynamic input syncing when an interactive plugin command starts.
2026-09-25 23:51:19 -07:00
yztink fa1b4db490 fix(command-line): prevent duplicate paste in command line and text fields 2026-09-24 23:37:32 -07:00
yztink ffdde71057 feat(plugin): support analytical GPU preview wires for circles and arcs 2026-09-23 17:19:56 -07:00
yztink d218ec1451 feat(plugin): add CommitMany and CommitManyAndEnd for multi-entity interactive commands 2026-09-23 15:19:33 -07:00
yztink 358103c1e4 feat(plugin): wire on_cursor_move and preview wires through IPC plugin runner 2026-09-23 11:33:37 -07:00
yztink 5eda52626e feat(plugin): add on_cursor_move and PreviewWire for interactive rubber-band previews 2026-09-23 02:03:16 -07:00
yztink dad9c725c2 fix(viewcube): restore ViewCube visibility across display scales and window bounds 2026-09-21 23:39:48 -07:00
yztink 33dfbf9230 fix(command): support direct distance entry when dynamic input is disabled 2026-09-21 23:00:04 -07:00
yztink 270b6102de fix(plugin): drive headless tasks, invalidate layer cache, and handle cancel event 2026-09-21 16:29:01 -07:00
yztink bc6ad1a5fe fix(command): drain pending pause tokens on viewport click and coordinate input 2026-09-20 21:51:25 -07:00
yztink c96de124b6 fix(plugin): prevent re-entrant plugin dispatch deadlock in execute_command 2026-09-20 21:31:16 -07:00
yztink fbedb3736e feat(plugin): AutoCAD-compatible PAUSE, ENTER keyword, and command streaming 2026-09-20 21:03:12 -07:00
yztink 929f185ba5 feat(plugin): add layer creation and modification host API
- Add LayerConfig struct and add_layer / modify_layer methods to HostApi trait
- Implement IPC request/response serialization for AddLayer and ModifyLayer
- Implement HostSession methods with CAD property defaults and selective modification
- Refresh layer panel UI and invalidate scene layer dependencies upon layer changes
- Add unit tests for add_layer with defaults and partial modify_layer
2026-09-19 16:40:41 -07:00