具有中心和半径的包围球。
Name | Type | Default | Description |
---|---|---|---|
center
|
Cartesian3 |
Cartesian3.ZERO
|
可选 边界球的中心。 |
radius
|
Number |
0.0
|
可选 边界球的半径。 |
Members
用于将对象打包到数组中的元素数。
center : Cartesian3
球体的中心点。
-
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:
包围球在方向上与位置的最近和最远距离。
计算从边界球体上最近的点到点的平方距离的估计值。
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);
});
比较提供的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实例。
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实例。
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:
确定球面是否被遮挡物遮挡。
Name | Type | Description |
---|---|---|
sphere
|
BoundingSphere | 遮挡物周围的边界球。 |
occluder
|
Occluder | 封堵器。 |
Returns:
真正
如果看不见球体;除此以外
假
。
将提供的实例存储到提供的数组中。
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实例。
clone ( result ) → BoundingSphere
复制此BoundingSphere实例。
Name | Type | Description |
---|---|---|
result
|
BoundingSphere | 可选 将结果存储到的对象。 |
Returns:
修改后的结果参数或新的BoundingSphere实例(如果未提供)。
computePlaneDistances (position, direction, result ) → Interval
向量从边界球的中心到投影到方向的位置计算出的距离正负边界球半径。
如果您想象法向方向上的平面数是无限的,这将计算到与边界球相交的位置中最接近和最远的平面。
如果您想象法向方向上的平面数是无限的,这将计算到与边界球相交的位置中最接近和最远的平面。
Name | Type | Description |
---|---|---|
position
|
Cartesian3 | 计算距离的位置。 |
direction
|
Cartesian3 | 从位置开始的方向。 |
result
|
Interval | 可选 存储最近距离和最远距离的时间间隔。 |
Returns:
包围球在方向上与位置的最近和最远距离。
计算从边界球体上最近的点到点的平方距离的估计值。
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);
});
将此BoundingSphere与提供的BoundingSphere组件进行比较,然后返回如果相等,则为
true
,否则为
false
。
Name | Type | Description |
---|---|---|
right
|
BoundingSphere | 可选 右侧是BoundingSphere。 |
Returns:
真正
如果相等,
假
除此以外。
intersectPlane (plane) → Intersect
确定球体位于平面的哪一侧。
Name | Type | Description |
---|---|---|
plane
|
Plane | 要测试的飞机。 |
Returns:
确定球面是否被遮挡物遮挡。
Name | Type | Description |
---|---|---|
occluder
|
Occluder | 封堵器。 |
Returns:
真正
如果看不见球体;除此以外
假
。
计算BoundingSphere的半径。
Returns:
BoundingSphere的半径。