a802f59f55
- cmd/fn/doctor.go - cmd/fn/main.go - cpp/apps/primitives_gallery/playground/tables/CMakeLists.txt - cpp/apps/primitives_gallery/playground/tables/data_table.cpp - cpp/apps/primitives_gallery/playground/tables/data_table_logic.cpp - cpp/apps/primitives_gallery/playground/tables/data_table_logic.h - cpp/apps/primitives_gallery/playground/tables/self_test.cpp - cpp/apps/primitives_gallery/playground/tables/tql.cpp - cpp/apps/primitives_gallery/playground/tables/viz.cpp - cpp/apps/primitives_gallery/playground/tables/viz.h - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
41 lines
1.7 KiB
C++
41 lines
1.7 KiB
C++
// viz: dispatcher de visualizaciones ImPlot sobre StageOutput.
|
|
// Cada modo elige automaticamente las columnas relevantes (primera categorica,
|
|
// primera o varias numericas) salvo override desde UI.
|
|
#pragma once
|
|
|
|
#include "data_table_logic.h"
|
|
#include "imgui.h"
|
|
#include <vector>
|
|
|
|
namespace viz {
|
|
|
|
// Render principal. Devuelve true si renderiza el modo solicitado, false si
|
|
// no se cumplen pre-condiciones (faltan cols numericas/categoricas etc.).
|
|
//
|
|
// `size`: ImVec2(-1,-1) usa todo el espacio disponible.
|
|
// `out`: output del stage activo (headers, types, cells flat row-major).
|
|
// `clicked_row_out`: si != nullptr, el render escribira el indice de row del
|
|
// `StageOutput` clicado por user. -1 si no hubo click drillable. Fase 10
|
|
// (issue 0079): habilitado para bar/column/pie/donut/funnel/scatter/bubble/
|
|
// heatmap. Resto de modos: no hit-test, queda en -1.
|
|
bool render(const data_table::StageOutput& out,
|
|
data_table::ViewMode mode,
|
|
const data_table::ViewConfig& cfg,
|
|
ImVec2 size = ImVec2(-1, -1),
|
|
int* clicked_row_out = nullptr);
|
|
|
|
// Helper expuesto: encuentra primera col numerica. -1 si ninguna.
|
|
int first_numeric_col(const data_table::StageOutput& out);
|
|
|
|
// Helper: primera col categorica (String/Date/Bool/Json o Int con muchos
|
|
// uniques bajos — heuristica). -1 si ninguna.
|
|
int first_category_col(const data_table::StageOutput& out);
|
|
|
|
// Helper: extrae columna como vector<double>. Cells no parseables -> NaN.
|
|
std::vector<double> extract_numeric(const data_table::StageOutput& out, int col);
|
|
|
|
// Helper: extrae columna como vector<string> (categorias).
|
|
std::vector<std::string> extract_category(const data_table::StageOutput& out, int col);
|
|
|
|
} // namespace viz
|