Plane-f8d22530.js 2.0 KB

1
  1. define(["exports","./Cartographic-67e73ef9","./Check-52a7d806","./when-92c6cf3c","./Math-92c3b5f7","./PrimitiveType-cdfe443e"],(function(t,e,n,o,r,a){"use strict";function i(t,o){if(n.o.typeOf.object("normal",t),!r.e.equalsEpsilon(e.t.magnitude(t),1,r.e.EPSILON6))throw new n.t("normal must be normalized.");n.o.typeOf.number("distance",o),this.normal=e.t.clone(t),this.distance=o}i.fromPointNormal=function(t,a,c){if(n.o.typeOf.object("point",t),n.o.typeOf.object("normal",a),!r.e.equalsEpsilon(e.t.magnitude(a),1,r.e.EPSILON6))throw new n.t("normal must be normalized.");var l=-e.t.dot(a,t);return o.e(c)?(e.t.clone(a,c.normal),c.distance=l,c):new i(a,l)};var c=new e.t;i.fromCartesian4=function(t,a){n.o.typeOf.object("coefficients",t);var l=e.t.fromCartesian4(t,c),f=t.w;if(!r.e.equalsEpsilon(e.t.magnitude(l),1,r.e.EPSILON6))throw new n.t("normal must be normalized.");return o.e(a)?(e.t.clone(l,a.normal),a.distance=f,a):new i(l,f)},i.getPointDistance=function(t,o){return n.o.typeOf.object("plane",t),n.o.typeOf.object("point",o),e.t.dot(t.normal,o)+t.distance};var l=new e.t;i.projectPointOntoPlane=function(t,r,a){n.o.typeOf.object("plane",t),n.o.typeOf.object("point",r),o.e(a)||(a=new e.t);var c=i.getPointDistance(t,r),f=e.t.multiplyByScalar(t.normal,c,l);return e.t.subtract(r,f,a)};var f=new e.t;i.transform=function(t,o,r){return n.o.typeOf.object("plane",t),n.o.typeOf.object("transform",o),a.y.multiplyByPointAsVector(o,t.normal,c),e.t.normalize(c,c),e.t.multiplyByScalar(t.normal,-t.distance,f),a.y.multiplyByPoint(o,f,f),i.fromPointNormal(f,c,r)},i.clone=function(t,r){return n.o.typeOf.object("plane",t),o.e(r)?(e.t.clone(t.normal,r.normal),r.distance=t.distance,r):new i(t.normal,t.distance)},i.equals=function(t,o){return n.o.typeOf.object("left",t),n.o.typeOf.object("right",o),t.distance===o.distance&&e.t.equals(t.normal,o.normal)},i.ORIGIN_XY_PLANE=Object.freeze(new i(e.t.UNIT_Z,0)),i.ORIGIN_YZ_PLANE=Object.freeze(new i(e.t.UNIT_X,0)),i.ORIGIN_ZX_PLANE=Object.freeze(new i(e.t.UNIT_Y,0)),t.o=i}));