Horizon
tool_route_track.hpp
1 #pragma once
2 #include "board/track.hpp"
3 #include "board/via.hpp"
4 #include "canvas/canvas_patch.hpp"
5 #include "clipper/clipper.hpp"
6 #include "common/hole.hpp"
7 #include "core.hpp"
8 #include <deque>
9 
10 namespace horizon {
11 
12 class ToolRouteTrack : public ToolBase {
13 public:
14  ToolRouteTrack(Core *c, ToolID tid);
15  ToolResponse begin(const ToolArgs &args) override;
16  ToolResponse update(const ToolArgs &args) override;
17  bool can_begin() override;
18 
19 private:
20  Net *net = nullptr;
21  int routing_layer;
22  uint64_t routing_width = 0;
23  bool routing_width_use_default = true;
24  void begin_track(const ToolArgs &args);
25  bool try_move_track(const ToolArgs &args);
26  void update_track(const Coordi &c);
27  bool check_track_path(const ClipperLib::Path &p);
28  void update_temp_track();
29  void update_tip();
30  void update_obstacles();
31  bool bend_mode = false;
32  ClipperLib::Paths obstacles;
33  ClipperLib::Path track_path;
34  ClipperLib::Path track_path_known_good;
35  Track::Connection conn_start;
36  Track::Connection conn_end;
37  std::deque<Junction *> temp_junctions;
38  std::deque<Track *> temp_tracks;
39  class BoardRules *rules;
40  CanvasPatch canvas_patch;
41 
42  Via *via = nullptr;
43 };
44 } // namespace horizon
libzip::uint64_t
zip_uint64_t uint64_t
zip_uint64_t_t typedef.
Definition: zip.hpp:108
horizon::BoardRules
Definition: board_rules.hpp:20
horizon::ToolRouteTrack::update
ToolResponse update(const ToolArgs &args) override
Gets called whenever the user generated some sort of input.
Definition: tool_route_track.cpp:276
horizon::CanvasPatch
Definition: canvas_patch.hpp:6
horizon::Net
Definition: net.hpp:16
horizon::Coord< int64_t >
horizon::Core
Where Tools and and documents meet.
Definition: core.hpp:240
horizon::Via
Definition: via.hpp:16
horizon::Track::Connection
Definition: track.hpp:35
horizon::ToolBase
Common interface for all Tools.
Definition: core.hpp:141
horizon::ToolResponse
To signal back to the core what the Tool did, a Tool returns a ToolResponse.
Definition: core.hpp:52
horizon::ToolArgs
This is what a Tool receives when the user did something.
Definition: core.hpp:26
horizon::ToolRouteTrack
Definition: tool_route_track.hpp:12
horizon::ToolRouteTrack::can_begin
bool can_begin() override
Definition: tool_route_track.cpp:14
horizon::ToolRouteTrack::begin
ToolResponse begin(const ToolArgs &args) override
Gets called right after the constructor has finished.
Definition: tool_route_track.cpp:19