Horizon
Loading...
Searching...
No Matches
board_decal.hpp
1#pragma once
2#include "nlohmann/json_fwd.hpp"
3#include "pool/decal.hpp"
4#include "util/placement.hpp"
5#include "util/uuid.hpp"
6#include "util/uuid_ptr.hpp"
7
8namespace horizon {
9using json = nlohmann::json;
10
12public:
13 BoardDecal(const UUID &uu, const json &, class IPool &pool, const class Board &brd);
14 BoardDecal(const UUID &uu, std::shared_ptr<const Decal> dec);
15 UUID uuid;
16
17 const LayerRange &get_layers() const;
18 const Decal &get_decal() const;
19
20 Placement placement;
21
22 void set_flip(bool b, const class Board &brd);
23 bool get_flip() const;
24
25 void set_scale(double sc);
26 double get_scale() const;
27
28 UUID get_uuid() const;
29 json serialize() const;
30
31private:
32 std::shared_ptr<const Decal> pool_decal;
33 Decal decal;
34
35 bool flip = false;
36 double scale = 1;
37 LayerRange layers;
38
39 void update_layers();
40
41 void apply_scale();
42};
43} // namespace horizon
Definition board_decal.hpp:11
Definition board.hpp:47
Definition decal.hpp:16
Definition ipool.hpp:15
Definition layer_range.hpp:11
Definition placement.hpp:8
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
basic_json<> json
default JSON class
Definition json_fwd.hpp:62