KiCad PCB EDA Suite
|
#include <pns_dragger.h>
Public Member Functions | |
DRAGGER (ROUTER *aRouter) | |
~DRAGGER () | |
virtual bool | Start (const VECTOR2I &aP, ITEM_SET &aPrimitives) override |
Function Start() | |
bool | Drag (const VECTOR2I &aP) override |
Function Drag() | |
bool | FixRoute (bool aForceCommit) override |
Function FixRoute() | |
NODE * | CurrentNode () const override |
Function CurrentNode() | |
const std::vector< NET_HANDLE > | CurrentNets () const override |
Function CurrentNets() | |
int | CurrentLayer () const override |
Function CurrentLayer() | |
const LINE & | GetOriginalLine () |
const LINE & | GetLastDragSolution () |
const ITEM_SET | Traces () override |
Function Traces() | |
void | SetMode (PNS::DRAG_MODE aDragMode) override |
PNS::DRAG_MODE | Mode () const override |
bool | GetForceMarkObstaclesMode (bool *aDragStatus) const override |
virtual void | SetWorld (NODE *aWorld) |
Function SetWorld() | |
virtual std::vector< PNS::ITEM * > | GetLastCommittedLeaderSegments () |
ROUTER * | Router () const |
Return current router settings. | |
ROUTING_SETTINGS & | Settings () const |
Return the logger object, allowing to dump geometry to a file. | |
virtual LOGGER * | Logger () |
void | SetLogger (LOGGER *aLogger) |
void | SetDebugDecorator (DEBUG_DECORATOR *aDecorator) |
Assign a debug decorator allowing this algo to draw extra graphics for visual debugging. | |
DEBUG_DECORATOR * | Dbg () const |
const BOX2I & | VisibleViewArea () const |
Protected Attributes | |
NODE * | m_world |
DEBUG_DECORATOR * | m_debugDecorator |
ROUTER * | m_router |
LOGGER * | m_logger |
Private Member Functions | |
const ITEM_SET | findViaFanoutByHandle (NODE *aNode, const VIA_HANDLE &handle) |
bool | dragMarkObstacles (const VECTOR2I &aP) |
bool | dragShove (const VECTOR2I &aP) |
bool | dragWalkaround (const VECTOR2I &aP) |
bool | startDragSegment (const VECTOR2D &aP, SEGMENT *aSeg) |
bool | startDragArc (const VECTOR2D &aP, ARC *aArc) |
bool | startDragVia (VIA *aVia) |
bool | dragViaMarkObstacles (const VIA_HANDLE &aHandle, NODE *aNode, const VECTOR2I &aP) |
bool | dragViaWalkaround (const VIA_HANDLE &aHandle, NODE *aNode, const VECTOR2I &aP) |
void | optimizeAndUpdateDraggedLine (LINE &aDragged, const LINE &aOrig, const VECTOR2I &aP) |
bool | propagateViaForces (NODE *node, std::set< VIA * > &vias) |
bool | tryWalkaround (NODE *aNode, LINE &aOrig, LINE &aWalk) |
VVIA * | checkVirtualVia (const VECTOR2D &aP, SEGMENT *aSeg) |
Private Attributes | |
VIA_HANDLE | m_initialVia |
VIA_HANDLE | m_draggedVia |
NODE * | m_lastNode |
NODE * | m_preDragNode |
int | m_mode |
LINE | m_draggedLine |
LINE | m_lastDragSolution |
std::unique_ptr< SHOVE > | m_shove |
int | m_draggedSegmentIndex |
bool | m_dragStatus |
PNS_MODE | m_currentMode |
ITEM_SET | m_origViaConnections |
VECTOR2D | m_lastValidPoint |
Contains the list of items that are currently modified by the dragger. | |
ITEM_SET | m_draggedItems |
If true, moves the connection lines without maintaining 45 degrees corners. | |
bool | m_freeAngleMode |
bool | m_forceMarkObstaclesMode |
MOUSE_TRAIL_TRACER | m_mouseTrailTracer |
PNS::DRAGGER::DRAGGER | ( | ROUTER * | aRouter | ) |
Definition at line 32 of file pns_dragger.cpp.
PNS::DRAGGER::~DRAGGER | ( | ) |
Definition at line 48 of file pns_dragger.cpp.
Definition at line 72 of file pns_dragger.cpp.
References SEG::A, SEG::B, PNS::NODE::FindJoint(), PNS::JOINT::LinkList(), PNS::DRAG_ALGO::m_world, PNS::SEGMENT::Seg(), PNS::ITEM::VIA_T, and PNS::SEGMENT::Width().
Referenced by Start().
|
inlineoverridevirtual |
Function CurrentLayer()
Returns the layer of currently routed track.
Implements PNS::DRAG_ALGO.
Definition at line 98 of file pns_dragger.h.
References PNS::ITEM::Layer(), and m_draggedLine.
|
overridevirtual |
Function CurrentNets()
Returns the net(s) of currently routed track(s).
Implements PNS::DRAG_ALGO.
Definition at line 292 of file pns_dragger.cpp.
References PNS::DM_VIA, m_draggedLine, m_draggedVia, m_mode, PNS::ITEM::Net(), and PNS::VIA_HANDLE::net.
|
overridevirtual |
Function CurrentNode()
Returns the most recent world state, including all items changed due to dragging operation.
Implements PNS::DRAG_ALGO.
Definition at line 804 of file pns_dragger.cpp.
References m_lastNode, and PNS::DRAG_ALGO::m_world.
Referenced by FixRoute().
|
inlineinherited |
Definition at line 78 of file pns_algo_base.h.
References PNS::ALGO_BASE::m_debugDecorator.
Referenced by PNS::SHOVE::AddLockedSpringbackNode(), PNS::LINE_PLACER::buildInitialLine(), PNS::LINE_PLACER::clipAndCheckCollisions(), PNS::MEANDER_PLACER::doMove(), PNS::COMPONENT_DRAGGER::Drag(), PNS::MULTI_DRAGGER::Drag(), dragShove(), dragWalkaround(), PNS::MULTI_DRAGGER::findNewLeaderSegment(), PNS::SHOVE::fixupViaCollisions(), PNS::LINE_PLACER::handlePullback(), PNS::LINE_PLACER::mergeHead(), PNS::DP_MEANDER_PLACER::Move(), PNS::MEANDER_SKEW_PLACER::Move(), PNS::MULTI_DRAGGER::multidragShove(), PNS::MULTI_DRAGGER::multidragWalkaround(), PNS::SHOVE::onCollidingArc(), PNS::SHOVE::onCollidingLine(), PNS::SHOVE::onCollidingSegment(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::onCollidingVia(), PNS::SHOVE::onReverseCollidingVia(), optimizeAndUpdateDraggedLine(), PNS::LINE_PLACER::optimizeTailHeadTransition(), PNS::SHOVE::preShoveCleanup(), PNS::SHOVE::pruneRootLines(), PNS::SHOVE::pushLineStack(), PNS::SHOVE::pushOrShoveVia(), PNS::SHOVE::pushSpringback(), PNS::SHOVE::reconstructHeads(), PNS::SHOVE::reduceSpringback(), PNS::LINE_PLACER::reduceTail(), PNS::SHOVE::removeHeads(), PNS::LINE_PLACER::removeLoops(), PNS::SHOVE::replaceItems(), PNS::SHOVE::replaceLine(), PNS::LINE_PLACER::rhShoveOnly(), PNS::LINE_PLACER::rhWalkBase(), PNS::LINE_PLACER::rhWalkOnly(), PNS::WALKAROUND::Route(), PNS::LINE_PLACER::routeStep(), PNS::SHOVE::Run(), PNS::SHOVE::runOptimizer(), PNS::SHOVE::shoveIteration(), PNS::SHOVE::shoveLineToHullSet(), PNS::SHOVE::shoveMainLoop(), PNS::SHOVE::ShoveObstacleLine(), PNS::WALKAROUND::singleStep(), PNS::LINE_PLACER::splitHeadTail(), PNS::LINE_PLACER::Start(), Start(), PNS::MULTI_DRAGGER::Start(), PNS::SHOVE::touchRootLine(), PNS::LINE_PLACER::Trace(), tryWalkaround(), PNS::MULTI_DRAGGER::tryWalkaround(), and PNS::SHOVE::unwindLineStack().
|
overridevirtual |
Function Drag()
Drags the current segment/corner/via to the point aP.
Implements PNS::DRAG_ALGO.
Definition at line 762 of file pns_dragger.cpp.
References PNS::NODE::Add(), PNS::MOUSE_TRAIL_TRACER::AddTrailPoint(), PNS::NODE::Branch(), PNS::ITEM_SET::Clear(), PNS::LINK_HOLDER::ClearLinks(), dragMarkObstacles(), dragShove(), dragWalkaround(), PNS::NODE::GetParent(), m_currentMode, m_draggedItems, m_forceMarkObstaclesMode, m_freeAngleMode, m_lastDragSolution, m_lastNode, m_lastValidPoint, m_mouseTrailTracer, PNS::RM_MarkObstacles, PNS::RM_Shove, and PNS::RM_Walkaround.
Referenced by FixRoute().
|
private |
Definition at line 301 of file pns_dragger.cpp.
References PNS::ITEM_SET::Add(), PNS::NODE::Add(), PNS::NODE::Branch(), PNS::NODE::CheckColliding(), PNS::ITEM_SET::Clear(), PNS::LINK_HOLDER::ClearLinks(), PNS::DM_CORNER, PNS::DM_SEGMENT, PNS::DM_VIA, PNS::LINE::DragCorner(), PNS::LINE::DragSegment(), dragViaMarkObstacles(), m_draggedItems, m_draggedLine, m_draggedSegmentIndex, m_dragStatus, m_freeAngleMode, m_initialVia, m_lastNode, m_mode, PNS::DRAG_ALGO::m_world, PNS::NODE::Remove(), PNS::LINE::SetSnapThreshhold(), PNS::ALGO_BASE::Settings(), PNS::ROUTING_SETTINGS::SmoothDraggedSegments(), and PNS::LINE::Width().
Referenced by Drag().
|
private |
Definition at line 611 of file pns_dragger.cpp.
References PNS::ITEM_SET::Clear(), PNS::LINK_HOLDER::ClearLinks(), PNS::ALGO_BASE::Dbg(), PNS::DM_CORNER, PNS::DM_SEGMENT, PNS::DM_VIA, PNS::LINE::DragCorner(), PNS::LINE::DragSegment(), dragViaWalkaround(), PNS_LAYER_RANGE::End(), PNS::VIA_HANDLE::layers, PNS::OPTIMIZER::LIMIT_CORNER_COUNT, m_draggedItems, m_draggedLine, m_draggedSegmentIndex, m_draggedVia, m_dragStatus, m_lastDragSolution, m_lastNode, m_mode, m_shove, optimizeAndUpdateDraggedLine(), PNS_DBG, PNS::VIA_HANDLE::pos, PNS::LINE::SetSnapThreshhold(), PNS::ALGO_BASE::Settings(), PNS::SHOVE::SH_OK, PNS::SHOVE::SHP_SHOVE, PNS::ROUTING_SETTINGS::SmoothDraggedSegments(), PNS_LAYER_RANGE::Start(), PNS::LINE::Unmark(), PNS::LINE::Width(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Drag().
|
private |
Definition at line 353 of file pns_dragger.cpp.
References PNS::ITEM_SET::Add(), PNS::NODE::Add(), PNS::ITEM_SET::Clear(), PNS::LINK_HOLDER::ClearLinks(), PNS::LINE::CLine(), PNS::Clone(), PNS::LINE::DragCorner(), PNS::ITEM_SET::Empty(), SHAPE_LINE_CHAIN::Find(), findViaFanoutByHandle(), PNS::ITEM_SET::Items(), m_draggedItems, m_freeAngleMode, m_lastNode, PNS::VIA_HANDLE::pos, PNS::NODE::Remove(), and via.
Referenced by dragMarkObstacles().
|
private |
Definition at line 393 of file pns_dragger.cpp.
References PNS::ITEM_SET::Add(), PNS::NODE::Add(), PNS::NODE::CheckColliding(), PNS::ITEM_SET::Clear(), PNS::LINK_HOLDER::ClearLinks(), PNS::LINE::CLine(), PNS::Clone(), PNS::LINE::DragCorner(), PNS::ITEM_SET::Empty(), SHAPE_LINE_CHAIN::Find(), findViaFanoutByHandle(), PNS::ITEM_SET::Items(), m_draggedItems, m_freeAngleMode, m_lastNode, PNS::DRAG_ALGO::m_world, optimizeAndUpdateDraggedLine(), PNS::VIA_HANDLE::pos, propagateViaForces(), PNS::NODE::Remove(), tryWalkaround(), and via.
Referenced by dragShove(), and dragWalkaround().
|
private |
Definition at line 547 of file pns_dragger.cpp.
References BLUE, PNS::NODE::Branch(), PNS::NODE::CheckColliding(), PNS::LINE::CLine(), CYAN, PNS::ALGO_BASE::Dbg(), PNS::DM_CORNER, PNS::DM_SEGMENT, PNS::DM_VIA, PNS::LINE::DragCorner(), PNS::LINE::DragSegment(), dragViaWalkaround(), m_draggedLine, m_draggedSegmentIndex, m_dragStatus, m_initialVia, m_lastNode, m_mode, PNS::DRAG_ALGO::m_world, optimizeAndUpdateDraggedLine(), PNS_DBG, SHAPE_LINE_CHAIN::PointCount(), PNS::NODE::Remove(), PNS::LINE::SetSnapThreshhold(), PNS::ALGO_BASE::Settings(), PNS::ROUTING_SETTINGS::SmoothDraggedSegments(), tryWalkaround(), and PNS::LINE::Width().
Referenced by Drag().
|
private |
Definition at line 187 of file pns_dragger.cpp.
References PNS::ITEM_SET::Add(), PNS::ITEM::ARC_T, PNS::NODE::AssembleLine(), PNS::NODE::FindJoint(), PNS::VIA_HANDLE::layers, PNS::JOINT::LinkList(), PNS::VIA_HANDLE::net, PNS::VIA_HANDLE::pos, PNS::LINE::Reverse(), PNS::ITEM::SEGMENT_T, PNS_LAYER_RANGE::Start(), and PNS::ITEM::VIA_T.
Referenced by dragViaMarkObstacles(), and dragViaWalkaround().
|
overridevirtual |
Function FixRoute()
Checks if the result of current dragging operation is correct and eventually commits it to the world.
Implements PNS::DRAG_ALGO.
Definition at line 721 of file pns_dragger.cpp.
References PNS::ROUTER::CommitRouting(), CurrentNode(), Drag(), m_dragStatus, m_forceMarkObstaclesMode, m_lastValidPoint, and PNS::ALGO_BASE::Router().
|
inlineoverridevirtual |
Implements PNS::DRAG_ALGO.
Definition at line 124 of file pns_dragger.h.
References m_dragStatus, and m_forceMarkObstaclesMode.
|
inlinevirtualinherited |
Reimplemented in PNS::MULTI_DRAGGER.
Definition at line 125 of file pns_drag_algo.h.
|
inline |
Definition at line 108 of file pns_dragger.h.
References m_lastDragSolution.
|
inline |
Definition at line 103 of file pns_dragger.h.
References m_draggedLine.
Referenced by PNS::TOOL_BASE::checkSnap().
|
virtualinherited |
Definition at line 34 of file pns_algo_base.cpp.
References PNS::ALGO_BASE::m_logger.
Referenced by PNS::LINE_PLACER::rhShoveOnly(), PNS::LINE_PLACER::rhWalkBase(), Start(), PNS::MULTI_DRAGGER::Start(), tryWalkaround(), and PNS::MULTI_DRAGGER::tryWalkaround().
|
overridevirtual |
|
private |
Definition at line 470 of file pns_dragger.cpp.
References PNS::ITEM_SET::Add(), PNS::NODE::Add(), anchor, PNS::LINE::ChangedArea(), PNS::ITEM_SET::Clear(), PNS::LINK_HOLDER::ClearLinks(), PNS::LINE::CLine(), PNS::LINE::Clone(), PNS::ALGO_BASE::Dbg(), SHAPE_LINE_CHAIN::Find(), GREEN, PNS::OPTIMIZER::KEEP_TOPOLOGY, PNS::LINE::Line(), m_draggedItems, m_lastNode, PNS::OPTIMIZER::MERGE_COLINEAR, PNS::OPTIMIZER::MERGE_SEGMENTS, SHAPE_LINE_CHAIN::NearestPoint(), PNS::OPTIMIZER::Optimize(), PNS_DBG, RED, PNS::OPTIMIZER::RESTRICT_AREA, PNS::OPTIMIZER::SetEffortLevel(), PNS::OPTIMIZER::SetPreserveVertex(), PNS::OPTIMIZER::SetRestrictArea(), PNS::ALGO_BASE::Settings(), SHAPE_LINE_CHAIN::Split(), PNS::LINE::Unmark(), and YELLOW.
Referenced by dragShove(), dragViaWalkaround(), and dragWalkaround().
Definition at line 53 of file pns_dragger.cpp.
References PNS::ITEM::ANY_T, PNS::MOUSE_TRAIL_TRACER::GetTrailLeadVector(), m_mouseTrailTracer, PNS::ALGO_BASE::Settings(), via, and PNS::ROUTING_SETTINGS::ViaForcePropIterationLimit().
Referenced by dragViaWalkaround().
|
inlineinherited |
Return current router settings.
Definition at line 54 of file pns_algo_base.h.
References PNS::ALGO_BASE::m_router.
Referenced by PNS::DIFF_PAIR_PLACER::attemptWalk(), PNS::MEANDER_PLACER_BASE::Clearance(), PNS::DIFF_PAIR_PLACER::CommitPlacement(), PNS::DP_MEANDER_PLACER::CommitPlacement(), PNS::LINE_PLACER::CommitPlacement(), PNS::MEANDER_PLACER::CommitPlacement(), PNS::COMPONENT_DRAGGER::FixRoute(), FixRoute(), PNS::MULTI_DRAGGER::FixRoute(), PNS::DIFF_PAIR_PLACER::initPlacement(), PNS::LINE_PLACER::initPlacement(), PNS::LINE_PLACER::makeVia(), PNS::MULTI_DRAGGER::multidragShove(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::reconstructHeads(), PNS::SHOVE::removeHeads(), PNS::LINE_PLACER::rhWalkBase(), PNS::SHOVE::Run(), PNS::SHOVE::runOptimizer(), PNS::SHOVE::shoveIteration(), PNS::DIFF_PAIR_PLACER::Start(), PNS::DP_MEANDER_PLACER::Start(), PNS::LINE_PLACER::Start(), PNS::MEANDER_PLACER::Start(), PNS::MEANDER_SKEW_PLACER::Start(), Start(), PNS::MULTI_DRAGGER::Start(), tryWalkaround(), and PNS::MULTI_DRAGGER::tryWalkaround().
|
inlineinherited |
Assign a debug decorator allowing this algo to draw extra graphics for visual debugging.
Definition at line 73 of file pns_algo_base.h.
References PNS::ALGO_BASE::m_debugDecorator.
Referenced by PNS::SHOVE::onCollidingSolid(), PNS::LINE_PLACER::rhWalkBase(), PNS::SHOVE::SHOVE(), tryWalkaround(), and PNS::MULTI_DRAGGER::tryWalkaround().
|
inlineinherited |
Definition at line 65 of file pns_algo_base.h.
References PNS::ALGO_BASE::m_logger.
Referenced by PNS::LINE_PLACER::rhWalkBase(), tryWalkaround(), and PNS::MULTI_DRAGGER::tryWalkaround().
|
overridevirtual |
Reimplemented from PNS::DRAG_ALGO.
Definition at line 280 of file pns_dragger.cpp.
References m_mode.
|
inherited |
Return the logger object, allowing to dump geometry to a file.
Definition at line 28 of file pns_algo_base.cpp.
References PNS::ALGO_BASE::m_router, and PNS::ROUTER::Settings().
Referenced by PNS::DIFF_PAIR_PLACER::attemptWalk(), PNS::LINE_PLACER::buildInitialLine(), PNS::LINE_PLACER::CommitPlacement(), PNS::MULTI_DRAGGER::Drag(), dragMarkObstacles(), dragShove(), dragWalkaround(), PNS::COMPONENT_DRAGGER::FixRoute(), PNS::MULTI_DRAGGER::FixRoute(), PNS::DIFF_PAIR_PLACER::FixRoute(), PNS::LINE_PLACER::FixRoute(), PNS::LINE_PLACER::Move(), PNS::SHOVE::onCollidingSolid(), optimizeAndUpdateDraggedLine(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), propagateViaForces(), PNS::SHOVE::pushOrShoveVia(), PNS::LINE_PLACER::rhMarkObstacles(), PNS::LINE_PLACER::rhShoveOnly(), PNS::LINE_PLACER::rhWalkBase(), PNS::LINE_PLACER::rhWalkOnly(), PNS::DIFF_PAIR_PLACER::route(), PNS::LINE_PLACER::routeHead(), PNS::LINE_PLACER::routeStep(), PNS::SHOVE::runOptimizer(), PNS::SHOVE::shoveMainLoop(), PNS::WALKAROUND::singleStep(), PNS::LINE_PLACER::Start(), Start(), PNS::MULTI_DRAGGER::Start(), tryWalkaround(), PNS::MULTI_DRAGGER::tryWalkaround(), PNS::LINE_PLACER::UnfixRoute(), and PNS::WALKAROUND::WALKAROUND().
|
inlinevirtualinherited |
Function SetWorld()
Sets the board to work on.
Definition at line 61 of file pns_drag_algo.h.
References PNS::DRAG_ALGO::m_world.
Function Start()
Starts routing a single track at point aP, taking item aStartItem as anchor (unless NULL). Returns true if a dragging operation has started.
Implements PNS::DRAG_ALGO.
Definition at line 224 of file pns_dragger.cpp.
References PNS::MOUSE_TRAIL_TRACER::AddTrailPoint(), PNS::ITEM::ARC_T, PNS::NODE::Branch(), checkVirtualVia(), PNS::ITEM_SET::Clear(), PNS::MOUSE_TRAIL_TRACER::Clear(), PNS::ALGO_BASE::Dbg(), PNS::DM_FREE_ANGLE, PNS::ITEM_SET::Empty(), PNS::ITEM::Kind(), PNS::ALGO_BASE::Logger(), m_currentMode, m_draggedItems, m_forceMarkObstaclesMode, m_freeAngleMode, m_lastNode, m_lastValidPoint, m_mode, m_mouseTrailTracer, m_preDragNode, m_shove, PNS::DRAG_ALGO::m_world, PNS::MK_LOCKED, PNS::ROUTING_SETTINGS::Mode(), PNS_DBG, PNS::RM_Shove, PNS::ALGO_BASE::Router(), PNS::ITEM::SEGMENT_T, PNS::ALGO_BASE::Settings(), PNS::SHOVE::SHP_SHOVE, startDragArc(), startDragSegment(), startDragVia(), PNS::ITEM::Unmark(), and PNS::ITEM::VIA_T.
Definition at line 154 of file pns_dragger.cpp.
References PNS::NODE::AssembleLine(), PNS::NODE::CheckColliding(), PNS::DM_ARC, m_draggedLine, m_draggedSegmentIndex, m_forceMarkObstaclesMode, m_mode, and PNS::DRAG_ALGO::m_world.
Referenced by Start().
Definition at line 109 of file pns_dragger.cpp.
References SEG::A, PNS::NODE::AssembleLine(), SEG::B, PNS::NODE::CheckColliding(), PNS::LINE::CLine(), PNS::DM_CORNER, PNS::DM_SEGMENT, SHAPE_LINE_CHAIN::IsPtOnArc(), m_draggedLine, m_draggedSegmentIndex, m_forceMarkObstaclesMode, m_freeAngleMode, m_lastDragSolution, m_mode, PNS::DRAG_ALGO::m_world, PNS::LINE::PointCount(), PNS::SEGMENT::Seg(), and PNS::SEGMENT::Width().
Referenced by Start().
|
private |
Definition at line 170 of file pns_dragger.cpp.
References PNS::NODE::CheckColliding(), PNS::DM_VIA, m_draggedVia, m_forceMarkObstaclesMode, m_initialVia, m_mode, PNS::DRAG_ALGO::m_world, and PNS::VIA::MakeHandle().
Referenced by Start().
|
overridevirtual |
Function Traces()
Returns the set of dragged items.
Implements PNS::DRAG_ALGO.
Definition at line 810 of file pns_dragger.cpp.
References m_draggedItems.
Definition at line 522 of file pns_dragger.cpp.
References PNS::ALGO_BASE::Dbg(), PNS::WALKAROUND::RESULT::lines, PNS::ALGO_BASE::Logger(), PNS::WALKAROUND::Route(), PNS::ALGO_BASE::Router(), PNS::WALKAROUND::SetAllowedPolicies(), PNS::ALGO_BASE::SetDebugDecorator(), PNS::WALKAROUND::SetIterationLimit(), PNS::WALKAROUND::SetLengthLimit(), PNS::ALGO_BASE::SetLogger(), PNS::WALKAROUND::SetSolidsOnly(), PNS::ALGO_BASE::Settings(), PNS::WALKAROUND::ST_DONE, PNS::WALKAROUND::RESULT::status, and PNS::WALKAROUND::WP_SHORTEST.
Referenced by dragViaWalkaround(), and dragWalkaround().
|
inherited |
Definition at line 40 of file pns_algo_base.cpp.
References PNS::ALGO_BASE::m_router, and PNS::ROUTER::VisibleViewArea().
Referenced by PNS::SHOVE::runOptimizer().
|
private |
Definition at line 158 of file pns_dragger.h.
|
protectedinherited |
Definition at line 86 of file pns_algo_base.h.
Referenced by PNS::ALGO_BASE::Dbg(), and PNS::ALGO_BASE::SetDebugDecorator().
|
private |
If true, moves the connection lines without maintaining 45 degrees corners.
Definition at line 163 of file pns_dragger.h.
Referenced by Drag(), dragMarkObstacles(), dragShove(), dragViaMarkObstacles(), dragViaWalkaround(), optimizeAndUpdateDraggedLine(), Start(), and Traces().
|
private |
Definition at line 153 of file pns_dragger.h.
Referenced by CurrentLayer(), CurrentNets(), dragMarkObstacles(), dragShove(), dragWalkaround(), GetOriginalLine(), startDragArc(), and startDragSegment().
|
private |
Definition at line 156 of file pns_dragger.h.
Referenced by dragMarkObstacles(), dragShove(), dragWalkaround(), startDragArc(), and startDragSegment().
|
private |
Definition at line 148 of file pns_dragger.h.
Referenced by CurrentNets(), dragShove(), and startDragVia().
|
private |
Definition at line 157 of file pns_dragger.h.
Referenced by dragMarkObstacles(), dragShove(), dragWalkaround(), FixRoute(), and GetForceMarkObstaclesMode().
|
private |
Definition at line 167 of file pns_dragger.h.
Referenced by Drag(), FixRoute(), GetForceMarkObstaclesMode(), Start(), startDragArc(), startDragSegment(), and startDragVia().
|
private |
Definition at line 166 of file pns_dragger.h.
Referenced by Drag(), dragMarkObstacles(), dragViaMarkObstacles(), dragViaWalkaround(), Start(), and startDragSegment().
|
private |
Definition at line 147 of file pns_dragger.h.
Referenced by dragMarkObstacles(), dragWalkaround(), and startDragVia().
|
private |
Definition at line 154 of file pns_dragger.h.
Referenced by Drag(), dragShove(), GetLastDragSolution(), and startDragSegment().
|
private |
Definition at line 150 of file pns_dragger.h.
Referenced by CurrentNode(), Drag(), dragMarkObstacles(), dragShove(), dragViaMarkObstacles(), dragViaWalkaround(), dragWalkaround(), optimizeAndUpdateDraggedLine(), and Start().
|
private |
Contains the list of items that are currently modified by the dragger.
Definition at line 160 of file pns_dragger.h.
Referenced by Drag(), FixRoute(), and Start().
|
protectedinherited |
Definition at line 88 of file pns_algo_base.h.
Referenced by PNS::ALGO_BASE::Logger(), and PNS::ALGO_BASE::SetLogger().
|
private |
Definition at line 152 of file pns_dragger.h.
Referenced by CurrentNets(), dragMarkObstacles(), dragShove(), dragWalkaround(), Mode(), SetMode(), Start(), startDragArc(), startDragSegment(), and startDragVia().
|
private |
Definition at line 168 of file pns_dragger.h.
Referenced by Drag(), propagateViaForces(), and Start().
|
private |
Definition at line 159 of file pns_dragger.h.
|
private |
Definition at line 151 of file pns_dragger.h.
Referenced by Start().
|
protectedinherited |
Definition at line 87 of file pns_algo_base.h.
Referenced by PNS::MEANDER_PLACER::doMove(), PNS::LINE_PLACER::FixRoute(), PNS::MEANDER_PLACER_BASE::lineLength(), PNS::DP_MEANDER_PLACER::Move(), PNS::MEANDER_SKEW_PLACER::Move(), PNS::ALGO_BASE::Router(), PNS::ALGO_BASE::Settings(), PNS::DIFF_PAIR_PLACER::updateLeadingRatLine(), PNS::LINE_PLACER::updateLeadingRatLine(), and PNS::ALGO_BASE::VisibleViewArea().
|
private |
Definition at line 155 of file pns_dragger.h.
Referenced by dragShove(), and Start().
|
protectedinherited |
Definition at line 128 of file pns_drag_algo.h.
Referenced by checkVirtualVia(), PNS::COMPONENT_DRAGGER::CurrentNode(), CurrentNode(), PNS::MULTI_DRAGGER::CurrentNode(), PNS::COMPONENT_DRAGGER::Drag(), dragMarkObstacles(), dragViaWalkaround(), dragWalkaround(), PNS::MULTI_DRAGGER::MULTI_DRAGGER(), PNS::MULTI_DRAGGER::multidragMarkObstacles(), PNS::MULTI_DRAGGER::multidragWalkaround(), PNS::DRAG_ALGO::SetWorld(), PNS::COMPONENT_DRAGGER::Start(), Start(), PNS::MULTI_DRAGGER::Start(), startDragArc(), startDragSegment(), and startDragVia().