# Camera

#### new Cesium.Camera(scene)
Scene/Camera.js 63

The camera is defined by a position, orientation, and view frustum.
The orientation forms an orthonormal basis with a view, up and right = view x up unit vectors.
The viewing frustum is defined by 6 planes. Each plane is represented by a `Cartesian4` object, where the x, y, and z components define the unit vector normal to the plane, and the w component is the distance of the plane from the origin/camera position.

Name | Type | Description
--- | --- | ---
`scene` | Scene | The scene.

##### Example:

    // Create a camera looking down the negative z-axis, positioned at the origin,
    // with a field of view of 60 degrees, and 1:1 aspect ratio.
    var camera = new Cesium.Camera(scene);
    camera.position = new Cesium.Cartesian3();
    camera.direction = Cesium.Cartesian3.negate(Cesium.Cartesian3.UNIT_Z, new Cesium.Cartesian3());
    camera.up = Cesium.Cartesian3.clone(Cesium.Cartesian3.UNIT_Y);
    camera.frustum.fov = Cesium.Math.PI_OVER_THREE;
    camera.frustum.near = 1.0;
    camera.frustum.far = 2.0;

##### Demo:

- Cesium Sandcastle Camera Demo
- Cesium Sandcastle Camera Tutorial Example
- Camera Tutorial

### Members

#### static Cesium.Camera.DEFAULT_OFFSET : HeadingPitchRange
Scene/Camera.js 258

The default heading/pitch/range that is used when the camera flies to a location that contains a bounding sphere.

#### static Cesium.Camera.DEFAULT_VIEW_FACTOR : Number
Scene/Camera.js 252

A scalar to multiply to the camera position and add it back after setting the camera to view the rectangle. A value of zero means the camera will view the entire `Camera#DEFAULT_VIEW_RECTANGLE`, a value greater than zero will move it further away from the extent, and a value less than zero will move it close to the extent.

#### static Cesium.Camera.DEFAULT_VIEW_RECTANGLE : Rectangle
Scene/Camera.js 244

韩彦生 -- 相机初始定位的位置范围 中国

#### readonly changed : Event
Scene/Camera.js 855

Gets the event that will be raised when the camera has changed by `percentageChanged`.

#### constrainedAxis : Cartesian3
Scene/Camera.js 184

If set, the camera will not be able to rotate past this axis in either direction.

Default Value: `undefined`

#### defaultLookAmount : Number
Scene/Camera.js 164

The default amount to rotate the camera when an argument is not provided to the look methods.

Default Value: `Math.PI / 60.0`

#### defaultMoveAmount : Number
Scene/Camera.js 157

The default amount to move the camera when an argument is not provided to the move methods.

Default Value: `100000.0;`

#### defaultRotateAmount : Number
Scene/Camera.js 171

The default amount to rotate the camera when an argument is not provided to the rotate methods.

Default Value: `Math.PI / 3600.0`

#### defaultZoomAmount : Number
Scene/Camera.js 178

The default amount to move the camera when an argument is not provided to the zoom methods.

Default Value: `100000.0;`

#### direction : Cartesian3
Scene/Camera.js 115

The view direction of the camera.

#### readonly directionWC : Cartesian3
Scene/Camera.js 709

Gets the view direction of the camera in world coordinates.

#### frustum : PerspectiveFrustum|PerspectiveOffCenterFrustum|OrthographicFrustum
Scene/Camera.js 147

The region of space in view.

Default Value: `PerspectiveFrustum()`

##### See:

- PerspectiveFrustum
- PerspectiveOffCenterFrustum
- OrthographicFrustum

#### readonly heading : Number
Scene/Camera.js 751

Gets the camera heading in radians.

#### readonly inverseTransform : Matrix4
Scene/Camera.js 632

Gets the inverse camera transform.

Default Value: ``Matrix4.IDENTITY``

#### readonly inverseViewMatrix : Matrix4
Scene/Camera.js 664

Gets the inverse view matrix.

##### See:

- Camera#viewMatrix

#### maximumZoomFactor : Number
Scene/Camera.js 191

The factor multiplied by the the map size used to determine where to clamp the camera position when zooming out from the surface. The default is 1.5. Only valid for 2D and the map is rotatable.

Default Value: `1.5`

#### readonly moveEnd : Event
Scene/Camera.js 843

Gets the event that will be raised when the camera has stopped moving.

#### readonly moveStart : Event
Scene/Camera.js 831

Gets the event that will be raised at when the camera starts to move.

#### percentageChanged : number
Scene/Camera.js 206

The amount the camera has to change before the `changed` event is raised. The value is a percentage in the [0, 1] range.

Default Value: `0.5`

#### readonly pitch : Number
Scene/Camera.js 778

Gets the camera pitch in radians.

#### position : Cartesian3
Scene/Camera.js 82

The position of the camera.

#### readonly positionCartographic : Cartographic
Scene/Camera.js 681

Gets the `Cartographic` position of the camera, with longitude and latitude expressed in radians and height in meters. In 2D and Columbus View, it is possible for the returned longitude and latitude to be outside the range of valid longitudes and latitudes when the camera is outside the map.

#### readonly positionWC : Cartesian3
Scene/Camera.js 695

Gets the position of the camera in world coordinates.

#### right : Cartesian3
Scene/Camera.js 133

The right direction of the camera.

#### readonly rightWC : Cartesian3
Scene/Camera.js 737

Gets the right direction of the camera in world coordinates.

#### readonly roll : Number
Scene/Camera.js 805

Gets the camera roll in radians.

#### readonly transform : Matrix4
Scene/Camera.js 617

Gets the camera's reference frame. The inverse of this transformation is appended to the view matrix.

Default Value: ``Matrix4.IDENTITY``

#### up : Cartesian3
Scene/Camera.js 124

The up direction of the camera.

#### readonly upWC : Cartesian3
Scene/Camera.js 723

Gets the up direction of the camera in world coordinates.

#### readonly viewMatrix : Matrix4
Scene/Camera.js 648

Gets the view matrix.

##### See:

- Camera#inverseViewMatrix

### Methods

#### cameraToWorldCoordinates(cartesian, result) → Cartesian4
Scene/Camera.js 1347

Transform a vector or point from the camera's reference frame to world coordinates.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian4 | The vector or point to transform.
`result` | Cartesian4 | optional The object onto which to store the result.

##### Returns:

The transformed vector or point.

#### cameraToWorldCoordinatesPoint(cartesian, result) → Cartesian3
Scene/Camera.js 1368

Transform a point from the camera's reference frame to world coordinates.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The point to transform.
`result` | Cartesian3 | optional The object onto which to store the result.

##### Returns:

The transformed point.

#### cameraToWorldCoordinatesVector(cartesian, result) → Cartesian3
Scene/Camera.js 1389

Transform a vector from the camera's reference frame to world coordinates.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The vector to transform.
`result` | Cartesian3 | optional The object onto which to store the result.

##### Returns:

The transformed vector.

#### cancelFlight()
Scene/Camera.js 2711

Cancels the current camera flight and leaves the camera at its current location. If no flight is in progress, this this function does nothing.

#### completeFlight()
Scene/Camera.js 2722

Completes the current camera flight and moves the camera immediately to its final destination. If no flight is in progress, this this function does nothing.

#### computeViewRectangle(ellipsoid, result) → Rectangle|undefined
Scene/Camera.js 3189

Computes the approximate visible rectangle on the ellipsoid.

Name | Type | Default | Description
--- | --- | --- | ---
`ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid that you want to know the visible region.
`result` | Rectangle |  | optional The rectangle in which to store the result

##### Returns:

The visible rectangle or undefined if the ellipsoid isn't visible at all.

#### distanceToBoundingSphere(boundingSphere) → Number
Scene/Camera.js 2560

Return the distance from the camera to the front of the bounding sphere.

Name | Type | Description
--- | --- | ---
`boundingSphere` | BoundingSphere | The bounding sphere in world coordinates.

##### Returns:

The distance to the bounding sphere.

#### flyHome(duration)
Scene/Camera.js 1233

Fly the camera to the home view. Use `Camera#.DEFAULT_VIEW_RECTANGLE` to set the default view for the 3D scene. The home view for 2D and columbus view shows the entire map.

Name | Type | Description
--- | --- | ---
`duration` | Number | optional The duration of the flight in seconds. If omitted, Cesium attempts to calculate an ideal duration based on the distance to be traveled by the flight. See `Camera#flyTo`

#### flyTo(options)
Scene/Camera.js 2801

Flies the camera from its current position to a new position.

Name | Type | Description
--- | --- | ---

`options`

Object

Object with the following properties:

Name | Type | Description
--- | --- | ---
`destination` | Cartesian3 | Rectangle | The final position of the camera in WGS84 (world) coordinates or a rectangle that would be visible from a top-down view.

`orientation`

Object

optional An object that contains either direction and up properties or heading, pitch and roll properties. By default, the direction will point towards the center of the frame in 3D and in the negative z direction in Columbus view. The up direction will point towards local north in 3D and in the positive y direction in Columbus view. Orientation is not used in 2D when in infinite scrolling mode.

`duration` | Number | optional The duration of the flight in seconds. If omitted, Cesium attempts to calculate an ideal duration based on the distance to be traveled by the flight.
`complete` | Camera.FlightCompleteCallback | optional The function to execute when the flight is complete.
`cancel` | Camera.FlightCancelledCallback | optional The function to execute if the flight is cancelled.
`endTransform` | Matrix4 | optional Transform matrix representing the reference frame the camera will be in when the flight is completed.
`maximumHeight` | Number | optional The maximum height at the peak of the flight.
`pitchAdjustHeight` | Number | optional If camera flyes higher than that value, adjust pitch duiring the flight to look down, and keep Earth in viewport.
`flyOverLongitude` | Number | optional There are always two ways between 2 points on globe. This option force camera to choose fight direction to fly over that longitude.
`flyOverLongitudeWeight` | Number | optional Fly over the lon specifyed via flyOverLongitude only if that way is not longer than short way times flyOverLongitudeWeight.
`convert` | Boolean | optional Whether to convert the destination from world coordinates to scene coordinates (only relevant when not using 3D). Defaults to `true`.
`easingFunction` | EasingFunction.Callback | optional Controls how the time is interpolated over the duration of the flight.

##### Throws:

- DeveloperError : If either direction or up is given, then both are required.

##### Example:

    // 1. Fly to a position with a top-down view
    viewer.camera.flyTo({
        destination : Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0)
    });

    // 2. Fly to a Rectangle with a top-down view
    viewer.camera.flyTo({
        destination : Cesium.Rectangle.fromDegrees(west, south, east, north)
    });

    // 3. Fly to a position with an orientation using unit vectors.
    viewer.camera.flyTo({
        destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
        orientation : {
            direction : new Cesium.Cartesian3(-0.04231243104240401, -0.20123236049443421, -0.97862924300734),
            up : new Cesium.Cartesian3(-0.47934589305293746, -0.8553216253114552, 0.1966022179118339)
        }
    });

    // 4. Fly to a position with an orientation using heading, pitch and roll.
    viewer.camera.flyTo({
        destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
        orientation : {
            heading : Cesium.Math.toRadians(175.0),
            pitch : Cesium.Math.toRadians(-35.0),
            roll : 0.0
        }
    });

#### flyToBoundingSphere(boundingSphere, options)
Scene/Camera.js 3050

Flies the camera to a location where the current view contains the provided bounding sphere.

The offset is heading/pitch/range in the local east-north-up reference frame centered at the center of the bounding sphere. The heading and the pitch angles are defined in the local east-north-up reference frame. The heading is the angle from y axis and increasing towards the x axis. Pitch is the rotation from the xy-plane. Positive pitch angles are below the plane. Negative pitch angles are above the plane. The range is the distance from the center. If the range is zero, a range will be computed such that the whole bounding sphere is visible.

In 2D and Columbus View, there must be a top down view. The camera will be placed above the target looking down. The height above the target will be the range. The heading will be aligned to local north.

Name | Type | Description
--- | --- | ---
`boundingSphere` | BoundingSphere | The bounding sphere to view, in world coordinates.

`options`

Object

optional Object with the following properties:

Name | Type | Description
--- | --- | ---
`duration` | Number | optional The duration of the flight in seconds. If omitted, Cesium attempts to calculate an ideal duration based on the distance to be traveled by the flight.
`offset` | HeadingPitchRange | optional The offset from the target in the local east-north-up reference frame centered at the target.
`complete` | Camera.FlightCompleteCallback | optional The function to execute when the flight is complete.
`cancel` | Camera.FlightCancelledCallback | optional The function to execute if the flight is cancelled.
`endTransform` | Matrix4 | optional Transform matrix representing the reference frame the camera will be in when the flight is completed.
`maximumHeight` | Number | optional The maximum height at the peak of the flight.
`pitchAdjustHeight` | Number | optional If camera flyes higher than that value, adjust pitch duiring the flight to look down, and keep Earth in viewport.
`flyOverLongitude` | Number | optional There are always two ways between 2 points on globe. This option force camera to choose fight direction to fly over that longitude.
`flyOverLongitudeWeight` | Number | optional Fly over the lon specifyed via flyOverLongitude only if that way is not longer than short way times flyOverLongitudeWeight.
`easingFunction` | EasingFunction.Callback | optional Controls how the time is interpolated over the duration of the flight.

#### flyToEx(options)
Scene/Camera.js 2905

跳转到某一位置 并且镜头对准这个位置

Name | Type | Description
--- | --- | ---

`options`

Object

包含以下属性

Name | Type | Default | Description
--- | --- | --- | ---
`target` | Cartesian3 |  | 目标位置
`offset` | HeadingPitchRange | `new HeadingPitchRange(0,-Math.PI/2,0)` | optional 偏移旋转

Author:
  - hys

#### getMagnitude() → Number
Scene/Camera.js 1913

Gets the magnitude of the camera position. In 3D, this is the vector magnitude. In 2D and Columbus view, this is the distance to the map.

##### Returns:

The magnitude of the position.

#### getPickRay(windowPosition, result) → Ray
Scene/Camera.js 2532

Create a ray from the camera position through the pixel at `windowPosition` in world coordinates.

Name | Type | Description
--- | --- | ---
`windowPosition` | Cartesian2 | The x and y coordinates of a pixel.
`result` | Ray | optional The object onto which to store the result.

##### Returns:

Returns the `Cartesian3` position and direction of the ray.

#### getPixelSize(boundingSphere, drawingBufferWidth, drawingBufferHeight) → Number
Scene/Camera.js 2582

Return the pixel size in meters.

Name | Type | Description
--- | --- | ---
`boundingSphere` | BoundingSphere | The bounding sphere in world coordinates.
`drawingBufferWidth` | Number | The drawing buffer width.
`drawingBufferHeight` | Number | The drawing buffer height.

##### Returns:

The pixel size in meters.

#### getRectangleCameraCoordinates(rectangle, result) → Cartesian3
Scene/Camera.js 2349

Get the camera position needed to view a rectangle on an ellipsoid or map

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | The rectangle to view.
`result` | Cartesian3 | optional The camera position needed to view the rectangle

##### Returns:

The camera position needed to view the rectangle

#### getView() → Object
Scene/Camera.js 1207

获取相机的 position, orientation 和 transform.

##### Returns:

Author:
  - 韩彦生

#### look(axis, angle)
Scene/Camera.js 1636

Rotate each of the camera's orientation vectors around `axis` by `angle`

Name | Type | Description
--- | --- | ---
`axis` | Cartesian3 | The axis to rotate around.
`angle` | Number | optional The angle, in radians, to rotate by. Defaults to `defaultLookAmount`.

##### See:

- Camera#lookUp
- Camera#lookDown
- Camera#lookLeft
- Camera#lookRight

#### lookAt(target, offset)
Scene/Camera.js 1954

Sets the camera position and orientation using a target and offset. The target must be given in world coordinates. The offset can be either a cartesian or heading/pitch/range in the local east-north-up reference frame centered at the target. If the offset is a cartesian, then it is an offset from the center of the reference frame defined by the transformation matrix. If the offset is heading/pitch/range, then the heading and the pitch angles are defined in the reference frame defined by the transformation matrix. The heading is the angle from y axis and increasing towards the x axis. Pitch is the rotation from the xy-plane. Positive pitch angles are below the plane. Negative pitch angles are above the plane. The range is the distance from the center. In 2D, there must be a top down view. The camera will be placed above the target looking down. The height above the target will be the magnitude of the offset. The heading will be determined from the offset. If the heading cannot be determined from the offset, the heading will be north.

Name | Type | Description
--- | --- | ---
`target` | Cartesian3 | The target position in world coordinates.
`offset` | Cartesian3 | HeadingPitchRange | The offset from the target in the local east-north-up reference frame centered at the target.

##### Throws:

- DeveloperError : lookAt is not supported while morphing.

##### Example:

    // 1. Using a cartesian offset
    var center = Cesium.Cartesian3.fromDegrees(-98.0, 40.0);
    viewer.camera.lookAt(center, new Cesium.Cartesian3(0.0, -4790000.0, 3930000.0));

    // 2. Using a HeadingPitchRange offset
    var center = Cesium.Cartesian3.fromDegrees(-72.0, 40.0);
    var heading = Cesium.Math.toRadians(50.0);
    var pitch = Cesium.Math.toRadians(-20.0);
    var range = 5000.0;
    viewer.camera.lookAt(center, new Cesium.HeadingPitchRange(heading, pitch, range));

#### lookAtTransform(transform, offset)
Scene/Camera.js 2020

Sets the camera position and orientation using a target and transformation matrix. The offset can be either a cartesian or heading/pitch/range. If the offset is a cartesian, then it is an offset from the center of the reference frame defined by the transformation matrix. If the offset is heading/pitch/range, then the heading and the pitch angles are defined in the reference frame defined by the transformation matrix. The heading is the angle from y axis and increasing towards the x axis. Pitch is the rotation from the xy-plane. Positive pitch angles are below the plane. Negative pitch angles are above the plane. The range is the distance from the center. In 2D, there must be a top down view. The camera will be placed above the center of the reference frame. The height above the target will be the magnitude of the offset. The heading will be determined from the offset. If the heading cannot be determined from the offset, the heading will be north.

Name | Type | Description
--- | --- | ---
`transform` | Matrix4 | The transformation matrix defining the reference frame.
`offset` | Cartesian3 | HeadingPitchRange | optional The offset from the target in a reference frame centered at the target.

##### Throws:

- DeveloperError : lookAtTransform is not supported while morphing.

##### Example:

    // 1. Using a cartesian offset
    var transform = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(-98.0, 40.0));
    viewer.camera.lookAtTransform(transform, new Cesium.Cartesian3(0.0, -4790000.0, 3930000.0));

    // 2. Using a HeadingPitchRange offset
    var transform = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(-72.0, 40.0));
    var heading = Cesium.Math.toRadians(50.0);
    var pitch = Cesium.Math.toRadians(-20.0);
    var range = 5000.0;
    viewer.camera.lookAtTransform(transform, new Cesium.HeadingPitchRange(heading, pitch, range));

#### lookDown(amount)
Scene/Camera.js 1614

Rotates the camera around its right vector by amount, in radians, in the opposite direction of its up vector if not in 2D mode.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount, in radians, to rotate by. Defaults to `defaultLookAmount`.

##### See:

- Camera#lookUp

#### lookLeft(amount)
Scene/Camera.js 1563

Rotates the camera around its up vector by amount, in radians, in the opposite direction of its right vector if not in 2D mode.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount, in radians, to rotate by. Defaults to `defaultLookAmount`.

##### See:

- Camera#lookRight

#### lookRight(amount)
Scene/Camera.js 1580

Rotates the camera around its up vector by amount, in radians, in the direction of its right vector if not in 2D mode.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount, in radians, to rotate by. Defaults to `defaultLookAmount`.

##### See:

- Camera#lookLeft

#### lookUp(amount)
Scene/Camera.js 1597

Rotates the camera around its right vector by amount, in radians, in the direction of its up vector if not in 2D mode.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount, in radians, to rotate by. Defaults to `defaultLookAmount`.

##### See:

- Camera#lookDown

#### move(direction, amount)
Scene/Camera.js 1447

Translates the camera's position by `amount` along `direction`.

Name | Type | Description
--- | --- | ---
`direction` | Cartesian3 | The direction to move.
`amount` | Number | optional The amount, in meters, to move. Defaults to `defaultMoveAmount`.

##### See:

- Camera#moveBackward
- Camera#moveForward
- Camera#moveLeft
- Camera#moveRight
- Camera#moveUp
- Camera#moveDown

#### moveBackward(amount)
Scene/Camera.js 1493

Translates the camera's position by `amount` along the opposite direction of the camera's view vector. When in 2D mode, this will zoom out the camera instead of translating the camera's position.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount, in meters, to move. Defaults to `defaultMoveAmount`.

##### See:

- Camera#moveForward

#### moveDown(amount)
Scene/Camera.js 1525

Translates the camera's position by `amount` along the opposite direction of the camera's up vector.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount, in meters, to move. Defaults to `defaultMoveAmount`.

##### See:

- Camera#moveUp

#### moveForward(amount)
Scene/Camera.js 1472

Translates the camera's position by `amount` along the camera's view vector. When in 2D mode, this will zoom in the camera instead of translating the camera's position.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount, in meters, to move. Defaults to `defaultMoveAmount`.

##### See:

- Camera#moveBackward

#### moveLeft(amount)
Scene/Camera.js 1550

Translates the camera's position by `amount` along the opposite direction of the camera's right vector.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount, in meters, to move. Defaults to `defaultMoveAmount`.

##### See:

- Camera#moveRight

#### moveRight(amount)
Scene/Camera.js 1537

Translates the camera's position by `amount` along the camera's right vector.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount, in meters, to move. Defaults to `defaultMoveAmount`.

##### See:

- Camera#moveLeft

#### moveUp(amount)
Scene/Camera.js 1512

Translates the camera's position by `amount` along the camera's up vector.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount, in meters, to move. Defaults to `defaultMoveAmount`.

##### See:

- Camera#moveDown

#### pickEllipsoid(windowPosition, ellipsoid, result) → Cartesian3|undefined
Scene/Camera.js 2430

Pick an ellipsoid or map.

Name | Type | Default | Description
--- | --- | --- | ---
`windowPosition` | Cartesian2 |  | The x and y coordinates of a pixel.
`ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid to pick.
`result` | Cartesian3 |  | optional The object onto which to store the result.

##### Returns:

If the ellipsoid or map was picked, returns the point on the surface of the ellipsoid or map in world coordinates. If the ellipsoid or map was not picked, returns undefined.

##### Example:

    var canvas = viewer.scene.canvas;
    var center = new Cesium.Cartesian2(canvas.clientWidth / 2.0, canvas.clientHeight / 2.0);
    var ellipsoid = viewer.scene.globe.ellipsoid;
    var result = viewer.camera.pickEllipsoid(center, ellipsoid);

#### rotate(axis, angle)
Scene/Camera.js 1694

Rotates the camera around `axis` by `angle`. The distance of the camera's position to the center of the camera's reference frame remains the same.

Name | Type | Description
--- | --- | ---
`axis` | Cartesian3 | The axis to rotate around given in world coordinates.
`angle` | Number | optional The angle, in radians, to rotate by. Defaults to `defaultRotateAmount`.

##### See:

- Camera#rotateUp
- Camera#rotateDown
- Camera#rotateLeft
- Camera#rotateRight

#### rotateDown(angle)
Scene/Camera.js 1721

Rotates the camera around the center of the camera's reference frame by angle downwards.

Name | Type | Description
--- | --- | ---
`angle` | Number | optional The angle, in radians, to rotate by. Defaults to `defaultRotateAmount`.

##### See:

- Camera#rotateUp
- Camera#rotate

#### rotateLeft(angle)
Scene/Camera.js 1795

Rotates the camera around the center of the camera's reference frame by angle to the left.

Name | Type | Description
--- | --- | ---
`angle` | Number | optional The angle, in radians, to rotate by. Defaults to `defaultRotateAmount`.

##### See:

- Camera#rotateRight
- Camera#rotate

#### rotateRight(angle)
Scene/Camera.js 1782

Rotates the camera around the center of the camera's reference frame by angle to the right.

Name | Type | Description
--- | --- | ---
`angle` | Number | optional The angle, in radians, to rotate by. Defaults to `defaultRotateAmount`.

##### See:

- Camera#rotateLeft
- Camera#rotate

#### rotateUp(angle)
Scene/Camera.js 1734

Rotates the camera around the center of the camera's reference frame by angle upwards.

Name | Type | Description
--- | --- | ---
`angle` | Number | optional The angle, in radians, to rotate by. Defaults to `defaultRotateAmount`.

##### See:

- Camera#rotateDown
- Camera#rotate

#### setView(options)
Scene/Camera.js 1165

Sets the camera position, orientation and transform.

Name | Type | Description
--- | --- | ---

`options`

Object

Object with the following properties:

Name | Type | Description
--- | --- | ---
`destination` | Cartesian3 | Rectangle | optional The final position of the camera in WGS84 (world) coordinates or a rectangle that would be visible from a top-down view.

`orientation`

Object

optional An object that contains either direction and up properties or heading, pitch and roll properties. By default, the direction will point towards the center of the frame in 3D and in the negative z direction in Columbus view. The up direction will point towards local north in 3D and in the positive y direction in Columbus view. Orientation is not used in 2D when in infinite scrolling mode.

`endTransform` | Matrix4 | optional Transform matrix representing the reference frame of the camera.
`convert` | Boolean | optional Whether to convert the destination from world coordinates to scene coordinates (only relevant when not using 3D). Defaults to `true`.

##### Example:

    // 1. Set position with a top-down view
    viewer.camera.setView({
        destination : Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0)
    });

    // 2 Set view with heading, pitch and roll
    viewer.camera.setView({
        destination : cartesianPosition,
        orientation: {
            heading : Cesium.Math.toRadians(90.0), // east, default value is 0.0 (north)
            pitch : Cesium.Math.toRadians(-90),    // default value (looking down)
            roll : 0.0                             // default value
        }
    });

    // 3. Change heading, pitch and roll with the camera position remaining the same.
    viewer.camera.setView({
        orientation: {
            heading : Cesium.Math.toRadians(90.0), // east, default value is 0.0 (north)
            pitch : Cesium.Math.toRadians(-90),    // default value (looking down)
            roll : 0.0                             // default value
        }
    });

    // 4. View rectangle with a top-down view
    viewer.camera.setView({
        destination : Cesium.Rectangle.fromDegrees(west, south, east, north)
    });

    // 5. Set position with an orientation using unit vectors.
    viewer.camera.setView({
        destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
        orientation : {
            direction : new Cesium.Cartesian3(-0.04231243104240401, -0.20123236049443421, -0.97862924300734),
            up : new Cesium.Cartesian3(-0.47934589305293746, -0.8553216253114552, 0.1966022179118339)
        }
    });

#### switchToOrthographicFrustum()
Scene/Camera.js 3269

Switches the frustum/projection to orthographic. This function is a no-op in 2D which will always be orthographic.

#### switchToPerspectiveFrustum()
Scene/Camera.js 3253

Switches the frustum/projection to perspective. This function is a no-op in 2D which must always be orthographic.

#### twistLeft(amount)
Scene/Camera.js 1663

Rotate the camera counter-clockwise around its direction vector by amount, in radians.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount, in radians, to rotate by. Defaults to `defaultLookAmount`.

##### See:

- Camera#twistRight

#### twistRight(amount)
Scene/Camera.js 1675

Rotate the camera clockwise around its direction vector by amount, in radians.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount, in radians, to rotate by. Defaults to `defaultLookAmount`.

##### See:

- Camera#twistLeft

#### viewBoundingSphere(boundingSphere, offset)
Scene/Camera.js 3001

Sets the camera so that the current view contains the provided bounding sphere.

The offset is heading/pitch/range in the local east-north-up reference frame centered at the center of the bounding sphere. The heading and the pitch angles are defined in the local east-north-up reference frame. The heading is the angle from y axis and increasing towards the x axis. Pitch is the rotation from the xy-plane. Positive pitch angles are below the plane. Negative pitch angles are above the plane. The range is the distance from the center. If the range is zero, a range will be computed such that the whole bounding sphere is visible.

In 2D, there must be a top down view. The camera will be placed above the target looking down. The height above the target will be the range. The heading will be determined from the offset. If the heading cannot be determined from the offset, the heading will be north.

Name | Type | Description
--- | --- | ---
`boundingSphere` | BoundingSphere | The bounding sphere to view, in world coordinates.
`offset` | HeadingPitchRange | optional The offset from the target in the local east-north-up reference frame centered at the target.

##### Throws:

- DeveloperError : viewBoundingSphere is not supported while morphing.

#### worldToCameraCoordinates(cartesian, result) → Cartesian4
Scene/Camera.js 1284

Transform a vector or point from world coordinates to the camera's reference frame.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian4 | The vector or point to transform.
`result` | Cartesian4 | optional The object onto which to store the result.

##### Returns:

The transformed vector or point.

#### worldToCameraCoordinatesPoint(cartesian, result) → Cartesian3
Scene/Camera.js 1305

Transform a point from world coordinates to the camera's reference frame.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The point to transform.
`result` | Cartesian3 | optional The object onto which to store the result.

##### Returns:

The transformed point.

#### worldToCameraCoordinatesVector(cartesian, result) → Cartesian3
Scene/Camera.js 1326

Transform a vector from world coordinates to the camera's reference frame.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The vector to transform.
`result` | Cartesian3 | optional The object onto which to store the result.

##### Returns:

The transformed vector.

#### zoomIn(amount)
Scene/Camera.js 1881

Zooms `amount` along the camera's view vector.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount to move. Defaults to `defaultZoomAmount`.

##### See:

- Camera#zoomOut

#### zoomOut(amount)
Scene/Camera.js 1898

Zooms `amount` along the opposite direction of the camera's view vector.

Name | Type | Description
--- | --- | ---
`amount` | Number | optional The amount to move. Defaults to `defaultZoomAmount`.

##### See:

- Camera#zoomIn

### Type Definitions

#### Cesium.Camera.FlightCancelledCallback()
Scene/Camera.js 3308

A function that will execute when a flight is cancelled.

#### Cesium.Camera.FlightCompleteCallback()
Scene/Camera.js 3303

A function that will execute when a flight completes.