cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
2 lines (1 loc) • 3.73 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var a,r,t,i,n,e,m=require("./Vector3.js"),s=require("../glmatrix/vec3.js"),h=s.default.set,y=s.default.copy,u=function(a,r){this.min=a||new m.default(1/0,1/0,1/0),this.max=r||new m.default(-1/0,-1/0,-1/0),this.vertices=null};u.prototype={constructor:u,updateFromVertices:function(a){if(a.length>0){var r=this.min,t=this.max,i=r.array,n=t.array;y(i,a[0]),y(n,a[0]);for(var e=1;e<a.length;e++){var m=a[e];m[0]<i[0]&&(i[0]=m[0]),m[1]<i[1]&&(i[1]=m[1]),m[2]<i[2]&&(i[2]=m[2]),m[0]>n[0]&&(n[0]=m[0]),m[1]>n[1]&&(n[1]=m[1]),m[2]>n[2]&&(n[2]=m[2])}r._dirty=!0,t._dirty=!0}},union:function(a){var r=this.min,t=this.max;return s.default.min(r.array,r.array,a.min.array),s.default.max(t.array,t.array,a.max.array),r._dirty=!0,t._dirty=!0,this},intersection:function(a){var r=this.min,t=this.max;return s.default.max(r.array,r.array,a.min.array),s.default.min(t.array,t.array,a.max.array),r._dirty=!0,t._dirty=!0,this},intersectBoundingBox:function(a){var r=this.min.array,t=this.max.array,i=a.min.array,n=a.max.array;return!(r[0]>n[0]||r[1]>n[1]||r[2]>n[2]||t[0]<i[0]||t[1]<i[1]||t[2]<i[2])},containBoundingBox:function(a){var r=this.min.array,t=this.max.array,i=a.min.array,n=a.max.array;return r[0]<=i[0]&&r[1]<=i[1]&&r[2]<=i[2]&&t[0]>=n[0]&&t[1]>=n[1]&&t[2]>=n[2]},containPoint:function(a){var r=this.min.array,t=this.max.array,i=a.array;return r[0]<=i[0]&&r[1]<=i[1]&&r[2]<=i[2]&&t[0]>=i[0]&&t[1]>=i[1]&&t[2]>=i[2]},isFinite:function(){var a=this.min.array,r=this.max.array;return isFinite(a[0])&&isFinite(a[1])&&isFinite(a[2])&&isFinite(r[0])&&isFinite(r[1])&&isFinite(r[2])},applyTransform:function(a){this.transformFrom(this,a)},transformFrom:(a=s.default.create(),r=s.default.create(),t=s.default.create(),i=s.default.create(),n=s.default.create(),e=s.default.create(),function(m,s){var h=m.min.array,y=m.max.array,u=s.array;return a[0]=u[0]*h[0],a[1]=u[1]*h[0],a[2]=u[2]*h[0],r[0]=u[0]*y[0],r[1]=u[1]*y[0],r[2]=u[2]*y[0],t[0]=u[4]*h[1],t[1]=u[5]*h[1],t[2]=u[6]*h[1],i[0]=u[4]*y[1],i[1]=u[5]*y[1],i[2]=u[6]*y[1],n[0]=u[8]*h[2],n[1]=u[9]*h[2],n[2]=u[10]*h[2],e[0]=u[8]*y[2],e[1]=u[9]*y[2],e[2]=u[10]*y[2],h=this.min.array,y=this.max.array,h[0]=Math.min(a[0],r[0])+Math.min(t[0],i[0])+Math.min(n[0],e[0])+u[12],h[1]=Math.min(a[1],r[1])+Math.min(t[1],i[1])+Math.min(n[1],e[1])+u[13],h[2]=Math.min(a[2],r[2])+Math.min(t[2],i[2])+Math.min(n[2],e[2])+u[14],y[0]=Math.max(a[0],r[0])+Math.max(t[0],i[0])+Math.max(n[0],e[0])+u[12],y[1]=Math.max(a[1],r[1])+Math.max(t[1],i[1])+Math.max(n[1],e[1])+u[13],y[2]=Math.max(a[2],r[2])+Math.max(t[2],i[2])+Math.max(n[2],e[2])+u[14],this.min._dirty=!0,this.max._dirty=!0,this}),applyProjection:function(a){var r=this.min.array,t=this.max.array,i=a.array,n=r[0],e=r[1],m=r[2],s=t[0],h=t[1],y=r[2],u=t[0],o=t[1],c=t[2];if(1===i[15])r[0]=i[0]*n+i[12],r[1]=i[5]*e+i[13],t[2]=i[10]*m+i[14],t[0]=i[0]*u+i[12],t[1]=i[5]*o+i[13],r[2]=i[10]*c+i[14];else{var f=-1/m;r[0]=i[0]*n*f,r[1]=i[5]*e*f,t[2]=(i[10]*m+i[14])*f,f=-1/y,t[0]=i[0]*s*f,t[1]=i[5]*h*f,f=-1/c,r[2]=(i[10]*c+i[14])*f}return this.min._dirty=!0,this.max._dirty=!0,this},updateVertices:function(){var a=this.vertices;if(!a){a=[];for(var r=0;r<8;r++)a[r]=s.default.fromValues(0,0,0);this.vertices=a}var t=this.min.array,i=this.max.array;return h(a[0],t[0],t[1],t[2]),h(a[1],t[0],i[1],t[2]),h(a[2],i[0],t[1],t[2]),h(a[3],i[0],i[1],t[2]),h(a[4],t[0],t[1],i[2]),h(a[5],t[0],i[1],i[2]),h(a[6],i[0],t[1],i[2]),h(a[7],i[0],i[1],i[2]),this},copy:function(a){var r=this.min,t=this.max;return y(r.array,a.min.array),y(t.array,a.max.array),r._dirty=!0,t._dirty=!0,this},clone:function(){var a=new u;return a.copy(this),a}};var o=u;exports.default=o;