3D Lingo Dictionary > O-S > preTranslate() |  |

preTranslate()

Syntax

    transformReference.preTranslate( xIncrement, yIncrement, zIncrement )
    transformReference.preTranslate( vector )
    member( whichCastmember ).node.transform.preTranslate(xIncrement, yIncrement, zIncrement)
    member( whichCastmember ).node.transform.preTranslate( vector )

Description

3D transform command; applies a translation before the current positional, rotational, and scale offsets held by the referenced transform object. The translation may 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 vector, where the X component of the vector corresponds to the translation about the X axis, the Y about the Y axis, and the Z about the Z axis.

After a series of transformations are done, in the following order, the model's local origin will be at (0, 0, -100), assuming the model's parent is the world:

    model.transform.identity()
    model.transform.rotate(0, 90, 0)
    model.transform.preTranslate(100, 0, 0)

Had `translate()` been used instead of `preTranslate()`, the model's local origin would be at (100, 0, 0) and the model rotated about its own Y axis by 90 degrees. Note that `model.transform.pretranslate(x, y, z)` is equivalent to `model.translate(x, y, z)`. Generally, `preTranslate()` is only useful when dealing with transform variables rather than `model.transform` references.

Example

    t = transform()
    t.transform.identity()
    t.transform.rotate(0, 90, 0)
    t.transform.preTranslate(100, 0, 0)
    gbModel = member("scene").model("mars")
    gbModel.transform = t
    put gbModel.transform.position
    -- vector(0.0000, 0.0000, -100.0000)