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