Files
egutierrez b9716a7cd6 chore: snapshot WIP previo + flow 0008 + 7 sub-issues (0112-0119)
Snapshot de WIP acumulado de sesiones previas antes de merge wave 1
del flow 0008 (kanban_cpp + agent_runner_api + DoD schema).

Incluye:
- dev/flows/0008-kanban-cpp-and-agent-workflows.md
- dev/issues/0112-0119*.md (7 sub-issues)
- WIP previo en cmd/fn/doctor.go, registry/*, modules/, cpp/, etc.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:17:08 +02:00

53 lines
2.0 KiB
Markdown

---
name: line_plot
kind: component
lang: cpp
domain: viz
version: "1.3.0"
purity: pure
signature: "void line_plot(const char* title, const float* xs, const float* ys, int count, float height = 200.0f)"
description: "Line plot 2D con ImPlot, ejes pineados y altura explicita para no vibrar al redimensionar"
tags: [implot, chart, visualization, gpu, line, locked-axes, cpp-dashboard-viz]
uses_functions: ["plot_static_cpp_viz"]
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: [implot]
tested: false
tests: []
test_file_path: ""
file_path: "cpp/functions/viz/line_plot.cpp"
framework: imgui
params:
- name: title
desc: "Titulo del grafico / id interno del plot"
- name: xs
desc: "Array de coordenadas X"
- name: ys
desc: "Array de coordenadas Y"
- name: count
desc: "Numero de puntos en los arrays xs/ys"
- name: height
desc: "Altura del plot en pixeles (default 200). Explicita para evitar feedback loops con contenedores AutoResizeY"
output: "Renderiza la linea en el frame ImGui actual con ejes pineados"
notes: "consumido por cpp/apps/chart_demo/main.cpp; scaffolding/demo en primitives_gallery"
---
# line_plot
Wrapper atomico sobre `ImPlot::PlotLine` configurado para visualizacion estatica.
## v1.1
- **Altura explicita** (`height`) — evita vibracion en contenedores con `AutoResizeY`.
- **Ejes pineados** con `plot_static::kAxisFlags` + `ImPlotCond_Always` calculados a partir de los extremos de `xs`/`ys` con 5% de headroom en Y.
- **Sin inputs, sin auto-fit** — ver `viz/plot_static.h`.
Soporta `float` y `double`.
## Capability growth log
- v1.2.0 (2026-05-18) — Overloads `(..., y_min, y_max, height)` para series con dominio conocido (CPU%/RAM% -> 0,100). Mantiene los overloads de auto-fit historico intactos. Tipos float y double.
- v1.3.0 (2026-05-18) — Overloads `(..., x_min, x_max, y_min, y_max, height)` que pinea AMBOS ejes. Util para ventanas temporales fijas (ej. ultimos 5 min): xs en [0, 300], el grafico NO se aplasta al variar count durante warmup.