OrientedBoundingBox

new LSGlobe.OrientedBoundingBox ( center , halfAxes )

创建一个OrientedBoundingBox的实例。某个对象的OrientedBoundingBox是一个封闭且凸的长方体。它可以提供比 BoundingSphere AxisAlignedBoundingBox < /a>在许多情况下。
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.
var center = new LSGlobe.Cartesian3(1.0, 0.0, 0.0);
var halfAxes = LSGlobe.Matrix3.fromScale(new LSGlobe.Cartesian3(1.0, 3.0, 2.0), new LSGlobe.Matrix3());

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

Members

static LSGlobe.OrientedBoundingBox.packedLength : Number

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

Methods

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

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

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

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

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

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

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

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

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

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

static LSGlobe.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 LSGlobe.OrientedBoundingBox.intersectPlane (box, plane) Intersect

确定定向的边界框位于平面的哪一侧。
Name Type Description
box OrientedBoundingBox 要测试的定向边界框。
plane Plane 要测试的飞机。
Returns:
内部相交 如果整个盒子都在飞机侧面 正常的指向 相交 如果整个盒子是 在另一边 相交相交 如果盒子 与平面相交。

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

确定封堵器是否从视图中隐藏了边界框。
Name Type Description
box OrientedBoundingBox 遮挡对象周围的边界框。
occluder Occluder 封堵器。
Returns:
真正 如果该框不可见;除此以外

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

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

static LSGlobe.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实例(如果未提供)。

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 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:
真正 如果相等, 除此以外。
确定定向的边界框位于平面的哪一侧。
Name Type Description
plane Plane 要测试的飞机。
Returns:
内部相交 如果整个盒子都在飞机侧面 正常的指向 相交 如果整个盒子是 在另一边 相交相交 如果盒子 与平面相交。

isOccluded (occluder) Boolean

确定封堵器是否从视图中隐藏了边界框。
Name Type Description
occluder Occluder 封堵器。
Returns:
真正 如果看不见球体;除此以外