IntersectionTests

IntersectionTests

Functions for computing the intersection between geometries such as rays, planes, triangles, and ellipsoids.

Methods

staticIntersectionTests.grazingAltitudeLocation(ray, ellipsoid)Cartesian

Provides the point along the ray which is nearest to the ellipsoid.
Name Type Description
ray Ray The ray.
ellipsoid Ellipsoid The ellipsoid.
Returns:
The nearest planetodetic point on the ray.

staticIntersectionTests.lineSegmentPlane(endPoint0, endPoint1, plane, result)Cartesian3

Computes the intersection of a line segment and a plane.
Name Type Description
endPoint0 Cartesian3 An end point of the line segment.
endPoint1 Cartesian3 The other end point of the line segment.
plane Plane The plane.
result Cartesian3 optional The object onto which to store the result.
Returns:
The intersection point or undefined if there is no intersection.
Example:
var origin = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883);
var normal = ellipsoid.geodeticSurfaceNormal(origin);
var plane = Cesium.Plane.fromPointNormal(origin, normal);

var p0 = new Cesium.Cartesian3(...);
var p1 = new Cesium.Cartesian3(...);

// find the intersection of the line segment from p0 to p1 and the tangent plane at origin.
var intersection = Cesium.IntersectionTests.lineSegmentPlane(p0, p1, plane);

staticIntersectionTests.rayEllipsoid(ray, ellipsoid)Object

Computes the intersection points of a ray with an ellipsoid.
Name Type Description
ray Ray The ray.
ellipsoid Ellipsoid The ellipsoid.
Returns:
An object with the first (start) and the second (stop) intersection scalars for points along the ray or undefined if there are no intersections.

staticIntersectionTests.rayPlane(ray, plane, result)Cartesian3

Computes the intersection of a ray and a plane.
Name Type Description
ray Ray The ray.
plane Plane The plane.
result Cartesian3 optional The object onto which to store the result.
Returns:
The intersection point or undefined if there is no intersections.

staticIntersectionTests.trianglePlaneIntersection(p0, p1, p2, plane)Object

Computes the intersection of a triangle and a plane
Name Type Description
p0 Cartesian3 First point of the triangle
p1 Cartesian3 Second point of the triangle
p2 Cartesian3 Third point of the triangle
plane Plane Intersection plane
Returns:
An object with properties positions and indices, which are arrays that represent three triangles that do not cross the plane. (Undefined if no intersection exists)
Example:
var origin = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883);
var normal = ellipsoid.geodeticSurfaceNormal(origin);
var plane = Cesium.Plane.fromPointNormal(origin, normal);

var p0 = new Cesium.Cartesian3(...);
var p1 = new Cesium.Cartesian3(...);
var p2 = new Cesium.Cartesian3(...);

// convert the triangle composed of points (p0, p1, p2) to three triangles that don't cross the plane
var triangles = Cesium.IntersectionTests.trianglePlaneIntersection(p0, p1, p2, plane);