KiCad PCB EDA Suite
|
#include <pns_router.h>
Public Types | |
enum | RouterState { IDLE , DRAG_SEGMENT , DRAG_COMPONENT , ROUTE_TRACK } |
Public Member Functions | |
ROUTER () | |
~ROUTER () | |
void | SetInterface (ROUTER_IFACE *aIface) |
void | SetMode (ROUTER_MODE aMode) |
ROUTER_MODE | Mode () const |
RouterState | GetState () const |
DRAG_ALGO * | GetDragger () |
void | ClearWorld () |
void | SyncWorld () |
bool | RoutingInProgress () const |
bool | StartRouting (const VECTOR2I &aP, ITEM *aItem, int aLayer) |
bool | Move (const VECTOR2I &aP, ITEM *aItem) |
bool | Finish () |
bool | ContinueFromEnd (ITEM **aNewStartItem) |
bool | FixRoute (const VECTOR2I &aP, ITEM *aItem, bool aForceFinish, bool aForceCommit) |
void | BreakSegmentOrArc (ITEM *aItem, const VECTOR2I &aP) |
std::optional< VECTOR2I > | UndoLastSegment () |
void | CommitRouting () |
void | GetUpdatedItems (std::vector< PNS::ITEM * > &aRemoved, std::vector< PNS::ITEM * > &aAdded, std::vector< PNS::ITEM * > &aHeads) |
void | StopRouting () |
void | ClearViewDecorations () |
NODE * | GetWorld () const |
void | FlipPosture () |
bool | SwitchLayer (int layer) |
void | ToggleViaPlacement () |
void | SetOrthoMode (bool aEnable) |
void | ToggleCornerMode () |
int | GetCurrentLayer () const |
const std::vector< NET_HANDLE > | GetCurrentNets () const |
LOGGER * | Logger () |
RULE_RESOLVER * | GetRuleResolver () const |
bool | IsPlacingVia () const |
const ITEM_SET | QueryHoverItems (const VECTOR2I &aP, int aSlopRadius=0) |
bool | StartDragging (const VECTOR2I &aP, ITEM *aItem, int aDragMode=DM_ANY) |
bool | StartDragging (const VECTOR2I &aP, ITEM_SET aItems, int aDragMode=DM_COMPONENT) |
void | SetIterLimit (int aX) |
int | GetIterLimit () const |
ROUTING_SETTINGS & | Settings () |
void | CommitRouting (NODE *aNode) |
void | UpdateSizes (const SIZES_SETTINGS &aSizes) |
Applies stored settings. | |
void | LoadSettings (ROUTING_SETTINGS *aSettings) |
Changes routing settings to ones passed in the parameter. | |
SIZES_SETTINGS & | Sizes () |
void | SetFailureReason (const wxString &aReason) |
const wxString & | FailureReason () const |
PLACEMENT_ALGO * | Placer () |
ROUTER_IFACE * | GetInterface () const |
void | SetVisibleViewArea (const BOX2I &aExtents) |
const BOX2I & | VisibleViewArea () const |
std::vector< PNS::ITEM * > | GetLastCommittedLeaderSegments () |
Static Public Member Functions | |
static ROUTER * | GetInstance () |
Private Member Functions | |
bool | movePlacing (const VECTOR2I &aP, ITEM *aItem) |
bool | moveDragging (const VECTOR2I &aP, ITEM *aItem) |
void | updateView (NODE *aNode, ITEM_SET &aCurrent, bool aDragging=false) |
void | markViolations (NODE *aNode, ITEM_SET &aCurrent, NODE::ITEM_VECTOR &aRemoved) |
bool | isStartingPointRoutable (const VECTOR2I &aWhere, ITEM *aItem, int aLayer) |
bool | getNearestRatnestAnchor (VECTOR2I &aOtherEnd, PNS_LAYER_RANGE &aOtherEndLayers, ITEM *&aOtherEndItem) |
Private Attributes | |
BOX2I | m_visibleViewArea |
RouterState | m_state |
std::unique_ptr< NODE > | m_world |
NODE * | m_lastNode |
std::unique_ptr< PLACEMENT_ALGO > | m_placer |
std::unique_ptr< DRAG_ALGO > | m_dragger |
std::unique_ptr< SHOVE > | m_shove |
std::vector< PNS::ITEM * > | m_leaderSegments |
ROUTER_IFACE * | m_iface |
int | m_iterLimit |
ROUTING_SETTINGS * | m_settings |
SIZES_SETTINGS | m_sizes |
ROUTER_MODE | m_mode |
LOGGER * | m_logger |
wxString | m_toolStatusbarName |
wxString | m_failureReason |
Definition at line 124 of file pns_router.h.
Enumerator | |
---|---|
IDLE | |
DRAG_SEGMENT | |
DRAG_COMPONENT | |
ROUTE_TRACK |
Definition at line 127 of file pns_router.h.
PNS::ROUTER::ROUTER | ( | ) |
Definition at line 60 of file pns_router.cpp.
References ADVANCED_CFG::GetCfg(), IDLE, m_iface, m_iterLimit, m_lastNode, m_logger, m_mode, m_settings, m_state, m_visibleViewArea, PNS::PNS_MODE_ROUTE_SINGLE, BOX2< Vec >::SetMaximum(), and PNS::theRouter.
PNS::ROUTER::~ROUTER | ( | ) |
Definition at line 87 of file pns_router.cpp.
References ClearWorld(), m_logger, and PNS::theRouter.
Definition at line 1069 of file pns_router.cpp.
References PNS::ITEM::ARC_T, CommitRouting(), m_world, PNS::ITEM::OfKind(), PNS::ITEM::SEGMENT_T, PNS::LINE_PLACER::SplitAdjacentArcs(), and PNS::LINE_PLACER::SplitAdjacentSegments().
Referenced by ROUTER_TOOL::breakTrack().
void PNS::ROUTER::ClearViewDecorations | ( | ) |
Definition at line 958 of file pns_router.cpp.
References PNS::ROUTER_IFACE::EraseView(), and m_iface.
Referenced by ROUTER_TOOL::MainLoop(), ROUTER_TOOL::performDragging(), and ROUTER_TOOL::performRouting().
void PNS::ROUTER::ClearWorld | ( | ) |
Definition at line 105 of file pns_router.cpp.
References m_placer, and m_world.
Referenced by ROUTER_TOOL::MainLoop(), PNS::TOOL_BASE::Reset(), GENERATOR_TOOL_PNS_PROXY::Reset(), SyncWorld(), and ~ROUTER().
void PNS::ROUTER::CommitRouting | ( | ) |
Definition at line 921 of file pns_router.cpp.
References m_placer, m_state, ROUTE_TRACK, and StopRouting().
Referenced by BreakSegmentOrArc(), PNS::DIFF_PAIR_PLACER::CommitPlacement(), PNS::DP_MEANDER_PLACER::CommitPlacement(), PNS::LINE_PLACER::CommitPlacement(), PNS::MEANDER_PLACER::CommitPlacement(), ContinueFromEnd(), PNS::COMPONENT_DRAGGER::FixRoute(), PNS::DRAGGER::FixRoute(), PNS::MULTI_DRAGGER::FixRoute(), ROUTER_TOOL::performRouting(), PCB_TUNING_PATTERN::recoverBaseline(), and PCB_TUNING_PATTERN::resetToBaseline().
void PNS::ROUTER::CommitRouting | ( | NODE * | aNode | ) |
Definition at line 825 of file pns_router.cpp.
References PNS::ROUTER_IFACE::AddItem(), PNS::ROUTER_IFACE::Commit(), PNS::NODE::GetUpdatedItems(), m_iface, m_placer, m_state, m_world, PNS::ROUTER_IFACE::RemoveItem(), ROUTE_TRACK, and PNS::ROUTER_IFACE::UpdateItem().
bool PNS::ROUTER::ContinueFromEnd | ( | ITEM ** | aNewStartItem | ) |
Definition at line 591 of file pns_router.cpp.
References CommitRouting(), PNS::PLACEMENT_ALGO::CurrentEnd(), GetCurrentLayer(), getNearestRatnestAnchor(), Move(), PNS_LAYER_RANGE::Overlaps(), Placer(), PNS::ITEM_SET::Size(), PNS_LAYER_RANGE::Start(), StartRouting(), and PNS::PLACEMENT_ALGO::Traces().
Referenced by ROUTER_TOOL::performRouting().
|
inline |
Definition at line 219 of file pns_router.h.
References m_failureReason.
Referenced by ROUTER_TOOL::performRouting(), and ROUTER_TOOL::prepareInteractive().
bool PNS::ROUTER::Finish | ( | ) |
Definition at line 543 of file pns_router.cpp.
References PNS::PLACEMENT_ALGO::CurrentEnd(), FixRoute(), GetCurrentLayer(), getNearestRatnestAnchor(), m_state, Move(), PNS_LAYER_RANGE::Overlaps(), Placer(), ROUTE_TRACK, PNS::ITEM_SET::Size(), and PNS::PLACEMENT_ALGO::Traces().
Referenced by ROUTER_TOOL::performRouting().
bool PNS::ROUTER::FixRoute | ( | const VECTOR2I & | aP, |
ITEM * | aItem, | ||
bool | aForceFinish, | ||
bool | aForceCommit | ||
) |
Definition at line 878 of file pns_router.cpp.
References DRAG_COMPONENT, DRAG_SEGMENT, PNS::LOGGER::EVT_FIX, PNS::LOGGER::Log(), m_dragger, m_logger, m_placer, m_state, and ROUTE_TRACK.
Referenced by PCB_TUNING_PATTERN::EditPush(), Finish(), ROUTER_TOOL::InlineDrag(), ROUTER_TOOL::performDragging(), and ROUTER_TOOL::performRouting().
void PNS::ROUTER::FlipPosture | ( | ) |
Definition at line 964 of file pns_router.cpp.
References m_placer, m_state, and ROUTE_TRACK.
Referenced by ROUTER_TOOL::performRouting().
int PNS::ROUTER::GetCurrentLayer | ( | ) | const |
Definition at line 1006 of file pns_router.cpp.
References m_dragger, and m_placer.
Referenced by ContinueFromEnd(), Finish(), ROUTER_TOOL::handleLayerSwitch(), ROUTER_TOOL::onViaCommand(), ROUTER_TOOL::performRouting(), ROUTER_TOOL::switchLayerOnViaPlacement(), PNS::TOOL_BASE::updateEndItem(), and ROUTER_TOOL::UpdateMessagePanel().
const std::vector< NET_HANDLE > PNS::ROUTER::GetCurrentNets | ( | ) | const |
Definition at line 995 of file pns_router.cpp.
References m_dragger, and m_placer.
Referenced by getNearestRatnestAnchor(), ROUTER_TOOL::handleLayerSwitch(), ROUTER_TOOL::Init(), ROUTER_TOOL::onTrackViaSizeChanged(), PNS::TOOL_BASE::updateEndItem(), ROUTER_TOOL::UpdateMessagePanel(), and ROUTER_TOOL::updateSizesAfterRouterEvent().
|
inline |
Definition at line 145 of file pns_router.h.
References m_dragger.
Referenced by PNS::TOOL_BASE::checkSnap(), ROUTER_TOOL::InlineDrag(), markViolations(), and ROUTER_TOOL::performDragging().
|
static |
Definition at line 81 of file pns_router.cpp.
References PNS::theRouter.
Referenced by PNS::MOUSE_TRAIL_TRACER::AddTrailPoint(), PNS::AREA_CONSTRAINT::Check(), PNS::clipToOtherLine(), PNS::ITEM::collideSimple(), PNS::OPTIMIZER::fanoutCleanup(), PNS::ITEM::Format(), PNS::MOUSE_TRAIL_TRACER::GetPosture(), PNS::VIA::Hull(), PNS::OPTIMIZER::mergeStep(), PNS::NODE::NearestObstacle(), PNS::OPTIMIZER::Optimize(), and PNS::VIA::PushoutForce().
|
inline |
Definition at line 223 of file pns_router.h.
References m_iface.
Referenced by PNS::MOUSE_TRAIL_TRACER::AddTrailPoint(), PNS::AREA_CONSTRAINT::Check(), PNS::clipToOtherLine(), PNS::ITEM::collideSimple(), PNS::MEANDER_PLACER::doMove(), PNS::LINE_PLACER::FixRoute(), PNS::ITEM::Format(), PNS::MOUSE_TRAIL_TRACER::GetPosture(), PCB_TUNING_PATTERN::GetPreviewItems(), PNS::TOOL_BASE::highlightNets(), PNS::MEANDER_PLACER_BASE::lineLength(), PNS::LINE_PLACER::makeVia(), PNS::DP_MEANDER_PLACER::Move(), PNS::MEANDER_SKEW_PLACER::Move(), PNS::MULTI_DRAGGER::multidragShove(), PNS::NODE::NearestObstacle(), PNS::OPTIMIZER::Optimize(), PNS::TOOL_BASE::pickSingleItem(), PNS::VIA::PushoutForce(), PNS::SHOVE::reconstructHeads(), PNS::SHOVE::removeHeads(), PCB_TUNING_PATTERN::removeToBaseline(), PNS::SHOVE::Run(), PNS::SHOVE::runOptimizer(), PNS::SHOVE::SHOVE(), PNS::SHOVE::shoveIteration(), PNS::LINE_PLACER::Start(), PNS::DIFF_PAIR_PLACER::updateLeadingRatLine(), PNS::LINE_PLACER::updateLeadingRatLine(), and PNS::TOOL_BASE::updateStartItem().
|
inline |
Definition at line 195 of file pns_router.h.
References m_iterLimit.
std::vector< PNS::ITEM * > PNS::ROUTER::GetLastCommittedLeaderSegments | ( | ) |
Definition at line 903 of file pns_router.cpp.
References m_leaderSegments.
Referenced by ROUTER_TOOL::InlineDrag().
|
private |
Definition at line 492 of file pns_router.cpp.
References anchor, PNS::ITEM::Anchor(), PNS::PLACEMENT_ALGO::CurrentLayer(), PNS::PLACEMENT_ALGO::CurrentNets(), PNS::PLACEMENT_ALGO::CurrentNode(), PNS::PLACEMENT_ALGO::CurrentStart(), empty(), PNS::NODE::FindJoint(), GetCurrentNets(), PNS::ITEM::Layers(), PNS::TOPOLOGY::NearestUnconnectedAnchorPoint(), PNS::TOPOLOGY::NearestUnconnectedItem(), Placer(), PNS::LINE::SegmentCount(), PNS::ITEM_SET::Size(), and PNS::PLACEMENT_ALGO::Traces().
Referenced by ContinueFromEnd(), and Finish().
|
inline |
Definition at line 185 of file pns_router.h.
References PNS::ROUTER_IFACE::GetRuleResolver(), and m_iface.
Referenced by PNS::MEANDER_PLACER_BASE::Clearance(), PCB_TUNING_PATTERN::EditStart(), Move(), movePlacing(), ROUTER_TOOL::prepareInteractive(), PCB_TUNING_PATTERN::resetToBaseline(), StartDragging(), StartRouting(), and updateView().
|
inline |
Definition at line 143 of file pns_router.h.
References m_state.
Referenced by PNS::TOOL_BASE::checkSnap(), BOARD_EDITOR_CONTROL::TrackWidthDec(), BOARD_EDITOR_CONTROL::TrackWidthInc(), PNS::TOOL_BASE::updateEndItem(), and ROUTER_TOOL::UpdateMessagePanel().
void PNS::ROUTER::GetUpdatedItems | ( | std::vector< PNS::ITEM * > & | aRemoved, |
std::vector< PNS::ITEM * > & | aAdded, | ||
std::vector< PNS::ITEM * > & | aHeads | ||
) |
Definition at line 796 of file pns_router.cpp.
References PNS::ITEM_SET::CItems(), DRAG_SEGMENT, PNS::NODE::GetUpdatedItems(), m_dragger, m_placer, m_state, and ROUTE_TRACK.
Referenced by ROUTER_TOOL::saveRouterDebugLog().
|
inline |
Definition at line 169 of file pns_router.h.
References m_world.
Referenced by getPNSLine(), PCB_TUNING_PATTERN::initBaseLine(), PNS::DIFF_PAIR_PLACER::initPlacement(), PNS::LINE_PLACER::initPlacement(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), PCB_TUNING_PATTERN::recoverBaseline(), PCB_TUNING_PATTERN::removeToBaseline(), PCB_TUNING_PATTERN::resetToBaseline(), ROUTER_TOOL::RouteSelected(), PNS::DP_MEANDER_PLACER::Start(), PNS::MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().
bool PNS::ROUTER::IsPlacingVia | ( | ) | const |
Definition at line 1023 of file pns_router.cpp.
References m_placer.
Referenced by ROUTER_TOOL::handleLayerSwitch(), ROUTER_TOOL::onViaCommand(), ROUTER_TOOL::performRouting(), PNS::TOOL_BASE::snapToItem(), and PNS::TOOL_BASE::updateEndItem().
|
private |
Definition at line 219 of file pns_router.cpp.
References _, PNS::ITEM_SET::Add(), PNS::DP_PRIMITIVE_PAIR::AnchorN(), PNS::DP_PRIMITIVE_PAIR::AnchorP(), PNS::ITEM::ANY_T, SHAPE_LINE_CHAIN::Append(), PNS::SIZES_SETTINGS::BoardMinTrackWidth(), PNS::SIZES_SETTINGS::DiffPairGap(), PNS::SIZES_SETTINGS::DiffPairWidth(), Edge_Cuts, PNS::DIFF_PAIR_PLACER::FindDpPrimitivePair(), ZONE::GetZoneName(), ZONE::HasKeepoutParametersSet(), PNS::ROUTER_IFACE::HideItem(), PNS::ITEM_SET::Items(), m_iface, m_mode, m_sizes, m_world, markViolations(), PNS::SIZES_SETTINGS::MinClearance(), PNS::ITEM::Net(), pad, PCB_FIELD_T, PCB_PAD_T, PCB_TEXT_T, PCB_TEXTBOX_T, PCB_ZONE_T, PNS::PNS_MODE_ROUTE_DIFF_PAIR, PNS::PNS_MODE_ROUTE_SINGLE, PNS::DP_PRIMITIVE_PAIR::PrimN(), PNS::DP_PRIMITIVE_PAIR::PrimP(), QueryHoverItems(), SetFailureReason(), PNS::ITEM::SetLayer(), PNS::ITEM::SetNet(), PNS::LINE::SetShape(), Settings(), PNS::LINE::SetWidth(), PNS::SIZES_SETTINGS::TrackWidth(), and EDA_ITEM::Type().
Referenced by StartRouting().
|
inline |
Changes routing settings to ones passed in the parameter.
aSettings | are the new settings. |
Definition at line 211 of file pns_router.h.
References m_settings.
Referenced by PNS::TOOL_BASE::Reset(), and GENERATOR_TOOL_PNS_PROXY::Reset().
LOGGER * PNS::ROUTER::Logger | ( | ) |
Definition at line 1017 of file pns_router.cpp.
References m_logger.
Referenced by ROUTER_TOOL::saveRouterDebugLog().
|
private |
Definition at line 644 of file pns_router.cpp.
References PNS::ITEM_SET::Contains(), PNS::ROUTER_IFACE::DisplayItem(), PNS::LINE::EndsWithVia(), PNS::LINE::GetBlockingObstacle(), PNS::NODE::GetClearance(), GetDragger(), PNS_LAYER_RANGE::IsMultilayer(), PNS::ITEM_SET::Items(), PNS::ITEM::Layer(), PNS::ITEM::Layers(), PNS::ITEM::LINE_T, m_iface, PNS::MK_VIOLATION, PNS::NODE::QueryColliding(), PNS::DRAG_ALGO::Traces(), and PNS::LINE::Via().
Referenced by isStartingPointRoutable(), and updateView().
|
inline |
Definition at line 141 of file pns_router.h.
References m_mode.
Referenced by ROUTER_TOOL::Init(), ROUTER_TOOL::MainLoop(), ROUTER_TOOL::prepareInteractive(), ROUTER_TOOL::saveRouterDebugLog(), BOARD_EDITOR_CONTROL::TrackWidthDec(), BOARD_EDITOR_CONTROL::TrackWidthInc(), and ROUTER_TOOL::UpdateMessagePanel().
Definition at line 468 of file pns_router.cpp.
References PNS::RULE_RESOLVER::ClearTemporaryCaches(), DRAG_COMPONENT, DRAG_SEGMENT, PNS::LOGGER::EVT_MOVE, GetRuleResolver(), PNS::LOGGER::Log(), m_logger, m_state, moveDragging(), movePlacing(), and ROUTE_TRACK.
Referenced by ContinueFromEnd(), Finish(), ROUTER_TOOL::handleLayerSwitch(), ROUTER_TOOL::InlineDrag(), ROUTER_TOOL::onTrackViaSizeChanged(), ROUTER_TOOL::onViaCommand(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), and PCB_TUNING_PATTERN::Update().
Definition at line 630 of file pns_router.cpp.
References PNS::ROUTER_IFACE::EraseView(), m_dragger, m_iface, m_leaderSegments, and updateView().
Referenced by Move().
Definition at line 752 of file pns_router.cpp.
References PNS::ITEM_SET::CItems(), PNS::RULE_RESOLVER::Clearance(), PNS::ROUTER_IFACE::DisplayItem(), PNS::LINE::EndsWithVia(), PNS::ROUTER_IFACE::EraseView(), GetRuleResolver(), PNS::ITEM::Layer(), PNS::ITEM::LINE_T, m_iface, m_placer, PNS_HEAD_TRACE, updateView(), via, and PNS::LINE::Via().
Referenced by Move().
|
inline |
Definition at line 221 of file pns_router.h.
References m_placer.
Referenced by ContinueFromEnd(), Finish(), getNearestRatnestAnchor(), PCB_TUNING_PATTERN::GetPreviewItems(), ROUTER_TOOL::performRouting(), PCB_TUNING_PATTERN::Update(), and ROUTER_TOOL::UpdateMessagePanel().
Definition at line 124 of file pns_router.cpp.
References PNS::ITEM_SET::Add(), PNS_LAYER_RANGE::All(), PNS::NODE::HitTest(), PNS::COLLISION_SEARCH_OPTIONS::m_differentNetsOnly, PNS::COLLISION_SEARCH_OPTIONS::m_overrideClearance, m_placer, m_world, and PNS::NODE::QueryColliding().
Referenced by isStartingPointRoutable(), pickSegment(), and PNS::TOOL_BASE::pickSingleItem().
bool PNS::ROUTER::RoutingInProgress | ( | ) | const |
Definition at line 118 of file pns_router.cpp.
Referenced by PCB_TUNING_PATTERN::EditPush(), ROUTER_TOOL::handleLayerSwitch(), ROUTER_TOOL::Init(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), ROUTER_TOOL::MainLoop(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), ROUTER_TOOL::RouteSelected(), ROUTER_TOOL::RoutingInProgress(), StopRouting(), UndoLastSegment(), and PCB_TUNING_PATTERN::Update().
|
inline |
Definition at line 218 of file pns_router.h.
References m_failureReason.
Referenced by isStartingPointRoutable(), PNS::DIFF_PAIR_PLACER::Start(), PNS::DP_MEANDER_PLACER::Start(), PNS::MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().
void PNS::ROUTER::SetInterface | ( | ROUTER_IFACE * | aIface | ) |
Definition at line 1063 of file pns_router.cpp.
References m_iface.
Referenced by PNS_TEST_FIXTURE::PNS_TEST_FIXTURE(), PNS::TOOL_BASE::Reset(), and GENERATOR_TOOL_PNS_PROXY::Reset().
|
inline |
Definition at line 194 of file pns_router.h.
References m_iterLimit.
void PNS::ROUTER::SetMode | ( | ROUTER_MODE | aMode | ) |
Definition at line 1057 of file pns_router.cpp.
References m_mode.
Referenced by ROUTER_TOOL::MainLoop(), ROUTER_TOOL::RouteSelected(), and PCB_TUNING_PATTERN::Update().
void PNS::ROUTER::SetOrthoMode | ( | bool | aEnable | ) |
Definition at line 1048 of file pns_router.cpp.
References m_placer.
|
inline |
Definition at line 197 of file pns_router.h.
References m_settings.
Referenced by ROUTER_TOOL::ChangeRouterMode(), PNS::TOOL_BASE::checkSnap(), ROUTER_TOOL::CycleRouterMode(), DRAWING_TOOL::DrawVia(), PNS::OPTIMIZER::fanoutCleanup(), ROUTER_TOOL::GetRouterMode(), isStartingPointRoutable(), PNS::OPTIMIZER::mergeStep(), PNS::NODE::NearestObstacle(), PNS::TOOL_BASE::pickSingleItem(), ROUTER_TOOL::saveRouterDebugLog(), PNS::ALGO_BASE::Settings(), ROUTER_TOOL::SettingsDialog(), PNS::TOOL_BASE::updateEndItem(), and ROUTER_TOOL::UpdateMessagePanel().
|
inline |
Definition at line 225 of file pns_router.h.
References m_visibleViewArea.
Referenced by ROUTER_TOOL::handleCommonEvents(), and ROUTER_TOOL::InlineDrag().
|
inline |
Definition at line 216 of file pns_router.h.
References m_sizes.
Referenced by ROUTER_TOOL::DpDimensionsDialog(), ROUTER_TOOL::handleLayerSwitch(), ROUTER_TOOL::MainLoop(), ROUTER_TOOL::onTrackViaSizeChanged(), pickSegment(), ROUTER_TOOL::prepareInteractive(), ROUTER_TOOL::switchLayerOnViaPlacement(), PCB_TUNING_PATTERN::Update(), ROUTER_TOOL::UpdateMessagePanel(), and ROUTER_TOOL::updateSizesAfterRouterEvent().
Definition at line 157 of file pns_router.cpp.
References m_leaderSegments, and StartDragging().
Referenced by ROUTER_TOOL::InlineDrag(), ROUTER_TOOL::performDragging(), and StartDragging().
bool PNS::ROUTER::StartDragging | ( | const VECTOR2I & | aP, |
ITEM_SET | aItems, | ||
int | aDragMode = DM_COMPONENT |
||
) |
Definition at line 164 of file pns_router.cpp.
References PNS::ITEM::ARC_T, PNS::LOGGER::Clear(), PNS::RULE_RESOLVER::ClearCaches(), PNS::ITEM_SET::Count(), DRAG_COMPONENT, DRAG_SEGMENT, PNS::ITEM_SET::Empty(), PNS::LOGGER::EVT_START_DRAG, PNS::LOGGER::EVT_START_MULTIDRAG, PNS::ROUTER_IFACE::GetDebugDecorator(), GetRuleResolver(), IDLE, PNS::ITEM_SET::Items(), PNS::LOGGER::Log(), PNS::LOGGER::LogM(), m_dragger, m_iface, m_leaderSegments, m_logger, m_state, m_world, PNS::ITEM::SEGMENT_T, PNS::ITEM_SET::Size(), and PNS::ITEM::SOLID_T.
Definition at line 408 of file pns_router.cpp.
References PNS::LOGGER::Clear(), PNS::RULE_RESOLVER::ClearCaches(), PNS::LOGGER::EVT_START_ROUTE, PNS::ROUTER_IFACE::GetDebugDecorator(), GetRuleResolver(), IDLE, isStartingPointRoutable(), PNS::LOGGER::Log(), m_iface, m_logger, m_mode, m_placer, m_sizes, m_state, PNS::PNS_MODE_ROUTE_DIFF_PAIR, PNS::PNS_MODE_ROUTE_SINGLE, PNS::PNS_MODE_TUNE_DIFF_PAIR, PNS::PNS_MODE_TUNE_DIFF_PAIR_SKEW, PNS::PNS_MODE_TUNE_SINGLE, and ROUTE_TRACK.
Referenced by ContinueFromEnd(), ROUTER_TOOL::prepareInteractive(), and PCB_TUNING_PATTERN::Update().
void PNS::ROUTER::StopRouting | ( | ) |
Definition at line 930 of file pns_router.cpp.
References PNS::ROUTER_IFACE::EraseView(), IDLE, m_dragger, m_iface, m_placer, m_state, m_world, RoutingInProgress(), and PNS::ROUTER_IFACE::UpdateNet().
Referenced by CommitRouting(), PCB_TUNING_PATTERN::EditPush(), PCB_TUNING_PATTERN::EditRevert(), ROUTER_TOOL::finishInteractive(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), ROUTER_TOOL::MainLoop(), ROUTER_TOOL::performDragging(), DRAWING_TOOL::PlaceTuningPattern(), and PCB_TUNING_PATTERN::Update().
bool PNS::ROUTER::SwitchLayer | ( | int | layer | ) |
Definition at line 973 of file pns_router.cpp.
References m_placer, m_state, and ROUTE_TRACK.
Referenced by ROUTER_TOOL::handleLayerSwitch(), ROUTER_TOOL::MainLoop(), and ROUTER_TOOL::switchLayerOnViaPlacement().
void PNS::ROUTER::SyncWorld | ( | ) |
Definition at line 95 of file pns_router.cpp.
References ClearWorld(), m_iface, m_world, and PNS::ROUTER_IFACE::SyncWorld().
Referenced by PCB_TUNING_PATTERN::EditStart(), ROUTER_TOOL::MainLoop(), PCB_TUNING_PATTERN::Remove(), PNS::TOOL_BASE::Reset(), and GENERATOR_TOOL_PNS_PROXY::Reset().
void PNS::ROUTER::ToggleCornerMode | ( | ) |
Definition at line 1032 of file pns_router.cpp.
References PNS::ROUTING_SETTINGS::GetCornerMode(), m_settings, DIRECTION_45::MITERED_45, DIRECTION_45::MITERED_90, DIRECTION_45::ROUNDED_45, DIRECTION_45::ROUNDED_90, and PNS::ROUTING_SETTINGS::SetCornerMode().
Referenced by ROUTER_TOOL::performRouting().
void PNS::ROUTER::ToggleViaPlacement | ( | ) |
Definition at line 982 of file pns_router.cpp.
References PNS::LOGGER::EVT_TOGGLE_VIA, PNS::LOGGER::Log(), m_logger, m_placer, m_sizes, m_state, and ROUTE_TRACK.
Referenced by ROUTER_TOOL::handleLayerSwitch(), and ROUTER_TOOL::onViaCommand().
std::optional< VECTOR2I > PNS::ROUTER::UndoLastSegment | ( | ) |
Definition at line 909 of file pns_router.cpp.
References PNS::LOGGER::EVT_UNFIX, PNS::LOGGER::Log(), m_logger, m_placer, and RoutingInProgress().
Referenced by ROUTER_TOOL::performRouting().
void PNS::ROUTER::UpdateSizes | ( | const SIZES_SETTINGS & | aSizes | ) |
Applies stored settings.
Definition at line 742 of file pns_router.cpp.
References m_placer, m_sizes, m_state, and ROUTE_TRACK.
Referenced by ROUTER_TOOL::DpDimensionsDialog(), ROUTER_TOOL::handleLayerSwitch(), ROUTER_TOOL::onTrackViaSizeChanged(), ROUTER_TOOL::prepareInteractive(), PNS::TOOL_BASE::Reset(), GENERATOR_TOOL_PNS_PROXY::Reset(), and ROUTER_TOOL::updateSizesAfterRouterEvent().
Definition at line 716 of file pns_router.cpp.
References PNS::RULE_RESOLVER::Clearance(), PNS::RULE_RESOLVER::ClearCacheForItems(), PNS::ROUTER_IFACE::DisplayItem(), GetRuleResolver(), PNS::NODE::GetUpdatedItems(), PNS::ROUTER_IFACE::HideItem(), m_iface, and markViolations().
Referenced by moveDragging(), and movePlacing().
|
inline |
Definition at line 226 of file pns_router.h.
References m_visibleViewArea.
Referenced by PNS::ALGO_BASE::VisibleViewArea().
|
private |
Definition at line 253 of file pns_router.h.
Referenced by FixRoute(), GetCurrentLayer(), GetCurrentNets(), GetDragger(), GetUpdatedItems(), moveDragging(), StartDragging(), and StopRouting().
|
private |
Definition at line 267 of file pns_router.h.
Referenced by FailureReason(), and SetFailureReason().
|
private |
Definition at line 257 of file pns_router.h.
Referenced by ClearViewDecorations(), CommitRouting(), GetInterface(), GetRuleResolver(), isStartingPointRoutable(), markViolations(), moveDragging(), movePlacing(), ROUTER(), SetInterface(), StartDragging(), StartRouting(), StopRouting(), SyncWorld(), and updateView().
|
private |
Definition at line 259 of file pns_router.h.
Referenced by GetIterLimit(), ROUTER(), and SetIterLimit().
|
private |
Definition at line 250 of file pns_router.h.
Referenced by ROUTER().
|
private |
Definition at line 255 of file pns_router.h.
Referenced by GetLastCommittedLeaderSegments(), moveDragging(), and StartDragging().
|
private |
Definition at line 264 of file pns_router.h.
Referenced by FixRoute(), Logger(), Move(), ROUTER(), StartDragging(), StartRouting(), ToggleViaPlacement(), UndoLastSegment(), and ~ROUTER().
|
private |
Definition at line 263 of file pns_router.h.
Referenced by isStartingPointRoutable(), Mode(), ROUTER(), SetMode(), and StartRouting().
|
private |
Definition at line 252 of file pns_router.h.
Referenced by ClearWorld(), CommitRouting(), FixRoute(), FlipPosture(), GetCurrentLayer(), GetCurrentNets(), GetUpdatedItems(), IsPlacingVia(), movePlacing(), Placer(), QueryHoverItems(), SetOrthoMode(), StartRouting(), StopRouting(), SwitchLayer(), ToggleViaPlacement(), UndoLastSegment(), and UpdateSizes().
|
private |
Definition at line 261 of file pns_router.h.
Referenced by LoadSettings(), ROUTER(), Settings(), and ToggleCornerMode().
|
private |
Definition at line 254 of file pns_router.h.
|
private |
Definition at line 262 of file pns_router.h.
Referenced by isStartingPointRoutable(), Sizes(), StartRouting(), ToggleViaPlacement(), and UpdateSizes().
|
private |
Definition at line 247 of file pns_router.h.
Referenced by CommitRouting(), Finish(), FixRoute(), FlipPosture(), GetState(), GetUpdatedItems(), Move(), ROUTER(), RoutingInProgress(), StartDragging(), StartRouting(), StopRouting(), SwitchLayer(), ToggleViaPlacement(), and UpdateSizes().
|
private |
Definition at line 266 of file pns_router.h.
|
private |
Definition at line 246 of file pns_router.h.
Referenced by ROUTER(), SetVisibleViewArea(), and VisibleViewArea().
|
private |
Definition at line 249 of file pns_router.h.
Referenced by BreakSegmentOrArc(), ClearWorld(), CommitRouting(), GetWorld(), isStartingPointRoutable(), QueryHoverItems(), StartDragging(), StopRouting(), and SyncWorld().