Horizon
pdf_export_settings.hpp
1 #pragma once
2 #include "nlohmann/json_fwd.hpp"
3 #include "common.hpp"
4 #include <vector>
5 
6 namespace horizon {
7 using json = nlohmann::json;
8 
10 public:
11  PDFExportSettings(const json &);
13  json serialize_schematic() const;
14  json serialize_board() const;
15 
16  std::string output_filename;
17 
18  uint64_t min_line_width = 0;
19 
20  bool reverse_layers = false;
21  bool mirror = false;
22  bool include_text = true;
23 
24  bool set_holes_size = false;
25  uint64_t holes_diameter = 0;
26 
27  enum { HOLES_LAYER = 10000 };
28 
29  class Layer {
30  public:
31  Layer(int l, const json &j);
32  Layer();
33  enum class Mode { FILL, OUTLINE };
34  Layer(int layer, const Color &color, Mode mode, bool enabled);
35  json serialize() const;
36 
37  int layer;
38  Color color;
39 
40  Mode mode = Mode::FILL;
41  bool enabled = true;
42  };
43 
44  std::map<int, Layer> layers;
45 };
46 } // namespace horizon
Definition: common.hpp:267
Definition: pdf_export_settings.hpp:29
Definition: pdf_export_settings.hpp:9
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