# Hurricane Documentation

# Hurricane VLSI Database

List of all members | Classes | Public Member Functions
Hurricane::Transformation Class Reference

Transformation description (API) More...

## Classes

class | Orientation

## Public Member Functions

| Transformation ()
| Transformation (const DbU::Unit &tx, const DbU::Unit &ty, const Orientation &orientation=Orientation::ID)
| Transformation (const Point &translation, const Orientation &orientation=Orientation::ID)
| Transformation (const Transformation &transformation)
Transformation & | operator= (const Transformation &transformation)
bool | operator== (const Transformation &transformation) const
bool | operator!= (const Transformation &transformation) const
const DbU::Unit & | getTx () const
const DbU::Unit & | getTy () const
Point | getTranslation () const
const Orientation & | getOrientation () const
DbU::Unit | getX (const DbU::Unit &x, const DbU::Unit &y) const
DbU::Unit | getY (const DbU::Unit &x, const DbU::Unit &y) const
DbU::Unit | getX (const Point &point) const
DbU::Unit | getY (const Point &point) const
DbU::Unit | getDx (const DbU::Unit &dx, const DbU::Unit &dy) const
DbU::Unit | getDy (const DbU::Unit &dx, const DbU::Unit &dy) const
Point | getPoint (const DbU::Unit &x, const DbU::Unit &y) const
Point | getPoint (const Point &point) const
Box | getBox (const DbU::Unit &x1, const DbU::Unit &y1, const DbU::Unit &x2, const DbU::Unit &y2) const
Box | getBox (const Point &point1, const Point &point2) const
Box | getBox (const Box &box) const
Transformation | getTransformation (const Transformation &transformation) const
Transformation | getInvert () const
Transformation & | invert ()
void | applyOn (DbU::Unit &x, DbU::Unit &y) const
void | applyOn (Point &point) const
void | applyOn (Box &box) const
void | applyOn (Transformation &transformation) const

## Detailed Description

Transformation description (API)

# Introduction

Transformation objects are a combination of a translation and an orientation defined by the new enumeration Transformation::Orientation whose different values are described in table below. The orientation is done before the translation, which is to say that the orientation is applied in the coordinate system of the model.

The transformation formula is given by:

where x and y are the coordinates of any point, x' and y' the coordinates of the transformed point, tx and ty the horizontal and vertical components of the translation and where a, b, c and d are the coefficients of the matrix associated to the orientation. See Orientation for the value of a, b, c & d.

Remarks
  Rotations are done counter clock wise

## Constructor & Destructor Documentation

## ◆ Transformation() [1/4]

Hurricane::Transformation::Transformation | ( |  | ) |

Default constructor : The translation is null and the orientation is equal to ID.

## ◆ Transformation() [2/4]

Hurricane::Transformation::Transformation | ( | const DbU::Unit & | tx,
|  | const DbU::Unit & | ty,
|  | const Orientation & | orientation = `Orientation::ID`
| ) |  |

Builds a transformation whose translation part is defined by the arguments `<xt>` and `<ty>` and whose orientation is defined by `<orientation>` (`<ID>` by default).

## ◆ Transformation() [3/4]

Hurricane::Transformation::Transformation | ( | const Point & | translation,
|  | const Orientation & | orientation = `Orientation::ID`
| ) |  |

Builds a transformation whose translation part is defined by the argument `<translation>` and whose default orientation is ID.

Builds a transformation whose translation part is defined by the argument `<translation>` and whose orientation is defined by `<orientation>`.

## ◆ Transformation() [4/4]

Hurricane::Transformation::Transformation | ( | const Transformation & | transformation | ) |

Copy constructor.

## Member Function Documentation

## ◆ operator=()

Transformation & Hurricane::Transformation::operator= | ( | const Transformation & | transformation | ) |

Assignment operator.

## ◆ operator==()

bool Hurricane::Transformation::operator== | ( | const Transformation & | transformation | ) | const

Two transformations are identical if their translations and orientation are identical.

## ◆ operator!=()

bool Hurricane::Transformation::operator!= | ( | const Transformation & | transformation | ) | const

Two transformations are different if eitheir their translations or orientation differ.

## ◆ getTx()

const DbU::Unit & Hurricane::Transformation::getTx | ( |  | ) | const

inline

Returns: the horizontal component of the translation.

## ◆ getTy()

const DbU::Unit & Hurricane::Transformation::getTy | ( |  | ) | const

inline

Returns: the vertical component of the translation.

## ◆ getTranslation()

Point Hurricane::Transformation::getTranslation | ( |  | ) | const

inline

Returns: the translation component of the transformation.

## ◆ getOrientation()

const Translation::Orientation & Hurricane::Transformation::getOrientation | ( |  | ) | const

inline

Returns: the orientation of the transformation (may be used in a switch).

## ◆ getX() [1/2]

DbU::Unit Hurricane::Transformation::getX | ( | const DbU::Unit & | x,
|  | const DbU::Unit & | y
| ) |  | const

Returns: the point abscissa resulting of the transformation application on the point defined by `<x>` et `<y>`.

## ◆ getY() [1/2]

DbU::Unit Hurricane::Transformation::getY | ( | const DbU::Unit & | x,
|  | const DbU::Unit & | y
| ) |  | const

Returns: the point ordinate resulting of the transformation application on the point defined by `<x>` et `<y>`.

## ◆ getX() [2/2]

DbU::Unit Hurricane::Transformation::getX | ( | const Point & | point | ) | const

Returns: the point abscissa resulting of the transformation application on `<point>`.

## ◆ getY() [2/2]

DbU::Unit Hurricane::Transformation::getY | ( | const Point & | point | ) | const

Returns: the point ordinate resulting of the transformation application on `<point>`.

## ◆ getDx()

DbU::Unit Hurricane::Transformation::getDx | ( | const DbU::Unit & | dx,
|  | const DbU::Unit & | dy
| ) |  | const

Returns: the horizontal component of the vector resulting from the application of the transformation on the vector defined by `<dx>` et `<dy>`.

## ◆ getDy()

DbU::Unit Hurricane::Transformation::getDy | ( | const DbU::Unit & | dx,
|  | const DbU::Unit & | dy
| ) |  | const

Returns: the vertical component of the vector resulting from the application of the transformation on the vector defined by `<dx>` et `<dy>`.

## ◆ getPoint() [1/2]

Point Hurricane::Transformation::getPoint | ( | const DbU::Unit & | x,
|  | const DbU::Unit & | y
| ) |  | const

Returns: the point resulting from the application of the transformation on the point defined by `<dx>` et `<dy>`.

## ◆ getPoint() [2/2]

Point Hurricane::Transformation::getPoint | ( | const Point & | point | ) | const

Returns: the point resulting from the application of the transformation on `<point>`.

## ◆ getBox() [1/3]

Box Hurricane::Transformation::getBox | ( | const DbU::Unit & | x1,
|  | const DbU::Unit & | y1,
|  | const DbU::Unit & | x2,
|  | const DbU::Unit & | y2
| ) |  | const

Returns: the box resulting from the application of the transformation on the box defined by `<x1>`, `<y1>`, `<x2>` et `<y2>`.

## ◆ getBox() [2/3]

Box Hurricane::Transformation::getBox | ( | const Point & | point1,
|  | const Point & | point2
| ) |  | const

Returns: the box resulting from the application of the transformation on the box defined by `<point1>` et `<point2>`.

## ◆ getBox() [3/3]

Box Hurricane::Transformation::getBox | ( | const Box & | box | ) | const

Returns: the box resulting from the application of the transformation on the box `<box>`.

## ◆ getTransformation()

Transformation Hurricane::Transformation::getTransformation | ( | const Transformation & | transformation | ) | const

Returns: the transformation resulting from the application of the transformation on the transformation `<transformation>`.

## ◆ getInvert()

Transformation Hurricane::Transformation::getInvert | ( |  | ) | const

Returns: the inverse transformation.

## ◆ invert()

Transformation & Hurricane::Transformation::invert | ( |  | ) |

inverts the transformation `<this>` and returns a reference to it in order to apply in sequence a new function.

## ◆ applyOn() [1/4]

void Hurricane::Transformation::applyOn | ( | DbU::Unit & | x,
|  | DbU::Unit & | y
| ) |  | const

# Transformers

Transformation::applyOn

Transformation::applyOn

Transformation::applyOn

Transformation::applyOn

Applies the transformation on the coordinates given in arguments.

## ◆ applyOn() [2/4]

void Hurricane::Transformation::applyOn | ( | Point & | point | ) | const

Applies the transformation on the point given in argument.

## ◆ applyOn() [3/4]

void Hurricane::Transformation::applyOn | ( | Box & | box | ) | const

Applies the transformation on the box given in argument.

## ◆ applyOn() [4/4]

void Hurricane::Transformation::applyOn | ( | Transformation & | transformation | ) | const

Applies the transformation on the transformation given in argument. This last one becomes then the transformation resulting of the product of those two.

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

- Transformation.h
- Transformation.dox