22 #ifndef __PNS_DIFF_PLACER_H 23 #define __PNS_DIFF_PLACER_H 25 #include <math/vector2d.h> 27 #include <geometry/shape.h> 28 #include <geometry/shape_line_chain.h> 30 #include "pns_sizes_settings.h" 34 #include "pns_algo_base.h" 35 #include "pns_diff_pair.h" 37 #include "pns_placement_algo.h" 101 bool SetLayer(
int aLayer )
override;
126 const std::vector<int>
CurrentNets()
const override;
135 return m_currentLayer;
190 void updateLeadingRatLine();
197 void setWorld(
NODE* aWorld );
204 void initPlacement( );
212 void setInitialDirection(
const DIRECTION_45& aDirection );
215 bool routeHead(
const VECTOR2I& aP );
216 bool tryWalkDp(
NODE* aNode,
DIFF_PAIR& aPair,
bool aSolidsOnly );
219 bool rhWalkOnly(
const VECTOR2I& aP );
222 bool rhShoveOnly (
const VECTOR2I& aP );
225 bool rhMarkObstacles(
const VECTOR2I& aP );
227 const VIA makeVia (
const VECTOR2I& aP,
int aNet );
230 OPT_VECTOR2I getDanglingAnchor(
NODE* aNode,
ITEM* aItem );
231 bool attemptWalk(
NODE* aNode,
DIFF_PAIR* aCurrent,
DIFF_PAIR& aWalk,
bool aPFirst,
bool aWindCw,
bool aSolidsOnly );
242 bool m_chainedPlacement;
243 bool m_initialDiagonal;
244 bool m_startDiagonal;
250 boost::optional<DP_PRIMITIVE_PAIR> m_prevPair;
291 VECTOR2I m_currentEnd, m_currentStart;
294 ITEM* m_currentEndItem;
295 PNS_MODE m_currentMode;
302 #endif // __PNS_LINE_PLACER_H Class ITEM.
Definition: pns_item.h:54
Class NODE.
Definition: pns_node.h:138
Definition: pns_itemset.h:39
Class SHOVE.
Definition: pns_shove.h:46
void GetModifiedNets(std::vector< int > &aNets) const override
Function GetModifiedNets.
Definition: pns_diff_pair_placer.cpp:785
NODE * CurrentNode(bool aLoopsRemoved=false) const override
Function CurrentNode()
Definition: pns_diff_pair_placer.cpp:376
int CurrentLayer() const override
Function CurrentLayer()
Definition: pns_diff_pair_placer.h:133
Class PLACEMENT_ALGO.
Definition: pns_placement_algo.h:45
bool FixRoute(const VECTOR2I &aP, ITEM *aEndItem) override
Function FixRoute()
Definition: pns_diff_pair_placer.cpp:717
bool ToggleVia(bool aEnabled) override
Function ToggleVia()
Definition: pns_diff_pair_placer.cpp:99
Class DIRECTION_45.
Definition: direction45.h:33
void UpdateSizes(const SIZES_SETTINGS &aSizes) override
Function UpdateSizes()
Definition: pns_diff_pair_placer.cpp:705
bool Start(const VECTOR2I &aP, ITEM *aStartItem) override
Function Start()
Definition: pns_diff_pair_placer.cpp:522
const ITEM_SET Traces() override
Function Traces()
Definition: pns_diff_pair_placer.cpp:356
bool IsPlacingVia() const override
Function IsPlacingVia()
Definition: pns_diff_pair_placer.h:161
Definition: pns_router.h:109
Class LINE_PLACER.
Definition: pns_diff_pair_placer.h:55
Class DIFF_PAIR.
Definition: pns_diff_pair.h:265
void FlipPosture() override
Function FlipPosture()
Definition: pns_diff_pair_placer.cpp:367
bool Move(const VECTOR2I &aP, ITEM *aEndItem) override
Function Move()
Definition: pns_diff_pair_placer.cpp:682
Definition: pns_sizes_settings.h:37
Class DP_PRIMITIVE_PAIR.
Definition: pns_diff_pair.h:136
bool SetLayer(int aLayer) override
Function SetLayer()
Definition: pns_diff_pair_placer.cpp:385
const std::vector< int > CurrentNets() const override
Function CurrentNets()
Definition: pns_diff_pair_placer.cpp:809
void SetOrthoMode(bool aOrthoMode) override
Function SetOrthoMode()
Definition: pns_diff_pair_placer.cpp:90
const VECTOR2I & CurrentEnd() const override
Function CurrentEnd()
Definition: pns_diff_pair_placer.h:116
Definition: pns_algo_base.cpp:26