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-tripy=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.