Horizon
Loading...
Searching...
No Matches
tool_draw_dimension.hpp
1#pragma once
2#include "core/tool.hpp"
3#include "tool_helper_restrict.hpp"
4
5namespace horizon {
7public:
8 using ToolBase::ToolBase;
9 ToolResponse begin(const ToolArgs &args) override;
10 ToolResponse update(const ToolArgs &args) override;
11 bool can_begin() override;
12 std::set<InToolActionID> get_actions() const override
13 {
14 using I = InToolActionID;
15 return {
16 I::LMB, I::CANCEL, I::RMB, I::RESTRICT, I::DIMENSION_MODE, I::ENTER_DATUM, I::ENTER_SIZE,
17 };
18 }
19
20 class Settings : public ToolSettings {
21 public:
22 json serialize() const override;
23 void load_from_json(const json &j) override;
24 uint64_t label_size = 1.5_mm;
25 };
26
27 ToolSettings *get_settings() override
28 {
29 return &settings;
30 }
31
32 void apply_settings() override;
33
34private:
35 class Dimension *temp = nullptr;
36 void update_tip();
37
38 enum class State { P0, P1, LABEL };
39 State state = State::P0;
40 Settings settings;
41};
42} // namespace horizon
Definition dimension.hpp:9
This is what a Tool receives when the user did something.
Definition tool_pub.hpp:23
Common interface for all Tools.
Definition tool_pub.hpp:94
Definition tool_draw_dimension.hpp:20
Definition tool_draw_dimension.hpp:6
ToolResponse update(const ToolArgs &args) override
Gets called whenever the user generated some sort of input.
Definition tool_draw_dimension.cpp:98
bool can_begin() override
Definition tool_draw_dimension.cpp:31
ToolResponse begin(const ToolArgs &args) override
Gets called right after the constructor has finished.
Definition tool_draw_dimension.cpp:36
Definition tool_helper_restrict.hpp:6
To signal back to the core what the Tool did, a Tool returns a ToolResponse.
Definition tool_pub.hpp:40
Definition tool_pub.hpp:82
a class to store JSON values
Definition json.hpp:177