The xform button in the side menu brings up the Current Transform panel, which allows the current transform to be set. The current transform is applied to newly-placed subcells, and to objects which are moved or copied.
The transform that is applied to an instance of a cell is saved in an irreducible form in the database representation of the instance. The irreducible form is an optional reflect-y ( y - y ), followed by an optional rotation, followed by the translation. This maps directly to the format used in GDSII files. However, the ``current transform'' applies rotation before the reflection, so that on screen, a reflect-x, for example, will flip the object's x coordinates independent of any rotation angle, which is what users tend to expect. The transform string printed on unexpanded instances and on the status line reflects this, i.e., forms like ``R45M'' imply a 45 degree rotation followed by a reflect-y (``M'' always denotes reflect-y, reflect-x is equivalent to some other rotation and reflect-y combination). However, the transformation shown in an Info window will be reflect-y followed by a 315 degree rotation (in this example), since the internal representation performs the reflection before the rotation.
If the current transform is set to something other than the default identity transform, the transform code is printed on the status line.
The following buttons and input fields are available in the Current Transform panel.
Pressing and holding the Ctrl key and then pressing the left or right arrow keys cycles through the transformation angles, whether or not the Current Transform panel is visible. The right arrow increases the angle, the left arrow decreases the angle.
When the panel first appears, this button will have the keyboard focus if the current transform is not the identity transform. The user can press Enter to ``press'' the button. This will cause the focus to switch to the Dismiss button, so that another Enter press will retire the panel. Thus, one can very quickly restore the identity transform using the xform button accelerator (``xf'') followed by pressing the Enter key twice.
When the panel first appears, if the current transform is the identity transform, this button will have the keyboard focus. In this case, the same key sequence as described above can be used to quickly restore the last transform.