Auditoria del issue 0044: anota en notes: el contexto de consumo de
huerfanos que no pueden registrarse en uses_functions porque sus
consumidores no son funciones del registry:
- consumido por cpp/framework/app_base.cpp (framework no indexado)
- consumido por cpp/apps/{shaders_lab,chart_demo,text_editor_smoke}/main.cpp
- scaffolding/demo en primitives_gallery
31 huerfanas anotadas. Las que quedan en uses_functions=[] tras esto
son hojas legitimas (no llaman a nada) o realmente sin uso (lista
DEAD reportada en el issue 0044).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sankey diagram para flujos source -> target con magnitudes. BFS topologico para columnas, bandas curvas (bezier cubico) para los links.
imgui
drawlist
chart
visualization
sankey
flow
dag
false
imgui
false
cpp/functions/viz/sankey.cpp
imgui
name
desc
id
Identificador unico para PushID
name
desc
nodes
Vector de SankeyNode (label)
name
desc
links
Vector de SankeyLink {src, dst, value}. src/dst son indices en nodes
name
desc
size
Tamano del diagrama. x <= 0 usa el ancho disponible
Renderiza nodos como rectangulos verticales por columna y links como bandas con bezier cubico, con alpha bajo y color del nodo origen
scaffolding/demo en primitives_gallery
sankey
Sankey diagram. Asigna nodos a columnas via BFS topologico (level = max(level(src))+1) y los apila verticalmente en cada columna proporcionalmente a max(in_total, out_total). Los links se renderizan como bandas curvas con bezier cubico, color del nodo origen + alpha bajo.
Limitaciones
Asume DAG (sin ciclos). Si hay ciclos, los nodos del ciclo se quedan en su nivel parcial calculado por BFS — el render no rompe pero puede solapar visualmente.
Sin orden de nodos optimizado para minimizar cruces (heuristica simple por orden de insercion).