Functions for computing the intersection between geometries such as rays, planes, triangles, and ellipsoids.
        
        
Methods
static Cesium.IntersectionTests.grazingAltitudeLocation(ray, ellipsoid) → Cartesian3
    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.
    
static Cesium.IntersectionTests.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);
    
    
    
    
    
    
static Cesium.IntersectionTests.lineSegmentSphere(p0, p1, sphere, result) → Interval
    Computes the intersection points of a line segment with a sphere.
    
| Name | Type | Description | 
|---|---|---|
p0 | 
            
            Cartesian3 | An end point of the line segment. | 
p1 | 
            
            Cartesian3 | The other end point of the line segment. | 
sphere | 
            
            BoundingSphere | The sphere. | 
result | 
            
            Interval | optional The result onto which to store the result. | 
Returns:
    The interval containing scalar points along the ray or undefined if there are no intersections.
    
static Cesium.IntersectionTests.lineSegmentTriangle(v0, v1, p0, p1, p2, cullBackFaces, result) → Cartesian3
    Computes the intersection of a line segment and a triangle.
    
| Name | Type | Default | Description | 
|---|---|---|---|
v0 | 
            
            Cartesian3 | The an end point of the line segment. | |
v1 | 
            
            Cartesian3 | The other end point of the line segment. | |
p0 | 
            
            Cartesian3 | The first vertex of the triangle. | |
p1 | 
            
            Cartesian3 | The second vertex of the triangle. | |
p2 | 
            
            Cartesian3 | The third vertex of the triangle. | |
cullBackFaces | 
            
            Boolean | 
                
                    false
                
                 | 
            
            
            
                
                        optional
                
                
                
            
                If true, will only compute an intersection with the front face of the triangle
                 and return undefined for intersections with the back face. | 
        
result | 
            
            Cartesian3 | 
            
                
                        optional
                
                
                
            
                The Cartesian3 onto which to store the result. | 
        
Returns:
    The intersection point or undefined if there is no intersections.
    
static Cesium.IntersectionTests.rayEllipsoid(ray, ellipsoid) → Interval
    Computes the intersection points of a ray with an ellipsoid.
    
| Name | Type | Description | 
|---|---|---|
ray | 
            
            Ray | The ray. | 
ellipsoid | 
            
            Ellipsoid | The ellipsoid. | 
Returns:
    The interval containing scalar points along the ray or undefined if there are no intersections.
    
static Cesium.IntersectionTests.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.
    
static Cesium.IntersectionTests.raySphere(ray, sphere, result) → Interval
    Computes the intersection points of a ray with a sphere.
    
| Name | Type | Description | 
|---|---|---|
ray | 
            
            Ray | The ray. | 
sphere | 
            
            BoundingSphere | The sphere. | 
result | 
            
            Interval | optional The result onto which to store the result. | 
Returns:
    The interval containing scalar points along the ray or undefined if there are no intersections.
    
static Cesium.IntersectionTests.rayTriangle(ray, p0, p1, p2, cullBackFaces, result) → Cartesian3
    Computes the intersection of a ray and a triangle as a Cartesian3 coordinate.
Implements  Fast Minimum Storage Ray/Triangle Intersection by Tomas Moller and Ben Trumbore.
    
| Name | Type | Default | Description | 
|---|---|---|---|
ray | 
            
            Ray | The ray. | |
p0 | 
            
            Cartesian3 | The first vertex of the triangle. | |
p1 | 
            
            Cartesian3 | The second vertex of the triangle. | |
p2 | 
            
            Cartesian3 | The third vertex of the triangle. | |
cullBackFaces | 
            
            Boolean | 
                
                    false
                
                 | 
            
            
            
                
                        optional
                
                
                
            
                If true, will only compute an intersection with the front face of the triangle
                 and return undefined for intersections with the back face. | 
        
result | 
            
            Cartesian3 | 
            
                
                        optional
                
                
                
            
                The Cartesian3 onto which to store the result. | 
        
Returns:
    The intersection point or undefined if there is no intersections.
    
    Computes the intersection of a ray and a triangle as a parametric distance along the input ray. The result is negative when the triangle is behind the ray.
Implements  Fast Minimum Storage Ray/Triangle Intersection by Tomas Moller and Ben Trumbore.
    
| Name | Type | Default | Description | 
|---|---|---|---|
ray | 
            
            Ray | The ray. | |
p0 | 
            
            Cartesian3 | The first vertex of the triangle. | |
p1 | 
            
            Cartesian3 | The second vertex of the triangle. | |
p2 | 
            
            Cartesian3 | The third vertex of the triangle. | |
cullBackFaces | 
            
            Boolean | 
                
                    false
                
                 | 
            
            
            
                
                        optional
                
                
                
            
                If true, will only compute an intersection with the front face of the triangle
                 and return undefined for intersections with the back face. | 
        
Returns:
    The intersection as a parametric distance along the ray, or undefined if there is no intersection.
    
    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);
    
    
    
    
    
    
