What's New in Director 8.5 > Working with Lights and Cameras > Cameras > Camera commands |  |

Camera commands

Use these commands to work with cameras:

Command | Description | Returns
--- | --- | ---
`addChild(``aNode``,` `preserveWorld``)` | Adds `aNode` to this camera's list of children. An equivalent operation is to set `aNode.parent` to equal `thisCamera`. The `preserveWorld` argument is optional.I t can have two values: `#preserveWorld` or `#preserveParent`. If the value is `#preserveWorld`, the world transform of the child being added remains intact. If `#preserveParent`, the child's transform is interpreted as remaining parent-relative. | Nothing
`child[``index``]` | Returns the child at the specified position in the index. | Lingo camera object
`child(``name``)` | Returns the child named `name`. | Lingo camera object
`clone(``name``)` | Clones a camera named `name`, adds it to the cameras's parent's child list, and adds it to the world. All children of the camera are automatically cloned.This can be avoided by removing the children, performing the cloning operation, and then adding the children back.

If the name is omitted or is `""`, the clone isn't added to the camera palette, has no parent, and has no children. This option lets you quickly create temporary camera instances.

Lingo camera object

`cloneDeep(``name``)` | Clones both the camera and all resources used by the camera's children. | Lingo camera object
`addtoWorld()` | Adds a camera to the currently active 3D world, setting its parent as `"world"`Equivalent to camera.parent=member `("scene").camera("world")`. All newly created cameras are added to the world by default, without it being necessary to use this command. | Nothing
`getWorldTransform()` | Calculates and returns a transform that converts object-relative positions for this light into world-relative positions. | A transform object
`removeFromWorld()` | For cameras whose parent hierarchy terminates in the world, this sets their parent to `void` and removes them from the world. Otherwise it does nothing. | Nothing
`isInWorld()` | For cameras whose parent hierarchy terminates in the world, the value is `TRUE (1)`. | `TRUE (1)` or `FALSE (0)`
`registerScript(``eventName``,` `handlerName``,` `scriptInstance``)` | Registers a handler named `handlerName` that is called in the script `scriptInstance` when the event `eventName` occurs. If `scriptInstance is 0`, a movie script handler called eventName is called. The user defines what `eventName` is. | `TRUE (1)` or `FALSE (0)`, with `TRUE (1)` indicating that the event happened and `FALSE (0)` that it did not
`translate(``xIncrement``,``yIncrement``,``zIncrement``,``relativeTo``)` | Moves the camera forward by `xIncrement` along the X axis, `yIncrement` along the Y axis, and `zIncrement` along the Z axis. The `relativeTo` parameter is optional. It determines how arguments are interpreted. The possible values are as follows: `#self`: the default. Increments are applied relative to the camera's local coordinate system.

`#parent`: increments are relative to the camera's parent's coordinate system.

`#world`: increments are relative to the world coordinate system. Equivalent to `#``parent` if parent is the world.

`node` (model, light, camera, or group): increments are relative to the coordinate system of the argument.

Nothing

`translate(``directionVector``,` `relativeTo``)` | Moves the camera `directionVector.length()` in the direction of the directionVector. The relativeTo argument is optional and defaults to `#self`. | Nothing
`translate(``x``,``y``,``z``,``relativeTo``)` | Moves the camera distance x along the X axis, distance y along the Y axis, and distance z along the Z axis. The `relativeTo` argument is optional and defaults to `#self`. This command can also be written as`translate(vector(``x``,``y``,``z``)` `relativeTo``)`. | Nothing
`rotate(``x``,``y``,``z``,` `relativeTo``)` | Rotates the camera by x degrees around the X axis, y degrees around the Y axis, and z degrees around the Z axis. The `relativeTo` argument is optional and defaults to `#self`. If included, it defines the coordinate space of the axes. This command can also be written asrotate`(vector(``x``,``y``,``z``)` `relativeTo``)` | Nothing
`rotate (``position``,` `axis``,` `angle``,` `relativeTo``)` | Rotates the camera around the axis vector in the specified position the specified number of degrees. The `relativeTo` argument is optional and defaults to `#self`. | Nothing
`pointAt(``worldPosition``,` `worldUp``)` | Rotates the camera until it points at the world-relative position `worldPosition`. The optional `worldUp` argument indicates the position of the camera's Up axis. Both the object-relative axes are defined by the `pointAtOrientation` property. Default values are an object-relative forward direction of `vector (0,0,-1)` and an object-relative up direction of `vector (0,1,0)`. | Nothing
`getWorldTransform()` | Calculates and returns a transform that converts object-relative positions for this camera into world-relative positions. | A transform object