# Kite - Detailed Router

Public Member Functions | Static Public Member Functions | List of all members
TrackFixedSegment Class Reference

Track elements for fixed wires. More...

Inheritance diagram for TrackFixedSegment:
[legend]

## Public Member Functions

virtual bool | isHorizontal () const
virtual bool | isVertical () const
virtual bool | isFixed () const
virtual unsigned long | getId () const
virtual unsigned int | getDirection () const
virtual Net * | getNet () const
virtual const Layer * | getLayer () const
virtual TrackElement * | getNext () const
virtual TrackElement * | getPrevious () const
virtual DbU::Unit | getAxis () const
virtual Interval | getFreeInterval () const
Public Member Functions inherited from TrackElement
virtual bool | isLocal () const
virtual bool | isGlobal () const
virtual bool | isBipoint () const
virtual bool | isTerminal () const
virtual bool | isStrap () const
virtual bool | isSlackened () const
virtual bool | isDogleg () const
bool | isCreated () const
bool | isInvalidated () const
bool | isBlockage () const
bool | isLocked () const
bool | isRouted () const
bool | hasSourceDogleg () const
bool | hasTargetDogleg () const
bool | canRipple () const
virtual bool | canDogleg ()
virtual bool | canDogleg (Interval)
virtual bool | canDogleg (Katabatic::GCell *, unsigned int flags=0)
Track * | getTrack () const
size_t | getIndex () const
virtual unsigned long | getFreedomDegree () const
virtual float | getMaxUnderDensity (unsigned int flags=0) const
Box | getBoundingBox () const
DbU::Unit | getSourceU () const
DbU::Unit | getTargetU () const
DbU::Unit | getLength () const
Interval | getCanonicalInterval () const
virtual Interval | getSourceConstraints () const
virtual Interval | getTargetConstraints () const
virtual DataNegociate * | getDataNegociate (unsigned int flags=KtDataSelf) const
virtual TrackElement * | getCanonical (Interval &)
virtual size_t | getGCells (Katabatic::GCellVector &) const
virtual TrackElement * | getParent () const
virtual unsigned int | getDoglegLevel () const
virtual TrackElement * | getSourceDogleg ()
virtual TrackElement * | getTargetDogleg ()
virtual TrackElements | getPerpandiculars ()
void | setFlags (unsigned int)
void | unsetFlags (unsigned int)
virtual void | setTrack (Track *)
void | setIndex (size_t)
virtual void | updateFreedomDegree ()
virtual void | setDoglegLevel (unsigned int)
virtual void | swapTrack (TrackElement *)
virtual void | reschedule (unsigned int level)
virtual void | detach ()
virtual void | invalidate ()
virtual void | revalidate ()
virtual void | incOverlapCost (Net *, TrackCost &) const
virtual void | setAxis (DbU::Unit, unsigned int flags=Katabatic::SegAxisSet)
virtual TrackElement * | makeDogleg ()
bool | makeDogleg (Katabatic::GCell *)
virtual TrackElement * | makeDogleg (Interval, unsigned int &flags)
virtual bool | _check () const

## Static Public Member Functions

static TrackElement * | create (Kite::Track *track, Segment *segment)
Static Public Member Functions inherited from TrackElement
static SegmentOverlapCostCB * | setOverlapCostCB (SegmentOverlapCostCB *)

## Detailed Description

Track elements for fixed wires.

A TrackFixedSegment is a segment that cannot be moved from the track. It can be associated to a true blockage Segment (recognised by the fact that their owner net is the blockage net), or to a segment from an ordinary net but which is locked into position. In the latter case, the owned net may reuse this portion of the track if it needs it.

In all cases, the blockage ratio of the GCells underneath the segment are updated.

## Member Function Documentation

## ◆ create()

TrackSegment * create | ( | Kite::Track * | track,
|  | Segment * | segment
| ) |  |

static

Parameters

  segment | The Hurricane Segment (blockage) to take into account.
  track | A Track into which insert the TrackFixedSegment.

Returns
  A TrackFixedSegment wrapped around a blockage Segment.

Public constructor to insert blockage inside a Track.

## ◆ isHorizontal()

bool isHorizontal | ( |  | ) | const

virtual

See also: Katabatic::AutoSegment::isHorizontal().

Implements TrackElement.

## ◆ isVertical()

bool isVertical | ( |  | ) | const

virtual

See also: Katabatic::AutoSegment::isVertical().

Implements TrackElement.

## ◆ isFixed()

bool isFixed | ( |  | ) | const

virtual

See also: Katabatic::AutoSegment::isFixed().

Reimplemented from TrackElement.

## ◆ getId()

unsigned long getId | ( |  | ) | const

virtual

Returns
  The `Id` of the supporting AutoSegment, if there is any. Zero otherwise.

Reimplemented from TrackElement.

## ◆ getDirection()

unsigned int getDirection | ( |  | ) | const

virtual

Returns
  The direction of the supporting element (should match the preferred direction of the Track).

Implements TrackElement.

## ◆ getNet()

Net * getNet | ( |  | ) | const

virtual

Returns: The Net associated to the element (may be `NULL`).

Implements TrackElement.

Referenced by TrackFixedSegment::getNext(), and TrackFixedSegment::getPrevious().

## ◆ getLayer()

const Layer * getLayer | ( |  | ) | const

virtual

Returns: The Layer of the element (should match the one of the Track).

Implements TrackElement.

## ◆ getNext()

TrackElement * getNext | ( |  | ) | const

virtual

Returns: The next TrackElement, on the same track and of a different net. See also: Track::getNext().

Reimplemented from TrackElement.

## ◆ getPrevious()

TrackElement * getPrevious | ( |  | ) | const

virtual

Returns: The previous TrackElement, on the same track and of a different net. See also: Track::getPrevious().

Reimplemented from TrackElement.

## ◆ getAxis()

DbU::Unit getAxis | ( |  | ) | const

virtual

Returns: The axis position of the element (must be the same as the Track).

Implements TrackElement.

## ◆ getFreeInterval()

Interval getFreeInterval | ( |  | ) | const

virtual

Returns: The greatest free interval enclosing this element.

Reimplemented from TrackElement.

The documentation for this class was generated from the following files:

- TrackFixedSegment.h
- TrackFixedSegment.cpp
- TrackFixedSegment.dox