20 #include "hurricane/Point.h"
25 #include "kite/TrackCost.h"
26 #include "kite/TrackElement.h"
103 bool check (
unsigned int& overlaps,
const char* message=NULL )
const;
104 unsigned int checkOverlap (
unsigned int& overlaps )
const;
105 inline void setLocalAssigned (
bool );
112 virtual Record* _getRecord ()
const;
113 virtual string _getString ()
const;
114 virtual string _getTypeName ()
const = 0;
123 vector<TrackElement*> _segments;
124 vector<TrackMarker*> _markers;
133 virtual void _postCreate ();
134 virtual void _preDestroy ();
140 inline unsigned int setMinimalFlags (
unsigned int& state,
unsigned int flags )
const;
141 inline unsigned int setMaximalFlags (
unsigned int& state,
unsigned int flags )
const;
145 struct SourceCompare {
153 struct SegmentCompare {
160 inline bool Track::SourceCompare::operator() (
const TrackElement* lhs,
const TrackElement* rhs )
161 {
return lessSource(lhs->getSourceU(),rhs->getSourceU()); }
164 inline bool Track::SourceCompare::operator() (
DbU::Unit lhsSource,
const TrackElement* rhs )
165 {
return lessSource(lhsSource,rhs->getSourceU()); }
168 inline bool Track::SourceCompare::operator() (
const TrackElement* lhs,
DbU::Unit rhsSource )
169 {
return lessSource(lhs->getSourceU(),rhsSource); }
172 inline bool Track::SourceCompare::lessSource (
DbU::Unit lhsSource,
DbU::Unit rhsSource )
173 {
return lhsSource < rhsSource; }
176 inline bool Track::SegmentCompare::operator() (
const TrackElement* lhs,
const TrackElement* rhs )
178 if (lhs->getSourceU() < rhs->getSourceU())
181 if ( (lhs->getSourceU() == rhs->getSourceU())
182 and (lhs->getTargetU() > rhs->getTargetU()) )
196 inline void Track::setLocalAssigned (
bool state ) { _localAssigned=state; }
198 inline unsigned int Track::setMinimalFlags (
unsigned int& state,
unsigned int flags )
const
205 inline unsigned int Track::setMaximalFlags (
unsigned int& state,
unsigned int flags )
const
218 #endif // KITE_TRACK_H
void getOverlapBounds(Interval, size_t &begin, size_t &end) const
Definition: Track.cpp:259
virtual unsigned int getDirection() const =0
TrackElement * getNextFixed(size_t &index) const
Definition: Track.cpp:188
const Layer * getLayer() const
Definition: Track.cpp:123
void insert(TrackElement *)
Definition: Track.cpp:451
size_t find(const TrackElement *) const
Definition: Track.cpp:371
TrackCost getOverlapCost(Interval, Net *, size_t begin, size_t end, unsigned int flags) const
Definition: Track.cpp:282
void invalidate()
Definition: Track.cpp:440
Interval getOccupiedInterval(size_t &begin) const
Definition: Track.cpp:588
bool isLocalAssigned() const
Definition: Track.h:189
void getBeginIndex(DbU::Unit position, size_t &begin, unsigned int &state) const
Definition: Track.cpp:199
virtual bool isHorizontal() const =0
Structure managing one routing track.
Definition: Track.h:42
DbU::Unit getSourcePosition(vector< TrackElement * >::iterator) const
Definition: Track.cpp:544
bool check(unsigned int &overlaps, const char *message=NULL) const
Definition: Track.cpp:479
virtual Point getPosition(DbU::Unit coordinate) const =0
Interval expandFreeInterval(size_t &begin, size_t &end, unsigned int state, Net *) const
Definition: Track.cpp:410
Interval getFreeInterval(DbU::Unit position, Net *net=NULL) const
Definition: Track.cpp:393
void doReorder()
Definition: Track.cpp:642
unsigned int getDepth() const
Definition: Track.cpp:119
The Kite Tool.
Definition: KiteEngine.h:60
TrackElement * getPrevious(size_t &index, Net *) const
Definition: Track.cpp:172
DbU::Unit getMin() const
Definition: Track.h:193
RoutingPlane * getRoutingPlane() const
Definition: Track.h:190
Tag part of Track with a weight.
Definition: TrackMarker.h:43
TrackElement * getNext(size_t &index, Net *) const
Definition: Track.cpp:160
size_t getSize() const
Definition: Track.h:195
Array of Tracks in one Layer.
Definition: RoutingPlane.h:34
static const size_t npos
Definition: Track.h:63
DbU::Unit getMinimalPosition(size_t index, unsigned int state) const
Definition: Track.cpp:552
DbU::Unit getAxis() const
Definition: Track.h:192
Abstract Class for all Elements inserted inside a Track.
Definition: TrackElement.h:100
size_t getIndex() const
Definition: Track.h:191
IndexState
Definition: Track.h:45
DbU::Unit getMaximalPosition(size_t index, unsigned int state) const
Definition: Track.cpp:569
Track * getPreviousTrack() const
Definition: Track.cpp:135
void getTerminalWeight(Interval, Net *, size_t &count, unsigned int &weight) const
Definition: Track.cpp:346
TrackElement * getSegment(size_t index) const
Definition: Track.cpp:142
const Layer * getBlockageLayer() const
Definition: Track.cpp:127
virtual bool isVertical() const =0
size_t doRemoval()
Definition: Track.cpp:624
Track * getNextTrack() const
Definition: Track.cpp:131
DbU::Unit getMax() const
Definition: Track.h:194
KiteEngine * getKiteEngine() const
Definition: Track.cpp:115
void setSegment(TrackElement *, size_t)
Definition: Track.cpp:472