What's New in Director 8.5 > Controlling the 3D World > Collisions > Camera commands |  |

Camera commands

These camera functions allow you to determine which models have been clicked when a user clicks the mouse within a 3D sprite. You can also translate coordinates in 3D space to coordinates in 2D sprite space and vice versa.

Function | Description | Returns
--- | --- | ---
`worldSpaceToSpriteSpace(``vector``)` | Returns the 2D sprite-space coordinates of a point from a 3D world vector. | A point.
`spriteSpaceToWorldSpace(``point``)` | The opposite of the `worldSpaceToSpriteSpace(``vector``)`, this function returns a world-space vector on the camera's projection plane from a sprite-space point. Multiple world-space positions can map to the same sprite-space point. A round-trip`y=worldSpaceToSpriteSpace(x)z=worldSpaceToSpriteSpace(y)`won't necessarily result in `x=z`. | A vector.
`modelUnderLoc(point)` | Returns the first model intersected by a ray from a location `point` within the `rect` of the sprite using this camera. The location `point` is relative to the upper left corner of the sprite, in pixels. The ray is cast forward in the direction the camera is looking.

This function is useful for picking in conjunction with an `onMouseDown` handler. For accuracy, be sure to subtract the upper left corner of the sprite's `loc` from the `mouseLoc`.

The first model intersected by the ray.

A value of `void` means there is no model under the ray.

`modelsUnderLoc(point, optionalMaxNumberOfModels)` | Returns a list of all models intersected by a ray from a location `point` within the rect of the sprite using this camera. The location `point` is relative to the upper left corner of the sprite, in pixels. The ray is cast forward in the direction the camera is looking.

This function is useful for picking in conjunction with an `onMouseDown` handler. For accuracy, be sure to subtract the upper left corner of the sprite's `loc` from the `mouseLoc`.

The first model intersected by the ray or a list of up to the specified maximum.

If no maximum is specified, the command returns all models under the ray.

`A value of void` means there is no model under the ray.

`modelsUnderRay(``locationVector``,``directionVector``,``optionalMaxNumberOfModels``)` | Returns a list of models under the ray starting at the vector `locationVector` and pointing down the vector `directionVector`, with both vectors specified in world-relative coordinates. | The first model intersected by the ray plus a list of up to the specified maximum number of models. If the maximum number of models isn't specified, all models the ray intersects are returned.