# EllipsoidTangentPlane

#### new Cesium.EllipsoidTangentPlane(origin, ellipsoid)
engine/Source/Core/EllipsoidTangentPlane.js 29

A plane tangent to the provided ellipsoid at the provided origin. If origin is not on the surface of the ellipsoid, it's surface projection will be used. If origin is at the center of the ellipsoid, an exception will be thrown.

Name | Type | Default | Description
--- | --- | --- | ---
`origin` | Cartesian3 |  | The point on the surface of the ellipsoid where the tangent plane touches.
`ellipsoid` | Ellipsoid | `Ellipsoid.default` | optional The ellipsoid to use.

##### Throws:

- DeveloperError : origin must not be at the center of the ellipsoid.

### Members

#### ellipsoid : Ellipsoid
engine/Source/Core/EllipsoidTangentPlane.js 67

Gets the ellipsoid.

#### origin : Cartesian3
engine/Source/Core/EllipsoidTangentPlane.js 78

Gets the origin.

#### readonly plane : Plane
engine/Source/Core/EllipsoidTangentPlane.js 90

Gets the plane which is tangent to the ellipsoid.

#### readonly xAxis : Cartesian3
engine/Source/Core/EllipsoidTangentPlane.js 102

Gets the local X-axis (east) of the tangent plane.

#### readonly yAxis : Cartesian3
engine/Source/Core/EllipsoidTangentPlane.js 114

Gets the local Y-axis (north) of the tangent plane.

#### readonly zAxis : Cartesian3
engine/Source/Core/EllipsoidTangentPlane.js 126

Gets the local Z-axis (up) of the tangent plane.

### Methods

#### static Cesium.EllipsoidTangentPlane.fromPoints(cartesians, ellipsoid) → EllipsoidTangentPlane
engine/Source/Core/EllipsoidTangentPlane.js 142

Creates a new instance from the provided ellipsoid and the center point of the provided Cartesians.

Name | Type | Default | Description
--- | --- | --- | ---
`cartesians` | Array.<Cartesian3> |  | The list of positions surrounding the center point.
`ellipsoid` | Ellipsoid | `Ellipsoid.default` | optional The ellipsoid to use.

##### Returns:

The new instance of EllipsoidTangentPlane.

#### projectPointOntoEllipsoid(cartesian, result) → Cartesian3
engine/Source/Core/EllipsoidTangentPlane.js 328

Computes the projection of the provided 2D position onto the 3D ellipsoid.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian2 | The points to project.
`result` | Cartesian3 | optional The Cartesian3 instance to store result.

##### Returns:

The modified result parameter or a new Cartesian3 instance if none was provided.

#### projectPointOntoPlane(cartesian, result) → Cartesian2
engine/Source/Core/EllipsoidTangentPlane.js 161

Computes the projection of the provided 3D position onto the 2D plane, radially outward from the `EllipsoidTangentPlane.ellipsoid` coordinate system origin.

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

##### Returns:

The modified result parameter or a new Cartesian2 instance if none was provided. Undefined if there is no intersection point

#### projectPointsOntoEllipsoid(cartesians, result) → Array.<Cartesian3>
engine/Source/Core/EllipsoidTangentPlane.js 362

Computes the projection of the provided 2D positions onto the 3D ellipsoid.

Name | Type | Description
--- | --- | ---
`cartesians` | Array.<Cartesian2> | The array of points to project.
`result` | Array.<Cartesian3> | optional The array of Cartesian3 instances onto which to store results.

##### Returns:

The modified result parameter or a new array of Cartesian3 instances if none was provided.

#### projectPointsOntoPlane(cartesians, result) → Array.<Cartesian2>
engine/Source/Core/EllipsoidTangentPlane.js 216

Computes the projection of the provided 3D positions onto the 2D plane (where possible), radially outward from the global origin. The resulting array may be shorter than the input array - if a single projection is impossible it will not be included.

Name | Type | Description
--- | --- | ---
`cartesians` | Array.<Cartesian3> | The array of points to project.
`result` | Array.<Cartesian2> | optional The array of Cartesian2 instances onto which to store results.

##### Returns:

The modified result parameter or a new array of Cartesian2 instances if none was provided.

##### See:

- EllipsoidTangentPlane.projectPointOntoPlane

#### projectPointsToNearestOnPlane(cartesians, result) → Array.<Cartesian2>
engine/Source/Core/EllipsoidTangentPlane.js 300

Computes the projection of the provided 3D positions onto the 2D plane, along the plane normal.

Name | Type | Description
--- | --- | ---
`cartesians` | Array.<Cartesian3> | The array of points to project.
`result` | Array.<Cartesian2> | optional The array of Cartesian2 instances onto which to store results.

##### Returns:

The modified result parameter or a new array of Cartesian2 instances if none was provided. This will have the same length as `cartesians`.

##### See:

- EllipsoidTangentPlane.projectPointToNearestOnPlane

#### projectPointToNearestOnPlane(cartesian, result) → Cartesian2
engine/Source/Core/EllipsoidTangentPlane.js 248

Computes the projection of the provided 3D position onto the 2D plane, along the plane normal.

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

##### Returns:

The modified result parameter or a new Cartesian2 instance if none was provided.

Need help? The fastest way to get answers is from the community and team on the Cesium Forum.