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.
59 lines
2.0 KiB
59 lines
2.0 KiB
define([
|
|
'exports',
|
|
'./Matrix2-f2da41d4',
|
|
'./RuntimeError-ffe03243',
|
|
'./when-229515d6',
|
|
'./ComponentDatatype-17b06483',
|
|
], function (n, e, a, t, r) {
|
|
'use strict';
|
|
function i(n, a) {
|
|
(this.normal = e.Cartesian3.clone(n)), (this.distance = a);
|
|
}
|
|
i.fromPointNormal = function (n, a, r) {
|
|
var s = -e.Cartesian3.dot(a, n);
|
|
return t.defined(r) ? (e.Cartesian3.clone(a, r.normal), (r.distance = s), r) : new i(a, s);
|
|
};
|
|
var s = new e.Cartesian3();
|
|
(i.fromCartesian4 = function (n, a) {
|
|
var r = e.Cartesian3.fromCartesian4(n, s),
|
|
o = n.w;
|
|
return t.defined(a) ? (e.Cartesian3.clone(r, a.normal), (a.distance = o), a) : new i(r, o);
|
|
}),
|
|
(i.getPointDistance = function (n, a) {
|
|
return e.Cartesian3.dot(n.normal, a) + n.distance;
|
|
});
|
|
var o = new e.Cartesian3();
|
|
i.projectPointOntoPlane = function (n, a, r) {
|
|
t.defined(r) || (r = new e.Cartesian3());
|
|
var s = i.getPointDistance(n, a),
|
|
c = e.Cartesian3.multiplyByScalar(n.normal, s, o);
|
|
return e.Cartesian3.subtract(a, c, r);
|
|
};
|
|
var c = new e.Matrix4(),
|
|
l = new e.Cartesian4(),
|
|
d = new e.Cartesian3();
|
|
(i.transform = function (n, a, t) {
|
|
var r = n.normal,
|
|
s = n.distance,
|
|
o = e.Matrix4.inverseTranspose(a, c),
|
|
f = e.Cartesian4.fromElements(r.x, r.y, r.z, s, l);
|
|
f = e.Matrix4.multiplyByVector(o, f, f);
|
|
var C = e.Cartesian3.fromCartesian4(f, d);
|
|
return (
|
|
(f = e.Cartesian4.divideByScalar(f, e.Cartesian3.magnitude(C), f)), i.fromCartesian4(f, t)
|
|
);
|
|
}),
|
|
(i.clone = function (n, a) {
|
|
return t.defined(a)
|
|
? (e.Cartesian3.clone(n.normal, a.normal), (a.distance = n.distance), a)
|
|
: new i(n.normal, n.distance);
|
|
}),
|
|
(i.equals = function (n, a) {
|
|
return n.distance === a.distance && e.Cartesian3.equals(n.normal, a.normal);
|
|
}),
|
|
(i.ORIGIN_XY_PLANE = Object.freeze(new i(e.Cartesian3.UNIT_Z, 0))),
|
|
(i.ORIGIN_YZ_PLANE = Object.freeze(new i(e.Cartesian3.UNIT_X, 0))),
|
|
(i.ORIGIN_ZX_PLANE = Object.freeze(new i(e.Cartesian3.UNIT_Y, 0))),
|
|
(n.Plane = i);
|
|
});
|