Horizon
grid_settings.hpp
1 #pragma once
2 #include "nlohmann/json_fwd.hpp"
3 #include "common.hpp"
4 #include "util/uuid.hpp"
5 
6 namespace horizon {
7 using json = nlohmann::json;
8 
9 class GridSettings {
10 public:
11  GridSettings(const json &j);
12  GridSettings()
13  {
14  }
15  json serialize() const;
16 
17  class Grid {
18  public:
19  Grid(const UUID &uu, const json &j);
20  Grid(const UUID &uu);
21  Grid()
22  {
23  }
24  json serialize() const;
25  void assign(const Grid &other);
26 
27  UUID uuid;
28  std::string name;
29 
30  enum class Mode { SQUARE, RECTANGULAR };
31  Mode mode = Mode::SQUARE;
32  Coordi spacing_rect = Coordi(1.0_mm, 1.0_mm);
33  uint64_t spacing_square = 1.0_mm;
34  Coordi origin;
35  };
36 
37  Grid current;
38  std::map<UUID, Grid> grids;
39 };
40 } // namespace horizon
Definition: grid_settings.hpp:17
Definition: grid_settings.hpp:9
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
a class to store JSON values
Definition: json.hpp:177
zip_uint64_t uint64_t
zip_uint64_t_t typedef.
Definition: zip.hpp:108
basic_json<> json
default JSON class
Definition: json_fwd.hpp:62