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:
@@ -98,6 +98,16 @@ class Hull:
|
||||
self._surface = self._build_surface()
|
||||
return self._surface
|
||||
|
||||
def invalidate(self) -> None:
|
||||
"""Invalida la caché de la superficie NURBS.
|
||||
|
||||
Llamar siempre que se modifiquen los offsets in-place
|
||||
(p.ej. arrastre interactivo en los visores 2D) para que la
|
||||
próxima llamada a ``surface`` o ``to_mesh`` reconstruya la
|
||||
geometría desde los datos actualizados.
|
||||
"""
|
||||
self._surface = None
|
||||
|
||||
def _build_surface(self) -> LoftedSurface:
|
||||
sections_data = []
|
||||
u_arr = self.offsets.x_stations / self.lpp # normalizar a [0,1]
|
||||
|
||||
Reference in New Issue
Block a user