#pragma once #include "imgui.h" namespace fn { // Configuracion para scatter_3d. // // `xs`, `ys`, `zs` son arrays de tamano `n`. `sizes` y `colors` son // opcionales: si se pasan, se usan por punto (size en pixeles, color como // ImU32 RGBA). Si son nullptr, ImPlot3D usa los valores por defecto del // estilo activo. struct Scatter3DConfig { const float* xs = nullptr; const float* ys = nullptr; const float* zs = nullptr; const float* sizes = nullptr; // opcional, length = n const ImU32* colors = nullptr; // opcional, length = n int n = 0; ImVec2 size = ImVec2(-1.f, 400.f); }; // Renderiza un scatter 3D usando ImPlot3D::PlotScatter. // // Llamar dentro de un frame ImGui activo. Si xs / ys / zs son nullptr o // n < 1, renderiza un mensaje informativo. void scatter_3d(const char* title, const Scatter3DConfig& cfg); } // namespace fn