import BoundingSphere from '../Core/BoundingSphere.js'; import Cartesian2 from '../Core/Cartesian2.js'; import Cartesian3 from '../Core/Cartesian3.js'; import Cartesian4 from '../Core/Cartesian4.js'; import Cartographic from '../Core/Cartographic.js'; import defaultValue from '../Core/defaultValue.js'; import defined from '../Core/defined.js'; import defineProperties from '../Core/defineProperties.js'; import DeveloperError from '../Core/DeveloperError.js'; import EasingFunction from '../Core/EasingFunction.js'; import Ellipsoid from '../Core/Ellipsoid.js'; import EllipsoidGeodesic from '../Core/EllipsoidGeodesic.js'; import Event from '../Core/Event.js'; import getTimestamp from '../Core/getTimestamp.js'; import HeadingPitchRange from '../Core/HeadingPitchRange.js'; import HeadingPitchRoll from '../Core/HeadingPitchRoll.js'; import Intersect from '../Core/Intersect.js'; import IntersectionTests from '../Core/IntersectionTests.js'; import CesiumMath from '../Core/Math.js'; import Matrix3 from '../Core/Matrix3.js'; import Matrix4 from '../Core/Matrix4.js'; import OrthographicFrustum from '../Core/OrthographicFrustum.js'; import OrthographicOffCenterFrustum from '../Core/OrthographicOffCenterFrustum.js'; import PerspectiveFrustum from '../Core/PerspectiveFrustum.js'; import Quaternion from '../Core/Quaternion.js'; import Ray from '../Core/Ray.js'; import Rectangle from '../Core/Rectangle.js'; import Transforms from '../Core/Transforms.js'; import CameraFlightPath from './CameraFlightPath.js'; import MapMode2D from './MapMode2D.js'; import SceneMode from './SceneMode.js'; /** * 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 {@link 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. * * @alias Camera * * @constructor * * @param {Scene} scene The scene. * * @demo {@link https://sandcastle.cesium.com/index.html?src=Camera.html|Cesium Sandcastle Camera Demo} * @demo {@link https://sandcastle.cesium.com/index.html?src=Camera%20Tutorial.html">Sandcastle Example from the