User Guide

685
Description
3D command; applies a translation after the current positional, rotational, and scale offsets held
by a referenced node’s transform object or the directly referenced transform object. The
translation must be specified as a set of three increments along the three corresponding axes.
These increments may be specified explicitly in the form of
xIncrement, yIncrement, and
zIncrement, or by a translateVector, where the x component of the vector corresponds to the
translation along the x axis, y about y axis, and z about z axis.
A node can be a camera, model, light or group object.
The optional
relativeTo parameter determines which coordinate systems axes are used to apply
the desired translational changes. The
relativeTo parameter can have any of the following
values:
#self applies the increments relative to the nodes local coordinate system (the x, y and z axes
specified for the model during authoring). This value is used as the default if you use the
translate command with a node reference and the relativeTo parameter is not specified.
#parent applies the increments relative to the nodes parent’s coordinate system. This value is
used as the default if you use the
translate command with a transform reference and the
relativeTo parameter is not specified.
#world applies the increments relative to the world coordinate system. If a model’s parent is
the world, than this is equivalent to using
#parent.
nodeReference allows you to specify a node to base your translation upon, the command
applies the translations relative to the coordinate system of the specified node.
Examples
This example constructs a transform using the transform command, then it initializes the
transforms position and orientation in space before assigning the transform to the model named
mars. Finally this example displays the resulting position of the model.
t =transform()
t.transform.identity()
t.transform.rotate(0, 90, 0)
t.transform.translate(100, 0, 0)
gbModel = member("scene").model("mars")
gbModel.transform = t
put gbModel.transform.position
-- vector(100.0000, 0.0000, 0.0000)
This Lingo moves the model Bip 20 units along the x axis of its parent node:
put member("Scene").model("Bip").position
-- vector( -38.5000, 21.2500, 2.0000)
member("Scene").model("Bip").translate(20, 10, -0.5)
put member("Scene").model("Bip").position
-- vector( -18.5000, 31.2500, 1.5000)
See also
transform (property), preTranslate(), scale (command), rotate