OrientedBoundingBox

new Cesium.OrientedBoundingBox ( center , halfAxes )

创建 OrientedBoundingBox 的实例。某个对象的 OrientedBoundingBox 是一个封闭的凸长方体。在许多情况下,它可以提供比 BoundingSphere AxisAlignedBoundingBox 更紧密的包围体。
Name Type Default Description
center Cartesian3 Cartesian3.ZERO 选框的中心。
halfAxes Matrix3 Matrix3.ZERO 可选 边界框的三个正交半轴。等效地,变换矩阵,旋转和缩放以原点为中心的 0x0x0 立方体。
Example:
// Create an OrientedBoundingBox using a transformation matrix, a position where the box will be translated, and a scale.
const center = new Cesium.Cartesian3(1.0, 0.0, 0.0);
const halfAxes = Cesium.Matrix3.fromScale(new Cesium.Cartesian3(1.0, 3.0, 2.0), new Cesium.Matrix3());

const obb = new Cesium.OrientedBoundingBox(center, halfAxes);
See:

Members

static Cesium.OrientedBoundingBox.packedLength : Number

用于将对象打包到数组中的元素数。
盒子的中心。
Default Value: Cartesian3.ZERO
变换矩阵,将框旋转到正确的位置。
Default Value: Matrix3.ZERO

Methods

static Cesium.OrientedBoundingBox.clone (box, result ) OrientedBoundingBox

复制 OrientedBoundingBox 实例。
Name Type Description
box OrientedBoundingBox 要复制的边界框。
result OrientedBoundingBox 可选 存储结果的对象。
Returns:
如果未提供修改的结果参数或新的 OrientedBoundingBox 实例。 (如果 box 未定义,则返回 undefined)

static Cesium.OrientedBoundingBox.computeCorners (box, result ) Array.< Cartesian3 >

计算定向边界框的八个角。角按 (-X, -Y, -Z), (-X, -Y, +Z), (-X, +Y, -Z), (-X, +Y, +Z), ( +X, -Y, -Z), (+X, -Y, +Z), (+X, +Y, -Z), (+X, +Y, +Z)。
Name Type Description
box OrientedBoundingBox 定向边界框。
result Array.< Cartesian3 > 可选 存储角点的八个 Cartesian3 实例的数组。
Returns:
如果未提供修改的结果参数或新数组。

static Cesium.OrientedBoundingBox.computePlaneDistances (box, position, direction, result ) Interval

由向量计算的从边界框中心到投影到方向上的位置的距离。
如果您想象无限数量的具有法线方向的平面,这将计算与边界框相交的位置到最近和最远平面的最小距离。
Name Type Description
box OrientedBoundingBox 计算距离的边界框。
position Cartesian3 计算距离的位置。
direction Cartesian3 从位置的方向。
result Interval 可选 用于存储最近和最远距离的间隔。
Returns:
边界框上从位置到方向的最近和最远距离。

static Cesium.OrientedBoundingBox.computeTransformation (box, result) Matrix4

从定向边界框计算变换矩阵。
Name Type Description
box OrientedBoundingBox 定向边界框。
result Matrix4 存储结果的对象。
Returns:
如果未提供修改的结果参数或新的 Matrix4 实例。

static Cesium.OrientedBoundingBox.distanceSquaredTo (box, cartesian) Number

计算从边界框上的最近点到点的估计距离平方。
Name Type Description
box OrientedBoundingBox 盒子。
cartesian Cartesian3 重点
Returns:
从定向边界框到该点的距离平方。如果点在框内,则返回 0。
Example:
// Sort bounding boxes from back to front
boxes.sort(function(a, b) {
    return Cesium.OrientedBoundingBox.distanceSquaredTo(b, camera.positionWC) - Cesium.OrientedBoundingBox.distanceSquaredTo(a, camera.positionWC);
});

static Cesium.OrientedBoundingBox.equals (left, right) Boolean

比较提供的 OrientedBoundingBox 组件,如果它们相等则返回 true ,否则返回 false
Name Type Description
left OrientedBoundingBox 第一个 OrientedBoundingBox。
right OrientedBoundingBox 第二个OrientedBoundingBox。
Returns:
如果左右相等,则为 true ,否则为 false

static Cesium.OrientedBoundingBox.fromPoints ( positions , result ) OrientedBoundingBox

计算给定位置的 OrientedBoundingBox 的实例。这是使用定向边界框解决方案(博士论文)的 Stefan Gottschalk 的碰撞查询的实现。参考:http://gamma.cs.unc.edu/users/gottschalk/main.pdf
Name Type Description
positions Array.< Cartesian3 > 可选 边界框将包围的 Cartesian3 3点列表。
result OrientedBoundingBox 可选 存储结果的对象。
Returns:
修改后的结果参数或新的 OrientedBoundingBox 实例(如果未提供)。
Example:
// Compute an object oriented bounding box enclosing two points.
const box = Cesium.OrientedBoundingBox.fromPoints([new Cesium.Cartesian3(2, 0, 0), new Cesium.Cartesian3(-2, 0, 0)]);

static Cesium.OrientedBoundingBox.fromRectangle (rectangle, minimumHeight , maximumHeight , ellipsoid , result ) OrientedBoundingBox

计算一个 OrientedBoundingBox,它在 Ellipsoid 的表面上限定一个 Rectangle 。不能保证边界框的方向。
Name Type Default Description
rectangle Rectangle 椭球表面上的制图矩形。
minimumHeight Number 0.0 可选 瓦片内的最小高度(海拔)。
maximumHeight Number 0.0 可选 瓦片内的最大高度(海拔)。
ellipsoid Ellipsoid Ellipsoid.WGS84 可选 定义矩形的椭球体。
result OrientedBoundingBox 可选 存储结果的对象。
Returns:
如果未提供修改的结果参数或新的 OrientedBoundingBox 实例。
Throws:

static Cesium.OrientedBoundingBox.fromTransformation (transformation, result ) OrientedBoundingBox

计算限定仿射变换的 OrientedBoundingBox。
Name Type Description
transformation Matrix4 仿射变换。
result OrientedBoundingBox 可选 存储结果的对象。
Returns:
如果未提供修改的结果参数或新的 OrientedBoundingBox 实例。

static Cesium.OrientedBoundingBox.intersectPlane (box, plane) Intersect

确定定向边界框位于平面的哪一侧。
Name Type Description
box OrientedBoundingBox 要测试的定向边界框。
plane Plane 要测试的飞机。
Returns:
如果整个盒子在法线指向的平面的一侧,则 Intersect.INSIDE ,如果整个盒子在另一侧,则 Intersect.OUTSIDE ,如果盒子与平面相交,则 Intersect.INTERSECTING

static Cesium.OrientedBoundingBox.isOccluded (box, occluder) Boolean

确定边界框是否被遮挡物从视图中隐藏。
Name Type Description
box OrientedBoundingBox 被遮挡对象周围的边界框。
occluder Occluder 封堵器。
Returns:
如果该框不可见,则为 true ;否则 false

static Cesium.OrientedBoundingBox.pack (value, array, startingIndex ) Array.<Number>

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

static Cesium.OrientedBoundingBox.unpack (array, startingIndex , result ) OrientedBoundingBox

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

computeCorners ( result ) Array.< Cartesian3 >

计算定向边界框的八个角。角按 (-X, -Y, -Z), (-X, -Y, +Z), (-X, +Y, -Z), (-X, +Y, +Z), ( +X, -Y, -Z), (+X, -Y, +Z), (+X, +Y, -Z), (+X, +Y, +Z)。
Name Type Description
result Array.< Cartesian3 > 可选 存储角点的八个 Cartesian3 实例的数组。
Returns:
如果未提供修改的结果参数或新数组。

computePlaneDistances (position, direction, result ) Interval

由向量计算的从边界框中心到投影到方向上的位置的距离。
如果您想象无限数量的具有法线方向的平面,这将计算与边界框相交的位置到最近和最远平面的最小距离。
Name Type Description
position Cartesian3 计算距离的位置。
direction Cartesian3 从位置的方向。
result Interval 可选 用于存储最近和最远距离的间隔。
Returns:
边界框上从位置到方向的最近和最远距离。

computeTransformation (result) Matrix4

从定向边界框计算变换矩阵。
Name Type Description
result Matrix4 存储结果的对象。
Returns:
如果未提供修改的结果参数或新的 Matrix4 实例。

distanceSquaredTo (cartesian) Number

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

equals ( right ) Boolean

将此 OrientedBoundingBox 与提供的 OrientedBoundingBox 组件进行比较,如果它们相等则返回 true ,否则返回 false
Name Type Description
right OrientedBoundingBox 可选 右手边的 OrientedBoundingBox。
Returns:
如果它们相等,则为 true ,否则为 false
确定定向边界框位于平面的哪一侧。
Name Type Description
plane Plane 要测试的飞机。
Returns:
如果整个盒子在法线指向的平面的一侧,则 Intersect.INSIDE ,如果整个盒子在另一侧,则 Intersect.OUTSIDE ,如果盒子与平面相交,则 Intersect.INTERSECTING

isOccluded (occluder) Boolean

确定边界框是否被遮挡物从视图中隐藏。
Name Type Description
occluder Occluder 封堵器。
Returns:
如果球体不可见,则为 true ;否则 false