3D Lingo Dictionary > T-Z > translate

 

translate

Syntax

member(whichCastmember).node(whichNode).translate(xIncrement, yIncrement, zIncrement {, relativeTo})
member(whichCastmember).node(whichNode).translate(translateVector {, relativeTo})
transform.translate(xIncrement, yIncrement, zIncrement {, relativeTo})
transform.translate(translateVector {, relativeTo})

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 system's 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 node's 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 node's 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 transform's 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 statement 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