What's New in Director 8.5 > Controlling the 3D World > Transforms > Transform commands |  |

Transform commands

Use these commands to work with transforms:

Command | Description | Returns
--- | --- | ---
`rotate` `(``xAngle, yAngle, ZAngle``)` | Applies a rotation transformation after the current transformation: `model.transform.identity()` `model.transform.translate(100,0,0)` `model.transform.rotate(0,0,90)` After this series of transformations, performed in this order, the model's local origin will be at `(0,100,0)`, assuming the model's parent is the world. | Nothing
`preRotate(``xAngle, yAngle, ZAngle``)` | Applies a rotation transformation before the current transformation: `model.transform.identity()model.transform.translate(100,0,0)model.transform.preRotate(0,0,90)` After this series of transformations, performed in this order, the model's local origin will be at `(100,0,0)`, assuming the model's parent is the world. | Nothing
`rotate(``point,vector, angle``)` | Similar to `transform.rotate(``xAngle``,` `yAngle``,` `zAngle``)`, except that the arguments are two vectors specifying an axis of rotation as a point and a vector, plus an angle specifying the clockwise rotation around that axis: `model.transform.identity()model.transform.translate(-50,0,0)model.transform.rotate(vector(100,0,0) vector(0,1,0))`

After this series of transformations, performed in this order, the model's local origin will be at `(250,0,0)`, assuming the model's parent is the world.

Nothing

`preRotate(``point,vector, angle``)` | Similar to `transform.preRotate(``xAngle, yAngle, zAngle``)`, except that the arguments are two vectors specifying an axis of rotation as a point and a vector, plus an angle specifying the clockwise rotation around that axis. `model.transform.identity()model.transform.translate(-50,0,0)model.transform.preRotate(vector(100,0,0) vector(0,1,0))`

After this series of transformations, performed in this order, the model's local origin will be at `(150,0,0)`, assuming the model's parent is the world.

Nothing

`translate(``xIncrement,yIncrement,zIncrement``)` | Translates the position of the transform relative to the transform's current orientation: `model.transform.identity()model.transform.rotate(0,90,0)model.transform.translate(100,0,0)` After this series of transformations, performed in this order, the model's local origin will be at `(100,0,0)`, assuming the model's parent is the world. | Nothing
`preTranslate(``xIncrement,yIncrement,` `zIncrement``)` | Translates the position of the transform before the current transformation: `model.transform.identity()model.transform.rotate(0,90,0)model.transform.translate(100,0,0)` After this series of transformations, performed in this order, the model's local origin will be at `(0,0,100)`, assuming the model's parent is the world. | Nothing
`multiply(``transform2``)` | Alters the original transform by applying the positional/rotational/scaling effects of transform2 to the original transform. If `transform2` describes a rotation of 90° around the X axis and this transform describes a translation of 100 units in the Y axis, `transform.multiply(``transform2``)` alters this transform so that it describes a translation followed by a rotation. | Nothing
`preMultiply(``transform2``)` | Alters the original transform by preapplying the positional/rotational/scaling effects of `transform2` to the original transform. If `transform2` describes a rotation of 90° around the X axis and this transform describes a translation of 100 units in the Y axis, `transform.preMultiply(``transform2``)` alters this transform so that it describes a rotation followed by a translation. | Nothing
`interpolate` `(oTransform2,fPercentage)` | Returns a new transform by interpolating from the original transform to `transform2` by `fPercentage`. The value of `fPercentage` should be between 0 and 100. | A new transform object
`interpolateTo(oTransform2,fPercentage)` | Modifies the existing transform by `fPercentage`. The value of `fPercentage` should be between 0 and 100. | Nothing
`duplicate()` `` | Returns a new transform that is a copy of the original transform. | A new transform object
`identity` | Resets the transform to an identity transform: position: `—0,0,0` rotation: `0,00` scale: `1,1,1` | Nothing
`invert()` | Turns the transform into the inverse of its previous position and rotation. If you multiply a vector by a transform, the rotational and positional changes described by the transform are applied to the vector. Inverting the transform and multiplying the vector again restores the vector to its original. | Nothing
`inverse()` | Same as `invert()` except that the original transform is unaffected. | A new transform object