22 #ifndef __PNS_MEANDER_PLACER_H
23 #define __PNS_MEANDER_PLACER_H
25 #include <math/vector2d.h>
27 #include <geometry/shape.h>
28 #include <geometry/shape_line_chain.h>
33 #include "pns_placement_algo.h"
34 #include "pns_meander.h"
35 #include "pns_meander_placer_base.h"
48 class MEANDER_PLACER :
public MEANDER_PLACER_BASE
52 MEANDER_PLACER( ROUTER* aRouter );
53 virtual ~MEANDER_PLACER();
56 virtual bool Start(
const VECTOR2I& aP, ITEM* aStartItem )
override;
59 virtual bool Move(
const VECTOR2I& aP, ITEM* aEndItem )
override;
62 virtual bool FixRoute(
const VECTOR2I& aP, ITEM* aEndItem,
bool aForceFinish =
false )
override;
65 NODE*
CurrentNode(
bool aLoopsRemoved =
false )
const override;
68 const ITEM_SET
Traces()
override;
76 return std::vector<int> (1, m_originLine.
Net() );
83 virtual const std::string
TuningInfo()
const override;
89 bool CheckFit ( MEANDER_SHAPE* aShape )
override;
93 bool doMove(
const VECTOR2I& aP, ITEM* aEndItem,
int aTargetLength );
95 void setWorld( NODE* aWorld );
97 virtual int origPathLength()
const;
110 ITEM_SET m_tunedPath;
113 MEANDERED_LINE m_result;
114 SEGMENT* m_initialSegment;
122 #endif // __PNS_MEANDER_PLACER_H
NODE * CurrentNode(bool aLoopsRemoved=false) const override
Function CurrentNode()
Definition: pns_meander_placer.cpp:52
NODE * m_currentNode
Current world state
Definition: pns_meander_placer.h:106
TUNING_STATUS
Result of the length tuning operation
Definition: pns_meander_placer_base.h:52
int CurrentLayer() const override
Function CurrentLayer()
Definition: pns_meander_placer.cpp:231
virtual TUNING_STATUS TuningStatus() const override
Function TuningStatus()
Definition: pns_meander_placer.cpp:264
int Net() const
Function Net()
Definition: pns_item.h:180
virtual bool Start(const VECTOR2I &aP, ITEM *aStartItem) override
Function Start()
Definition: pns_meander_placer.cpp:61
bool CheckFit(MEANDER_SHAPE *aShape) override
Function CheckFit()
Definition: pns_meander_placer.cpp:205
VECTOR2I m_currentStart
current routing start point (end of tail, beginning of head)
Definition: pns_meander_placer.h:103
NODE * m_world
pointer to world to search colliding items
Definition: pns_meander_placer.h:100
const std::vector< int > CurrentNets() const override
Function CurrentNets()
Definition: pns_meander_placer.h:74
const VECTOR2I & CurrentEnd() const override
Function CurrentEnd()
Definition: pns_meander_placer.cpp:226
const ITEM_SET Traces() override
Function Traces()
Definition: pns_meander_placer.cpp:219
virtual bool FixRoute(const VECTOR2I &aP, ITEM *aEndItem, bool aForceFinish=false) override
Function FixRoute()
Definition: pns_meander_placer.cpp:192
virtual const std::string TuningInfo() const override
Function TuningInfo()
Definition: pns_meander_placer.cpp:237
Class SHAPE_LINE_CHAIN.
Definition: shape_line_chain.h:50
virtual bool Move(const VECTOR2I &aP, ITEM *aEndItem) override
Function Move()
Definition: pns_meander_placer.cpp:108