Commit 8832ad95 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

add configure_measures helper

parent 8d67646a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2,8 +2,8 @@ width: 1200px;
height: 480px;

points {
  xs: 60, 50%, 200;
  ys: 60px, 50%, 14em;
  xs: csv('tests/testdata/measurement.csv', time);
  ys: csv('tests/testdata/measurement.csv', value2);
  sizes: 4pt, 20pt;
}

+19 −0
Original line number Diff line number Diff line
@@ -417,5 +417,24 @@ ParserFn configure_series_fn(
  return bind(&configure_series, _1, ctx, series);
}

ReturnCode configure_measures(
    const plist::Property& prop,
    std::vector<Measure>* measures) {
  if (plist::is_enum(prop, "csv")) {
    SeriesRef data;
    if (auto rc = parse_data_series_csv(prop, &data); !rc) {
      return rc;
    }

    for (auto v : series_to_float(*data)) {
      measures->emplace_back(from_user(v));
    }

    return OK;
  }

  return configure_vec<Measure>(bind(&configure_measure, _1, _2), measures)(prop);
}

} // namespace plotfx
+4 −0
Original line number Diff line number Diff line
@@ -128,6 +128,10 @@ ParserFn configure_series_fn(
    const DataContext& ctx,
    SeriesRef* data);

ReturnCode configure_measures(
    const plist::Property& prop,
    std::vector<Measure>* measures);

} // namespace plotfx

#include "config_helpers_impl.h"
+3 −6
Original line number Diff line number Diff line
@@ -149,13 +149,10 @@ ReturnCode configure(
  DomainConfig color_domain;
  ColorScheme color_palette;

  ParseToFn<Measure> parse_measure =
      bind(&configure_measure, _1, _2);

  static const ParserDefinitions pdefs = {
    {"xs", configure_vec(parse_measure, &config->x)},
    {"ys", configure_vec(parse_measure, &config->y)},
    {"sizes", configure_vec(parse_measure, &config->sizes)},
    {"xs", bind(&configure_measures, _1, &config->x)},
    {"ys", bind(&configure_measures, _1, &config->y)},
    {"sizes", bind(&configure_measures, _1, &config->sizes)},
    //{"color", configure_color_opt(&color)},
    //{"colors", configure_series_fn(data, &colors)},
    //{"labels", configure_series_fn(data, &data_labels)},