From 4f05d891f05a038bad7b911ce52d27e01b34f7cb Mon Sep 17 00:00:00 2001 From: Samuel Fadel Date: Mon, 5 Jun 2023 13:34:27 +0200 Subject: * main.cpp: Safer colormap/metric names. --- main.cpp | 62 ++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 30 insertions(+), 32 deletions(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index 0d5d8ab..39aa830 100644 --- a/main.cpp +++ b/main.cpp @@ -55,9 +55,23 @@ static const int MAX_ELEMENT_MEMORY = 128 * 1024; #include "brushinghandler.h" static const int RNG_SEED = 123; -static const int WINDOW_WIDTH = 1200; +static const int WINDOW_WIDTH = 1000; static const int WINDOW_HEIGHT = 800; + +static const std::vector COLORMAP_NAMES{ + "Categorical", + "Continuous", + "Divergent", + "Rainbow", +}; + +static const std::vector METRIC_NAMES{ + "Aggregate error", + "Ctrl. Pt. influence", + "Stress", +}; + struct media { struct nk_font *font_14; struct nk_font *font_18; @@ -387,21 +401,6 @@ public: ColorScaleRainbow }; - static constexpr const char *colormapItemNames[] = { - "Categorical", - "Continuous", - "Divergent", - "Rainbow", - nullptr, - }; - - static constexpr const char *metricItemNames[] = { - "Aggregate error", - "Ctrl. Pt. influence", - "Stress", - nullptr, - }; - void setCPColorScale(ColorScaleType colorScaleType) { float min = 0.0f; float max = 1.0f; @@ -1078,13 +1077,13 @@ int main(int argc, char *argv[]) nk_layout_row_push(&ctx, 0.3f); nk_label(&ctx, "Scale:", NK_TEXT_RIGHT); nk_layout_row_push(&ctx, 0.7f); - if (nk_combo_begin_label(&ctx, Main::colormapItemNames[cpColorScaleType], + if (nk_combo_begin_label(&ctx, COLORMAP_NAMES[cpColorScaleType].c_str(), nk_vec2(nk_widget_width(&ctx), 200))) { nk_layout_row_dynamic(&ctx, 25, 1); size_t i = 0; - for (const char * const *name = &Main::colormapItemNames[0]; - *name != nullptr; name++) { - if (nk_combo_item_label(&ctx, *name, NK_TEXT_LEFT)) { + for (auto it = COLORMAP_NAMES.begin(); + it != COLORMAP_NAMES.end(); it++) { + if (nk_combo_item_label(&ctx, it->c_str(), NK_TEXT_LEFT)) { enum Main::ColorScaleType type = static_cast(i); if (type != cpColorScaleType) { m.setCPColorScale(type); @@ -1101,13 +1100,13 @@ int main(int argc, char *argv[]) nk_layout_row_push(&ctx, 0.3f); nk_label(&ctx, "Map to:", NK_TEXT_RIGHT); nk_layout_row_push(&ctx, 0.7f); - if (nk_combo_begin_label(&ctx, Main::metricItemNames[0], + if (nk_combo_begin_label(&ctx, METRIC_NAMES[0].c_str(), nk_vec2(nk_widget_width(&ctx), 200))) { nk_layout_row_dynamic(&ctx, 25, 1); size_t i = 0; - for (const char * const *name = &Main::metricItemNames[0]; - *name != nullptr; name++) { - if (nk_combo_item_label(&ctx, *name, NK_TEXT_LEFT)) { + for (auto it = METRIC_NAMES.begin(); + it != METRIC_NAMES.end(); it++) { + if (nk_combo_item_label(&ctx, it->c_str(), NK_TEXT_LEFT)) { // TODO } i++; @@ -1159,13 +1158,13 @@ int main(int argc, char *argv[]) nk_layout_row_push(&ctx, 0.3f); nk_label(&ctx, "Scale:", NK_TEXT_RIGHT); nk_layout_row_push(&ctx, 0.7f); - if (nk_combo_begin_label(&ctx, Main::colormapItemNames[rpColorScaleType], + if (nk_combo_begin_label(&ctx, COLORMAP_NAMES[rpColorScaleType].c_str(), nk_vec2(nk_widget_width(&ctx), 200))) { nk_layout_row_dynamic(&ctx, 25, 1); size_t i = 0; - for (const char * const *name = &Main::colormapItemNames[0]; - *name != nullptr; name++) { - if (nk_combo_item_label(&ctx, *name, NK_TEXT_LEFT)) { + for (auto it = COLORMAP_NAMES.begin(); + it != COLORMAP_NAMES.end(); it++) { + if (nk_combo_item_label(&ctx, it->c_str(), NK_TEXT_LEFT)) { enum Main::ColorScaleType type = static_cast(i); if (type != rpColorScaleType) { m.setRPColorScale(type); @@ -1182,13 +1181,12 @@ int main(int argc, char *argv[]) nk_layout_row_push(&ctx, 0.3f); nk_label(&ctx, "Map to:", NK_TEXT_RIGHT); nk_layout_row_push(&ctx, 0.7f); - if (nk_combo_begin_label(&ctx, Main::metricItemNames[0], + if (nk_combo_begin_label(&ctx, METRIC_NAMES[0].c_str(), nk_vec2(nk_widget_width(&ctx), 200))) { nk_layout_row_dynamic(&ctx, 25, 1); size_t i = 0; - for (const char * const *name = &Main::metricItemNames[0]; - *name != nullptr; name++) { - if (nk_combo_item_label(&ctx, *name, NK_TEXT_LEFT)) { + for (auto it = METRIC_NAMES.begin(); it != METRIC_NAMES.end(); it++) { + if (nk_combo_item_label(&ctx, it->c_str(), NK_TEXT_LEFT)) { // TODO } i++; -- cgit v1.2.3