You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.9 KiB
96 lines
2.9 KiB
define([
|
|
'exports',
|
|
'./Matrix2-f2da41d4',
|
|
'./RuntimeError-ffe03243',
|
|
'./when-229515d6',
|
|
'./Transforms-7cd3197b',
|
|
], function (e, n, i, t, a) {
|
|
'use strict';
|
|
function m(e, i, a) {
|
|
(this.minimum = n.Cartesian3.clone(t.defaultValue(e, n.Cartesian3.ZERO))),
|
|
(this.maximum = n.Cartesian3.clone(t.defaultValue(i, n.Cartesian3.ZERO))),
|
|
(a = t.defined(a)
|
|
? n.Cartesian3.clone(a)
|
|
: n.Cartesian3.midpoint(this.minimum, this.maximum, new n.Cartesian3())),
|
|
(this.center = a);
|
|
}
|
|
(m.fromPoints = function (e, i) {
|
|
if ((t.defined(i) || (i = new m()), !t.defined(e) || 0 === e.length))
|
|
return (
|
|
(i.minimum = n.Cartesian3.clone(n.Cartesian3.ZERO, i.minimum)),
|
|
(i.maximum = n.Cartesian3.clone(n.Cartesian3.ZERO, i.maximum)),
|
|
(i.center = n.Cartesian3.clone(n.Cartesian3.ZERO, i.center)),
|
|
i
|
|
);
|
|
for (
|
|
var a = e[0].x,
|
|
r = e[0].y,
|
|
s = e[0].z,
|
|
u = e[0].x,
|
|
c = e[0].y,
|
|
o = e[0].z,
|
|
l = e.length,
|
|
d = 1;
|
|
d < l;
|
|
d++
|
|
) {
|
|
var f = e[d],
|
|
x = f.x,
|
|
C = f.y,
|
|
h = f.z;
|
|
(a = Math.min(x, a)),
|
|
(u = Math.max(x, u)),
|
|
(r = Math.min(C, r)),
|
|
(c = Math.max(C, c)),
|
|
(s = Math.min(h, s)),
|
|
(o = Math.max(h, o));
|
|
}
|
|
var y = i.minimum;
|
|
(y.x = a), (y.y = r), (y.z = s);
|
|
var p = i.maximum;
|
|
return (p.x = u), (p.y = c), (p.z = o), (i.center = n.Cartesian3.midpoint(y, p, i.center)), i;
|
|
}),
|
|
(m.clone = function (e, i) {
|
|
if (t.defined(e))
|
|
return t.defined(i)
|
|
? ((i.minimum = n.Cartesian3.clone(e.minimum, i.minimum)),
|
|
(i.maximum = n.Cartesian3.clone(e.maximum, i.maximum)),
|
|
(i.center = n.Cartesian3.clone(e.center, i.center)),
|
|
i)
|
|
: new m(e.minimum, e.maximum, e.center);
|
|
}),
|
|
(m.equals = function (e, i) {
|
|
return (
|
|
e === i ||
|
|
(t.defined(e) &&
|
|
t.defined(i) &&
|
|
n.Cartesian3.equals(e.center, i.center) &&
|
|
n.Cartesian3.equals(e.minimum, i.minimum) &&
|
|
n.Cartesian3.equals(e.maximum, i.maximum))
|
|
);
|
|
});
|
|
var r = new n.Cartesian3();
|
|
(m.intersectPlane = function (e, i) {
|
|
r = n.Cartesian3.subtract(e.maximum, e.minimum, r);
|
|
var t = n.Cartesian3.multiplyByScalar(r, 0.5, r),
|
|
m = i.normal,
|
|
s = t.x * Math.abs(m.x) + t.y * Math.abs(m.y) + t.z * Math.abs(m.z),
|
|
u = n.Cartesian3.dot(e.center, m) + i.distance;
|
|
return u - s > 0
|
|
? a.Intersect.INSIDE
|
|
: u + s < 0
|
|
? a.Intersect.OUTSIDE
|
|
: a.Intersect.INTERSECTING;
|
|
}),
|
|
(m.prototype.clone = function (e) {
|
|
return m.clone(this, e);
|
|
}),
|
|
(m.prototype.intersectPlane = function (e) {
|
|
return m.intersectPlane(this, e);
|
|
}),
|
|
(m.prototype.equals = function (e) {
|
|
return m.equals(this, e);
|
|
}),
|
|
(e.AxisAlignedBoundingBox = m);
|
|
});
|