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

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);
});