2#include "canvas/selectables.hpp"
3#include "canvas/object_ref.hpp"
4#include "router/pns_router.h"
5#include "util/uuid.hpp"
25template <
typename T>
class Coord;
54 return track == other.track && via == other.via &&
package == other.package && pad == other.pad
55 && hole == other.hole && keepout == other.keepout;
77 void SyncWorld(
PNS::NODE *aWorld)
override;
78 void EraseView()
override;
80 void DisplayItem(
const PNS::ITEM *aItem,
int aClearance = 0,
bool aEdit =
false)
override;
82 void RemoveItem(
PNS::ITEM *aItem)
override;
83 void Commit()
override;
85 void UpdateItem(
ITEM *aItem)
override;
86 bool IsFlashedOnLayer(
const PNS::ITEM *aItem,
int aLayer)
const override;
88 int StackupHeight(
int aFirstLayer,
int aSecondLayer)
const override;
89 void DisplayRatline(
const SHAPE_LINE_CHAIN &aRatline,
int aColor = -1)
override;
96 bool IsAnyLayerVisible(
const LAYER_RANGE &aLayer)
const override;
97 bool IsItemVisible(
const PNS::ITEM *aItem)
const override;
99 void UpdateNet(
int aNetCode)
override;
104 static int layer_to_router(
int l);
105 static int layer_from_router(
int l);
119 int64_t get_override_routing_offset()
const
121 return override_routing_offset;
124 void set_override_routing_offset(int64_t o)
126 override_routing_offset = o;
133 std::set<horizon::ObjectRef> m_preview_items;
145 std::unique_ptr<PNS::SEGMENT> syncTrack(
const horizon::Track *track);
146 std::unique_ptr<PNS::ARC> syncTrackArc(
const horizon::Track *track);
147 std::unique_ptr<PNS::VIA> syncVia(
const horizon::Via *via);
150 std::map<horizon::UUID, int> net_code_map;
151 std::vector<horizon::Net *> net_code_map_r;
153 std::map<horizon::UUID, int> via_definition_code_map;
154 std::vector<horizon::UUID> via_definition_code_map_r;
156 int64_t override_routing_offset = -1;
158 std::list<PNS_HORIZON_PARENT_ITEM> parents;
162 std::set<horizon::BoardJunction *> find_junctions(
const horizon::Via &via);
163 std::set<horizon::BoardJunction *> junctions_maybe_erased;
Represent a contiguous set of PCB layers.
Definition pns_layerset.h:32
Definition pns_debug_decorator.h:35
Base class for PNS router board items.
Definition pns_item.h:57
Keep the router "world" - i.e.
Definition pns_node.h:148
Definition pns_horizon_iface.hpp:66
Definition pns_horizon_iface.hpp:29
Definition pns_horizon_iface.cpp:94
ROUTER.
Definition pns_router.h:87
Definition pns_router.h:116
Definition pns_sizes_settings.h:42
Represent a polyline containing arcs as well as line segments: A chain of connected line and/or arc s...
Definition shape_line_chain.h:81
Definition board_hole.hpp:12
Definition board_junction.hpp:6
Definition board_package.hpp:13
Definition board_rules.hpp:28
Definition canvas_gl.hpp:20
Your typical coordinate class.
Definition common.hpp:88
Definition keepout.hpp:26
Definition padstack.hpp:19
Definition placement.hpp:8
Polygon used in Padstack, Package and Board for specifying filled Regions.
Definition polygon.hpp:25
This class encapsulates a UUID and allows it to be uses as a value type.
Definition uuid.hpp:16