# Hurricane VLSI Database

List of all members | Public Types | Public Member Functions | Static Public Member Functions
Hurricane::Horizontal Class Reference

Horizontal description (API) More...

Inheritance diagram for Hurricane::Horizontal:
[legend]

## Public Types
typedef Segment | Inherit
Public Types inherited from Hurricane::Segment
typedef Component | Inherit
Public Types inherited from Hurricane::Component
typedef Go | Inherit

## Public Member Functions
const DbU::Unit & | getDxSource () const
const DbU::Unit & | getDxTarget () const
void | setY (const DbU::Unit &y)
void | translate (const DbU::Unit &dy)
Public Member Functions inherited from Hurricane::Segment
Hook * | getSourceHook ()
Hook * | getTargetHook ()
Hook * | getOppositeHook (const Hook *hook) const
Component * | getSource () const
Component * | getTarget () const
Components | getAnchors () const
Component * | getOppositeAnchor (Component *anchor) const
const DbU::Unit & | getWidth () const
DbU::Unit | getHalfWidth () const
virtual Point | getSourcePosition () const
virtual Point | getTargetPosition () const
void | setLayer (const Layer *layer)
void | setWidth (const DbU::Unit &width)
void | invert ()
Public Member Functions inherited from Hurricane::Component
Net * | getNet () const
Rubber * | getRubber () const
Hook * | getBodyHook ()
virtual Point | getPosition () const
Components | getConnexComponents () const
Components | getSlaveComponents () const
Public Member Functions inherited from Hurricane::Go
bool | isMaterialized () const
Public Member Functions inherited from Hurricane::DBo
virtual void | destroy ()
Property * | getProperty (const Name &) const
Properties | getProperties () const
bool | hasProperty () const
void | put (Property *)
void | remove (Property *)
void | removeProperty (const Name &)
void | clearProperties ()

## Static Public Member Functions
static Horizontal * | create (Net *net, const Layer *layer, const DbU::Unit &y, const DbU::Unit &width=0, const DbU::Unit &dxSource=0, const DbU::Unit &dxTarget=0)
static Horizontal * | create (Component *source, Component *target, const Layer *layer, const DbU::Unit &y, const DbU::Unit &width=0, const DbU::Unit &dxSource=0, const DbU::Unit &dxTarget=0)
Static Public Member Functions inherited from Hurricane::Component
static ComponentFilter | getIsUnderFilter (const Box &area)
Static Public Member Functions inherited from Hurricane::Go
static bool | autoMaterializationIsDisabled ()
static void | enableAutoMaterialization ()
static void | disableAutoMaterialization ()

## Detailed Description

Horizontal description (API)

# Introduction

A horizontal has, in addition to inherited attributes, a specific one : its ordinate. The horizontal extend of the segment is defined by the "source" and "target" components on which it is anchored.

This ordinate allows, among other things, to anchor a horizontal segment extremity on a component (i.e. a contact) with a small vertical offset without the need to materialize it, because it is implicitely equal to the difference between the horizontal ordinate and the component ordinate. It allows also, and it not the least interesting feature, to anchor an extremity of a horizontal directly on a vertical segment (and conversely) without the need to create an intermediate contact (unless they are on different layers!). The ordinate of the implicit contact point is the one of the horizontal and the abscissa the one of the vertical).

## Member Typedef Documentation

## ◆ Inherit

Hurricane::Horizontal::Inherit

Useful for calling upon methods of the base class without knowing it.

## Member Function Documentation

## ◆ create() [1/2]

Horizontal * Hurricane::Horizontal::create | ( | Net * | net,
|  | const Layer * | layer,
|  | const DbU::Unit & | y,
|  | const DbU::Unit & | width = `0`,
|  | const DbU::Unit & | dxSource = `0`,
|  | const DbU::Unit & | dxTarget = `0`
| ) |  |
| static

creates and returns an absolute horizontal segment with layer `<layer>`, located at ordinate `<y>` and of width `<width>`. The differents extremities abscissas are given by `<dxSource>` and `<dxTarget>`.

Caution: Throws an exception if any of the net or layer pointers is
  null.

## ◆ create() [2/2]

Horizontal * Hurricane::Horizontal::create | ( | Component * | source,
|  | Component * | target,
|  | const Layer * | layer,
|  | const DbU::Unit & | y,
|  | const DbU::Unit & | width = `0`,
|  | const DbU::Unit & | dxSource = `0`,
|  | const DbU::Unit & | dxTarget = `0`
| ) |  |
| static

No description.

## ◆ getDxSource()

const DbU::Unit & Hurricane::Horizontal::getDxSource | ( |  | ) | const
| inline

Returns: the relative source abscissa of the segment (may be absolute if the source extremity isn't anchored).

Remark: If you want to get the absolute one use the member function
  getSourceY() defined at the Segment level.

## ◆ getDxTarget()

const DbU::Unit & Hurricane::Horizontal::getDxTarget | ( |  | ) | const
| inline

Returns: the relative target abscissa of the segment (may be absolute if the target extremity isn't anchored).

Remark: If you want to get the absolute one use the member function
  getTargetY() defined at the Segment level.

## ◆ setY()

void Hurricane::Horizontal::setY | ( | const DbU::Unit & | x | ) |

sets the ordinate of the segment.

## ◆ translate()

void Hurricane::Horizontal::translate | ( | const DbU::Unit & | dy | ) |

translate verticaly the horizontal segment of the quantity `<dy>`.

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

- Horizontal.h
- Horizontal.dox

Generated by doxygen 1.8.14 on Sun Mar 8 2020 | Return to top of page

Hurricane VLSI Database | Copyright © 2000-2016 Bull S.A. All rights reserved