#include "viz/heatmap.h"
#include "implot.h"

void heatmap(const char* title, const float* values, int rows, int cols,
             float scale_min, float scale_max) {
    if (ImPlot::BeginPlot(title, ImVec2(-1, 0), ImPlotFlags_NoLegend)) {
        ImPlot::SetupAxes(nullptr, nullptr,
            ImPlotAxisFlags_NoDecorations, ImPlotAxisFlags_NoDecorations);
        ImPlot::PlotHeatmap("##data", values, rows, cols,
                            scale_min, scale_max);
        ImPlot::EndPlot();
    }
}

void heatmap(const char* title, const double* values, int rows, int cols,
             double scale_min, double scale_max) {
    if (ImPlot::BeginPlot(title, ImVec2(-1, 0), ImPlotFlags_NoLegend)) {
        ImPlot::SetupAxes(nullptr, nullptr,
            ImPlotAxisFlags_NoDecorations, ImPlotAxisFlags_NoDecorations);
        ImPlot::PlotHeatmap("##data", values, rows, cols,
                            scale_min, scale_max);
        ImPlot::EndPlot();
    }
}
