@ridp/threejs 1.3.1 → 1.3.2
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/{common-D1_IztgM.js → common-C8KE_lHC.js} +1 -1
- package/dist/{common-C1rNPPkt.cjs → common-lRDriwln.cjs} +1 -1
- package/dist/hooks.cjs +1 -1
- package/dist/hooks.js +1 -1
- package/dist/modelSerialize-BJf_M0Ys.cjs +5 -0
- package/dist/{modelSerialize-5oJb1ka7.js → modelSerialize-BybDeWER.js} +453 -335
- package/dist/threejs.cjs +1 -1
- package/dist/threejs.js +26 -24
- package/dist/{useGLTFLoader-kuE8ICl_.js → useGLTFLoader-C73cebsn.js} +4 -3
- package/dist/{useGLTFLoader-B6Cm6xQg.cjs → useGLTFLoader-Csew3AhP.cjs} +2 -2
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +12 -10
- package/package.json +1 -1
- package/dist/modelSerialize-Ds_2KBaA.cjs +0 -5
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";const o=require("three");function ct(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const i in e)if(i!=="default"){const n=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,n.get?n:{enumerable:!0,get:()=>e[i]})}}return t.default=e,Object.freeze(t)}const Y=ct(o);var G=function(){var e=0,t=document.createElement("div");t.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",t.addEventListener("click",function(_){_.preventDefault(),n(++e%t.children.length)},!1);function i(_){return t.appendChild(_.dom),_}function n(_){for(var l=0;l<t.children.length;l++)t.children[l].style.display=l===_?"block":"none";e=_}var h=(performance||Date).now(),p=h,r=0,y=i(new G.Panel("FPS","#0ff","#002")),P=i(new G.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var w=i(new G.Panel("MB","#f08","#201"));return n(0),{REVISION:16,dom:t,addPanel:i,showPanel:n,begin:function(){h=(performance||Date).now()},end:function(){r++;var _=(performance||Date).now();if(P.update(_-h,200),_>=p+1e3&&(y.update(r*1e3/(_-p),100),p=_,r=0,w)){var l=performance.memory;w.update(l.usedJSHeapSize/1048576,l.jsHeapSizeLimit/1048576)}return _},update:function(){h=this.end()},domElement:t,setMode:n}};G.Panel=function(e,t,i){var n=1/0,h=0,p=Math.round,r=p(window.devicePixelRatio||1),y=80*r,P=48*r,w=3*r,_=2*r,l=3*r,A=15*r,L=74*r,C=30*r,v=document.createElement("canvas");v.width=y,v.height=P,v.style.cssText="width:80px;height:48px";var a=v.getContext("2d");return a.font="bold "+9*r+"px Helvetica,Arial,sans-serif",a.textBaseline="top",a.fillStyle=i,a.fillRect(0,0,y,P),a.fillStyle=t,a.fillText(e,w,_),a.fillRect(l,A,L,C),a.fillStyle=i,a.globalAlpha=.9,a.fillRect(l,A,L,C),{dom:v,update:function(s,M){n=Math.min(n,s),h=Math.max(h,s),a.fillStyle=i,a.globalAlpha=1,a.fillRect(0,0,y,A),a.fillStyle=t,a.fillText(p(s)+" "+e+" ("+p(n)+"-"+p(h)+")",w,_),a.drawImage(v,l+r,A,L-r,C,l,A,L-r,C),a.fillRect(l+L-r,A,r,C),a.fillStyle=i,a.globalAlpha=.9,a.fillRect(l+L-r,A,r,p((1-s/M)*C))}}};const Q=new o.Vector3,pt=new o.Quaternion,J=new o.Vector3;class dt extends o.Object3D{constructor(t=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=t,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",function(){this.traverse(function(i){i.element instanceof i.element.ownerDocument.defaultView.Element&&i.element.parentNode!==null&&i.element.remove()})})}copy(t,i){return super.copy(t,i),this.element=t.element.cloneNode(!0),this}}class ut extends dt{constructor(t){super(t),this.isCSS3DSprite=!0,this.rotation2D=0}copy(t,i){return super.copy(t,i),this.rotation2D=t.rotation2D,this}}const I=new o.Matrix4,mt=new o.Matrix4;class _t{constructor(t={}){const i=this;let n,h,p,r;const y={camera:{style:""},objects:new WeakMap},P=t.element!==void 0?t.element:document.createElement("div");P.style.overflow="hidden",this.domElement=P;const w=document.createElement("div");w.style.transformOrigin="0 0",w.style.pointerEvents="none",P.appendChild(w);const _=document.createElement("div");_.style.transformStyle="preserve-3d",w.appendChild(_),this.getSize=function(){return{width:n,height:h}},this.render=function(a,s){const M=s.projectionMatrix.elements[5]*r;s.view&&s.view.enabled?(w.style.transform=`translate( ${-s.view.offsetX*(n/s.view.width)}px, ${-s.view.offsetY*(h/s.view.height)}px )`,w.style.transform+=`scale( ${s.view.fullWidth/s.view.width}, ${s.view.fullHeight/s.view.height} )`):w.style.transform="",a.matrixWorldAutoUpdate===!0&&a.updateMatrixWorld(),s.parent===null&&s.matrixWorldAutoUpdate===!0&&s.updateMatrixWorld();let z,R;s.isOrthographicCamera&&(z=-(s.right+s.left)/2,R=(s.top+s.bottom)/2);const O=s.view&&s.view.enabled?s.view.height/s.view.fullHeight:1,H=s.isOrthographicCamera?`scale( ${O} )scale(`+M+")translate("+l(z)+"px,"+l(R)+"px)"+A(s.matrixWorldInverse):`scale( ${O} )translateZ(`+M+"px)"+A(s.matrixWorldInverse),c=(s.isPerspectiveCamera?"perspective("+M+"px) ":"")+H+"translate("+p+"px,"+r+"px)";y.camera.style!==c&&(_.style.transform=c,y.camera.style=c),v(a,a,s)},this.setSize=function(a,s){n=a,h=s,p=n/2,r=h/2,P.style.width=a+"px",P.style.height=s+"px",w.style.width=a+"px",w.style.height=s+"px",_.style.width=a+"px",_.style.height=s+"px"};function l(a){return Math.abs(a)<1e-10?0:a}function A(a){const s=a.elements;return"matrix3d("+l(s[0])+","+l(-s[1])+","+l(s[2])+","+l(s[3])+","+l(s[4])+","+l(-s[5])+","+l(s[6])+","+l(s[7])+","+l(s[8])+","+l(-s[9])+","+l(s[10])+","+l(s[11])+","+l(s[12])+","+l(-s[13])+","+l(s[14])+","+l(s[15])+")"}function L(a){const s=a.elements;return"translate(-50%,-50%)"+("matrix3d("+l(s[0])+","+l(s[1])+","+l(s[2])+","+l(s[3])+","+l(-s[4])+","+l(-s[5])+","+l(-s[6])+","+l(-s[7])+","+l(s[8])+","+l(s[9])+","+l(s[10])+","+l(s[11])+","+l(s[12])+","+l(s[13])+","+l(s[14])+","+l(s[15])+")")}function C(a){a.isCSS3DObject&&(a.element.style.display="none");for(let s=0,M=a.children.length;s<M;s++)C(a.children[s])}function v(a,s,M,z){if(a.visible===!1){C(a);return}if(a.isCSS3DObject){const R=a.layers.test(M.layers)===!0,O=a.element;if(O.style.display=R===!0?"":"none",R===!0){a.onBeforeRender(i,s,M);let H;a.isCSS3DSprite?(I.copy(M.matrixWorldInverse),I.transpose(),a.rotation2D!==0&&I.multiply(mt.makeRotationZ(a.rotation2D)),a.matrixWorld.decompose(Q,pt,J),I.setPosition(Q),I.scale(J),I.elements[3]=0,I.elements[7]=0,I.elements[11]=0,I.elements[15]=1,H=L(I)):H=L(a.matrixWorld);const k=y.objects.get(a);if(k===void 0||k.style!==H){O.style.transform=H;const c={style:H};y.objects.set(a,c)}O.parentNode!==_&&_.appendChild(O),a.onAfterRender(i,s,M)}}for(let R=0,O=a.children.length;R<O;R++)v(a.children[R],s,M)}}}const tt={type:"change"},X={type:"start"},st={type:"end"},B=new o.Ray,et=new o.Plane,ft=Math.cos(70*o.MathUtils.DEG2RAD),T=new o.Vector3,x=2*Math.PI,u={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},Z=1e-6;class ot extends o.Controls{constructor(t,i=null){super(t,i),this.state=u.NONE,this.target=new o.Vector3,this.cursor=new o.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:o.MOUSE.ROTATE,MIDDLE:o.MOUSE.DOLLY,RIGHT:o.MOUSE.PAN},this.touches={ONE:o.TOUCH.ROTATE,TWO:o.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new o.Vector3,this._lastQuaternion=new o.Quaternion,this._lastTargetPosition=new o.Vector3,this._quat=new o.Quaternion().setFromUnitVectors(t.up,new o.Vector3(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new o.Spherical,this._sphericalDelta=new o.Spherical,this._scale=1,this._panOffset=new o.Vector3,this._rotateStart=new o.Vector2,this._rotateEnd=new o.Vector2,this._rotateDelta=new o.Vector2,this._panStart=new o.Vector2,this._panEnd=new o.Vector2,this._panDelta=new o.Vector2,this._dollyStart=new o.Vector2,this._dollyEnd=new o.Vector2,this._dollyDelta=new o.Vector2,this._dollyDirection=new o.Vector3,this._mouse=new o.Vector2,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=gt.bind(this),this._onPointerDown=yt.bind(this),this._onPointerUp=Et.bind(this),this._onContextMenu=Mt.bind(this),this._onMouseWheel=St.bind(this),this._onKeyDown=Dt.bind(this),this._onTouchStart=Tt.bind(this),this._onTouchMove=Pt.bind(this),this._onMouseDown=bt.bind(this),this._onMouseMove=wt.bind(this),this._interceptControlDown=Rt.bind(this),this._interceptControlUp=xt.bind(this),this.domElement!==null&&this.connect(this.domElement),this.update()}connect(t){super.connect(t),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(tt),this.update(),this.state=u.NONE}update(t=null){const i=this.object.position;T.copy(i).sub(this.target),T.applyQuaternion(this._quat),this._spherical.setFromVector3(T),this.autoRotate&&this.state===u.NONE&&this._rotateLeft(this._getAutoRotationAngle(t)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let n=this.minAzimuthAngle,h=this.maxAzimuthAngle;isFinite(n)&&isFinite(h)&&(n<-Math.PI?n+=x:n>Math.PI&&(n-=x),h<-Math.PI?h+=x:h>Math.PI&&(h-=x),n<=h?this._spherical.theta=Math.max(n,Math.min(h,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(n+h)/2?Math.max(n,this._spherical.theta):Math.min(h,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let p=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const r=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),p=r!=this._spherical.radius}if(T.setFromSpherical(this._spherical),T.applyQuaternion(this._quatInverse),i.copy(this.target).add(T),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let r=null;if(this.object.isPerspectiveCamera){const y=T.length();r=this._clampDistance(y*this._scale);const P=y-r;this.object.position.addScaledVector(this._dollyDirection,P),this.object.updateMatrixWorld(),p=!!P}else if(this.object.isOrthographicCamera){const y=new o.Vector3(this._mouse.x,this._mouse.y,0);y.unproject(this.object);const P=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),p=P!==this.object.zoom;const w=new o.Vector3(this._mouse.x,this._mouse.y,0);w.unproject(this.object),this.object.position.sub(w).add(y),this.object.updateMatrixWorld(),r=T.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;r!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(r).add(this.object.position):(B.origin.copy(this.object.position),B.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(B.direction))<ft?this.object.lookAt(this.target):(et.setFromNormalAndCoplanarPoint(this.object.up,this.target),B.intersectPlane(et,this.target))))}else if(this.object.isOrthographicCamera){const r=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),r!==this.object.zoom&&(this.object.updateProjectionMatrix(),p=!0)}return this._scale=1,this._performCursorZoom=!1,p||this._lastPosition.distanceToSquared(this.object.position)>Z||8*(1-this._lastQuaternion.dot(this.object.quaternion))>Z||this._lastTargetPosition.distanceToSquared(this.target)>Z?(this.dispatchEvent(tt),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(t){return t!==null?x/60*this.autoRotateSpeed*t:x/60/60*this.autoRotateSpeed}_getZoomScale(t){const i=Math.abs(t*.01);return Math.pow(.95,this.zoomSpeed*i)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,i){T.setFromMatrixColumn(i,0),T.multiplyScalar(-t),this._panOffset.add(T)}_panUp(t,i){this.screenSpacePanning===!0?T.setFromMatrixColumn(i,1):(T.setFromMatrixColumn(i,0),T.crossVectors(this.object.up,T)),T.multiplyScalar(t),this._panOffset.add(T)}_pan(t,i){const n=this.domElement;if(this.object.isPerspectiveCamera){const h=this.object.position;T.copy(h).sub(this.target);let p=T.length();p*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*p/n.clientHeight,this.object.matrix),this._panUp(2*i*p/n.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/n.clientWidth,this.object.matrix),this._panUp(i*(this.object.top-this.object.bottom)/this.object.zoom/n.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(t,i){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const n=this.domElement.getBoundingClientRect(),h=t-n.left,p=i-n.top,r=n.width,y=n.height;this._mouse.x=h/r*2-1,this._mouse.y=-(p/y)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(t){return Math.max(this.minDistance,Math.min(this.maxDistance,t))}_handleMouseDownRotate(t){this._rotateStart.set(t.clientX,t.clientY)}_handleMouseDownDolly(t){this._updateZoomParameters(t.clientX,t.clientX),this._dollyStart.set(t.clientX,t.clientY)}_handleMouseDownPan(t){this._panStart.set(t.clientX,t.clientY)}_handleMouseMoveRotate(t){this._rotateEnd.set(t.clientX,t.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const i=this.domElement;this._rotateLeft(x*this._rotateDelta.x/i.clientHeight),this._rotateUp(x*this._rotateDelta.y/i.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(t){this._dollyEnd.set(t.clientX,t.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(t){this._panEnd.set(t.clientX,t.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(t){this._updateZoomParameters(t.clientX,t.clientY),t.deltaY<0?this._dollyIn(this._getZoomScale(t.deltaY)):t.deltaY>0&&this._dollyOut(this._getZoomScale(t.deltaY)),this.update()}_handleKeyDown(t){let i=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(x*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),i=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(-x*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),i=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(x*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),i=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(-x*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),i=!0;break}i&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(this._pointers.length===1)this._rotateStart.set(t.pageX,t.pageY);else{const i=this._getSecondPointerPosition(t),n=.5*(t.pageX+i.x),h=.5*(t.pageY+i.y);this._rotateStart.set(n,h)}}_handleTouchStartPan(t){if(this._pointers.length===1)this._panStart.set(t.pageX,t.pageY);else{const i=this._getSecondPointerPosition(t),n=.5*(t.pageX+i.x),h=.5*(t.pageY+i.y);this._panStart.set(n,h)}}_handleTouchStartDolly(t){const i=this._getSecondPointerPosition(t),n=t.pageX-i.x,h=t.pageY-i.y,p=Math.sqrt(n*n+h*h);this._dollyStart.set(0,p)}_handleTouchStartDollyPan(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enablePan&&this._handleTouchStartPan(t)}_handleTouchStartDollyRotate(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enableRotate&&this._handleTouchStartRotate(t)}_handleTouchMoveRotate(t){if(this._pointers.length==1)this._rotateEnd.set(t.pageX,t.pageY);else{const n=this._getSecondPointerPosition(t),h=.5*(t.pageX+n.x),p=.5*(t.pageY+n.y);this._rotateEnd.set(h,p)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const i=this.domElement;this._rotateLeft(x*this._rotateDelta.x/i.clientHeight),this._rotateUp(x*this._rotateDelta.y/i.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(this._pointers.length===1)this._panEnd.set(t.pageX,t.pageY);else{const i=this._getSecondPointerPosition(t),n=.5*(t.pageX+i.x),h=.5*(t.pageY+i.y);this._panEnd.set(n,h)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(t){const i=this._getSecondPointerPosition(t),n=t.pageX-i.x,h=t.pageY-i.y,p=Math.sqrt(n*n+h*h);this._dollyEnd.set(0,p),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const r=(t.pageX+i.x)*.5,y=(t.pageY+i.y)*.5;this._updateZoomParameters(r,y)}_handleTouchMoveDollyPan(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enablePan&&this._handleTouchMovePan(t)}_handleTouchMoveDollyRotate(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enableRotate&&this._handleTouchMoveRotate(t)}_addPointer(t){this._pointers.push(t.pointerId)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let i=0;i<this._pointers.length;i++)if(this._pointers[i]==t.pointerId){this._pointers.splice(i,1);return}}_isTrackingPointer(t){for(let i=0;i<this._pointers.length;i++)if(this._pointers[i]==t.pointerId)return!0;return!1}_trackPointer(t){let i=this._pointerPositions[t.pointerId];i===void 0&&(i=new o.Vector2,this._pointerPositions[t.pointerId]=i),i.set(t.pageX,t.pageY)}_getSecondPointerPosition(t){const i=t.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[i]}_customWheelEvent(t){const i=t.deltaMode,n={clientX:t.clientX,clientY:t.clientY,deltaY:t.deltaY};switch(i){case 1:n.deltaY*=16;break;case 2:n.deltaY*=100;break}return t.ctrlKey&&!this._controlActive&&(n.deltaY*=10),n}}function yt(e){this.enabled!==!1&&(this._pointers.length===0&&(this.domElement.setPointerCapture(e.pointerId),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerup",this._onPointerUp)),!this._isTrackingPointer(e)&&(this._addPointer(e),e.pointerType==="touch"?this._onTouchStart(e):this._onMouseDown(e)))}function gt(e){this.enabled!==!1&&(e.pointerType==="touch"?this._onTouchMove(e):this._onMouseMove(e))}function Et(e){switch(this._removePointer(e),this._pointers.length){case 0:this.domElement.releasePointerCapture(e.pointerId),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.dispatchEvent(st),this.state=u.NONE;break;case 1:const t=this._pointers[0],i=this._pointerPositions[t];this._onTouchStart({pointerId:t,pageX:i.x,pageY:i.y});break}}function bt(e){let t;switch(e.button){case 0:t=this.mouseButtons.LEFT;break;case 1:t=this.mouseButtons.MIDDLE;break;case 2:t=this.mouseButtons.RIGHT;break;default:t=-1}switch(t){case o.MOUSE.DOLLY:if(this.enableZoom===!1)return;this._handleMouseDownDolly(e),this.state=u.DOLLY;break;case o.MOUSE.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(this.enablePan===!1)return;this._handleMouseDownPan(e),this.state=u.PAN}else{if(this.enableRotate===!1)return;this._handleMouseDownRotate(e),this.state=u.ROTATE}break;case o.MOUSE.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(this.enableRotate===!1)return;this._handleMouseDownRotate(e),this.state=u.ROTATE}else{if(this.enablePan===!1)return;this._handleMouseDownPan(e),this.state=u.PAN}break;default:this.state=u.NONE}this.state!==u.NONE&&this.dispatchEvent(X)}function wt(e){switch(this.state){case u.ROTATE:if(this.enableRotate===!1)return;this._handleMouseMoveRotate(e);break;case u.DOLLY:if(this.enableZoom===!1)return;this._handleMouseMoveDolly(e);break;case u.PAN:if(this.enablePan===!1)return;this._handleMouseMovePan(e);break}}function St(e){this.enabled===!1||this.enableZoom===!1||this.state!==u.NONE||(e.preventDefault(),this.dispatchEvent(X),this._handleMouseWheel(this._customWheelEvent(e)),this.dispatchEvent(st))}function Dt(e){this.enabled!==!1&&this._handleKeyDown(e)}function Tt(e){switch(this._trackPointer(e),this._pointers.length){case 1:switch(this.touches.ONE){case o.TOUCH.ROTATE:if(this.enableRotate===!1)return;this._handleTouchStartRotate(e),this.state=u.TOUCH_ROTATE;break;case o.TOUCH.PAN:if(this.enablePan===!1)return;this._handleTouchStartPan(e),this.state=u.TOUCH_PAN;break;default:this.state=u.NONE}break;case 2:switch(this.touches.TWO){case o.TOUCH.DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchStartDollyPan(e),this.state=u.TOUCH_DOLLY_PAN;break;case o.TOUCH.DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchStartDollyRotate(e),this.state=u.TOUCH_DOLLY_ROTATE;break;default:this.state=u.NONE}break;default:this.state=u.NONE}this.state!==u.NONE&&this.dispatchEvent(X)}function Pt(e){switch(this._trackPointer(e),this.state){case u.TOUCH_ROTATE:if(this.enableRotate===!1)return;this._handleTouchMoveRotate(e),this.update();break;case u.TOUCH_PAN:if(this.enablePan===!1)return;this._handleTouchMovePan(e),this.update();break;case u.TOUCH_DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchMoveDollyPan(e),this.update();break;case u.TOUCH_DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchMoveDollyRotate(e),this.update();break;default:this.state=u.NONE}}function Mt(e){this.enabled!==!1&&e.preventDefault()}function Rt(e){e.key==="Control"&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function xt(e){e.key==="Control"&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}class Ot extends ot{constructor(t,i){super(t,i),this.screenSpacePanning=!1,this.mouseButtons={LEFT:o.MOUSE.PAN,MIDDLE:o.MOUSE.DOLLY,RIGHT:o.MOUSE.ROTATE},this.touches={ONE:o.TOUCH.PAN,TWO:o.TOUCH.DOLLY_ROTATE}}}function At(e){return new o.CameraHelper(e)}function Lt(e=150,...t){return new o.GridHelper(e,e/10,...t)}function Ct(e){return new o.BoxHelper(e,16776960)}function vt(e,t){return new ot(e,t)}function Ht(e,t){return new Ot(e,t)}function kt(){const e=new o.Raycaster,t=new o.Vector2(0,0);return{raycaster:e,pointer:t}}function It(e=10){return new o.AxesHelper(e)}function Nt(e=new o.Vector3(1,1,1),t=new o.Vector3(10,10,10),i=5,n=16776960){return e.normalize(),new o.ArrowHelper(e,t,i,n)}function Ut(){const e=new G;return e.dom.style.cssText="position:absolute;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",e}class jt extends o.DataTextureLoader{constructor(t){super(t),this.type=o.HalfFloatType}parse(t){const r=function(c,m){switch(c){case 1:throw new Error("THREE.RGBELoader: Read Error: "+(m||""));case 2:throw new Error("THREE.RGBELoader: Write Error: "+(m||""));case 3:throw new Error("THREE.RGBELoader: Bad File Format: "+(m||""));default:case 4:throw new Error("THREE.RGBELoader: Memory Error: "+(m||""))}},_=`
|
|
2
|
-
`,l=function(c,m,g){m=m||1024;let S=c.pos,b=-1,d=0,D="",f=String.fromCharCode.apply(null,new Uint16Array(c.subarray(S,S+128)));for(;0>(b=f.indexOf(_))&&d<m&&S<c.byteLength;)D+=f,d+=f.length,S+=128,f+=String.fromCharCode.apply(null,new Uint16Array(c.subarray(S,S+128)));return-1<b?(c.pos+=d+b+1,D+f.slice(0,b)):!1},A=function(c){const m=/^#\?(\S+)/,g=/^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,E=/^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/,S=/^\s*FORMAT=(\S+)\s*$/,b=/^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,d={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};let D,f;for((c.pos>=c.byteLength||!(D=l(c)))&&r(1,"no header found"),(f=D.match(m))||r(3,"bad initial token"),d.valid|=1,d.programtype=f[1],d.string+=D+`
|
|
3
|
-
`;D=l(c),D!==!1;){if(d.string+=D+`
|
|
4
|
-
`,D.charAt(0)==="#"){d.comments+=D+`
|
|
5
|
-
`;continue}if((f=D.match(g))&&(d.gamma=parseFloat(f[1])),(f=D.match(E))&&(d.exposure=parseFloat(f[1])),(f=D.match(S))&&(d.valid|=2,d.format=f[1]),(f=D.match(b))&&(d.valid|=4,d.height=parseInt(f[1],10),d.width=parseInt(f[2],10)),d.valid&2&&d.valid&4)break}return d.valid&2||r(3,"missing format specifier"),d.valid&4||r(3,"missing image size specifier"),d},L=function(c,m,g){const E=m;if(E<8||E>32767||c[0]!==2||c[1]!==2||c[2]&128)return new Uint8Array(c);E!==(c[2]<<8|c[3])&&r(3,"wrong scanline width");const S=new Uint8Array(4*m*g);S.length||r(4,"unable to allocate buffer space");let b=0,d=0;const D=4*E,f=new Uint8Array(4),F=new Uint8Array(D);let q=g;for(;q>0&&d<c.byteLength;){d+4>c.byteLength&&r(1),f[0]=c[d++],f[1]=c[d++],f[2]=c[d++],f[3]=c[d++],(f[0]!=2||f[1]!=2||(f[2]<<8|f[3])!=E)&&r(3,"bad rgbe scanline format");let V=0,N;for(;V<D&&d<c.byteLength;){N=c[d++];const U=N>128;if(U&&(N-=128),(N===0||V+N>D)&&r(3,"bad scanline data"),U){const j=c[d++];for(let $=0;$<N;$++)F[V++]=j}else F.set(c.subarray(d,d+N),V),V+=N,d+=N}const lt=E;for(let U=0;U<lt;U++){let j=0;S[b]=F[U+j],j+=E,S[b+1]=F[U+j],j+=E,S[b+2]=F[U+j],j+=E,S[b+3]=F[U+j],b+=4}q--}return S},C=function(c,m,g,E){const S=c[m+3],b=Math.pow(2,S-128)/255;g[E+0]=c[m+0]*b,g[E+1]=c[m+1]*b,g[E+2]=c[m+2]*b,g[E+3]=1},v=function(c,m,g,E){const S=c[m+3],b=Math.pow(2,S-128)/255;g[E+0]=o.DataUtils.toHalfFloat(Math.min(c[m+0]*b,65504)),g[E+1]=o.DataUtils.toHalfFloat(Math.min(c[m+1]*b,65504)),g[E+2]=o.DataUtils.toHalfFloat(Math.min(c[m+2]*b,65504)),g[E+3]=o.DataUtils.toHalfFloat(1)},a=new Uint8Array(t);a.pos=0;const s=A(a),M=s.width,z=s.height,R=L(a.subarray(a.pos),M,z);let O,H,k;switch(this.type){case o.FloatType:k=R.length/4;const c=new Float32Array(k*4);for(let g=0;g<k;g++)C(R,g*4,c,g*4);O=c,H=o.FloatType;break;case o.HalfFloatType:k=R.length/4;const m=new Uint16Array(k*4);for(let g=0;g<k;g++)v(R,g*4,m,g*4);O=m,H=o.HalfFloatType;break;default:throw new Error("THREE.RGBELoader: Unsupported type: "+this.type)}return{width:M,height:z,data:O,header:s.string,gamma:s.gamma,exposure:s.exposure,type:H}}setDataType(t){return this.type=t,this}load(t,i,n,h){function p(r,y){switch(r.type){case o.FloatType:case o.HalfFloatType:r.colorSpace=o.LinearSRGBColorSpace,r.minFilter=o.LinearFilter,r.magFilter=o.LinearFilter,r.generateMipmaps=!1,r.flipY=!0;break}i&&i(r,y)}return super.load(t,p,n,h)}}const nt=e=>{e.geometry&&e.geometry.dispose(),e.material&&(Array.isArray(e.material)?e.material.forEach(t=>{it(t)}):it(e.material)),e.children&&e.children.forEach(t=>nt(t))};function it(e){for(const t in e)e[t]&&e[t].isTexture&&e[t].dispose();e.dispose()}const W={},at=new jt;async function Yt(e,t){if(t){if(W[t]){const i=W[t];e.environment=i;return}return new Promise((i,n)=>{at.load(t,i,void 0,n)}).then(i=>{i.mapping=o.EquirectangularReflectionMapping,e.environment=i,W[t]=i}).catch(i=>{console.log(" =====> e:",i)})}}async function zt(e){return new Promise((t,i)=>{at.load(e,t,void 0,i)})}const K={};function rt(e){const t={type:e.type,name:e.name,position:e.position.toArray(),rotation:e.rotation.toArray(),scale:e.scale.toArray(),visible:e.visible,children:[],geometry:null,material:null,userData:e.userData};e.isMesh&&(t.geometry=Ft(e.geometry),t.material=Vt(e.material));for(const i of e.children)t.children.push(rt(i));return t}function ht(e){let t;switch(e.type){case"Mesh":const i=Gt(e.geometry),n=Bt(e.material);t=new Y.Mesh(i,n);break;case"Group":t=new Y.Group;break;case"Object3D":t=new Y.Object3D;break;default:return console.warn(`Unsupported object type: ${e.type}`),null}t.name=e.name,t.position.fromArray(e.position),t.rotation.fromArray(e.rotation),t.scale.fromArray(e.scale),t.visible=e.visible,t.userData=e.userData;for(const i of e.children){const n=ht(i);n&&t.add(n)}return t}function Ft(e){const t=[],{attributes:i,index:n,type:h}=e;i.position&&(t.position={type:"Float32Array",array:Array.from(i.position.array),itemSize:3}),i.normal&&(t.normal={type:"Float32Array",array:Array.from(i.normal.array),itemSize:3}),i.uv&&(t.uv={type:"Float32Array",array:Array.from(i.uv.array),itemSize:2});const p={type:h,attributes:t};return n&&n.array&&(p.index={type:"Uint32Array",array:Array.from(n.array),itemSize:1}),p}function Gt(e){const{type:t,attributes:i,index:n}=e,h=new Y.BufferGeometry;return Object.keys(i).forEach(p=>{const{type:r,array:y,itemSize:P}=i[p];h.setAttribute(p,new Y.BufferAttribute(new Float32Array(y),P))}),n&&h.setIndex(n.array),h}function Vt(e){return{type:e.type,color:e.color.getHex(),map:e.map?e.map.image.src:null,opacity:e.opacity,name:e.name,depthTest:e.depthTest,depthWrite:e.depthWrite,transparent:e.transparent,side:e.side,roughness:e.roughness,metalness:e.metalness,emissive:e.emissive.getHex()}}function Bt(e){if(K[e.name])return K[e.name];const{type:t,...i}=e,n=t||"MeshStandardMaterial",h=new Y[n]({...i});if(e.map){const p=new Y.TextureLoader().load(e.map);h.map=p}return h.needsUpdate=!0,K[e.name]=h,h}exports.CSS3DRenderer=_t;exports.CSS3DSprite=ut;exports.ImageLoader=zt;exports.Stats=G;exports.createArrowHelper=Nt;exports.createAxesHelper=It;exports.createBox3Helper=Ct;exports.createCameraHelper=At;exports.createGridHelper=Lt;exports.createMapControls=Ht;exports.createOrbitControl=vt;exports.createRaycaster=kt;exports.createStats=Ut;exports.dataToObject3D=ht;exports.disposeThreeObject=nt;exports.initEnvImage=Yt;exports.object3DToData=rt;
|