BoundingSphere

new LSGlobe.BoundingSphere ( center , radius )

具有中心和半径的包围球。
Name Type Default Description
center Cartesian3 Cartesian3.ZERO 可选 边界球的中心。
radius Number 0.0 可选 边界球的半径。
See:

Members

static LSGlobe.BoundingSphere.packedLength : Number

用于将对象打包到数组中的元素数。
球体的中心点。
Default Value: Cartesian3.ZERO
球体的半径。
Default Value: 0.0

Methods

static LSGlobe.BoundingSphere.clone (sphere, result ) BoundingSphere

复制一个BoundingSphere实例。
Name Type Description
sphere BoundingSphere 要复制的边界球。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。 (如果未定义球面,则返回未定义)

static LSGlobe.BoundingSphere.computePlaneDistances (sphere, position, direction, result ) Interval

向量从边界球的中心到投影到方向的位置计算出的距离正负边界球半径。
如果您想象法向方向上的平面数是无限的,这将计算到与边界球相交的位置中最接近和最远的平面。
Name Type Description
sphere BoundingSphere 边界球计算到的距离。
position Cartesian3 计算距离的位置。
direction Cartesian3 从位置开始的方向。
result Interval 可选 存储最近距离和最远距离的时间间隔。
Returns:
包围球在方向上与位置的最近和最远距离。

static LSGlobe.BoundingSphere.distanceSquaredTo (sphere, cartesian) Number

计算从边界球体上最近的点到点的平方距离的估计值。
Name Type Description
sphere BoundingSphere 球形。
cartesian Cartesian3 要点
Returns:
从边界球体到点的估计距离的平方。
Example:
// Sort bounding spheres from back to front
spheres.sort(function(a, b) {
    return LSGlobe.BoundingSphere.distanceSquaredTo(b, camera.positionWC) - LSGlobe.BoundingSphere.distanceSquaredTo(a, camera.positionWC);
});

static LSGlobe.BoundingSphere.equals ( left , right ) Boolean

比较提供的BoundingSphere组件并返回如果相等,则为 true ,否则为 false
Name Type Description
left BoundingSphere 可选 第一个BoundingSphere。
right BoundingSphere 可选 第二个BoundingSphere。
Returns:
真正 如果左右相等 除此以外。

static LSGlobe.BoundingSphere.expand (sphere, point, result ) BoundingSphere

通过扩大提供的球以包含提供的点来计算边界球。
Name Type Description
sphere BoundingSphere 一个扩大的范围。
point Cartesian3 包围球体中的点。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。

static LSGlobe.BoundingSphere.fromBoundingSpheres ( boundingSpheres , result ) BoundingSphere

计算包含提供的边界球数组的紧密拟合边界球。
Name Type Description
boundingSpheres Array.< BoundingSphere > 可选 包围球阵列。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。

static LSGlobe.BoundingSphere.fromCornerPoints ( corner , oppositeCorner , result ) BoundingSphere

从与轴对齐的边界框的角点计算边界球。球体盒子里紧紧地包裹着我。
Name Type Description
corner Cartesian3 可选 矩形上方的最小高度。
oppositeCorner Cartesian3 可选 矩形上方的最大高度。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。
Example:
// Create a bounding sphere around the unit cube
var sphere = LSGlobe.BoundingSphere.fromCornerPoints(new LSGlobe.Cartesian3(-0.5, -0.5, -0.5), new LSGlobe.Cartesian3(0.5, 0.5, 0.5));

static LSGlobe.BoundingSphere.fromEllipsoid (ellipsoid, result ) BoundingSphere

创建一个包围椭球的边界球。
Name Type Description
ellipsoid Ellipsoid 在其周围创建边界球的椭圆体。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。
Example:
var boundingSphere = LSGlobe.BoundingSphere.fromEllipsoid(ellipsoid);

static LSGlobe.BoundingSphere.fromEncodedCartesianVertices ( positionsHigh , positionsLow , result ) BoundingSphere

计算包含一个EncodedCartesian3列表的紧密拟合边界球,其中点是以X,Y,Z顺序存储在并行平面数组中。边界球是通过运行两个算法,朴素算法和Ritter算法。两个球体中较小的一个用来确保紧身。
Name Type Description
positionsHigh Array.<Number> 可选 边界球将包围的编码笛卡尔坐标的高位数组。每个点 由数组中的三个元素按X,Y,Z顺序形成。
positionsLow Array.<Number> 可选 包围球将包围的编码笛卡尔坐标的低位数组。每个点 由数组中的三个元素按X,Y,Z顺序形成。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数;如果未提供,则为新的BoundingSphere实例。
See:

static LSGlobe.BoundingSphere.fromOrientedBoundingBox (orientedBoundingBox, result ) BoundingSphere

计算包含提供的定向边界框的紧配合边界球。
Name Type Description
orientedBoundingBox OrientedBoundingBox 定向的边界框。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。

static LSGlobe.BoundingSphere.fromPoints ( positions , result ) BoundingSphere

计算包含3D笛卡尔点列表的紧配合边界球。边界球是通过运行两种算法(朴素算法和里特的算法。两个球体中较小的一个用于确保紧密配合。
Name Type Description
positions Array.< Cartesian3 > 可选 包围球将包围的点的数组。每个点必须具有 x y z 属性。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数;如果未提供,则为新的BoundingSphere实例。
See:

static LSGlobe.BoundingSphere.fromRectangle2D ( rectangle , projection , result ) BoundingSphere

根据以2D投影的矩形计算边界球。
Name Type Default Description
rectangle Rectangle 可选 在其周围创建边界球的矩形。
projection Object GeographicProjection 可选 用于将矩形投影为2D的投影。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。

static LSGlobe.BoundingSphere.fromRectangle3D ( rectangle , ellipsoid , surfaceHeight , result ) BoundingSphere

从3D中的矩形计算边界球。边界球是使用点的子样本创建的在椭圆形上并包含在矩形中。对于所有类型的椭球上的所有矩形,它可能并不准确。
Name Type Default Description
rectangle Rectangle 可选 用于创建边界球的有效矩形。
ellipsoid Ellipsoid Ellipsoid.WGS84 可选 用于确定矩形位置的椭圆体。
surfaceHeight Number 0.0 可选 椭球表面上方的高度。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。

static LSGlobe.BoundingSphere.fromRectangleWithHeights2D ( rectangle , projection , minimumHeight , maximumHeight , result ) BoundingSphere

根据以2D投影的矩形计算边界球。边界球占对象在矩形上方的最小和最大高度。
Name Type Default Description
rectangle Rectangle 可选 在其周围创建边界球的矩形。
projection Object GeographicProjection 可选 用于将矩形投影为2D的投影。
minimumHeight Number 0.0 可选 矩形上方的最小高度。
maximumHeight Number 0.0 可选 矩形上方的最大高度。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。

static LSGlobe.BoundingSphere.fromVertices ( positions , center , stride , result ) BoundingSphere

计算包含3D点列表的紧配合边界球,其中这些点是以X,Y,Z顺序存储在平面数组中。边界球是通过运行两个算法,朴素算法和Ritter算法。两个球体中较小的一个用来确保紧身。
Name Type Default Description
positions Array.<Number> 可选 包围球将包围的点的数组。每个点 由数组中的三个元素按X,Y,Z顺序形成。
center Cartesian3 Cartesian3.ZERO 可选 相对位置的位置,不必是 坐标系的原点。这在将头寸用于以下用途时非常有用 相对中心(RTC)渲染。
stride Number 3 可选 每个顶点的数组元素数。它必须至少为3,但可能会 更高。无论此参数的值如何,第一个位置的X坐标 在数组索引0处,Y坐标在数组索引1处,Z坐标在数组索引处 2.当跨度为3时,下一个位置的X坐标将从数组索引3开始。 跨度为5,但是跳过了两个数组元素,下一个位置从数组开始 索引5。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数;如果未提供,则为新的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 LSGlobe.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 = LSGlobe.BoundingSphere.fromVertices(points, center, 5);
See:

static LSGlobe.BoundingSphere.intersectPlane (sphere, plane) Intersect

确定球体位于平面的哪一侧。
Name Type Description
sphere BoundingSphere 要测试的边界球。
plane Plane 要测试的飞机。
Returns:
内部相交 如果整个球体都在平面的侧面 正常的指向 相交 如果整个领域是 在另一边 相交相交 如果球体 与平面相交。

static LSGlobe.BoundingSphere.isOccluded (sphere, occluder) Boolean

确定球面是否被遮挡物遮挡。
Name Type Description
sphere BoundingSphere 遮挡物周围的边界球。
occluder Occluder 封堵器。
Returns:
真正 如果看不见球体;除此以外

static LSGlobe.BoundingSphere.pack (value, array, startingIndex ) Array.<Number>

将提供的实例存储到提供的数组中。
Name Type Default Description
value BoundingSphere 要打包的值。
array Array.<Number> 要打包的数组。
startingIndex Number 0 可选 开始打包元素的数组索引。
Returns:
打包到的数组

static LSGlobe.BoundingSphere.projectTo2D (sphere, projection , result ) BoundingSphere

从3D世界坐标中的边界球创建2D边界球。
Name Type Default Description
sphere BoundingSphere 要转换为2D的边界球。
projection Object GeographicProjection 可选 投影到2D。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。

static LSGlobe.BoundingSphere.transform (sphere, transform, result ) BoundingSphere

将4x4仿射变换矩阵应用于边界球。
Name Type Description
sphere BoundingSphere 将变换应用于的边界球。
transform Matrix4 适用于边界球的变换矩阵。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。

static LSGlobe.BoundingSphere.transformWithoutScale (sphere, transform, result ) BoundingSphere

将4x4仿射变换矩阵应用于没有比例的边界球转换矩阵未经验证具有统一的标度1。此方法比使用 BoundingSphere.transform 来计算常规边界球变换要快。
Name Type Description
sphere BoundingSphere 将变换应用于的边界球。
transform Matrix4 适用于边界球的变换矩阵。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。
Example:
var modelMatrix = LSGlobe.Transforms.eastNorthUpToFixedFrame(positionOnEllipsoid);
var boundingSphere = new LSGlobe.BoundingSphere();
var newBoundingSphere = LSGlobe.BoundingSphere.transformWithoutScale(boundingSphere, modelMatrix);

static LSGlobe.BoundingSphere.union (left, right, result ) BoundingSphere

计算一个包含左边界球和右边界球的边界球。
Name Type Description
left BoundingSphere 包围在包围球体中的球体。
right BoundingSphere 包围在包围球体中的球体。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。

static LSGlobe.BoundingSphere.unpack (array, startingIndex , result ) BoundingSphere

从压缩数组中检索实例。
Name Type Default Description
array Array.<Number> 压缩数组。
startingIndex Number 0 可选 要解压缩的元素的起始索引。
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数;如果未提供,则为新的BoundingSphere实例。
复制此BoundingSphere实例。
Name Type Description
result BoundingSphere 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。

computePlaneDistances (position, direction, result ) Interval

向量从边界球的中心到投影到方向的位置计算出的距离正负边界球半径。
如果您想象法向方向上的平面数是无限的,这将计算到与边界球相交的位置中最接近和最远的平面。
Name Type Description
position Cartesian3 计算距离的位置。
direction Cartesian3 从位置开始的方向。
result Interval 可选 存储最近距离和最远距离的时间间隔。
Returns:
包围球在方向上与位置的最近和最远距离。

distanceSquaredTo (cartesian) Number

计算从边界球体上最近的点到点的平方距离的估计值。
Name Type Description
cartesian Cartesian3 要点
Returns:
从边界球体到点的估计距离的平方。
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
Name Type Description
right BoundingSphere 可选 右侧是BoundingSphere。
Returns:
真正 如果相等, 除此以外。
确定球体位于平面的哪一侧。
Name Type Description
plane Plane 要测试的飞机。
Returns:
内部相交 如果整个球体都在平面的侧面 正常的指向 相交 如果整个领域是 在另一边 相交相交 如果球体 与平面相交。

isOccluded (occluder) Boolean

确定球面是否被遮挡物遮挡。
Name Type Description
occluder Occluder 封堵器。
Returns:
真正 如果看不见球体;除此以外

volume () Number

计算BoundingSphere的半径。
Returns:
BoundingSphere的半径。