feat: add C++ ImGui functions for core UI and visualization
Funciones C++/ImGui para dashboards (grid, panel, docking, sidebar, tabs), visualizaciones (candlestick, gauge, histogram, pie, sparkline, heatmap, scatter, line, bar, surface3d, kpi, table), grafos (force layout, renderer, viewport, spatial hash, types) y utilidades (time series buffer, tracy zones, memory/fps overlay, plot theme). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
---
|
||||
name: surface_plot_3d
|
||||
kind: component
|
||||
lang: cpp
|
||||
domain: viz
|
||||
version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "void surface_plot_3d(const char* title, const float* values, int rows, int cols, float z_min, float z_max)"
|
||||
description: "[STUB] Renderiza una superficie 3D — requiere ImPlot3D (no vendoreado aun)"
|
||||
tags: [implot3d, chart, visualization, gpu, surface, 3d, stub]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
error_type: ""
|
||||
imports: [imgui]
|
||||
tested: false
|
||||
tests: []
|
||||
test_file_path: ""
|
||||
file_path: "cpp/functions/viz/surface_plot_3d.cpp"
|
||||
framework: imgui
|
||||
params:
|
||||
- name: title
|
||||
desc: "Titulo de la superficie, se muestra como header del plot"
|
||||
- name: values
|
||||
desc: "Array row-major de alturas Z con dimension rows*cols"
|
||||
- name: rows
|
||||
desc: "Numero de filas de la grilla de la superficie"
|
||||
- name: cols
|
||||
desc: "Numero de columnas de la grilla de la superficie"
|
||||
- name: z_min
|
||||
desc: "Valor minimo del eje Z para escalar el colormap"
|
||||
- name: z_max
|
||||
desc: "Valor maximo del eje Z para escalar el colormap"
|
||||
output: "Renderiza un placeholder informativo en el frame ImGui actual; cuando ImPlot3D este disponible, renderizara la superficie 3D"
|
||||
---
|
||||
|
||||
# surface_plot_3d
|
||||
|
||||
**STUB** — la implementacion real requiere [ImPlot3D](https://github.com/brenocq/implot3d), que todavia no esta vendoreado en `cpp/vendor/implot3d/`.
|
||||
|
||||
Mientras tanto la funcion renderiza un grupo ImGui con un mensaje informativo que muestra el titulo, las dimensiones de la grilla y el rango Z. La firma es definitiva y no cambiara cuando se integre ImPlot3D.
|
||||
|
||||
## Dependencia pendiente
|
||||
|
||||
Para activar la implementacion real:
|
||||
|
||||
1. Clonar o copiar ImPlot3D en `cpp/vendor/implot3d/`
|
||||
2. Anadir `implot3d.cpp` al build system (CMake / Makefile)
|
||||
3. Reemplazar el cuerpo de `surface_plot_3d` por la llamada a `ImPlot3D::BeginPlot3D` / `ImPlot3D::PlotSurface` / `ImPlot3D::EndPlot3D`
|
||||
4. Actualizar `imports` del .md a `[imgui, implot3d]` y quitar el tag `stub`
|
||||
|
||||
## Uso
|
||||
|
||||
```cpp
|
||||
// values es un array row-major de rows*cols floats
|
||||
float grid[4 * 4] = { ... };
|
||||
surface_plot_3d("Mi Superficie", grid, 4, 4, -1.0f, 1.0f);
|
||||
```
|
||||
|
||||
Debe llamarse dentro del render callback de `fn::run_app` (o cualquier contexto con un frame ImGui activo).
|
||||
Reference in New Issue
Block a user