#pragma once

// Diagrama de Voronoi via raster brute-force (MVP).
// Para cada pixel, encontrar el seed mas cercano (Euclidea). Suficiente para
// N <= 200 seeds y region <= 500x500.

#include "imgui.h"
#include <vector>

struct VoronoiCell {
    std::vector<ImVec2> polygon;  // En MVP raster queda vacio. Lo dejamos por API future-proof.
    ImVec2              seed;
    ImU32               color;
};

// Layout puro. En MVP raster no devuelve poligonos analiticos: el polygon
// queda vacio y solo se rellenan seed/color. El render usa raster directo.
std::vector<VoronoiCell> voronoi_layout(const ImVec2* seeds, int n, ImVec2 region);

// Render brute-force: muestrea region en celdas de px_size pixeles, para cada
// celda escribe un AddRectFilled con el color del seed mas cercano.
void voronoi(const char*  id,
             const ImVec2* seeds,
             int           n,
             const ImU32*  colors,
             ImVec2        size = ImVec2(-1.0f, 300.0f));
