@ridp/threejs 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/hooks.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useGLTFLoader-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useGLTFLoader-CGOxhEOO.cjs");exports.initEnvImage=e.initEnvImage;exports.intersectColor=e.intersectColor;exports.obbObjects=e.obbObjects;exports.useGLTFLoader=e.useGLTFLoader;exports.useLight=e.useLight;exports.useObb=e.useObb;exports.useRaycaster=e.useRaycaster;exports.useThreeJs=e.useThreeJs;
|
package/dist/hooks.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as a, b as o, o as r, e as t, d as b, c as u, a as i, u as c } from "./useGLTFLoader-
|
|
1
|
+
import { i as a, b as o, o as r, e as t, d as b, c as u, a as i, u as c } from "./useGLTFLoader-BAoIZjEX.js";
|
|
2
2
|
export {
|
|
3
3
|
a as initEnvImage,
|
|
4
4
|
o as intersectColor,
|
package/dist/threejs.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./useGLTFLoader-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./useGLTFLoader-CGOxhEOO.cjs"),e=require("./disposeObject-BuI3II7v.cjs"),t=require("./common-nMt4tIRA.cjs");exports.initEnvImage=r.initEnvImage;exports.intersectColor=r.intersectColor;exports.obbObjects=r.obbObjects;exports.useGLTFLoader=r.useGLTFLoader;exports.useLight=r.useLight;exports.useObb=r.useObb;exports.useRaycaster=r.useRaycaster;exports.useThreeJs=r.useThreeJs;exports.createArrowHelper=e.createArrowHelper;exports.createAxesHelper=e.createAxesHelper;exports.createBox3Helper=e.createBox3Helper;exports.createCameraHelper=e.createCameraHelper;exports.createGridHelper=e.createGridHelper;exports.createMapControls=e.createMapControls;exports.createOrbitControl=e.createOrbitControl;exports.createRaycaster=e.createRaycaster;exports.disposeThreeObject=e.disposeThreeObject;exports.createInfoPlane=t.createInfoPlane;exports.createTagPlane=t.createTagPlane;exports.getCommonParent=t.getCommonParent;
|
package/dist/threejs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as r, b as s, o as t, e as o, d as c, c as l, a as n, u as p } from "./useGLTFLoader-
|
|
1
|
+
import { i as r, b as s, o as t, e as o, d as c, c as l, a as n, u as p } from "./useGLTFLoader-BAoIZjEX.js";
|
|
2
2
|
import { h as i, g as m, b as g, c as u, a as d, e as f, d as x, f as C, i as H } from "./disposeObject-CmFSSgi7.js";
|
|
3
3
|
import { c as O, a as T, g as L } from "./common-DESmndxO.js";
|
|
4
4
|
export {
|
|
@@ -2425,7 +2425,8 @@ const jn = new De(), zn = new Un(), Me = {}, Kn = {
|
|
|
2425
2425
|
}, Q = new Wt({
|
|
2426
2426
|
antialias: !0,
|
|
2427
2427
|
alpha: !0,
|
|
2428
|
-
precision: "mediump"
|
|
2428
|
+
precision: "mediump",
|
|
2429
|
+
logarithmicDepthBuffer: !0
|
|
2429
2430
|
});
|
|
2430
2431
|
function Yn(h, e) {
|
|
2431
2432
|
const t = Object.assign(
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
`,d=function(A,R,M){R=R||1024;let F=A.pos,P=-1,w=0,B="",C=String.fromCharCode.apply(null,new Uint16Array(A.subarray(F,F+128)));for(;0>(P=C.indexOf(u))&&w<R&&F<A.byteLength;)B+=C,w+=C.length,F+=128,C+=String.fromCharCode.apply(null,new Uint16Array(A.subarray(F,F+128)));return-1<P?(A.pos+=w+P+1,B+C.slice(0,P)):!1},h=function(A){const R=/^#\?(\S+)/,M=/^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,O=/^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/,F=/^\s*FORMAT=(\S+)\s*$/,P=/^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,w={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};let B,C;for((A.pos>=A.byteLength||!(B=d(A)))&&s(1,"no header found"),(C=B.match(R))||s(3,"bad initial token"),w.valid|=1,w.programtype=C[1],w.string+=B+`
|
|
4
4
|
`;B=d(A),B!==!1;){if(w.string+=B+`
|
|
5
5
|
`,B.charAt(0)==="#"){w.comments+=B+`
|
|
6
|
-
`;continue}if((C=B.match(M))&&(w.gamma=parseFloat(C[1])),(C=B.match(O))&&(w.exposure=parseFloat(C[1])),(C=B.match(F))&&(w.valid|=2,w.format=C[1]),(C=B.match(P))&&(w.valid|=4,w.height=parseInt(C[1],10),w.width=parseInt(C[2],10)),w.valid&2&&w.valid&4)break}return w.valid&2||s(3,"missing format specifier"),w.valid&4||s(3,"missing image size specifier"),w},p=function(A,R,M){const O=R;if(O<8||O>32767||A[0]!==2||A[1]!==2||A[2]&128)return new Uint8Array(A);O!==(A[2]<<8|A[3])&&s(3,"wrong scanline width");const F=new Uint8Array(4*R*M);F.length||s(4,"unable to allocate buffer space");let P=0,w=0;const B=4*O,C=new Uint8Array(4),Q=new Uint8Array(B);let ae=M;for(;ae>0&&w<A.byteLength;){w+4>A.byteLength&&s(1),C[0]=A[w++],C[1]=A[w++],C[2]=A[w++],C[3]=A[w++],(C[0]!=2||C[1]!=2||(C[2]<<8|C[3])!=O)&&s(3,"bad rgbe scanline format");let K=0,v;for(;K<B&&w<A.byteLength;){v=A[w++];const X=v>128;if(X&&(v-=128),(v===0||K+v>B)&&s(3,"bad scanline data"),X){const W=A[w++];for(let ge=0;ge<v;ge++)Q[K++]=W}else Q.set(A.subarray(w,w+v),K),K+=v,w+=v}const Ne=O;for(let X=0;X<Ne;X++){let W=0;F[P]=Q[X+W],W+=O,F[P+1]=Q[X+W],W+=O,F[P+2]=Q[X+W],W+=O,F[P+3]=Q[X+W],P+=4}ae--}return F},g=function(A,R,M,O){const F=A[R+3],P=Math.pow(2,F-128)/255;M[O+0]=A[R+0]*P,M[O+1]=A[R+1]*P,M[O+2]=A[R+2]*P,M[O+3]=1},y=function(A,R,M,O){const F=A[R+3],P=Math.pow(2,F-128)/255;M[O+0]=l.DataUtils.toHalfFloat(Math.min(A[R+0]*P,65504)),M[O+1]=l.DataUtils.toHalfFloat(Math.min(A[R+1]*P,65504)),M[O+2]=l.DataUtils.toHalfFloat(Math.min(A[R+2]*P,65504)),M[O+3]=l.DataUtils.toHalfFloat(1)},m=new Uint8Array(e);m.pos=0;const T=h(m),_=T.width,N=T.height,S=p(m.subarray(m.pos),_,N);let H,U,I;switch(this.type){case l.FloatType:I=S.length/4;const A=new Float32Array(I*4);for(let M=0;M<I;M++)g(S,M*4,A,M*4);H=A,U=l.FloatType;break;case l.HalfFloatType:I=S.length/4;const R=new Uint16Array(I*4);for(let M=0;M<I;M++)y(S,M*4,R,M*4);H=R,U=l.HalfFloatType;break;default:throw new Error("THREE.RGBELoader: Unsupported type: "+this.type)}return{width:_,height:N,data:H,header:T.string,gamma:T.gamma,exposure:T.exposure,type:U}}setDataType(e){return this.type=e,this}load(e,t,r,n){function i(s,a){switch(s.type){case l.FloatType:case l.HalfFloatType:s.colorSpace=l.LinearSRGBColorSpace,s.minFilter=l.LinearFilter,s.magFilter=l.LinearFilter,s.generateMipmaps=!1,s.flipY=!0;break}t&&t(s,a)}return super.load(e,i,r,n)}}const b={c:null,u:[new l.Vector3,new l.Vector3,new l.Vector3],e:[]},L={c:null,u:[new l.Vector3,new l.Vector3,new l.Vector3],e:[]},k=[[],[],[]],x=[[],[],[]],D=[],$=new l.Vector3,ee=new l.Vector3,te=new l.Vector3,G=new l.Vector3,Se=new l.Vector3,Ee=new l.Vector3,z=new l.Matrix3,we=new l.Box3,oe=new l.Matrix4,be=new l.Matrix4,Me=new l.Ray;class me{constructor(e=new l.Vector3,t=new l.Vector3,r=new l.Matrix3){this.center=e,this.halfSize=t,this.rotation=r}set(e,t,r){return this.center=e,this.halfSize=t,this.rotation=r,this}copy(e){return this.center.copy(e.center),this.halfSize.copy(e.halfSize),this.rotation.copy(e.rotation),this}clone(){return new this.constructor().copy(this)}getSize(e){return e.copy(this.halfSize).multiplyScalar(2)}clampPoint(e,t){const r=this.halfSize;G.subVectors(e,this.center),this.rotation.extractBasis($,ee,te),t.copy(this.center);const n=l.MathUtils.clamp(G.dot($),-r.x,r.x);t.add($.multiplyScalar(n));const i=l.MathUtils.clamp(G.dot(ee),-r.y,r.y);t.add(ee.multiplyScalar(i));const s=l.MathUtils.clamp(G.dot(te),-r.z,r.z);return t.add(te.multiplyScalar(s)),t}containsPoint(e){return G.subVectors(e,this.center),this.rotation.extractBasis($,ee,te),Math.abs(G.dot($))<=this.halfSize.x&&Math.abs(G.dot(ee))<=this.halfSize.y&&Math.abs(G.dot(te))<=this.halfSize.z}intersectsBox3(e){return this.intersectsOBB(gt.fromBox3(e))}intersectsSphere(e){return this.clampPoint(e.center,Ee),Ee.distanceToSquared(e.center)<=e.radius*e.radius}intersectsOBB(e,t=Number.EPSILON){b.c=this.center,b.e[0]=this.halfSize.x,b.e[1]=this.halfSize.y,b.e[2]=this.halfSize.z,this.rotation.extractBasis(b.u[0],b.u[1],b.u[2]),L.c=e.center,L.e[0]=e.halfSize.x,L.e[1]=e.halfSize.y,L.e[2]=e.halfSize.z,e.rotation.extractBasis(L.u[0],L.u[1],L.u[2]);for(let i=0;i<3;i++)for(let s=0;s<3;s++)k[i][s]=b.u[i].dot(L.u[s]);G.subVectors(L.c,b.c),D[0]=G.dot(b.u[0]),D[1]=G.dot(b.u[1]),D[2]=G.dot(b.u[2]);for(let i=0;i<3;i++)for(let s=0;s<3;s++)x[i][s]=Math.abs(k[i][s])+t;let r,n;for(let i=0;i<3;i++)if(r=b.e[i],n=L.e[0]*x[i][0]+L.e[1]*x[i][1]+L.e[2]*x[i][2],Math.abs(D[i])>r+n)return!1;for(let i=0;i<3;i++)if(r=b.e[0]*x[0][i]+b.e[1]*x[1][i]+b.e[2]*x[2][i],n=L.e[i],Math.abs(D[0]*k[0][i]+D[1]*k[1][i]+D[2]*k[2][i])>r+n)return!1;return r=b.e[1]*x[2][0]+b.e[2]*x[1][0],n=L.e[1]*x[0][2]+L.e[2]*x[0][1],!(Math.abs(D[2]*k[1][0]-D[1]*k[2][0])>r+n||(r=b.e[1]*x[2][1]+b.e[2]*x[1][1],n=L.e[0]*x[0][2]+L.e[2]*x[0][0],Math.abs(D[2]*k[1][1]-D[1]*k[2][1])>r+n)||(r=b.e[1]*x[2][2]+b.e[2]*x[1][2],n=L.e[0]*x[0][1]+L.e[1]*x[0][0],Math.abs(D[2]*k[1][2]-D[1]*k[2][2])>r+n)||(r=b.e[0]*x[2][0]+b.e[2]*x[0][0],n=L.e[1]*x[1][2]+L.e[2]*x[1][1],Math.abs(D[0]*k[2][0]-D[2]*k[0][0])>r+n)||(r=b.e[0]*x[2][1]+b.e[2]*x[0][1],n=L.e[0]*x[1][2]+L.e[2]*x[1][0],Math.abs(D[0]*k[2][1]-D[2]*k[0][1])>r+n)||(r=b.e[0]*x[2][2]+b.e[2]*x[0][2],n=L.e[0]*x[1][1]+L.e[1]*x[1][0],Math.abs(D[0]*k[2][2]-D[2]*k[0][2])>r+n)||(r=b.e[0]*x[1][0]+b.e[1]*x[0][0],n=L.e[1]*x[2][2]+L.e[2]*x[2][1],Math.abs(D[1]*k[0][0]-D[0]*k[1][0])>r+n)||(r=b.e[0]*x[1][1]+b.e[1]*x[0][1],n=L.e[0]*x[2][2]+L.e[2]*x[2][0],Math.abs(D[1]*k[0][1]-D[0]*k[1][1])>r+n)||(r=b.e[0]*x[1][2]+b.e[1]*x[0][2],n=L.e[0]*x[2][1]+L.e[1]*x[2][0],Math.abs(D[1]*k[0][2]-D[0]*k[1][2])>r+n))}intersectsPlane(e){this.rotation.extractBasis($,ee,te);const t=this.halfSize.x*Math.abs(e.normal.dot($))+this.halfSize.y*Math.abs(e.normal.dot(ee))+this.halfSize.z*Math.abs(e.normal.dot(te)),r=e.normal.dot(this.center)-e.constant;return Math.abs(r)<=t}intersectRay(e,t){return this.getSize(Se),we.setFromCenterAndSize(G.set(0,0,0),Se),oe.setFromMatrix3(this.rotation),oe.setPosition(this.center),be.copy(oe).invert(),Me.copy(e).applyMatrix4(be),Me.intersectBox(we,t)?t.applyMatrix4(oe):null}intersectsRay(e){return this.intersectRay(e,G)!==null}fromBox3(e){return e.getCenter(this.center),e.getSize(this.halfSize).multiplyScalar(.5),this.rotation.identity(),this}equals(e){return e.center.equals(this.center)&&e.halfSize.equals(this.halfSize)&&e.rotation.equals(this.rotation)}applyMatrix4(e){const t=e.elements;let r=G.set(t[0],t[1],t[2]).length();const n=G.set(t[4],t[5],t[6]).length(),i=G.set(t[8],t[9],t[10]).length();e.determinant()<0&&(r=-r),z.setFromMatrix4(e);const a=1/r,o=1/n,c=1/i;return z.elements[0]*=a,z.elements[1]*=a,z.elements[2]*=a,z.elements[3]*=o,z.elements[4]*=o,z.elements[5]*=o,z.elements[6]*=c,z.elements[7]*=c,z.elements[8]*=c,this.rotation.multiply(z),this.halfSize.x*=r,this.halfSize.y*=n,this.halfSize.z*=i,G.setFromMatrixPosition(e),this.center.add(G),this}}const gt=new me,At=new mt,he={},Tt={enableDamping:!0,dampingFactor:.25,screenSpacePanning:!1,minDistance:.1,maxDistance:1e3,maxPolarAngle:Math.PI/2},q=new l.WebGLRenderer({antialias:!0,alpha:!0,precision:"mediump"});function yt(f,e){const t=Object.assign({css3d:!1,stats:!1,axesHelper:{init:!1,size:10},gridHelper:{init:!1},control:{init:!0,options:{}},envImage:!0},e||{});let r,n,i,s,a=[];const o=Ae.ref(0),c=Ae.ref(0),u=new l.Scene({});u.background=new l.Color("#222b38");const d=new l.Group;u.add(d),q.setPixelRatio(window.devicePixelRatio);const h=new l.PerspectiveCamera(50,1,.1,2e3),p=Math.tan(Math.PI/180*h.fov/2);function g(){const I=_();if(o.value=I[0],c.value=I[1],h.aspect=o.value/c.value,h.position.set(47,39,100),h.fov=360/Math.PI*Math.atan(p*(c.value/o.value)),h.updateProjectionMatrix(),q.setSize(o.value,c.value),r.appendChild(q.domElement),t.envImage&&Ce(u),t.stats&&N(),t.css3d&&H(),t.axesHelper&&t.axesHelper.init){const A=se.createAxesHelper(t.axesHelper.size||10);u.add(A)}if(t.gridHelper&&t.gridHelper.init){const A=se.createGridHelper(t.gridHelper.size||150,t.gridHelper.options||{});u.add(A)}if(t.control&&t.control.init){s=se.createOrbitControl(h,q.domElement);const A=t.control.options||Tt;Object.keys(A).forEach(R=>{s[R]=A[R]})}return{control:s,scene:u,camera:h,renderer:q}}function y(I){a.push(I)}function m(I){a&&a.length&&a.forEach(A=>{typeof A=="function"&&A()}),s&&s.update(),q.render(u,h),n&&n.update(),i&&i.render(u,h),requestAnimationFrame(m)}function T(){nextTick(()=>{const I=_();o.value=I[0],c.value=I[1],h.aspect=o.value/c.value,h.fov=360/Math.PI*Math.atan(p*(c.value/o.value)),h.updateProjectionMatrix(),h.lookAt(u.position),q.render(u,h),q.setSize(o.value,c.value),i&&i.setSize(o.value,c.value)})}function _(){return r=document.querySelector(f),[r.clientWidth,r.clientHeight]}function N(){n=new ie,n.dom.style.cssText="position:absolute;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",r.appendChild(n.dom)}function S(I,A,R,M){const O=new l.Box3().setFromObject(I),F=O.getSize(new l.Vector3).length(),P=O.getCenter(new l.Vector3),B=F*A*.5,C=l.MathUtils.degToRad(R.fov*.5),Q=B/Math.tan(C),K=new l.Vector3().subVectors(R.position,P).multiply(new l.Vector3(1,1,1)).normalize().multiplyScalar(Q).add(P),v={x:K.x,y:K.y,z:K.z,lookAt_x:P.x,lookAt_y:P.y,lookAt_z:P.z};return R.position.set(v.x,v.y,v.z),R.lookAt(v.lookAt_x,v.lookAt_y,v.lookAt_z),R.updateProjectionMatrix(),M.target.copy(P),M.update(),F}function H(){i=new se.CSS3DRenderer,i.setSize(o.value,c.value),i.domElement.style.position="absolute",i.domElement.style.top=0,i.domElement.style.left=0,i.domElement.style.pointerEvents="none",r.appendChild(i.domElement)}function U(){se.disposeThreeObject(u)}return{init:g,dispose:U,animate:m,onResize:T,addAnimate:y,frameArea:S,objectGroup:d,scene:u,camera:h,control:s,renderer:q,domWidth:o,domHeight:c}}async function Ce(f,e){if(e){if(he[e]){const t=he[e];f.environment=t;return}return new Promise((t,r)=>{At.load(e,t,void 0,r)}).then(t=>{t.mapping=l.EquirectangularReflectionMapping,f.environment=t,he[e]=t}).catch(t=>{console.log(" =====> e:",t)})}}const Rt=(f="app")=>{const e=new l.Raycaster;e.params.Line.threshold=8;const t=new l.Vector2,r=document.getElementById(f);function n(a,o){const{scaleX:c,scaleY:u}=s(r),{clientWidth:d,clientHeight:h}=o,p=o.getBoundingClientRect(),g=d*c,y=h*u,m=a.clientX-p.left,T=a.clientY-p.top;return t.x=(a.clientX-p.left)/g*2-1,t.y=-((a.clientY-p.top)/y)*2+1,{pointer:t,x:m,y:T}}function i(a,o,c,u){const{pointer:d,x:h,y:p}=n(a,o);return e.setFromCamera(d,c),{intersects:e.intersectObjects(u),pointer:d,x:h,y:p}}function s(a){const o=window.getComputedStyle(a),c=o.transform||o.webkitTransform||o.mozTransform;if(c&&c!=="none"){const u=c.match(/^matrix\((.+)\)$/);if(u){const d=u[1].split(", "),h=parseFloat(d[0]),p=parseFloat(d[3]);return{scaleX:h,scaleY:p}}}return{scaleX:1,scaleY:1}}return{raycaster:e,pointer:t,getPointer:n,getScale:s,getIntersects:i}},V=[],xt=new l.Color(16711680),_t=()=>{const f=()=>{V.splice(0)},e=(a,o)=>{o.traverse(c=>{c&&t(a,c)})},t=(a,o)=>{if(o.userData.needCheck&&(o.autoUpdateMatrix=!1,o.updateMatrix(),o.updateMatrixWorld(),o.isMesh)){const c=new l.Box3(new l.Vector3).setFromObject(o);o.geometry.userData.obb=new me,o.geometry.userData.obb.halfSize.copy(c.getSize(new l.Vector3)).multiplyScalar(.5).multiplyScalar(.88),o.userData.obb=new me,o.userData.originColor=o.material.color.clone(),o.userData.parentUid=a,V.push({object:o,parentUid:a})}};return{resetObbs:f,initObb:e,getObbObjectByParentUid:a=>V.filter(o=>o.parentUid===a),addObbFromArray:(a,o)=>{for(let c=0,u=o.length;c<u;c++)t(a,o[c])},removeObbFromArray:a=>{const o=V.filter(c=>!a.includes(c.object));V.splice(0,V.length,...o)},removeUidObb:a=>{for(let o=V.length-1;o>=0;o--)V[o].parentUid===a&&V.splice(o,1)}}},St=()=>{const f=new l.AmbientLight(16777215,1),e=new l.SpotLight(16777215,1,0);e.position.set(0,50,100),e.angle=Math.PI/8,e.penumbra=1,e.decay=0,e.distance=0;const t=e.clone();return t.position.set(-100,50,-100),t.angle=Math.PI/8,t.penumbra=1,t.decay=0,t.distance=0,[f,e,t]},Et=()=>{const f=new De,e=new Pe;e.setDecoderPath("/draco/"),f.setDRACOLoader(e);function t(n,i,s,a){return f.load(n,i,s,a)}function r(n,i){return new Promise((s,a)=>{f.load(n,s,i,a)})}return{load:t,asyncLoad:r}};exports.initEnvImage=Ce;exports.intersectColor=xt;exports.obbObjects=V;exports.useGLTFLoader=Et;exports.useLight=St;exports.useObb=_t;exports.useRaycaster=Rt;exports.useThreeJs=yt;
|
|
6
|
+
`;continue}if((C=B.match(M))&&(w.gamma=parseFloat(C[1])),(C=B.match(O))&&(w.exposure=parseFloat(C[1])),(C=B.match(F))&&(w.valid|=2,w.format=C[1]),(C=B.match(P))&&(w.valid|=4,w.height=parseInt(C[1],10),w.width=parseInt(C[2],10)),w.valid&2&&w.valid&4)break}return w.valid&2||s(3,"missing format specifier"),w.valid&4||s(3,"missing image size specifier"),w},p=function(A,R,M){const O=R;if(O<8||O>32767||A[0]!==2||A[1]!==2||A[2]&128)return new Uint8Array(A);O!==(A[2]<<8|A[3])&&s(3,"wrong scanline width");const F=new Uint8Array(4*R*M);F.length||s(4,"unable to allocate buffer space");let P=0,w=0;const B=4*O,C=new Uint8Array(4),Q=new Uint8Array(B);let ae=M;for(;ae>0&&w<A.byteLength;){w+4>A.byteLength&&s(1),C[0]=A[w++],C[1]=A[w++],C[2]=A[w++],C[3]=A[w++],(C[0]!=2||C[1]!=2||(C[2]<<8|C[3])!=O)&&s(3,"bad rgbe scanline format");let K=0,v;for(;K<B&&w<A.byteLength;){v=A[w++];const X=v>128;if(X&&(v-=128),(v===0||K+v>B)&&s(3,"bad scanline data"),X){const W=A[w++];for(let ge=0;ge<v;ge++)Q[K++]=W}else Q.set(A.subarray(w,w+v),K),K+=v,w+=v}const Ne=O;for(let X=0;X<Ne;X++){let W=0;F[P]=Q[X+W],W+=O,F[P+1]=Q[X+W],W+=O,F[P+2]=Q[X+W],W+=O,F[P+3]=Q[X+W],P+=4}ae--}return F},g=function(A,R,M,O){const F=A[R+3],P=Math.pow(2,F-128)/255;M[O+0]=A[R+0]*P,M[O+1]=A[R+1]*P,M[O+2]=A[R+2]*P,M[O+3]=1},y=function(A,R,M,O){const F=A[R+3],P=Math.pow(2,F-128)/255;M[O+0]=l.DataUtils.toHalfFloat(Math.min(A[R+0]*P,65504)),M[O+1]=l.DataUtils.toHalfFloat(Math.min(A[R+1]*P,65504)),M[O+2]=l.DataUtils.toHalfFloat(Math.min(A[R+2]*P,65504)),M[O+3]=l.DataUtils.toHalfFloat(1)},m=new Uint8Array(e);m.pos=0;const T=h(m),_=T.width,N=T.height,S=p(m.subarray(m.pos),_,N);let H,U,I;switch(this.type){case l.FloatType:I=S.length/4;const A=new Float32Array(I*4);for(let M=0;M<I;M++)g(S,M*4,A,M*4);H=A,U=l.FloatType;break;case l.HalfFloatType:I=S.length/4;const R=new Uint16Array(I*4);for(let M=0;M<I;M++)y(S,M*4,R,M*4);H=R,U=l.HalfFloatType;break;default:throw new Error("THREE.RGBELoader: Unsupported type: "+this.type)}return{width:_,height:N,data:H,header:T.string,gamma:T.gamma,exposure:T.exposure,type:U}}setDataType(e){return this.type=e,this}load(e,t,r,n){function i(s,a){switch(s.type){case l.FloatType:case l.HalfFloatType:s.colorSpace=l.LinearSRGBColorSpace,s.minFilter=l.LinearFilter,s.magFilter=l.LinearFilter,s.generateMipmaps=!1,s.flipY=!0;break}t&&t(s,a)}return super.load(e,i,r,n)}}const b={c:null,u:[new l.Vector3,new l.Vector3,new l.Vector3],e:[]},L={c:null,u:[new l.Vector3,new l.Vector3,new l.Vector3],e:[]},k=[[],[],[]],x=[[],[],[]],D=[],$=new l.Vector3,ee=new l.Vector3,te=new l.Vector3,G=new l.Vector3,Se=new l.Vector3,Ee=new l.Vector3,z=new l.Matrix3,we=new l.Box3,oe=new l.Matrix4,be=new l.Matrix4,Me=new l.Ray;class me{constructor(e=new l.Vector3,t=new l.Vector3,r=new l.Matrix3){this.center=e,this.halfSize=t,this.rotation=r}set(e,t,r){return this.center=e,this.halfSize=t,this.rotation=r,this}copy(e){return this.center.copy(e.center),this.halfSize.copy(e.halfSize),this.rotation.copy(e.rotation),this}clone(){return new this.constructor().copy(this)}getSize(e){return e.copy(this.halfSize).multiplyScalar(2)}clampPoint(e,t){const r=this.halfSize;G.subVectors(e,this.center),this.rotation.extractBasis($,ee,te),t.copy(this.center);const n=l.MathUtils.clamp(G.dot($),-r.x,r.x);t.add($.multiplyScalar(n));const i=l.MathUtils.clamp(G.dot(ee),-r.y,r.y);t.add(ee.multiplyScalar(i));const s=l.MathUtils.clamp(G.dot(te),-r.z,r.z);return t.add(te.multiplyScalar(s)),t}containsPoint(e){return G.subVectors(e,this.center),this.rotation.extractBasis($,ee,te),Math.abs(G.dot($))<=this.halfSize.x&&Math.abs(G.dot(ee))<=this.halfSize.y&&Math.abs(G.dot(te))<=this.halfSize.z}intersectsBox3(e){return this.intersectsOBB(gt.fromBox3(e))}intersectsSphere(e){return this.clampPoint(e.center,Ee),Ee.distanceToSquared(e.center)<=e.radius*e.radius}intersectsOBB(e,t=Number.EPSILON){b.c=this.center,b.e[0]=this.halfSize.x,b.e[1]=this.halfSize.y,b.e[2]=this.halfSize.z,this.rotation.extractBasis(b.u[0],b.u[1],b.u[2]),L.c=e.center,L.e[0]=e.halfSize.x,L.e[1]=e.halfSize.y,L.e[2]=e.halfSize.z,e.rotation.extractBasis(L.u[0],L.u[1],L.u[2]);for(let i=0;i<3;i++)for(let s=0;s<3;s++)k[i][s]=b.u[i].dot(L.u[s]);G.subVectors(L.c,b.c),D[0]=G.dot(b.u[0]),D[1]=G.dot(b.u[1]),D[2]=G.dot(b.u[2]);for(let i=0;i<3;i++)for(let s=0;s<3;s++)x[i][s]=Math.abs(k[i][s])+t;let r,n;for(let i=0;i<3;i++)if(r=b.e[i],n=L.e[0]*x[i][0]+L.e[1]*x[i][1]+L.e[2]*x[i][2],Math.abs(D[i])>r+n)return!1;for(let i=0;i<3;i++)if(r=b.e[0]*x[0][i]+b.e[1]*x[1][i]+b.e[2]*x[2][i],n=L.e[i],Math.abs(D[0]*k[0][i]+D[1]*k[1][i]+D[2]*k[2][i])>r+n)return!1;return r=b.e[1]*x[2][0]+b.e[2]*x[1][0],n=L.e[1]*x[0][2]+L.e[2]*x[0][1],!(Math.abs(D[2]*k[1][0]-D[1]*k[2][0])>r+n||(r=b.e[1]*x[2][1]+b.e[2]*x[1][1],n=L.e[0]*x[0][2]+L.e[2]*x[0][0],Math.abs(D[2]*k[1][1]-D[1]*k[2][1])>r+n)||(r=b.e[1]*x[2][2]+b.e[2]*x[1][2],n=L.e[0]*x[0][1]+L.e[1]*x[0][0],Math.abs(D[2]*k[1][2]-D[1]*k[2][2])>r+n)||(r=b.e[0]*x[2][0]+b.e[2]*x[0][0],n=L.e[1]*x[1][2]+L.e[2]*x[1][1],Math.abs(D[0]*k[2][0]-D[2]*k[0][0])>r+n)||(r=b.e[0]*x[2][1]+b.e[2]*x[0][1],n=L.e[0]*x[1][2]+L.e[2]*x[1][0],Math.abs(D[0]*k[2][1]-D[2]*k[0][1])>r+n)||(r=b.e[0]*x[2][2]+b.e[2]*x[0][2],n=L.e[0]*x[1][1]+L.e[1]*x[1][0],Math.abs(D[0]*k[2][2]-D[2]*k[0][2])>r+n)||(r=b.e[0]*x[1][0]+b.e[1]*x[0][0],n=L.e[1]*x[2][2]+L.e[2]*x[2][1],Math.abs(D[1]*k[0][0]-D[0]*k[1][0])>r+n)||(r=b.e[0]*x[1][1]+b.e[1]*x[0][1],n=L.e[0]*x[2][2]+L.e[2]*x[2][0],Math.abs(D[1]*k[0][1]-D[0]*k[1][1])>r+n)||(r=b.e[0]*x[1][2]+b.e[1]*x[0][2],n=L.e[0]*x[2][1]+L.e[1]*x[2][0],Math.abs(D[1]*k[0][2]-D[0]*k[1][2])>r+n))}intersectsPlane(e){this.rotation.extractBasis($,ee,te);const t=this.halfSize.x*Math.abs(e.normal.dot($))+this.halfSize.y*Math.abs(e.normal.dot(ee))+this.halfSize.z*Math.abs(e.normal.dot(te)),r=e.normal.dot(this.center)-e.constant;return Math.abs(r)<=t}intersectRay(e,t){return this.getSize(Se),we.setFromCenterAndSize(G.set(0,0,0),Se),oe.setFromMatrix3(this.rotation),oe.setPosition(this.center),be.copy(oe).invert(),Me.copy(e).applyMatrix4(be),Me.intersectBox(we,t)?t.applyMatrix4(oe):null}intersectsRay(e){return this.intersectRay(e,G)!==null}fromBox3(e){return e.getCenter(this.center),e.getSize(this.halfSize).multiplyScalar(.5),this.rotation.identity(),this}equals(e){return e.center.equals(this.center)&&e.halfSize.equals(this.halfSize)&&e.rotation.equals(this.rotation)}applyMatrix4(e){const t=e.elements;let r=G.set(t[0],t[1],t[2]).length();const n=G.set(t[4],t[5],t[6]).length(),i=G.set(t[8],t[9],t[10]).length();e.determinant()<0&&(r=-r),z.setFromMatrix4(e);const a=1/r,o=1/n,c=1/i;return z.elements[0]*=a,z.elements[1]*=a,z.elements[2]*=a,z.elements[3]*=o,z.elements[4]*=o,z.elements[5]*=o,z.elements[6]*=c,z.elements[7]*=c,z.elements[8]*=c,this.rotation.multiply(z),this.halfSize.x*=r,this.halfSize.y*=n,this.halfSize.z*=i,G.setFromMatrixPosition(e),this.center.add(G),this}}const gt=new me,At=new mt,he={},Tt={enableDamping:!0,dampingFactor:.25,screenSpacePanning:!1,minDistance:.1,maxDistance:1e3,maxPolarAngle:Math.PI/2},q=new l.WebGLRenderer({antialias:!0,alpha:!0,precision:"mediump",logarithmicDepthBuffer:!0});function yt(f,e){const t=Object.assign({css3d:!1,stats:!1,axesHelper:{init:!1,size:10},gridHelper:{init:!1},control:{init:!0,options:{}},envImage:!0},e||{});let r,n,i,s,a=[];const o=Ae.ref(0),c=Ae.ref(0),u=new l.Scene({});u.background=new l.Color("#222b38");const d=new l.Group;u.add(d),q.setPixelRatio(window.devicePixelRatio);const h=new l.PerspectiveCamera(50,1,.1,2e3),p=Math.tan(Math.PI/180*h.fov/2);function g(){const I=_();if(o.value=I[0],c.value=I[1],h.aspect=o.value/c.value,h.position.set(47,39,100),h.fov=360/Math.PI*Math.atan(p*(c.value/o.value)),h.updateProjectionMatrix(),q.setSize(o.value,c.value),r.appendChild(q.domElement),t.envImage&&Ce(u),t.stats&&N(),t.css3d&&H(),t.axesHelper&&t.axesHelper.init){const A=se.createAxesHelper(t.axesHelper.size||10);u.add(A)}if(t.gridHelper&&t.gridHelper.init){const A=se.createGridHelper(t.gridHelper.size||150,t.gridHelper.options||{});u.add(A)}if(t.control&&t.control.init){s=se.createOrbitControl(h,q.domElement);const A=t.control.options||Tt;Object.keys(A).forEach(R=>{s[R]=A[R]})}return{control:s,scene:u,camera:h,renderer:q}}function y(I){a.push(I)}function m(I){a&&a.length&&a.forEach(A=>{typeof A=="function"&&A()}),s&&s.update(),q.render(u,h),n&&n.update(),i&&i.render(u,h),requestAnimationFrame(m)}function T(){nextTick(()=>{const I=_();o.value=I[0],c.value=I[1],h.aspect=o.value/c.value,h.fov=360/Math.PI*Math.atan(p*(c.value/o.value)),h.updateProjectionMatrix(),h.lookAt(u.position),q.render(u,h),q.setSize(o.value,c.value),i&&i.setSize(o.value,c.value)})}function _(){return r=document.querySelector(f),[r.clientWidth,r.clientHeight]}function N(){n=new ie,n.dom.style.cssText="position:absolute;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",r.appendChild(n.dom)}function S(I,A,R,M){const O=new l.Box3().setFromObject(I),F=O.getSize(new l.Vector3).length(),P=O.getCenter(new l.Vector3),B=F*A*.5,C=l.MathUtils.degToRad(R.fov*.5),Q=B/Math.tan(C),K=new l.Vector3().subVectors(R.position,P).multiply(new l.Vector3(1,1,1)).normalize().multiplyScalar(Q).add(P),v={x:K.x,y:K.y,z:K.z,lookAt_x:P.x,lookAt_y:P.y,lookAt_z:P.z};return R.position.set(v.x,v.y,v.z),R.lookAt(v.lookAt_x,v.lookAt_y,v.lookAt_z),R.updateProjectionMatrix(),M.target.copy(P),M.update(),F}function H(){i=new se.CSS3DRenderer,i.setSize(o.value,c.value),i.domElement.style.position="absolute",i.domElement.style.top=0,i.domElement.style.left=0,i.domElement.style.pointerEvents="none",r.appendChild(i.domElement)}function U(){se.disposeThreeObject(u)}return{init:g,dispose:U,animate:m,onResize:T,addAnimate:y,frameArea:S,objectGroup:d,scene:u,camera:h,control:s,renderer:q,domWidth:o,domHeight:c}}async function Ce(f,e){if(e){if(he[e]){const t=he[e];f.environment=t;return}return new Promise((t,r)=>{At.load(e,t,void 0,r)}).then(t=>{t.mapping=l.EquirectangularReflectionMapping,f.environment=t,he[e]=t}).catch(t=>{console.log(" =====> e:",t)})}}const Rt=(f="app")=>{const e=new l.Raycaster;e.params.Line.threshold=8;const t=new l.Vector2,r=document.getElementById(f);function n(a,o){const{scaleX:c,scaleY:u}=s(r),{clientWidth:d,clientHeight:h}=o,p=o.getBoundingClientRect(),g=d*c,y=h*u,m=a.clientX-p.left,T=a.clientY-p.top;return t.x=(a.clientX-p.left)/g*2-1,t.y=-((a.clientY-p.top)/y)*2+1,{pointer:t,x:m,y:T}}function i(a,o,c,u){const{pointer:d,x:h,y:p}=n(a,o);return e.setFromCamera(d,c),{intersects:e.intersectObjects(u),pointer:d,x:h,y:p}}function s(a){const o=window.getComputedStyle(a),c=o.transform||o.webkitTransform||o.mozTransform;if(c&&c!=="none"){const u=c.match(/^matrix\((.+)\)$/);if(u){const d=u[1].split(", "),h=parseFloat(d[0]),p=parseFloat(d[3]);return{scaleX:h,scaleY:p}}}return{scaleX:1,scaleY:1}}return{raycaster:e,pointer:t,getPointer:n,getScale:s,getIntersects:i}},V=[],xt=new l.Color(16711680),_t=()=>{const f=()=>{V.splice(0)},e=(a,o)=>{o.traverse(c=>{c&&t(a,c)})},t=(a,o)=>{if(o.userData.needCheck&&(o.autoUpdateMatrix=!1,o.updateMatrix(),o.updateMatrixWorld(),o.isMesh)){const c=new l.Box3(new l.Vector3).setFromObject(o);o.geometry.userData.obb=new me,o.geometry.userData.obb.halfSize.copy(c.getSize(new l.Vector3)).multiplyScalar(.5).multiplyScalar(.88),o.userData.obb=new me,o.userData.originColor=o.material.color.clone(),o.userData.parentUid=a,V.push({object:o,parentUid:a})}};return{resetObbs:f,initObb:e,getObbObjectByParentUid:a=>V.filter(o=>o.parentUid===a),addObbFromArray:(a,o)=>{for(let c=0,u=o.length;c<u;c++)t(a,o[c])},removeObbFromArray:a=>{const o=V.filter(c=>!a.includes(c.object));V.splice(0,V.length,...o)},removeUidObb:a=>{for(let o=V.length-1;o>=0;o--)V[o].parentUid===a&&V.splice(o,1)}}},St=()=>{const f=new l.AmbientLight(16777215,1),e=new l.SpotLight(16777215,1,0);e.position.set(0,50,100),e.angle=Math.PI/8,e.penumbra=1,e.decay=0,e.distance=0;const t=e.clone();return t.position.set(-100,50,-100),t.angle=Math.PI/8,t.penumbra=1,t.decay=0,t.distance=0,[f,e,t]},Et=()=>{const f=new De,e=new Pe;e.setDecoderPath("/draco/"),f.setDRACOLoader(e);function t(n,i,s,a){return f.load(n,i,s,a)}function r(n,i){return new Promise((s,a)=>{f.load(n,s,i,a)})}return{load:t,asyncLoad:r}};exports.initEnvImage=Ce;exports.intersectColor=xt;exports.obbObjects=V;exports.useGLTFLoader=Et;exports.useLight=St;exports.useObb=_t;exports.useRaycaster=Rt;exports.useThreeJs=yt;
|