Class: BoundingSphere

BoundingSphere

new BoundingSphere(centeropt, radiusopt)

A bounding sphere with a center and a radius.
Parameters:
Name Type Attributes Default Description
center Cartesian3 <optional>
Cartesian3.ZERO The center of the bounding sphere.
radius Number <optional>
0.0 The radius of the bounding sphere.
Source:
See:

Members

(static) packedLength :Number

The number of elements used to pack the object into an array.
Type:
  • Number
Source:

center :Cartesian3

The center point of the sphere.
Type:
Default Value:
Source:

radius :Number

The radius of the sphere.
Type:
  • Number
Default Value:
  • 0.0
Source:

Methods

(static) clone(sphere, resultopt) → {BoundingSphere}

Duplicates a BoundingSphere instance.
Parameters:
Name Type Attributes Description
sphere BoundingSphere The bounding sphere to duplicate.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided. (Returns undefined if sphere is undefined)
Type
BoundingSphere

(static) computePlaneDistances(sphere, position, direction, resultopt) → {Interval}

The distances calculated by the vector from the center of the bounding sphere to position projected onto direction plus/minus the radius of the bounding sphere.
If you imagine the infinite number of planes with normal direction, this computes the smallest distance to the closest and farthest planes from position that intersect the bounding sphere.
Parameters:
Name Type Attributes Description
sphere BoundingSphere The bounding sphere to calculate the distance to.
position Cartesian3 The position to calculate the distance from.
direction Cartesian3 The direction from position.
result Interval <optional>
A Interval to store the nearest and farthest distances.
Source:
Returns:
The nearest and farthest distances on the bounding sphere from position in direction.
Type
Interval

(static) distanceSquaredTo(sphere, cartesian) → {Number}

Computes the estimated distance squared from the closest point on a bounding sphere to a point.
Parameters:
Name Type Description
sphere BoundingSphere The sphere.
cartesian Cartesian3 The point
Source:
Returns:
The estimated distance squared from the bounding sphere to the point.
Type
Number
Example
// Sort bounding spheres from back to front
spheres.sort(function(a, b) {
    return Cesium.BoundingSphere.distanceSquaredTo(b, camera.positionWC) - Cesium.BoundingSphere.distanceSquaredTo(a, camera.positionWC);
});

(static) equals(leftopt, rightopt) → {Boolean}

Compares the provided BoundingSphere componentwise and returns true if they are equal, false otherwise.
Parameters:
Name Type Attributes Description
left BoundingSphere <optional>
The first BoundingSphere.
right BoundingSphere <optional>
The second BoundingSphere.
Source:
Returns:
true if left and right are equal, false otherwise.
Type
Boolean

(static) expand(sphere, point, resultopt) → {BoundingSphere}

Computes a bounding sphere by enlarging the provided sphere to contain the provided point.
Parameters:
Name Type Attributes Description
sphere BoundingSphere A sphere to expand.
point Cartesian3 A point to enclose in a bounding sphere.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere

(static) fromBoundingSpheres(boundingSpheres, resultopt) → {BoundingSphere}

Computes a tight-fitting bounding sphere enclosing the provided array of bounding spheres.
Parameters:
Name Type Attributes Description
boundingSpheres Array.<BoundingSphere> The array of bounding spheres.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere

(static) fromCornerPoints(corneropt, oppositeCorneropt, resultopt) → {BoundingSphere}

Computes a bounding sphere from the corner points of an axis-aligned bounding box. The sphere tighly and fully encompases the box.
Parameters:
Name Type Attributes Description
corner Cartesian3 <optional>
The minimum height over the rectangle.
oppositeCorner Cartesian3 <optional>
The maximum height over the rectangle.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere
Example
// Create a bounding sphere around the unit cube
var sphere = Cesium.BoundingSphere.fromCornerPoints(new Cesium.Cartesian3(-0.5, -0.5, -0.5), new Cesium.Cartesian3(0.5, 0.5, 0.5));

(static) fromEllipsoid(ellipsoid, resultopt) → {BoundingSphere}

Creates a bounding sphere encompassing an ellipsoid.
Parameters:
Name Type Attributes Description
ellipsoid Ellipsoid The ellipsoid around which to create a bounding sphere.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere
Example
var boundingSphere = Cesium.BoundingSphere.fromEllipsoid(ellipsoid);

(static) fromEncodedCartesianVertices(positionsHigh, positionsLow, resultopt) → {BoundingSphere}

Computes a tight-fitting bounding sphere enclosing a list of EncodedCartesian3s, where the points are stored in parallel flat arrays in X, Y, Z, order. The bounding sphere is computed by running two algorithms, a naive algorithm and Ritter's algorithm. The smaller of the two spheres is used to ensure a tight fit.
Parameters:
Name Type Attributes Description
positionsHigh Array.<Number> An array of high bits of the encoded cartesians that the bounding sphere will enclose. Each point is formed from three elements in the array in the order X, Y, Z.
positionsLow Array.<Number> An array of low bits of the encoded cartesians that the bounding sphere will enclose. Each point is formed from three elements in the array in the order X, Y, Z.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
See:
Returns:
The modified result parameter or a new BoundingSphere instance if one was not provided.
Type
BoundingSphere

(static) fromOrientedBoundingBox(orientedBoundingBox, resultopt) → {BoundingSphere}

Computes a tight-fitting bounding sphere enclosing the provided oriented bounding box.
Parameters:
Name Type Attributes Description
orientedBoundingBox OrientedBoundingBox The oriented bounding box.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere

(static) fromPoints(positions, resultopt) → {BoundingSphere}

Computes a tight-fitting bounding sphere enclosing a list of 3D Cartesian points. The bounding sphere is computed by running two algorithms, a naive algorithm and Ritter's algorithm. The smaller of the two spheres is used to ensure a tight fit.
Parameters:
Name Type Attributes Description
positions Array.<Cartesian3> An array of points that the bounding sphere will enclose. Each point must have x, y, and z properties.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
See:
Returns:
The modified result parameter or a new BoundingSphere instance if one was not provided.
Type
BoundingSphere

(static) fromRectangle2D(rectangle, projectionopt, resultopt) → {BoundingSphere}

Computes a bounding sphere from an rectangle projected in 2D.
Parameters:
Name Type Attributes Default Description
rectangle Rectangle The rectangle around which to create a bounding sphere.
projection Object <optional>
GeographicProjection The projection used to project the rectangle into 2D.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere

(static) fromRectangle3D(rectangle, ellipsoidopt, surfaceHeightopt, resultopt) → {BoundingSphere}

Computes a bounding sphere from an rectangle in 3D. The bounding sphere is created using a subsample of points on the ellipsoid and contained in the rectangle. It may not be accurate for all rectangles on all types of ellipsoids.
Parameters:
Name Type Attributes Default Description
rectangle Rectangle The valid rectangle used to create a bounding sphere.
ellipsoid Ellipsoid <optional>
Ellipsoid.WGS84 The ellipsoid used to determine positions of the rectangle.
surfaceHeight Number <optional>
0.0 The height above the surface of the ellipsoid.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere

(static) fromRectangleWithHeights2D(rectangle, projectionopt, minimumHeightopt, maximumHeightopt, resultopt) → {BoundingSphere}

Computes a bounding sphere from an rectangle projected in 2D. The bounding sphere accounts for the object's minimum and maximum heights over the rectangle.
Parameters:
Name Type Attributes Default Description
rectangle Rectangle The rectangle around which to create a bounding sphere.
projection Object <optional>
GeographicProjection The projection used to project the rectangle into 2D.
minimumHeight Number <optional>
0.0 The minimum height over the rectangle.
maximumHeight Number <optional>
0.0 The maximum height over the rectangle.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere

(static) fromVertices(positions, centeropt, strideopt, resultopt) → {BoundingSphere}

Computes a tight-fitting bounding sphere enclosing a list of 3D points, where the points are stored in a flat array in X, Y, Z, order. The bounding sphere is computed by running two algorithms, a naive algorithm and Ritter's algorithm. The smaller of the two spheres is used to ensure a tight fit.
Parameters:
Name Type Attributes Default Description
positions Array.<Number> An array of points that the bounding sphere will enclose. Each point is formed from three elements in the array in the order X, Y, Z.
center Cartesian3 <optional>
Cartesian3.ZERO The position to which the positions are relative, which need not be the origin of the coordinate system. This is useful when the positions are to be used for relative-to-center (RTC) rendering.
stride Number <optional>
3 The number of array elements per vertex. It must be at least 3, but it may be higher. Regardless of the value of this parameter, the X coordinate of the first position is at array index 0, the Y coordinate is at array index 1, and the Z coordinate is at array index 2. When stride is 3, the X coordinate of the next position then begins at array index 3. If the stride is 5, however, two array elements are skipped and the next position begins at array index 5.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
See:
Returns:
The modified result parameter or a new BoundingSphere instance if one was not provided.
Type
BoundingSphere
Example
// Compute the bounding sphere from 3 positions, each specified relative to a center.
// In addition to the X, Y, and Z coordinates, the points array contains two additional
// elements per point which are ignored for the purpose of computing the bounding sphere.
var center = new Cesium.Cartesian3(1.0, 2.0, 3.0);
var points = [1.0, 2.0, 3.0, 0.1, 0.2,
              4.0, 5.0, 6.0, 0.1, 0.2,
              7.0, 8.0, 9.0, 0.1, 0.2];
var sphere = Cesium.BoundingSphere.fromVertices(points, center, 5);

(static) intersectPlane(sphere, plane) → {Intersect}

Determines which side of a plane a sphere is located.
Parameters:
Name Type Description
sphere BoundingSphere The bounding sphere to test.
plane Plane The plane to test against.
Source:
Returns:
Intersect.INSIDE if the entire sphere is on the side of the plane the normal is pointing, Intersect.OUTSIDE if the entire sphere is on the opposite side, and Intersect.INTERSECTING if the sphere intersects the plane.
Type
Intersect

(static) isOccluded(sphere, occluder) → {Boolean}

Determines whether or not a sphere is hidden from view by the occluder.
Parameters:
Name Type Description
sphere BoundingSphere The bounding sphere surrounding the occludee object.
occluder Occluder The occluder.
Source:
Returns:
true if the sphere is not visible; otherwise false.
Type
Boolean

(static) pack(value, array, startingIndexopt) → {Array.<Number>}

Stores the provided instance into the provided array.
Parameters:
Name Type Attributes Default Description
value BoundingSphere The value to pack.
array Array.<Number> The array to pack into.
startingIndex Number <optional>
0 The index into the array at which to start packing the elements.
Source:
Returns:
The array that was packed into
Type
Array.<Number>

(static) projectTo2D(sphere, projectionopt, resultopt) → {BoundingSphere}

Creates a bounding sphere in 2D from a bounding sphere in 3D world coordinates.
Parameters:
Name Type Attributes Default Description
sphere BoundingSphere The bounding sphere to transform to 2D.
projection Object <optional>
GeographicProjection The projection to 2D.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere

(static) transform(sphere, transform, resultopt) → {BoundingSphere}

Applies a 4x4 affine transformation matrix to a bounding sphere.
Parameters:
Name Type Attributes Description
sphere BoundingSphere The bounding sphere to apply the transformation to.
transform Matrix4 The transformation matrix to apply to the bounding sphere.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere

(static) transformWithoutScale(sphere, transform, resultopt) → {BoundingSphere}

Applies a 4x4 affine transformation matrix to a bounding sphere where there is no scale The transformation matrix is not verified to have a uniform scale of 1. This method is faster than computing the general bounding sphere transform using BoundingSphere.transform.
Parameters:
Name Type Attributes Description
sphere BoundingSphere The bounding sphere to apply the transformation to.
transform Matrix4 The transformation matrix to apply to the bounding sphere.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere
Example
var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(positionOnEllipsoid);
var boundingSphere = new Cesium.BoundingSphere();
var newBoundingSphere = Cesium.BoundingSphere.transformWithoutScale(boundingSphere, modelMatrix);

(static) union(left, right, resultopt) → {BoundingSphere}

Computes a bounding sphere that contains both the left and right bounding spheres.
Parameters:
Name Type Attributes Description
left BoundingSphere A sphere to enclose in a bounding sphere.
right BoundingSphere A sphere to enclose in a bounding sphere.
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere

(static) unpack(array, startingIndexopt, resultopt) → {BoundingSphere}

Retrieves an instance from a packed array.
Parameters:
Name Type Attributes Default Description
array Array.<Number> The packed array.
startingIndex Number <optional>
0 The starting index of the element to be unpacked.
result BoundingSphere <optional>
The object into which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if one was not provided.
Type
BoundingSphere

clone(resultopt) → {BoundingSphere}

Duplicates this BoundingSphere instance.
Parameters:
Name Type Attributes Description
result BoundingSphere <optional>
The object onto which to store the result.
Source:
Returns:
The modified result parameter or a new BoundingSphere instance if none was provided.
Type
BoundingSphere

computePlaneDistances(position, direction, resultopt) → {Interval}

The distances calculated by the vector from the center of the bounding sphere to position projected onto direction plus/minus the radius of the bounding sphere.
If you imagine the infinite number of planes with normal direction, this computes the smallest distance to the closest and farthest planes from position that intersect the bounding sphere.
Parameters:
Name Type Attributes Description
position Cartesian3 The position to calculate the distance from.
direction Cartesian3 The direction from position.
result Interval <optional>
A Interval to store the nearest and farthest distances.
Source:
Returns:
The nearest and farthest distances on the bounding sphere from position in direction.
Type
Interval

distanceSquaredTo(cartesian) → {Number}

Computes the estimated distance squared from the closest point on a bounding sphere to a point.
Parameters:
Name Type Description
cartesian Cartesian3 The point
Source:
Returns:
The estimated distance squared from the bounding sphere to the point.
Type
Number
Example
// Sort bounding spheres from back to front
spheres.sort(function(a, b) {
    return b.distanceSquaredTo(camera.positionWC) - a.distanceSquaredTo(camera.positionWC);
});

equals(rightopt) → {Boolean}

Compares this BoundingSphere against the provided BoundingSphere componentwise and returns true if they are equal, false otherwise.
Parameters:
Name Type Attributes Description
right BoundingSphere <optional>
The right hand side BoundingSphere.
Source:
Returns:
true if they are equal, false otherwise.
Type
Boolean

intersectPlane(plane) → {Intersect}

Determines which side of a plane the sphere is located.
Parameters:
Name Type Description
plane Plane The plane to test against.
Source:
Returns:
Intersect.INSIDE if the entire sphere is on the side of the plane the normal is pointing, Intersect.OUTSIDE if the entire sphere is on the opposite side, and Intersect.INTERSECTING if the sphere intersects the plane.
Type
Intersect

isOccluded(occluder) → {Boolean}

Determines whether or not a sphere is hidden from view by the occluder.
Parameters:
Name Type Description
occluder Occluder The occluder.
Source:
Returns:
true if the sphere is not visible; otherwise false.
Type
Boolean