132a7d3240
- AppConfig.viewports flag para ventanas OS reales fuera del main window - Multi-viewport render loop en app_base.cpp (UpdatePlatformWindows) - SQLite amalgamation vendoreada para Windows cross-compile - LANGUAGES C CXX en CMakeLists para compilar sqlite3.c - Fix pie_chart.cpp para nueva API de ImPlot (PlotPieChart sin flags arg) - imgui.ini añadido a gitignore Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
31 lines
1.4 KiB
C++
31 lines
1.4 KiB
C++
#include "viz/pie_chart.h"
|
|
#include "implot.h"
|
|
|
|
void pie_chart(const char* title, const char* const* labels, const float* values, int count, float radius) {
|
|
if (ImPlot::BeginPlot(title, ImVec2(-1, 0), ImPlotFlags_Equal | ImPlotFlags_NoLegend)) {
|
|
ImPlot::SetupAxes(nullptr, nullptr, ImPlotAxisFlags_NoDecorations, ImPlotAxisFlags_NoDecorations);
|
|
ImPlot::SetupAxesLimits(0, 1, 0, 1);
|
|
if (radius < 0.0f) {
|
|
ImPlot::PlotPieChart(labels, values, count, 0.5, 0.5, static_cast<double>(-radius), "%.1f", 90.0);
|
|
} else {
|
|
float r = (radius > 0.0f) ? radius : 0.4f;
|
|
ImPlot::PlotPieChart(labels, values, count, 0.5, 0.5, static_cast<double>(r), "%.1f", 90.0);
|
|
}
|
|
ImPlot::EndPlot();
|
|
}
|
|
}
|
|
|
|
void pie_chart(const char* title, const char* const* labels, const double* values, int count, double radius) {
|
|
if (ImPlot::BeginPlot(title, ImVec2(-1, 0), ImPlotFlags_Equal | ImPlotFlags_NoLegend)) {
|
|
ImPlot::SetupAxes(nullptr, nullptr, ImPlotAxisFlags_NoDecorations, ImPlotAxisFlags_NoDecorations);
|
|
ImPlot::SetupAxesLimits(0, 1, 0, 1);
|
|
if (radius < 0.0) {
|
|
ImPlot::PlotPieChart(labels, values, count, 0.5, 0.5, -radius, "%.1f", 90.0);
|
|
} else {
|
|
double r = (radius > 0.0) ? radius : 0.4;
|
|
ImPlot::PlotPieChart(labels, values, count, 0.5, 0.5, r, "%.1f", 90.0);
|
|
}
|
|
ImPlot::EndPlot();
|
|
}
|
|
}
|