fix(ui): 3D stale cache + node/waterline visual hierarchy

hull.py
  - add invalidate() — clears _surface NURBS cache on in-place
    offsets edit; fixes 3D viewer showing old geometry after drag

main_window.py
  - call hull.invalidate() before load_hull() in
    _on_offsets_edited_from_viewer so PyVista always rebuilds mesh
    from the updated offsets

viewer_lines.py
  - 4-layer drawing order: grid → control-net → hull-curves → nodes
  - nodes changed from 4px white-blue circles to 6px orange squares
    (_NODE_NORMAL #FF8000) — unambiguous visual language vs blue/green
    hull curves
  - _draw_cnet_bodyplan / _draw_cnet_planview helpers: thin muted
    control-net mesh (transverse + longitudinal edges) drawn between
    grid and bold hull curves, matching Maxsurf/DelftShip visual style
  - waterline reference lines made more muted (_GRID_WL dotted)
  - all old _GRID / _CPT_* references replaced with new palette

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 14:06:18 -04:00
parent 0f85935fc8
commit a4b8b03a59
3 changed files with 210 additions and 70 deletions
+4 -1
View File
@@ -1366,7 +1366,10 @@ class MainWindow(QMainWindow):
hull = self._current_hull
if hull is None:
return
# hull.offsets ya fue modificado in-place durante el drag
# hull.offsets ya fue modificado in-place durante el drag.
# Invalidar caché NURBS para que to_mesh() reconstruya desde los
# offsets editados y no devuelva la geometría anterior.
hull.invalidate()
if self._project is not None:
self._project.set_hull(hull)
# Actualizar vistas 2D SIN resetear zoom/pan