OrientedBoundingBox

创建OrientedBoundingBox的实例。某个物体的定向接地盒是一个封闭凸的长方体。在许多情况下,它可以提供比BoundingSphereAxisAlignedBoundingBox更紧的边界体积。
new OrientedBoundingBox(center, halfAxes)
Parameters:
center (Cartesian3) (default Cartesian3.ZERO) 盒子的中心。
halfAxes (Matrix3) (default Matrix3.ZERO) 边界框的三个正交半轴。等价地,转换矩阵,旋转并缩放一个以原点为中心的0x0x0立方体。
Example
// Create an OrientedBoundingBox using a transformation matrix, a position where the box will be translated, and a scale.
var center = new bmgl.Cartesian3(1.0, 0.0, 0.0);
var halfAxes = bmgl.Matrix3.fromScale(new bmgl.Cartesian3(1.0, 3.0, 2.0), new bmgl.Matrix3());

var obb = new bmgl.OrientedBoundingBox(center, halfAxes);
See:

Members

(static) packedLength : Number

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

center : Cartesian3

盒子的中心。
Default Value: Cartesian3.ZERO

halfAxes : Matrix3

转换矩阵,将方框旋转到正确的位置。
Default Value: Matrix3.ZERO

Methods

(static) clone(box, result) → {OrientedBoundingBox}
复制OrientedBoundingBox实例。
Parameters:
box (OrientedBoundingBox) 要复制的边界框。
result (OrientedBoundingBox) 存储结果的对象。
(static) computePlaneDistances(box, position, direction, result) → {Interval}
由矢量计算的从边界框中心到投射到方向上的位置的距离。
如果您设想具有法向的无限多个平面,这将从与边界框相交的位置计算到最近和最远平面的最小距离。
Parameters:
box (OrientedBoundingBox) 要计算距离的边界框。
position (Cartesian3) 计算距离的位置。
direction (Cartesian3) 从位置开始的方向。
result (Interval) 存储最近和最远距离的间隔。
(static) distanceSquaredTo(box, cartesian) → {Number}
计算从边界框上最近点到点的估计距离平方。
Parameters:
box (OrientedBoundingBox) 盒子。
cartesian (Cartesian3) 重点
Example
// Sort bounding boxes from back to front
boxes.sort(function(a, b) {
    return bmgl.OrientedBoundingBox.distanceSquaredTo(b, camera.positionWC) - bmgl.OrientedBoundingBox.distanceSquaredTo(a, camera.positionWC);
});
(static) equals(left, right) → {Boolean}
比较提供的orientedboundingbox组件,如果相等则返回true,否则返回false
Parameters:
left (OrientedBoundingBox) 第一个定向边界框。
right (OrientedBoundingBox) 第二个定向接地框。
(static) fromPoints(positions, result) → {OrientedBoundingBox}
计算给定位置的定向边界框的实例。这是使用面向边界框解决方案(博士论文)实现Stefan Gottschalk的冲突查询。参考:http://gamma.cs.unc.edu/users/gottschalk/main.pdf
Parameters:
positions (Array.<Cartesian3>) 边界框将包含的Cartesian3点列表。
result (OrientedBoundingBox) 存储结果的对象。
Example
// Compute an object oriented bounding box enclosing two points.
var box = bmgl.OrientedBoundingBox.fromPoints([new bmgl.Cartesian3(2, 0, 0), new bmgl.Cartesian3(-2, 0, 0)]);
(static) fromRectangle(rectangle, minimumHeight, maximumHeight, ellipsoid, result) → {OrientedBoundingBox}
计算一个定向边界框,该边界框在Ellipsoid的表面上为Rectangle。无法保证边界框的方向。
Parameters:
rectangle (Rectangle) 椭球面上的地图矩形。
minimumHeight (Number) (default 0.0) 瓦片内的最小高度(高程)。
maximumHeight (Number) (default 0.0) 瓦片内的最大高度(高程)。
ellipsoid (Ellipsoid) (default Ellipsoid.WGS84) 定义矩形的椭球体。
result (OrientedBoundingBox) 存储结果的对象。
Throws
(static) intersectPlane(box, plane) → {Intersect}
确定定向边界框位于平面的哪一侧。
Parameters:
box (OrientedBoundingBox) 要测试的定向边界框。
plane (Plane) 试飞的飞机。
(static) isOccluded(box, occluder) → {Boolean}
确定封堵器是否从视图中隐藏边界框。
Parameters:
box (OrientedBoundingBox) 包围被遮挡对象的边界框。
occluder (Occluder) 封堵器。
(static) pack(value, array, startingIndex) → {Array.<Number>}
将提供的实例存储到提供的数组中。
Parameters:
value (OrientedBoundingBox) 要打包的值。
array (Array.<Number>) 要打包的数组。
startingIndex (Number) (default 0) 数组中开始打包元素的索引。
(static) unpack(array, startingIndex, result) → {OrientedBoundingBox}
从压缩数组中检索实例。
Parameters:
array (Array.<Number>) 压缩数组。
startingIndex (Number) (default 0) 要解包的元素的起始索引。
result (OrientedBoundingBox) 存储结果的对象。
clone(result) → {OrientedBoundingBox}
复制此OrientedBoundingBox实例。
Parameters:
result (OrientedBoundingBox) 存储结果的对象。
computePlaneDistances(position, direction, result) → {Interval}
由矢量计算的从边界框中心到投射到方向上的位置的距离。
如果您设想具有法向的无限多个平面,这将从与边界框相交的位置计算到最近和最远平面的最小距离。
Parameters:
position (Cartesian3) 计算距离的位置。
direction (Cartesian3) 从位置开始的方向。
result (Interval) 存储最近和最远距离的间隔。
distanceSquaredTo(cartesian) → {Number}
计算从边界框上最近点到点的估计距离平方。
Parameters:
cartesian (Cartesian3) 重点
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
Parameters:
right (OrientedBoundingBox) 右侧定向接地框。
intersectPlane(plane) → {Intersect}
确定定向边界框位于平面的哪一侧。
Parameters:
plane (Plane) 试飞的飞机。
isOccluded(occluder) → {Boolean}
确定封堵器是否从视图中隐藏边界框。
Parameters:
occluder (Occluder) 封堵器。