21#ifndef __PNS_COMPONENT_DRAGGER_H
22#define __PNS_COMPONENT_DRAGGER_H
24#include <math/vector2d.h>
26#include "pns_drag_algo.h"
39class COMPONENT_DRAGGER :
public DRAG_ALGO
42 COMPONENT_DRAGGER(
ROUTER* aRouter );
52 bool Start(
const VECTOR2I& aP,
ITEM_SET& aPrimitives )
override;
60 bool Drag(
const VECTOR2I& aP )
override;
87 return std::vector<int>();
98 return UNDEFINED_LAYER;
109 struct DRAGGED_CONNECTION
113 VECTOR2I p_orig, p_next;
117 std::set<SOLID*> m_solids;
118 std::set<ITEM*> m_fixedItems;
119 std::vector<DRAGGED_CONNECTION> m_conns;
122 ITEM_SET m_draggedItems;
123 ITEM_SET m_initialDraggedItems;
const ITEM_SET Traces() override
Function Traces().
Definition pns_component_dragger.cpp:270
NODE * CurrentNode() const override
Function CurrentNode().
Definition pns_component_dragger.cpp:264
bool Start(const VECTOR2I &aP, ITEM_SET &aPrimitives) override
Function Start().
Definition pns_component_dragger.cpp:48
const std::vector< int > CurrentNets() const override
Function CurrentNets().
Definition pns_component_dragger.h:85
bool FixRoute() override
Function FixRoute().
Definition pns_component_dragger.cpp:247
virtual int CurrentLayer() const override
Function CurrentLayer().
Definition pns_component_dragger.h:96
bool Drag(const VECTOR2I &aP) override
Function Drag().
Definition pns_component_dragger.cpp:156
Definition pns_itemset.h:37
Represents a track on a PCB, connecting two non-trivial joints (that is, vias, pads,...
Definition pns_line.h:61
Keep the router "world" - i.e.
Definition pns_node.h:148
Perform various optimizations of the lines being routed, attempting to make the lines shorter and les...
Definition pns_optimizer.h:95
Definition pns_router.h:116
Definition pns_solid.h:36