一个有中心和半径的包围球。
Name | Type | Default | Description |
---|---|---|---|
center |
Cartesian3 |
Cartesian3.ZERO
|
optional 包围球的中心。 |
radius |
Number |
0.0
|
optional 包围球的半径 |
Members
-
用于将对象打包到数组中的元素数量。
-
center : Cartesian3
-
球体的中心点。
-
Default Value:
Cartesian3.ZERO
-
球体的半径。
-
Default Value:
0.0
Methods
-
staticSuperMap3D.BoundingSphere.clone(sphere, result) → BoundingSphere
-
复制此 BoundingSphere 实例。
Name Type Description sphere
BoundingSphere 要复制的包围球。 result
BoundingSphere optional 存储结果的对象。 Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。 -
staticSuperMap3D.BoundingSphere.computePlaneDistances(sphere, position, direction, result) → Interval
-
由向量计算的距离,从包围球的中心到投影到方向上的位置加上/减去包围球的半径。 如果您想象无限数量的具有法线方向的平面,这将计算与包围球相交的位置到最近和最远平面的最小距离。
Name Type Description sphere
BoundingSphere 计算距离的包围球。 position
Cartesian3 要计算距离的位置。 direction
Cartesian3 从位置的方向。 result
Interval optional 存储最近和最远距离的间隔。 Returns:
从方向上的位置到包围球上最近和最远的距离。 -
计算从包围球上最近的点到点的估计距离平方。
Name Type Description sphere
BoundingSphere 球体。 cartesian
Cartesian3 点。 Returns:
从包围球到该点的估计距离平方。Example:
// Sort bounding spheres from back to front spheres.sort(function(a, b) { return SuperMap3D.BoundingSphere.distanceSquaredTo(b, camera.positionWC) - SuperMap3D.BoundingSphere.distanceSquaredTo(a, camera.positionWC); });
-
将此 BoundingSphere 与提供的 BoundingSphere 组件进行比较,如果它们相等则返回 true ,否则返回 false 。
Name Type Description left
BoundingSphere optional 第一个BoundingSphere. right
BoundingSphere optional 第二个BoundingSphere. Returns:
如果它们相等,则为 true ,否则为 false 。 -
staticSuperMap3D.BoundingSphere.expand(sphere, point, result) → BoundingSphere
-
通过扩展所提供的球体以包含所提供的点来计算包围球。
Name Type Description sphere
BoundingSphere 一个要扩展的球体。 point
Cartesian3 包围在包围球中的点。 result
BoundingSphere optional 存储结果的对象。 Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。 -
staticSuperMap3D.BoundingSphere.fromBoundingSpheres(boundingSpheres, result) → BoundingSphere
-
计算一个紧密拟合的包围球,包围提供的包围球数组。
Name Type Description boundingSpheres
Array.<BoundingSphere> 包围球的数组 result
BoundingSphere optional 存储结果的对象。 Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。 -
staticSuperMap3D.BoundingSphere.fromCornerPoints(corner, oppositeCorner, result) → BoundingSphere
-
从与轴对齐的包围盒的角点计算一个包围球。 球体紧密而完整地包裹着box。
Name Type Description corner
Cartesian3 optional 矩形上的最小高度。 oppositeCorner
Cartesian3 optional 矩形上的最大高度。 result
BoundingSphere optional 存储结果的对象。 Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。Example:
// Create a bounding sphere around the unit cube var sphere = SuperMap3D.BoundingSphere.fromCornerPoints(new SuperMap3D.Cartesian3(-0.5, -0.5, -0.5), new SuperMap3D.Cartesian3(0.5, 0.5, 0.5));
-
staticSuperMap3D.BoundingSphere.fromEllipsoid(ellipsoid, result) → BoundingSphere
-
创建一个包围椭球体的包围球。
Name Type Description ellipsoid
Ellipsoid 围绕其创建包围球的椭球体。 result
BoundingSphere optional 存储结果的对象。 Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。Example:
var boundingSphere = SuperMap3D.BoundingSphere.fromEllipsoid(ellipsoid);
-
staticSuperMap3D.BoundingSphere.fromEncodedCartesianVertices(positionsHigh, positionsLow, result) → BoundingSphere
-
计算一个包含 EncodedCartesian3 列表的紧合包围球,其中的点以 X、Y、Z 顺序存储在平行平面数组中。 包围球是通过运行两种算法来计算的,一种朴素算法和里特算法。 两个球体中较小的一个用于确保紧密配合。
Name Type Description positionsHigh
Array.<Number> 包围球将包围的编码Cartesian的高位数组。每个点由数组中的三个元素组成,顺序为 X、Y、Z。 positionsLow
Array.<Number> 包围球将包围的编码Cartesian的低位数组。每个点由数组中的三个元素组成,顺序为 X、Y、Z。 result
BoundingSphere optional 存储结果的对象。 Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。 -
staticSuperMap3D.BoundingSphere.fromOrientedBoundingBox(orientedBoundingBox, result) → BoundingSphere
-
计算封闭所提供的定向包围盒的紧密配合包围球。
Name Type Description orientedBoundingBox
OrientedBoundingBox 定向包围盒。 result
BoundingSphere optional 存储结果的对象。 Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。 -
staticSuperMap3D.BoundingSphere.fromPoints(positions, result) → BoundingSphere
-
计算三维Cartesian点列表的紧密拟合包围球。 包围球是通过运行两种算法来计算的:朴素算法和里特算法。两个球体中较小的一个用于确保紧密配合。
Name Type Description positions
Array.<Cartesian3> 包围球将包围的点数组。每个点必须具有 x 、 y 和 z 属性。 result
BoundingSphere optional 存储结果的对象。 Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。 -
staticSuperMap3D.BoundingSphere.fromRectangle2D(rectangle, projection, result) → BoundingSphere
-
从二维投影的矩形计算包围球体。
Name Type Default Description rectangle
Rectangle 围绕其创建包围球的矩形。 projection
Object GeographicProjection
optional 用于将矩形投影为 二维 的投影。 result
BoundingSphere optional 存储结果的对象。 Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。 -
staticSuperMap3D.BoundingSphere.fromRectangle3D(rectangle, ellipsoid, surfaceHeight, result) → BoundingSphere
-
从三维矩形计算包围球。 包围球是使用椭圆体上的点的子样本创建的,并包含在矩形中。对于所有类型的椭球体上的所有矩形,它可能并不准确。
Name Type Default Description rectangle
Rectangle 用于创建包围球的有效矩形。 ellipsoid
Ellipsoid Ellipsoid.WGS84
optional 用于确定矩形位置的椭球体。 surfaceHeight
Number 0.0
optional 椭圆体表面上方的高度。 result
BoundingSphere optional 存储结果的对象。 Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。 -
staticSuperMap3D.BoundingSphere.fromRectangleWithHeights2D(rectangle, projection, minimumHeight, maximumHeight, result) → BoundingSphere
-
从二维投影的矩形计算包围球。 包围球说明了对象在矩形上的最小和最大高度。
Name Type Default Description rectangle
Rectangle 围绕其创建包围球的矩形。 projection
Object GeographicProjection
optional 用于将矩形投影为二维的投影。 minimumHeight
Number 0.0
optional 矩形上的最小高度。 maximumHeight
Number 0.0
optional 矩形上的最大高度。 result
BoundingSphere optional 存储结果的对象。 Returns:
修改后的结果参数或新的包围球实例(如果未提供)。 -
staticSuperMap3D.BoundingSphere.fromVertices(positions, center, stride, result) → BoundingSphere
-
计算一个包含三维点列表的紧密包围球,其中点以 X、Y、Z 顺序存储在平面数组中。 包围球是通过运行两种算法来计算的,一种朴素算法和里特算法。 两个球体中较小的一个用于确保紧密配合。
Name Type Default Description positions
Array.<Number> 包围球将包围的点数组。每个点由数组中的三个元素组成,顺序为 X、Y、Z。 center
Cartesian3 Cartesian3.ZERO
optional 位置的相对位置,不一定是坐标系的原点。当位置用于相对于中心(RTC)渲染时,这一点非常有用。 stride
Number 3
optional 每个顶点的数组元素数。它必须至少为 3,但可能更高。无论该参数的值如何,第一个位置的 X 坐标在数组索引 0 处,Y 坐标在数组索引 1 处,Z 坐标在数组索引 2 处。当 stride 为 3 时,第一个位置的 X 坐标然后下一个位置从数组索引 3 开始。但是,如果步幅为 5,则跳过两个数组元素,下一个位置从数组索引 5 开始。 result
BoundingSphere optional 存储结果的对象。 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 SuperMap3D.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 = SuperMap3D.BoundingSphere.fromVertices(points, center, 5);
See:
-
staticSuperMap3D.BoundingSphere.intersectPlane(sphere, plane) → Intersect
-
确定球体位于平面的哪一侧。
Name Type Description sphere
BoundingSphere 要测试的包围球。 plane
Plane 要测试的平面。 Returns:
如果整个球体在法线指向的平面的一侧,则返回Intersect.INSIDE
。如果整个球体在另一侧,则返回Intersect.OUTSIDE
如果球体与平面相交,则返回Intersect.INTERSECTING
。 -
确定球体是否被遮挡物隐藏在视野之外。
Name Type Description sphere
BoundingSphere 包围被遮挡物体的包围球。 occluder
Occluder 遮光板。 Returns:
如果球体不可见,则为 true ;否则 false 。 -
将提供的实例存储到提供的数组中。
Name Type Default Description value
BoundingSphere 要打包的值。 array
Array.<Number> 要打包的数组。 startingIndex
Number 0
optional 开始打包元素的数组索引。 Returns:
装入的数组。 -
staticSuperMap3D.BoundingSphere.projectTo2D(sphere, projection, result) → BoundingSphere
-
从 3D 地理坐标中的包围球创建二维包围球。
Name Type Default Description sphere
BoundingSphere 要转换为 二维 的包围球。 projection
Object GeographicProjection
optional 要转换为 二维 的包围球。 result
BoundingSphere optional 存储结果的对象。 Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。 -
staticSuperMap3D.BoundingSphere.transform(sphere, transform, result) → BoundingSphere
-
将 4x4 仿真变换矩阵应用于包围球。
Name Type Description sphere
BoundingSphere 要应用变换的包围球。 transform
Matrix4 应用于包围球的变换矩阵。 result
BoundingSphere optional 存储结果的对象。 Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。 -
staticSuperMap3D.BoundingSphere.transformWithoutScale(sphere, transform, result) → BoundingSphere
-
应用一个4x4仿射变换矩阵到一个没有尺度的包围球,没有验证变换矩阵具有1的统一标度。 此方法比使用
BoundingSphere.transform
计算一般包围球变换更快。Name Type Description sphere
BoundingSphere 应用于变换的包围球。 transform
Matrix4 应用于包围球的变换矩阵。 result
BoundingSphere optional 存储结果的对象。 Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。Example:
var modelMatrix = SuperMap3D.Transforms.eastNorthUpToFixedFrame(positionOnEllipsoid); var boundingSphere = new SuperMap3D.BoundingSphere(); var newBoundingSphere = SuperMap3D.BoundingSphere.transformWithoutScale(boundingSphere, modelMatrix);
-
staticSuperMap3D.BoundingSphere.union(left, right, result) → BoundingSphere
-
计算包含左右包围球的包围球。
Name Type Description left
BoundingSphere 包围在包围球中的球体。 right
BoundingSphere 包围在包围球中的球体。 result
BoundingSphere optional 存储结果的对象。 Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。 -
staticSuperMap3D.BoundingSphere.unpack(array, startingIndex, result) → BoundingSphere
-
从打包数组中检索实例。
Name Type Default Description array
Array.<Number> 打包的数组。 startingIndex
Number 0
optional 要解包的元素的起始索引。 result
BoundingSphere optional 存储结果的对象。 Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。 -
clone(result) → BoundingSphere
-
复制此 BoundingSphere 实例。
Name Type Description result
BoundingSphere optional 存储结果的对象。 Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。 -
computePlaneDistances(position, direction, result) → Interval
-
由向量计算的距离,从包围球的中心到投影到方向上的位置加上/减去包围球的半径。 如果您想象无限数量的具有法线方向的平面,这将计算与包围球相交的位置到最近和最远平面的最小距离。
Name Type Description position
Cartesian3 计算距离的位置。 direction
Cartesian3 从位置开始的方向。 result
Interval optional 用于存储最近和最远距离的间隔。 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 optional 右侧的BoundingSphere。 Returns:
如果它们相等,则为 true ,否则为 false 。 -
intersectPlane(plane) → Intersect
-
确定球体位于平面的哪一侧。
Name Type Description plane
Plane 要测试的平面 Returns:
如果整个球体在法线指向的平面的一侧,则返回为Intersect.INSIDE
如果整个球体在另一侧,则返回Intersect.OUTSIDE
,如果球体与平面相交,则返回Intersect.INTERSECTING
。 -
确定球体是否被遮挡物隐藏在视野之外。
Name Type Description occluder
Occluder 遮挡物。 Returns:
如果球体不可见,则为 true ;否则 false 。