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 () |
bool | FixRoute (const VECTOR2I &aP, ITEM *aItem, bool aForceFinish=false) |
void | BreakSegment (ITEM *aItem, const VECTOR2I &aP) |
void | 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< int > | GetCurrentNets () const |
LOGGER * | Logger () |
RULE_RESOLVER * | GetRuleResolver () const |
bool | IsPlacingVia () const |
const ITEM_SET | QueryHoverItems (const VECTOR2I &aP, bool aUseClearance=false) |
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. More... | |
void | LoadSettings (ROUTING_SETTINGS *aSettings) |
Changes routing settings to ones passed in the parameter. More... | |
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 |
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, 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 |
ROUTER_IFACE * | m_iface |
int | m_iterLimit |
bool | m_forceMarkObstaclesMode = false |
ROUTING_SETTINGS * | m_settings |
SIZES_SETTINGS | m_sizes |
ROUTER_MODE | m_mode |
LOGGER * | m_logger |
wxString | m_toolStatusbarName |
wxString | m_failureReason |
Definition at line 116 of file pns_router.h.
Enumerator | |
---|---|
IDLE | |
DRAG_SEGMENT | |
DRAG_COMPONENT | |
ROUTE_TRACK |
Definition at line 119 of file pns_router.h.
PNS::ROUTER::ROUTER | ( | ) |
Definition at line 60 of file pns_router.cpp.
References 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 84 of file pns_router.cpp.
References ClearWorld(), m_logger, and PNS::theRouter.
Definition at line 1051 of file pns_router.cpp.
References CommitRouting(), m_world, and PNS::LINE_PLACER::SplitAdjacentSegments().
Referenced by ROUTER_TOOL::breakTrack().
void PNS::ROUTER::ClearViewDecorations | ( | ) |
Definition at line 940 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 102 of file pns_router.cpp.
References m_placer, and m_world.
Referenced by LENGTH_TUNER_TOOL::MainLoop(), ROUTER_TOOL::MainLoop(), PNS::TOOL_BASE::Reset(), SyncWorld(), and ~ROUTER().
void PNS::ROUTER::CommitRouting | ( | ) |
Definition at line 903 of file pns_router.cpp.
References m_placer, m_state, ROUTE_TRACK, and StopRouting().
Referenced by BreakSegment(), 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(), and ROUTER_TOOL::performRouting().
void PNS::ROUTER::CommitRouting | ( | NODE * | aNode | ) |
Definition at line 814 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 | ( | ) |
Definition at line 586 of file pns_router.cpp.
References CommitRouting(), PNS::PLACEMENT_ALGO::CurrentEnd(), GetCurrentLayer(), getNearestRatnestAnchor(), Move(), LAYER_RANGE::Overlaps(), Placer(), PNS::ITEM_SET::Size(), LAYER_RANGE::Start(), StartRouting(), and PNS::PLACEMENT_ALGO::Traces().
Referenced by ROUTER_TOOL::performRouting().
|
inline |
Definition at line 211 of file pns_router.h.
References m_failureReason.
Referenced by ROUTER_TOOL::performRouting(), LENGTH_TUNER_TOOL::performTuning(), 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(), LAYER_RANGE::Overlaps(), Placer(), ROUTE_TRACK, PNS::ITEM_SET::Size(), and PNS::PLACEMENT_ALGO::Traces().
Referenced by ROUTER_TOOL::performRouting().
Definition at line 867 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 Finish(), ROUTER_TOOL::InlineDrag(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), and LENGTH_TUNER_TOOL::performTuning().
void PNS::ROUTER::FlipPosture | ( | ) |
Definition at line 946 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 988 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(), and PNS::TOOL_BASE::updateEndItem().
const std::vector< int > PNS::ROUTER::GetCurrentNets | ( | ) | const |
Definition at line 977 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::updateSizesAfterLayerSwitch().
|
inline |
Definition at line 137 of file pns_router.h.
References m_dragger.
Referenced by PNS::TOOL_BASE::checkSnap(), and markViolations().
|
static |
Definition at line 78 of file pns_router.cpp.
References PNS::theRouter.
Referenced by PNS::MOUSE_TRAIL_TRACER::AddTrailPoint(), PNS::ITEM::collideSimple(), PNS::MOUSE_TRAIL_TRACER::GetPosture(), PNS::VIA::Hull(), PNS::NODE::NearestObstacle(), PNS::OPTIMIZER::Optimize(), and PNS::VIA::PushoutForce().
|
inline |
Definition at line 215 of file pns_router.h.
References m_iface.
Referenced by PNS::MOUSE_TRAIL_TRACER::AddTrailPoint(), PNS::ITEM::collideSimple(), PNS::MEANDER_PLACER::doMove(), PNS::MOUSE_TRAIL_TRACER::GetPosture(), PNS::VIA::Hull(), PNS::MEANDER_PLACER_BASE::lineLength(), PNS::DP_MEANDER_PLACER::Move(), PNS::MEANDER_SKEW_PLACER::Move(), PNS::NODE::NearestObstacle(), PNS::OPTIMIZER::Optimize(), PNS::VIA::PushoutForce(), PNS::SHOVE::SHOVE(), PNS::DIFF_PAIR_PLACER::updateLeadingRatLine(), and PNS::LINE_PLACER::updateLeadingRatLine().
|
inline |
Definition at line 187 of file pns_router.h.
References m_iterLimit.
|
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 177 of file pns_router.h.
References PNS::ROUTER_IFACE::GetRuleResolver(), and m_iface.
Referenced by PNS::MEANDER_PLACER_BASE::Clearance(), movePlacing(), ROUTER_TOOL::prepareInteractive(), StartDragging(), StartRouting(), and updateView().
|
inline |
Definition at line 135 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 785 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 161 of file pns_router.h.
References m_world.
Referenced by PNS::DIFF_PAIR_PLACER::initPlacement(), PNS::LINE_PLACER::initPlacement(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), 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 1005 of file pns_router.cpp.
References m_placer.
Referenced by ROUTER_TOOL::handleLayerSwitch(), ROUTER_TOOL::onViaCommand(), ROUTER_TOOL::performRouting(), and PNS::TOOL_BASE::updateEndItem().
|
private |
Definition at line 222 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(), 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_PAD_T, PCB_SHAPE_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 203 of file pns_router.h.
References m_settings.
Referenced by PNS::TOOL_BASE::Reset().
LOGGER * PNS::ROUTER::Logger | ( | ) |
Definition at line 999 of file pns_router.cpp.
References m_logger.
Referenced by ROUTER_TOOL::saveRouterDebugLog().
|
private |
Definition at line 635 of file pns_router.cpp.
References PNS::ITEM_SET::Contains(), PNS::ROUTER_IFACE::DisplayItem(), PNS::LINE::EndsWithVia(), PNS::LINE::GetBlockingObstacle(), PNS::NODE::GetClearance(), GetDragger(), 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 133 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 470 of file pns_router.cpp.
References DRAG_COMPONENT, DRAG_SEGMENT, PNS::LOGGER::EVT_MOVE, 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 LENGTH_TUNER_TOOL::performTuning().
Definition at line 623 of file pns_router.cpp.
References PNS::ROUTER_IFACE::EraseView(), m_dragger, m_iface, and updateView().
Referenced by Move().
Definition at line 741 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::LINE_T, m_iface, m_placer, updateView(), via, and PNS::LINE::Via().
Referenced by Move().
|
inline |
Definition at line 213 of file pns_router.h.
References m_placer.
Referenced by ContinueFromEnd(), Finish(), getNearestRatnestAnchor(), LENGTH_TUNER_TOOL::meanderSettingsDialog(), ROUTER_TOOL::performRouting(), LENGTH_TUNER_TOOL::performTuning(), and PNS_TUNE_STATUS_POPUP::UpdateStatus().
Definition at line 120 of file pns_router.cpp.
References PNS::ITEM_SET::Add(), LAYER_RANGE::All(), PNS::SIZES_SETTINGS::Clearance(), PNS::SIZES_SETTINGS::DiffPairWidth(), PNS::NODE::HitTest(), IDLE, PNS::COLLISION_SEARCH_OPTIONS::m_differentNetsOnly, m_mode, PNS::COLLISION_SEARCH_OPTIONS::m_overrideClearance, m_placer, m_sizes, m_state, m_world, PNS::PNS_MODE_ROUTE_DIFF_PAIR, PNS::PNS_MODE_ROUTE_SINGLE, PNS::NODE::QueryColliding(), and PNS::SIZES_SETTINGS::TrackWidth().
Referenced by isStartingPointRoutable(), and PNS::TOOL_BASE::pickSingleItem().
bool PNS::ROUTER::RoutingInProgress | ( | ) | const |
Definition at line 114 of file pns_router.cpp.
Referenced by 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(), and UndoLastSegment().
|
inline |
Definition at line 210 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 1045 of file pns_router.cpp.
References m_iface.
Referenced by PNS_TEST_FIXTURE::PNS_TEST_FIXTURE(), and PNS::TOOL_BASE::Reset().
|
inline |
Definition at line 186 of file pns_router.h.
References m_iterLimit.
void PNS::ROUTER::SetMode | ( | ROUTER_MODE | aMode | ) |
Definition at line 1039 of file pns_router.cpp.
References m_mode.
Referenced by LENGTH_TUNER_TOOL::MainLoop(), ROUTER_TOOL::MainLoop(), and ROUTER_TOOL::RouteSelected().
void PNS::ROUTER::SetOrthoMode | ( | bool | aEnable | ) |
Definition at line 1030 of file pns_router.cpp.
References m_placer.
|
inline |
Definition at line 189 of file pns_router.h.
References m_settings.
Referenced by ROUTER_TOOL::ChangeRouterMode(), PNS::TOOL_BASE::checkSnap(), ROUTER_TOOL::CycleRouterMode(), DRAWING_TOOL::DrawVia(), ROUTER_TOOL::GetRouterMode(), isStartingPointRoutable(), 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 217 of file pns_router.h.
References m_visibleViewArea.
Referenced by ROUTER_TOOL::handleCommonEvents(), and ROUTER_TOOL::InlineDrag().
|
inline |
Definition at line 208 of file pns_router.h.
References m_sizes.
Referenced by ROUTER_TOOL::DpDimensionsDialog(), ROUTER_TOOL::handleLayerSwitch(), LENGTH_TUNER_TOOL::MainLoop(), ROUTER_TOOL::MainLoop(), ROUTER_TOOL::onTrackViaSizeChanged(), ROUTER_TOOL::prepareInteractive(), ROUTER_TOOL::switchLayerOnViaPlacement(), ROUTER_TOOL::UpdateMessagePanel(), and ROUTER_TOOL::updateSizesAfterLayerSwitch().
Definition at line 168 of file pns_router.cpp.
References 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 174 of file pns_router.cpp.
References PNS::LOGGER::Clear(), PNS::RULE_RESOLVER::ClearCaches(), PNS::ITEM_SET::Count(), PNS::DM_FREE_ANGLE, DRAG_COMPONENT, DRAG_SEGMENT, PNS::ITEM_SET::Empty(), PNS::LOGGER::EVT_START_DRAG, PNS::ROUTER_IFACE::GetDebugDecorator(), GetRuleResolver(), IDLE, PNS::LOGGER::Log(), m_dragger, m_forceMarkObstaclesMode, m_iface, m_logger, m_state, m_world, PNS::ITEM_SET::Size(), and PNS::ITEM::SOLID_T.
Definition at line 410 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_forceMarkObstaclesMode, 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(), LENGTH_TUNER_TOOL::performTuning(), and ROUTER_TOOL::prepareInteractive().
void PNS::ROUTER::StopRouting | ( | ) |
Definition at line 912 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(), ROUTER_TOOL::finishInteractive(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), ROUTER_TOOL::MainLoop(), ROUTER_TOOL::performDragging(), and LENGTH_TUNER_TOOL::performTuning().
bool PNS::ROUTER::SwitchLayer | ( | int | layer | ) |
Definition at line 955 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 92 of file pns_router.cpp.
References ClearWorld(), m_iface, m_world, and PNS::ROUTER_IFACE::SyncWorld().
Referenced by LENGTH_TUNER_TOOL::MainLoop(), ROUTER_TOOL::MainLoop(), and PNS::TOOL_BASE::Reset().
void PNS::ROUTER::ToggleCornerMode | ( | ) |
Definition at line 1014 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 964 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().
void PNS::ROUTER::UndoLastSegment | ( | ) |
Definition at line 893 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 731 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(), and ROUTER_TOOL::updateSizesAfterLayerSwitch().
Definition at line 707 of file pns_router.cpp.
References PNS::RULE_RESOLVER::Clearance(), PNS::RULE_RESOLVER::ClearCacheForItem(), 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 218 of file pns_router.h.
References m_visibleViewArea.
Referenced by PNS::ALGO_BASE::VisibleViewArea().
|
private |
Definition at line 243 of file pns_router.h.
Referenced by FixRoute(), GetCurrentLayer(), GetCurrentNets(), GetDragger(), GetUpdatedItems(), moveDragging(), StartDragging(), and StopRouting().
|
private |
Definition at line 257 of file pns_router.h.
Referenced by FailureReason(), and SetFailureReason().
|
private |
Definition at line 249 of file pns_router.h.
Referenced by StartDragging(), and StartRouting().
|
private |
Definition at line 246 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 248 of file pns_router.h.
Referenced by GetIterLimit(), ROUTER(), and SetIterLimit().
|
private |
Definition at line 240 of file pns_router.h.
Referenced by ROUTER().
|
private |
Definition at line 254 of file pns_router.h.
Referenced by FixRoute(), Logger(), Move(), ROUTER(), StartDragging(), StartRouting(), ToggleViaPlacement(), UndoLastSegment(), and ~ROUTER().
|
private |
Definition at line 253 of file pns_router.h.
Referenced by isStartingPointRoutable(), Mode(), QueryHoverItems(), ROUTER(), SetMode(), and StartRouting().
|
private |
Definition at line 242 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 251 of file pns_router.h.
Referenced by LoadSettings(), ROUTER(), Settings(), and ToggleCornerMode().
|
private |
Definition at line 244 of file pns_router.h.
|
private |
Definition at line 252 of file pns_router.h.
Referenced by isStartingPointRoutable(), QueryHoverItems(), Sizes(), StartRouting(), ToggleViaPlacement(), and UpdateSizes().
|
private |
Definition at line 237 of file pns_router.h.
Referenced by CommitRouting(), Finish(), FixRoute(), FlipPosture(), GetState(), GetUpdatedItems(), Move(), QueryHoverItems(), ROUTER(), RoutingInProgress(), StartDragging(), StartRouting(), StopRouting(), SwitchLayer(), ToggleViaPlacement(), and UpdateSizes().
|
private |
Definition at line 256 of file pns_router.h.
|
private |
Definition at line 236 of file pns_router.h.
Referenced by ROUTER(), SetVisibleViewArea(), and VisibleViewArea().
|
private |
Definition at line 239 of file pns_router.h.
Referenced by BreakSegment(), ClearWorld(), CommitRouting(), GetWorld(), isStartingPointRoutable(), QueryHoverItems(), StartDragging(), StopRouting(), and SyncWorld().