Notation used in Ruby API documentation

**Module**: db

**Description**: A simple transformation

- Public constructors
- Public methods
- Public static methods and constants
- Deprecated methods (protected, public, static, non-static and constructors)
- Detailed description

Simple transformations only provide rotations about angles which a multiples of 90 degree. Together with the mirror options, this results in 8 distinct orientations (fixpoint transformations). These can be combined with a displacement which is applied after the rotation/mirror. This version acts on floating-point coordinates. A version for integer coordinates is Trans.

Here are some examples for using the DTrans class:

t = RBA::DTrans::new(0, 100) # displacement by 100 DBU in y direction # the inverse: -> "r0 0,-100" t.inverted.to_s # concatenation: -> "r90 -100,0" (RBA::DTrans::new(RBA::DTrans::R90) * t).to_s # apply to a point: -> "0,100" RBA::DTrans::new(RBA::DTrans::R90).trans(RBA::DPoint::new(100, 0))

See The Database API for more details about the database objects.

new DTrans ptr | new | (const Trans trans) | Creates a floating-point coordinate transformation from an integer coordinate transformation |

new DTrans ptr | new | Creates a unit transformation | |

new DTrans ptr | new | (const DTrans c, const DVector u = 0,0) | Creates a transformation from another transformation plus a displacement |

new DTrans ptr | new | (const DTrans c, double x, double y) | Creates a transformation from another transformation plus a displacement |

new DTrans ptr | new | (int rot, bool mirr = false, const DVector u = 0,0) | Creates a transformation using angle and mirror flag |

new DTrans ptr | new | (int rot, bool mirr, double x, double y) | Creates a transformation using angle and mirror flag and two coordinate values for displacement |

new DTrans ptr | new | (const DVector u) | Creates a transformation using a displacement only |

new DTrans ptr | new | (double x, double y) | Creates a transformation using a displacement given as two coordinates |

[const] | bool | != | (const DTrans other) | Tests for inequality |

[const] | DPoint | * | (const DPoint p) | Transforms a point |

[const] | DVector | * | (const DVector v) | Transforms a vector |

[const] | DBox | * | (const DBox box) | Transforms a box |

[const] | DEdge | * | (const DEdge edge) | Transforms an edge |

[const] | DPolygon | * | (const DPolygon polygon) | Transforms a polygon |

[const] | DPath | * | (const DPath path) | Transforms a path |

[const] | DText | * | (const DText text) | Transforms a text |

[const] | DTrans | * | (const DTrans t) | Returns the concatenated transformation |

[const] | bool | < | (const DTrans other) | Provides a 'less' criterion for sorting |

[const] | bool | == | (const DTrans other) | Tests for equality |

void | _create | Ensures the C++ object is created | ||

void | _destroy | Explicitly destroys the object | ||

[const] | bool | _destroyed? | Returns a value indicating whether the object was already destroyed | |

[const] | bool | _is_const_object? | Returns a value indicating whether the reference is a const reference | |

void | _manage | Marks the object as managed by the script side. | ||

void | _unmanage | Marks the object as no longer owned by the script side. | ||

[const] | int | angle | Gets the angle in units of 90 degree | |

void | angle= | (int a) | Sets the angle in units of 90 degree | |

void | assign | (const DTrans other) | Assigns another object to self | |

[const] | double | ctrans | (double d) | Transforms a distance |

[const] | DVector | disp | Gets to the displacement vector | |

void | disp= | (const DVector u) | Sets the displacement | |

[const] | new DTrans ptr | dup | Creates a copy of self | |

[const] | unsigned long | hash | Computes a hash value | |

DTrans | invert | Inverts the transformation (in place) | ||

[const] | DTrans | inverted | Returns the inverted transformation | |

[const] | bool | is_mirror? | Gets the mirror flag | |

void | mirror= | (bool m) | Sets the mirror flag | |

[const] | int | rot | Gets the angle/mirror code | |

void | rot= | (int r) | Sets the angle/mirror code | |

[const] | Trans | to_itype | (double dbu = 1) | Converts the transformation to an integer coordinate transformation |

[const] | string | to_s | String conversion | |

[const] | DPoint | trans | (const DPoint p) | Transforms a point |

[const] | DVector | trans | (const DVector v) | Transforms a vector |

[const] | DBox | trans | (const DBox box) | Transforms a box |

[const] | DEdge | trans | (const DEdge edge) | Transforms an edge |

[const] | DPolygon | trans | (const DPolygon polygon) | Transforms a polygon |

[const] | DPath | trans | (const DPath path) | Transforms a path |

[const] | DText | trans | (const DText text) | Transforms a text |

DTrans | M0 | A constant giving "mirrored at the x-axis" transformation | ||

DTrans | M135 | A constant giving "mirrored at the 135 degree axis" transformation | ||

DTrans | M45 | A constant giving "mirrored at the 45 degree axis" transformation | ||

DTrans | M90 | A constant giving "mirrored at the y (90 degree) axis" transformation | ||

DTrans | R0 | A constant giving "unrotated" (unit) transformation | ||

DTrans | R180 | A constant giving "rotated by 180 degree counterclockwise" transformation | ||

DTrans | R270 | A constant giving "rotated by 270 degree counterclockwise" transformation | ||

DTrans | R90 | A constant giving "rotated by 90 degree counterclockwise" transformation | ||

new DTrans ptr | from_s | (string s) | Creates a transformation from a string |

void | create | Use of this method is deprecated. Use _create instead | ||

void | destroy | Use of this method is deprecated. Use _destroy instead | ||

[const] | bool | destroyed? | Use of this method is deprecated. Use _destroyed? instead | |

[static] | new DTrans ptr | from_itrans | (const Trans trans) | Use of this method is deprecated. Use new instead |

[const] | bool | is_const_object? | Use of this method is deprecated. Use _is_const_object? instead |

## != |
| |||||||

## * |
The "trans" method or the * operator transforms the given point. q = t(p) The * operator has been introduced in version 0.25. | |||||||

The "trans" method or the * operator transforms the given vector. w = t(v) Vector transformation has been introduced in version 0.25. | ||||||||

't*box' or 't.trans(box)' is equivalent to box.transformed(t). This convenience method has been introduced in version 0.25. | ||||||||

't*edge' or 't.trans(edge)' is equivalent to edge.transformed(t). This convenience method has been introduced in version 0.25. | ||||||||

't*polygon' or 't.trans(polygon)' is equivalent to polygon.transformed(t). This convenience method has been introduced in version 0.25. | ||||||||

't*path' or 't.trans(path)' is equivalent to path.transformed(t). This convenience method has been introduced in version 0.25. | ||||||||

't*text' or 't.trans(text)' is equivalent to text.transformed(t). This convenience method has been introduced in version 0.25. | ||||||||

The * operator returns self*t ("t is applied before this transformation"). | ||||||||

## < |
This method is provided to implement a sorting order. The definition of 'less' is opaque and might change in future versions. | |||||||

## == |
| |||||||

## M0 |
The previous integer constant has been turned into a transformation in version 0.25. | |||||||

## M135 |
The previous integer constant has been turned into a transformation in version 0.25. | |||||||

## M45 |
The previous integer constant has been turned into a transformation in version 0.25. | |||||||

## M90 |
The previous integer constant has been turned into a transformation in version 0.25. | |||||||

## R0 |
The previous integer constant has been turned into a transformation in version 0.25. | |||||||

## R180 |
The previous integer constant has been turned into a transformation in version 0.25. | |||||||

## R270 |
The previous integer constant has been turned into a transformation in version 0.25. | |||||||

## R90 |
The previous integer constant has been turned into a transformation in version 0.25. | |||||||

## _create |
Use this method to ensure the C++ object is created, for example to ensure that resources are allocated. Usually C++ objects are created on demand and not necessarily when the script object is created. | |||||||

## _destroy |
Explicitly destroys the object on C++ side if it was owned by the script interpreter. Subsequent access to this object will throw an exception. If the object is not owned by the script, this method will do nothing. | |||||||

## _destroyed? |
This method returns true, if the object was destroyed, either explicitly or by the C++ side. The latter may happen, if the object is owned by a C++ object which got destroyed itself. | |||||||

## _is_const_object? |
This method returns true, if self is a const reference. In that case, only const methods may be called on self. | |||||||

## _manage |
After calling this method on an object, the script side will be responsible for the management of the object. This method may be called if an object is returned from a C++ function and the object is known not to be owned by any C++ instance. If necessary, the script side may delete the object if the script's reference is no longer required. Usually it's not required to call this method. It has been introduced in version 0.24. | |||||||

## _unmanage |
Calling this method will make this object no longer owned by the script's memory management. Instead, the object must be managed in some other way. Usually this method may be called if it is known that some C++ object holds and manages this object. Technically speaking, this method will turn the script's reference into a weak reference. After the script engine decides to delete the reference, the object itself will still exist. If the object is not managed otherwise, memory leaks will occur. Usually it's not required to call this method. It has been introduced in version 0.24. | |||||||

## angle |
This value delivers the rotation component. In addition, a mirroring at the x axis may be applied before if the is_mirror? property is true.
| |||||||

## angle= |
This method was introduced in version 0.20.
| |||||||

## assign |
| |||||||

## create |
Use of this method is deprecated. Use _create instead Use this method to ensure the C++ object is created, for example to ensure that resources are allocated. Usually C++ objects are created on demand and not necessarily when the script object is created. | |||||||

## ctrans |
The "ctrans" method transforms the given distance. e = t(d). For the simple transformations, there is no magnification and no modification of the distance therefore. | |||||||

## destroy |
Use of this method is deprecated. Use _destroy instead Explicitly destroys the object on C++ side if it was owned by the script interpreter. Subsequent access to this object will throw an exception. If the object is not owned by the script, this method will do nothing. | |||||||

## destroyed? |
Use of this method is deprecated. Use _destroyed? instead This method returns true, if the object was destroyed, either explicitly or by the C++ side. The latter may happen, if the object is owned by a C++ object which got destroyed itself. | |||||||

## disp |
Staring with version 0.25 the displacement type is a vector.
| |||||||

## disp= |
This method was introduced in version 0.20. Staring with version 0.25 the displacement type is a vector.
| |||||||

## dup |
| |||||||

## from_itrans |
Use of this method is deprecated. Use new instead This constructor has been introduced in version 0.25 and replaces the previous static method 'from_itrans'.
| |||||||

## from_s |
Creates the object from a string representation (as returned by to_s) This method has been added in version 0.23. | |||||||

## hash |
Returns a hash value for the given transformation. This method enables transformations as hash keys. This method has been introduced in version 0.25.
| |||||||

## invert |
Inverts the transformation and replaces this object by the inverted one. | |||||||

## inverted |
Returns the inverted transformation | |||||||

## is_const_object? |
Use of this method is deprecated. Use _is_const_object? instead This method returns true, if self is a const reference. In that case, only const methods may be called on self. | |||||||

## is_mirror? |
If this property is true, the transformation is composed of a mirroring at the x-axis followed by a rotation by the angle given by the angle property. | |||||||

## mirror= |
"mirroring" describes a reflection at the x-axis which is included in the transformation prior to rotation. This method was introduced in version 0.20.
| |||||||

## new |
This constructor has been introduced in version 0.25 and replaces the previous static method 'from_itrans'.
| |||||||

| ||||||||

Creates a new transformation from a existing transformation. This constructor is provided for creating duplicates and backward compatibility since the constants are transformations now. It will copy the original transformation and add the given displacement. This variant has been introduced in version 0.25.
| ||||||||

Creates a new transformation from a existing transformation. This constructor is provided for creating duplicates and backward compatibility since the constants are transformations now. It will copy the original transformation and add the given displacement. This variant has been introduced in version 0.25.
| ||||||||

The sequence of operations is: mirroring at x axis, rotation, application of displacement.
| ||||||||

The sequence of operations is: mirroring at x axis, rotation, application of displacement.
| ||||||||

| ||||||||

| ||||||||

## rot |
The angle/mirror code is one of the constants R0, R90, R180, R270, M0, M45, M90 and M135. rx is the rotation by an angle of x counter clockwise. mx is the mirroring at the axis given by the angle x (to the x-axis).
| |||||||

## rot= |
This method was introduced in version 0.20.
| |||||||

## to_itype |
The database unit can be specified to translate the floating-point coordinate transformation in micron units to an integer-coordinate transformation in database units. The transformation's' coordinates will be divided by the database unit. This method has been introduced in version 0.25. | |||||||

## to_s |
| |||||||

## trans |
The "trans" method or the * operator transforms the given point. q = t(p) The * operator has been introduced in version 0.25. | |||||||

The "trans" method or the * operator transforms the given vector. w = t(v) Vector transformation has been introduced in version 0.25. | ||||||||

't*box' or 't.trans(box)' is equivalent to box.transformed(t). This convenience method has been introduced in version 0.25. | ||||||||

't*edge' or 't.trans(edge)' is equivalent to edge.transformed(t). This convenience method has been introduced in version 0.25. | ||||||||

't*polygon' or 't.trans(polygon)' is equivalent to polygon.transformed(t). This convenience method has been introduced in version 0.25. | ||||||||

't*path' or 't.trans(path)' is equivalent to path.transformed(t). This convenience method has been introduced in version 0.25. | ||||||||

't*text' or 't.trans(text)' is equivalent to text.transformed(t). This convenience method has been introduced in version 0.25. |