Horizon
fab_output_settings.hpp
1 #pragma once
2 #include "common/common.hpp"
3 #include "common/lut.hpp"
4 #include "nlohmann/json_fwd.hpp"
5 #include "util/uuid.hpp"
6 
7 namespace horizon {
8 using json = nlohmann::json;
9 
11 public:
12  class GerberLayer {
13  public:
14  GerberLayer(int l);
15  GerberLayer(int l, const json &j);
16  json serialize() const;
17 
18  int layer;
19  std::string filename;
20  bool enabled = true;
21  };
22 
23  FabOutputSettings(const json &);
25  {
26  }
27  json serialize() const;
28  void update_for_board(const class Board &brd);
29 
30  std::map<int, GerberLayer> layers;
31 
32  enum class DrillMode { INDIVIDUAL, MERGED };
33  DrillMode drill_mode = DrillMode::MERGED;
34 
35  static const LutEnumStr<DrillMode> mode_lut;
36 
37  std::string drill_pth_filename = ".txt";
38  std::string drill_npth_filename = "-npth.txt";
39  uint64_t outline_width = 0.01_mm;
40 
41  std::string prefix;
42  std::string output_directory;
43  bool zip_output = false;
44 };
45 } // namespace horizon
horizon::Board
Definition: board.hpp:42
horizon::FabOutputSettings
Definition: fab_output_settings.hpp:10
nlohmann::basic_json
a class to store JSON values
Definition: json.hpp:166
nlohmann::json
basic_json<> json
default JSON class
Definition: json_fwd.hpp:61
libzip::uint64_t
zip_uint64_t uint64_t
zip_uint64_t_t typedef.
Definition: zip.hpp:108
horizon::FabOutputSettings::GerberLayer
Definition: fab_output_settings.hpp:12