Creates an Occluder derived from an object's position and radius, as well as the camera position.
The occluder can be used to determine whether or not other objects are visible or hidden behind the
visible horizon defined by the occluder and camera position.
Name | Type | Description |
---|---|---|
occluderBoundingSphere |
BoundingSphere | The bounding sphere surrounding the occluder. |
cameraPosition |
Cartesian3 | The coordinate of the viewer/camera. |
Example:
// Construct an occluder one unit away from the origin with a radius of one.
const cameraPosition = Cesium.Cartesian3.ZERO;
const occluderBoundingSphere = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -1), 1);
const occluder = new Cesium.Occluder(occluderBoundingSphere, cameraPosition);
Members
cameraPosition : Cartesian3
The position of the camera.
position : Cartesian3
The position of the occluder.
The radius of the occluder.
Methods
static Cesium.Occluder.computeOccludeePoint(occluderBoundingSphere, occludeePosition, positions) → object
Computes a point that can be used as the occludee position to the visibility functions.
Use a radius of zero for the occludee radius. Typically, a user computes a bounding sphere around
an object that is used for visibility; however it is also possible to compute a point that if
seen/not seen would also indicate if an object is visible/not visible. This function is better
called for objects that do not move relative to the occluder and is large, such as a chunk of
terrain. You are better off not calling this and using the object's bounding sphere for objects
such as a satellite or ground vehicle.
Name | Type | Description |
---|---|---|
occluderBoundingSphere |
BoundingSphere | The bounding sphere surrounding the occluder. |
occludeePosition |
Cartesian3 | The point where the occludee (bounding sphere of radius 0) is located. |
positions |
Array.<Cartesian3> | List of altitude points on the horizon near the surface of the occluder. |
Returns:
An object containing two attributes:
occludeePoint
and valid
which is a boolean value.
Throws:
-
DeveloperError :
positions
must contain at least one element.
Example:
const cameraPosition = new Cesium.Cartesian3(0, 0, 0);
const occluderBoundingSphere = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -8), 2);
const occluder = new Cesium.Occluder(occluderBoundingSphere, cameraPosition);
const positions = [new Cesium.Cartesian3(-0.25, 0, -5.3), new Cesium.Cartesian3(0.25, 0, -5.3)];
const tileOccluderSphere = Cesium.BoundingSphere.fromPoints(positions);
const occludeePosition = tileOccluderSphere.center;
const occludeePt = Cesium.Occluder.computeOccludeePoint(occluderBoundingSphere, occludeePosition, positions);
Computes a point that can be used as the occludee position to the visibility functions from a rectangle.
Name | Type | Default | Description |
---|---|---|---|
rectangle |
Rectangle | The rectangle used to create a bounding sphere. | |
ellipsoid |
Ellipsoid |
Ellipsoid.default
|
optional The ellipsoid used to determine positions of the rectangle. |
Returns:
An object containing two attributes:
occludeePoint
and valid
which is a boolean value.
static Cesium.Occluder.fromBoundingSphere(occluderBoundingSphere, cameraPosition, result) → Occluder
Creates an occluder from a bounding sphere and the camera position.
Name | Type | Description |
---|---|---|
occluderBoundingSphere |
BoundingSphere | The bounding sphere surrounding the occluder. |
cameraPosition |
Cartesian3 | The coordinate of the viewer/camera. |
result |
Occluder | optional The object onto which to store the result. |
Returns:
The occluder derived from an object's position and radius, as well as the camera position.
computeVisibility(occludeeBS) → Visibility
Determine to what extent an occludee is visible (not visible, partially visible, or fully visible).
Name | Type | Description |
---|---|---|
occludeeBS |
BoundingSphere | The bounding sphere of the occludee. |
Returns:
Visibility.NONE if the occludee is not visible,
Visibility.PARTIAL if the occludee is partially visible, or
Visibility.FULL if the occludee is fully visible.
Example:
const sphere1 = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -1.5), 0.5);
const sphere2 = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -2.5), 0.5);
const cameraPosition = new Cesium.Cartesian3(0, 0, 0);
const occluder = new Cesium.Occluder(sphere1, cameraPosition);
occluder.computeVisibility(sphere2); //returns Visibility.NONE
Determines whether or not a sphere, the
occludee
, is hidden from view by the occluder.
Name | Type | Description |
---|---|---|
occludee |
BoundingSphere | The bounding sphere surrounding the occludee object. |
Returns:
true
if the occludee is visible; otherwise false
.
Example:
const cameraPosition = new Cesium.Cartesian3(0, 0, 0);
const littleSphere = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -1), 0.25);
const occluder = new Cesium.Occluder(littleSphere, cameraPosition);
const bigSphere = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -3), 1);
occluder.isBoundingSphereVisible(bigSphere); //returns true
See:
Determines whether or not a point, the
occludee
, is hidden from view by the occluder.
Name | Type | Description |
---|---|---|
occludee |
Cartesian3 | The point surrounding the occludee object. |
Returns:
true
if the occludee is visible; otherwise false
.
Example:
const cameraPosition = new Cesium.Cartesian3(0, 0, 0);
const littleSphere = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -1), 0.25);
const occluder = new Cesium.Occluder(littleSphere, cameraPosition);
const point = new Cesium.Cartesian3(0, 0, -3);
occluder.isPointVisible(point); //returns true