fix(viz): forzar circulo a todos los nodos salvo Table; tapar energia inicial

- types_registry.cpp::apply_types_yaml: tras aplicar el yaml, sobreescribe
  shape de cada tipo: 'Table' → SHAPE_SQUARE, todo lo demas → SHAPE_CIRCLE.
  Convencion fija — ediciones futuras del Type Editor (issue 0007) o del
  yaml no rompen la regla.
- examples/types.yaml + project_manager.cpp seed: quitar campo `shape`,
  añadir tipo Table (cuadrado) y relacion CONTAINS_ROW (preview de 0010).
- main.cpp run_force_step: damping=0.7, max_velocity=8 explicitos para
  evitar que el grafo "explote" al cargar grafos pequenos.
- AppState repulsion: 1500 → 800 (lo mismo, aplicado al force layout).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-30 23:53:21 +02:00
parent 58e835cea6
commit f0148ac368
5 changed files with 50 additions and 25 deletions
+5 -2
View File
@@ -21,8 +21,11 @@ struct AppState {
int apply_layout_tick = 0; // se incrementa cuando hay que reaplicar layout
bool want_unpin_all = false; // Reset layout: limpia NF_PINNED y reaplica
// Force layout — config + GPU toggle
float repulsion = 1500.0f;
// Force layout — config + GPU toggle. Repulsion bajada de 1500→800
// (issue 0006 follow-up) para evitar movimiento excesivo al cargar
// grafos pequenos. Combinado con damping=0.7 y max_velocity=8 en
// run_force_step.
float repulsion = 800.0f;
float attraction = 0.04f;
float gravity = 0.005f;
bool use_gpu = false;