17 #ifndef KITE_TRACK_SEGMENT_H
18 #define KITE_TRACK_SEGMENT_H
22 #include "kite/TrackElement.h"
30 using std::binary_function;
31 using Hurricane::Record;
48 class CompareById :
public binary_function<const TrackSegment*,const TrackSegment*,bool> {
55 static size_t getAllocateds ();
66 virtual bool isStrongTerminal (
unsigned int flags=0 )
const;
70 virtual bool isReduced ()
const;
71 virtual bool isUTurn ()
const;
72 virtual bool isUserDefined ()
const;
77 virtual bool canPivotUp (
float reserve )
const;
78 virtual bool canPivotDown (
float reserve )
const;
79 virtual bool canMoveUp (
float reserve,
unsigned int flags )
const;
80 virtual bool canSlacken ()
const;
82 virtual unsigned long getId ()
const;
99 virtual size_t getGCells ( Katabatic::GCellVector& )
const;
103 virtual size_t getPerpandicularsBound ( set<TrackElement*>& );
109 virtual void reschedule (
unsigned int level );
113 virtual void updatePPitch ();
119 virtual bool moveAside (
unsigned int flags );
120 virtual bool slacken (
unsigned int flags=KbNoFlags );
121 virtual bool moveUp (
unsigned int flags );
122 virtual bool moveDown (
unsigned int flags );
124 virtual void desalignate ();
126 virtual bool _check ()
const;
127 virtual Record* _getRecord ()
const;
128 virtual string _getString ()
const;
129 virtual string _getTypeName ()
const;
133 static size_t _allocateds;
135 unsigned long _freedomDegree;
138 unsigned int _dogLegLevel:4;
144 virtual void _postCreate ();
145 virtual void _preDestroy ();
157 typedef set<TrackSegment*,TrackSegment::CompareById> TrackSegmentSet;
165 #endif // KITE_TRACK_SEGMENT_H
virtual TrackElement * getTargetDogleg()
Definition: TrackSegment.cpp:528
Derived Katabatic::AutoSegment for the router.
Definition: TrackSegment.h:46
virtual unsigned long getId() const
Definition: TrackSegment.cpp:164
virtual unsigned int getDoglegLevel() const
Definition: TrackSegment.cpp:172
virtual unsigned int getDirection() const
Definition: TrackSegment.cpp:165
virtual bool isLocal() const
Definition: TrackSegment.cpp:151
virtual void revalidate()
Definition: TrackSegment.cpp:331
static TrackElement * create(AutoSegment *, Track *, bool &created)
Definition: TrackSegment.cpp:125
virtual Interval getTargetConstraints() const
Definition: TrackSegment.cpp:174
virtual Net * getNet() const
Definition: TrackSegment.cpp:166
virtual void invalidate()
Definition: TrackSegment.cpp:178
virtual TrackElement * getPrevious() const
Definition: TrackSegment.cpp:197
virtual TrackElement * getNext() const
Definition: TrackSegment.cpp:190
virtual Interval getSourceConstraints() const
Definition: TrackSegment.cpp:173
virtual TrackElements getPerpandiculars()
Definition: TrackSegment.cpp:176
virtual void swapTrack(TrackElement *)
Definition: TrackSegment.cpp:350
virtual TrackElement * makeDogleg()
Definition: TrackSegment.cpp:705
virtual bool isVertical() const
Definition: TrackSegment.cpp:150
virtual DataNegociate * getDataNegociate(unsigned int flags=KtDataSelf) const
Definition: TrackSegment.cpp:181
virtual bool isHorizontal() const
Definition: TrackSegment.cpp:149
virtual bool isDogleg() const
Definition: TrackSegment.cpp:158
Structure managing one routing track.
Definition: Track.h:42
virtual bool _check() const
Definition: TrackSegment.cpp:825
virtual bool isFixed() const
Definition: TrackSegment.cpp:148
virtual bool isGlobal() const
Definition: TrackSegment.cpp:152
virtual bool canDogleg()
Definition: TrackSegment.cpp:545
virtual TrackElement * getCanonical(Interval &)
Definition: TrackSegment.cpp:175
virtual bool isSlackened() const
Definition: TrackSegment.cpp:157
Definition: Constants.h:40
virtual const Layer * getLayer() const
Definition: TrackSegment.cpp:167
virtual bool isStrap() const
Definition: TrackSegment.cpp:156
virtual void detach()
Definition: TrackSegment.cpp:321
virtual void reschedule(unsigned int level)
Definition: TrackSegment.cpp:392
virtual TrackElement * getParent() const
Definition: TrackSegment.cpp:204
virtual Interval getFreeInterval() const
Definition: TrackSegment.cpp:214
virtual DbU::Unit getAxis() const
Definition: TrackSegment.cpp:170
virtual size_t getGCells(Katabatic::GCellVector &) const
Definition: TrackSegment.cpp:225
virtual void setTrack(Track *)
Definition: TrackSegment.cpp:317
Abstract Class for all Elements inserted inside a Track.
Definition: TrackElement.h:100
virtual void _postDoglegs(TrackElement *&perpandicular, TrackElement *¶llel)
Definition: TrackSegment.cpp:758
virtual void setAxis(DbU::Unit, unsigned int flags)
Definition: TrackSegment.cpp:343
virtual float getMaxUnderDensity(unsigned int flags) const
Definition: TrackSegment.cpp:408
virtual void setDoglegLevel(unsigned int)
Definition: TrackSegment.cpp:295
Algorimthmic datas associated the TrackSegment.
Definition: DataNegociate.h:50
virtual unsigned long getFreedomDegree() const
Definition: TrackSegment.cpp:171
virtual TrackElement * getSourceDogleg()
Definition: TrackSegment.cpp:511
virtual void updateFreedomDegree()
Definition: TrackSegment.cpp:306
virtual bool isTerminal() const
Definition: TrackSegment.cpp:154
virtual bool isBipoint() const
Definition: TrackSegment.cpp:153