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)
 
Transformationoperator= (const Transformation &transformation)
 
bool operator== (const Transformation &transformation) const
 
bool operator!= (const Transformation &transformation) const
 
const DbU::UnitgetTx () const
 
const DbU::UnitgetTy () const
 
Point getTranslation () const
 
const OrientationgetOrientation () 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
 
Transformationinvert ()
 
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:

\[ \Large \left \{ \begin{array}{r c l l l l l} x' & = & (a \times x) & + & (b \times y) & + & tx \\ y' & = & (c \times x) & + & (d \times y) & + & ty \end{array} \right . \]

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>.

Referenced by Hurricane::Query::getTransformation().

◆ 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:


Generated by doxygen 1.9.1 on Thu Aug 11 2022 Return to top of page
Hurricane VLSI Database Copyright © 2000-2020 Bull S.A. All rights reserved