[page:Object3D] →

# [name]

Abstract base class for cameras. This class should always be inherited when you build a new camera.

## Constructor

### [name]()

Creates a new [name]. Note that this class is not intended to be called directly; you probably want a [page:PerspectiveCamera] or [page:OrthographicCamera] instead.

## Properties

See the base [page:Object3D] class for common properties.

### [property:Boolean isCamera]

Used to check whether this or derived classes are cameras. Default is *true*.
You should not change this, as it used internally by the renderer for optimisation.

### [property:Layers layers]

The [page:Layers layers] that the camera is a member of. This is an inherited property from [page:Object3D].
Objects must share at least one layer with the camera to be seen when the camera's viewpoint is rendered.

### [property:Matrix4 matrixWorldInverse]

This is the inverse of matrixWorld. MatrixWorld contains the Matrix which has the world transform of the Camera.

### [property:Matrix4 projectionMatrix]

This is the matrix which contains the projection.

### [property:Matrix4 projectionMatrixInverse]

The inverse of projectionMatrix.

## Methods

See the base [page:Object3D] class for common methods.

### [method:Camera clone]( )

Return a new camera with the same properties as this one.

### [method:Camera copy]( [param:Camera source], [param:Boolean recursive] )

Copy the properties from the source camera into this one.

### [method:Vector3 getWorldDirection]( [param:Vector3 target] )

[page:Vector3 target] — the result will be copied into this Vector3.
Returns a [page:Vector3] representing the world space direction in which the camera is looking. (Note: A camera looks down its local, negative z-axis).

## Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]