# Kite - Detailed Router

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

Array of Tracks in one Layer. More...

## Public Member Functions

bool | isHorizontal () const
bool | isVertical () const
KiteEngine * | getKiteEngine () const
RoutingLayerGauge * | getLayerGauge () const
unsigned int | getDirection () const
size_t | getDepth () const
DbU::Unit | getAxisMin () const
DbU::Unit | getAxisMax () const
DbU::Unit | getTrackMin () const
DbU::Unit | getTrackMax () const
RoutingPlane * | getTop () const
RoutingPlane * | getBottom () const
const Layer * | getLayer () const
const Layer * | getBlockageLayer () const
size_t | getTracksSize () const
size_t | computeTracksSize () const
DbU::Unit | getTrackPosition (size_t index) const
Track * | getTrackByIndex (size_t index) const
Track * | getTrackByPosition (DbU::Unit axis, unsigned int mode=KtNearest) const
bool | _check (unsigned int &overlaps) const

## Static Public Member Functions

static RoutingPlane * | create (KiteEngine *, size_t depth)

## Detailed Description

Array of Tracks in one Layer.

A RoutingPlane is an array of Track covering a rectangular area. For now the area is the abutment box of the to be routed Cell. Tracks are spaced evenly and according to the configuration of the relevant RoutingLayerGauge.

Fig 1: Horizontal RoutingPlane

## Member Function Documentation

## ◆ create()

RoutingPlane * create | ( | KiteEngine * | engine,
|  | size_t | depth
| ) |  |

static

Parameters

  engine | The associated engine.
  depth | The Layer depth of the plane.

Returns
  The newly created RoutingPlane.

The RoutingPlane public constructor. The `depth` is in the sense of the RoutingGauge.

## ◆ isHorizontal()

bool isHorizontal | ( |  | ) | const

inline

Returns: true if the preferred routing direction is horizontal (the actual direction of the tracks).

## ◆ isVertical()

bool isVertical | ( |  | ) | const

inline

Returns: true if the preferred routing direction is vertical (the actual direction of the tracks).

## ◆ getKiteEngine()

KiteEngine * getKiteEngine | ( |  | ) | const

inline

Returns: The associated KiteEngine.

Referenced by Track::getKiteEngine().

## ◆ getLayerGauge()

RoutingLayerGauge * getLayerGauge | ( |  | ) | const

inline

Returns: The RoutingLayerGauge of the plane.

Referenced by RoutingPlane::getBlockageLayer(), and RoutingPlane::getLayer().

## ◆ getDirection()

unsigned int getDirection | ( |  | ) | const

inline

Returns: The preferred routing direction (Katabatic::KbHorizontal or Katabatic::KbVertical).

Referenced by RoutingPlane::create(), RoutingPlane::isHorizontal(), and RoutingPlane::isVertical().

## ◆ getDepth()

size_t getDepth | ( |  | ) | const

inline

Returns: The depth of the associated layer (as defined by the RoutingLayerGauge).

Referenced by Track::getDepth().

## ◆ getAxisMin()

size_t getAxisMin | ( |  | ) | const

inline

Returns: The axis coordinate of the first/lowest track.

## ◆ getAxisMax()

size_t getAxisMax | ( |  | ) | const

inline

Returns: The axis coordinate of the last/highest track.

## ◆ getTrackMin()

size_t getTrackMin | ( |  | ) | const

inline

Returns: The minimum bound of all track.

## ◆ getTrackMax()

size_t getTrackMax | ( |  | ) | const

inline

Returns: The maximum bound of all track.

## ◆ getTop()

RoutingPlane * getTop | ( |  | ) | const

Returns: The RoutingPlane immediatly above this one.

## ◆ getBottom()

RoutingPlane * getBottom | ( |  | ) | const

Returns: The RoutingPlane immediatly below this one.

## ◆ getLayer()

const Layer * getLayer | ( |  | ) | const

inline

Returns: The associated routing layer.

Referenced by Track::getLayer().

## ◆ getBlockageLayer()

const Layer * getBlockageLayer | ( |  | ) | const

inline

Returns: The blockage layer associated to the routing layer.

Referenced by Track::getBlockageLayer().

## ◆ getTracksSize()

size_t getTracksSize | ( |  | ) | const

inline

Returns: The number of tracks in the array.

## ◆ computeTracksSize()

size_t computeTracksSize | ( |  | ) | const

inline

Returns: The number of tracks to create in the array.

Helper method that compute the number of tracks in the array from the area of the Cell to be routed and the RoutingLayerGauge characteristics (the Cell is accessible through the KiteEngine).

Referenced by RoutingPlane::create().

## ◆ getTrackPosition()

DbU::Unit getTrackPosition | ( | size_t | index | ) | const

inline

Returns: The axis of the track at `index` in the array.

## ◆ getTrackByIndex()

Track * getTrackByIndex | ( | size_t | index | ) | const

Returns: The track at `index` in the array.

Referenced by Track::getNextTrack(), and Track::getPreviousTrack().

## ◆ getTrackByPosition()

Track * getTrackByPosition | ( | DbU::Unit | axis,
|  | unsigned int | mode = `KtNearest`
| ) |  | const

Returns: The track which position is nearest from `axis`. The meaning of nearest is defined by `mode` (classic rouding options).

Referenced by SegmentFsm::conflictSolveByPlaceds(), NegociateWindow::createTrackSegment(), RoutingEvent::revalidate(), Manipulator::ripupPerpandiculars(), and SegmentFsm::SegmentFsm().

## ◆ _check()

bool _check | ( | unsigned int & | overlaps | ) | const

Returns: true if no errors have been found (i.e. the database is coherent).

Perform a coherency check on all tracks part of the array.

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

- RoutingPlane.h
- RoutingPlane.cpp
- RoutingPlane.dox