BoundingSphere

具有中心和半径的边界球体。
new BoundingSphere(center, radius)
Parameters:
center (Cartesian3) (default Cartesian3.ZERO) 边界球的中心。
radius (Number) (default 0.0) 边界球的半径。
See:

Members

(static) packedLength : Number

用于将对象打包到数组中的元素数。

center : Cartesian3

球体的中心点。
Default Value: Cartesian3.ZERO

radius : Number

球体的半径。
Default Value: 0.0

Methods

(static) clone(sphere, result) → {BoundingSphere}
复制边界球体实例。
Parameters:
sphere (BoundingSphere) 要复制的边界球体。
result (BoundingSphere) 存储结果的对象。
(static) computePlaneDistances(sphere, position, direction, result) → {Interval}
由矢量从边界球的中心到投射到方向上的位置的距离加/减边界球的半径。
如果您设想具有法向的无限多个平面,这将从与边界球体相交的位置计算到最近和最远平面的最小距离。
Parameters:
sphere (BoundingSphere) 要计算距离的边界球体。
position (Cartesian3) 计算距离的位置。
direction (Cartesian3) 从位置开始的方向。
result (Interval) 存储最近和最远距离的间隔。
(static) distanceSquaredTo(sphere, cartesian) → {Number}
计算从边界球上最近点到点的估计距离平方。
Parameters:
sphere (BoundingSphere) 球体。
cartesian (Cartesian3) 重点
Example
// Sort bounding spheres from back to front
spheres.sort(function(a, b) {
    return bmgl.BoundingSphere.distanceSquaredTo(b, camera.positionWC) - bmgl.BoundingSphere.distanceSquaredTo(a, camera.positionWC);
});
(static) equals(left, right) → {Boolean}
比较提供的boundingsphere组件,如果它们相等,则返回true,否则返回false
Parameters:
left (BoundingSphere) 第一个边界球。
right (BoundingSphere) 第二个边界球。
(static) expand(sphere, point, result) → {BoundingSphere}
通过扩大提供的球体以包含提供的点来计算边界球体。
Parameters:
sphere (BoundingSphere) 要展开的球体。
point (Cartesian3) 包围在边界球内的点。
result (BoundingSphere) 存储结果的对象。
(static) fromBoundingSpheres(boundingSpheres, result) → {BoundingSphere}
计算包围提供的边界球数组的紧配合边界球。
Parameters:
boundingSpheres (Array.<BoundingSphere>) 边界球的数组。
result (BoundingSphere) 存储结果的对象。
(static) fromCornerPoints(corner, oppositeCorner, result) → {BoundingSphere}
从轴对齐边界框的角点计算边界球。球体猛然完全地与盒子相碰撞。
Parameters:
corner (Cartesian3) 矩形上方的最小高度。
oppositeCorner (Cartesian3) 矩形上的最大高度。
result (BoundingSphere) 存储结果的对象。
Example
// Create a bounding sphere around the unit cube
var sphere = bmgl.BoundingSphere.fromCornerPoints(new bmgl.Cartesian3(-0.5, -0.5, -0.5), new bmgl.Cartesian3(0.5, 0.5, 0.5));
(static) fromEllipsoid(ellipsoid, result) → {BoundingSphere}
创建包含椭圆体的边界球体。
Parameters:
ellipsoid (Ellipsoid) 在其周围创建边界球的椭球体。
result (BoundingSphere) 存储结果的对象。
Example
var boundingSphere = bmgl.BoundingSphere.fromEllipsoid(ellipsoid);
(static) fromEncodedCartesianVertices(positionsHigh, positionsLow, result) → {BoundingSphere}
计算一个紧配合的边界球,包含一个编码部件3列表,其中点按X、Y、Z顺序存储在平行平面阵列中。边界球是通过运行两种算法来计算的,一种是简单算法,另一种是Ritter算法。两个球体中较小的一个用于确保紧密配合。
Parameters:
positionsHigh (Array.<Number>) 包围球将包围的编码笛卡尔体的高位数组。每个点由数组中的三个元素按x、y、z的顺序组成。
positionsLow (Array.<Number>) 包围球将包围的编码笛卡尔的低位数组。每个点由数组中的三个元素按x、y、z的顺序组成。
result (BoundingSphere) 存储结果的对象。
See:
(static) fromOrientedBoundingBox(orientedBoundingBox, result) → {BoundingSphere}
计算包围提供的定向边界框的紧配合边界球。
Parameters:
orientedBoundingBox (OrientedBoundingBox) 定向边界框。
result (BoundingSphere) 存储结果的对象。
(static) fromPoints(positions, result) → {BoundingSphere}
计算包含三维笛卡尔点列表的紧配合边界球。边界球是通过运行两种算法来计算的,一种是简单算法,另一种是Ritter算法。两个球体中较小的一个用于确保紧密配合。
Parameters:
positions (Array.<Cartesian3>) 边界球将包围的点数组。每个点必须具有xyz属性。
result (BoundingSphere) 存储结果的对象。
See:
(static) fromRectangle2D(rectangle, projection, result) → {BoundingSphere}
从二维投影的矩形计算边界球体。
Parameters:
rectangle (Rectangle) 要围绕其创建边界球体的矩形。
projection (Object) (default GeographicProjection) 用于将矩形投影到二维的投影。
result (BoundingSphere) 存储结果的对象。
(static) fromRectangle3D(rectangle, ellipsoid, surfaceHeight, result) → {BoundingSphere}
从三维矩形中计算边界球。边界球是使用椭圆体上点的子样本创建的,并包含在矩形中。对于所有类型的椭球体上的所有矩形,它可能不准确。
Parameters:
rectangle (Rectangle) 用于创建边界球体的有效矩形。
ellipsoid (Ellipsoid) (default Ellipsoid.WGS84) 用于确定矩形位置的椭圆体。
surfaceHeight (Number) (default 0.0) 椭圆体表面以上的高度。
result (BoundingSphere) 存储结果的对象。
(static) fromRectangleWithHeights2D(rectangle, projection, minimumHeight, maximumHeight, result) → {BoundingSphere}
从二维投影的矩形计算边界球体。边界球体占对象在矩形上的最小和最大高度。
Parameters:
rectangle (Rectangle) 要围绕其创建边界球体的矩形。
projection (Object) (default GeographicProjection) 用于将矩形投影到二维的投影。
minimumHeight (Number) (default 0.0) 矩形上方的最小高度。
maximumHeight (Number) (default 0.0) 矩形上的最大高度。
result (BoundingSphere) 存储结果的对象。
(static) fromVertices(positions, center, stride, result) → {BoundingSphere}
计算包含三维点列表的紧配合边界球体,其中点按X、Y、Z顺序存储在平面阵列中。边界球是通过运行两种算法来计算的,一种是简单算法,另一种是Ritter算法。两个球体中较小的一个用于确保紧密配合。
Parameters:
positions (Array.<Number>) 边界球将包围的点数组。每个点由数组中的三个元素按x、y、z的顺序组成。
center (Cartesian3) (default Cartesian3.ZERO) 位置相对的位置,不必是坐标系的原点。当位置将用于相对于中心(rtc)渲染时,此功能非常有用。
stride (Number) (default 3) 每个顶点的数组元素数。它必须至少是3,但可能更高。不管这个参数的值是多少,第一个位置的x坐标是在数组索引0处,y坐标是在数组索引1处,z坐标是在数组索引2处。当跨距为3时,下一个位置的X坐标从数组索引3开始。但是,如果步幅为5,则跳过两个数组元素,下一个位置从数组索引5开始。
result (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 bmgl.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 = bmgl.BoundingSphere.fromVertices(points, center, 5);
See:
(static) intersectPlane(sphere, plane) → {Intersect}
确定球体位于平面的哪一侧。
Parameters:
sphere (BoundingSphere) 要测试的边界球。
plane (Plane) 试飞的飞机。
(static) isOccluded(sphere, occluder) → {Boolean}
确定遮挡器是否将球体隐藏在视图中。
Parameters:
sphere (BoundingSphere) 围绕被遮挡对象的边界球体。
occluder (Occluder) 封堵器。
(static) pack(value, array, startingIndex) → {Array.<Number>}
将提供的实例存储到提供的数组中。
Parameters:
value (BoundingSphere) 要打包的值。
array (Array.<Number>) 要打包的数组。
startingIndex (Number) (default 0) 数组中开始打包元素的索引。
(static) projectTo2D(sphere, projection, result) → {BoundingSphere}
从三维世界坐标中的边界球创建二维边界球。
Parameters:
sphere (BoundingSphere) 要转换为二维的边界球体。
projection (Object) (default GeographicProjection) 投影到二维。
result (BoundingSphere) 存储结果的对象。
(static) transform(sphere, transform, result) → {BoundingSphere}
将4x4仿射变换矩阵应用于边界球。
Parameters:
sphere (BoundingSphere) 要应用转换的边界球。
transform (Matrix4) 要应用于边界球的变换矩阵。
result (BoundingSphere) 存储结果的对象。
(static) transformWithoutScale(sphere, transform, result) → {BoundingSphere}
将4x4仿射变换矩阵应用于没有比例的边界球。未验证变换矩阵是否具有1的均匀比例。此方法比使用BoundingSphere.transform计算一般边界球变换更快。
Parameters:
sphere (BoundingSphere) 要应用转换的边界球。
transform (Matrix4) 要应用于边界球的变换矩阵。
result (BoundingSphere) 存储结果的对象。
Example
var modelMatrix = bmgl.Transforms.eastNorthUpToFixedFrame(positionOnEllipsoid);
var boundingSphere = new bmgl.BoundingSphere();
var newBoundingSphere = bmgl.BoundingSphere.transformWithoutScale(boundingSphere, modelMatrix);
(static) union(left, right, result) → {BoundingSphere}
计算包含左右边界球的边界球。
Parameters:
left (BoundingSphere) 包围在边界球内的球。
right (BoundingSphere) 包围在边界球内的球。
result (BoundingSphere) 存储结果的对象。
(static) unpack(array, startingIndex, result) → {BoundingSphere}
从压缩数组中检索实例。
Parameters:
array (Array.<Number>) 压缩数组。
startingIndex (Number) (default 0) 要解包的元素的起始索引。
result (BoundingSphere) 存储结果的对象。
clone(result) → {BoundingSphere}
复制此边界球体实例。
Parameters:
result (BoundingSphere) 存储结果的对象。
computePlaneDistances(position, direction, result) → {Interval}
由矢量从边界球的中心到投射到方向上的位置的距离加/减边界球的半径。
如果您设想具有法向的无限多个平面,这将从与边界球体相交的位置计算到最近和最远平面的最小距离。
Parameters:
position (Cartesian3) 计算距离的位置。
direction (Cartesian3) 从位置开始的方向。
result (Interval) 存储最近和最远距离的间隔。
distanceSquaredTo(cartesian) → {Number}
计算从边界球上最近点到点的估计距离平方。
Parameters:
cartesian (Cartesian3) 重点
Example
// Sort bounding spheres from back to front
spheres.sort(function(a, b) {
    return b.distanceSquaredTo(camera.positionWC) - a.distanceSquaredTo(camera.positionWC);
});
equals(right) → {Boolean}
将此boundingsphere与提供的boundingsphere组件进行比较,如果相等,则返回true,否则返回false
Parameters:
right (BoundingSphere) 右侧边界球。
intersectPlane(plane) → {Intersect}
确定球体位于平面的哪一侧。
Parameters:
plane (Plane) 试飞的飞机。
isOccluded(occluder) → {Boolean}
确定遮挡器是否将球体隐藏在视图中。
Parameters:
occluder (Occluder) 封堵器。
volume() → {Number}
计算边界球的半径。