Skip to content

Feature/create curve with mouse clic - #14

Open
Ludofr3 wants to merge 19 commits into
feature/match-cad-scalefrom
feature/create-curve-with-mouse-clic
Open

Feature/create curve with mouse clic#14
Ludofr3 wants to merge 19 commits into
feature/match-cad-scalefrom
feature/create-curve-with-mouse-clic

Conversation

@Ludofr3

@Ludofr3 Ludofr3 commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator
  • Interactive spline creation tool (3D points, real-time preview).
  • Custom 2D cursor manager (cross).
  • Keyboard shortcuts: n (creation mode) and d (deleting the selected curve).
  • Splitting the adapter.py file into a modular package (CAD, Spline, Composite).
  • Extraction of CursorManager into a dedicated module.
  • Simplification of command routing via match-case.
  • Cleanup of creation logic (removal of dead code and obsolete comments).
  • Visual adjustments of splines (thickness and color).

Ludofr3 added 15 commits July 27, 2026 15:43
Introduces `CursorManager` to render a 2D crosshair cursor and adds
keyboard shortcuts for switching to create and delete modes.

- Add `CursorManager` class to draw and manage custom crosshair cursor
- Bind 'n' and 'd' key shortcuts for create and delete mode commands
- Update `View` to switch cursor mode and update HUD when entering create mode
Replaces the command processing if-elif chain with a match-case
statement and extracts command logic into private helper methods.

- Replaces if-elif loop with match-case pattern matching
- Extracts handlers for reload config, set edit mode, and active curverefactor(view): simplify command handling with pattern matching

Replaces the command processing if-elif chain with a match-case
statement and extracts command logic into private helper methods.

- Replaces if-elif loop with match-case pattern matching
- Extracts handlers for reload config, set edit mode, and active curve
Implements a tool for interactively placing 3D points to construct
interpolated splines with real-time previewing and keybindings. Also
adds architecture documentation with Mermaid flow diagrams.

- Add `CreateSplineTool` state machine for drawing spline previews
- Integrate creation mode into `MouseHandler`, `View`, and keybindings
- Add `add_interpolated_curve` to `SplineModel` and adapter event handling
- Dynamically instantiate new curves in `Scene.apply_patch`
- Fix camera lens retrieval in ray picking and constraint projections
- Add sequence and component diagrams to architectural docs
Removes debug print statements and legacy fallback code from spline
creation, while cleaning up non-English inline comments.

- Simplifies `SplineModel.add_curve` by removing obsolete API checks
- Removes debug print statements in spline model
- Translates docstrings and cleans up redundant comments in control tools
Splits `adapter.py` into dedicated CAD, spline, and composite modules
under `bot/viewer/adapters/` to improve code organization.

- Extract `CADAdapter`, `SplineAdapter`, and `CompositeAdapter` into separate files
- Export adapters from `bot/viewer/__init__.py`
- Update viewer import paths to use new package structure
@Ludofr3
Ludofr3 changed the base branch from main to feature/match-cad-scale August 3, 2026 07:59
…nal-Geometry/bot into feature/create-curve-with-mouse-clic
@Ludofr3
Ludofr3 requested a review from mstauffe August 3, 2026 08:48
@Ludofr3 Ludofr3 self-assigned this Aug 3, 2026
@Ludofr3 Ludofr3 added the bot New change in bot, the python part label Aug 3, 2026
Enables deleting the currently active curve using the 'd' shortcut key,
updating the underlying spline model and removing geometry from the
scene.

- Binds 'd' key in shortcuts registry to dispatch `delete_curve`
- Handles curve deletion and scene update events in `SplineAdapter`
- Cleans up deleted curve tags in `SplineModel`
@Ludofr3 Ludofr3 added the enhancement New feature or request label Aug 21, 2026
@Ludofr3
Ludofr3 marked this pull request as ready for review August 21, 2026 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot New change in bot, the python part enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant