@ridp/threejs 1.3.1 → 1.3.3
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/ImageLoader-DwvBWW6h.cjs +5 -0
- package/dist/ImageLoader-xzOH4Owt.js +860 -0
- package/dist/hooks.cjs +1 -1
- package/dist/hooks.js +1 -1
- package/dist/modelSerialize-B8gu_KnK.cjs +15 -0
- package/dist/modelSerialize-DWUt6OcZ.js +276 -0
- package/dist/threejs.cjs +1 -1
- package/dist/threejs.js +26 -24
- package/dist/useGLTFLoader-D01iU8lB.cjs +2 -0
- package/dist/useGLTFLoader-MhUFIZp1.js +2510 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +14 -12
- package/package.json +1 -1
- package/dist/common-C1rNPPkt.cjs +0 -15
- package/dist/common-D1_IztgM.js +0 -54
- package/dist/modelSerialize-5oJb1ka7.js +0 -965
- package/dist/modelSerialize-Ds_2KBaA.cjs +0 -5
- package/dist/useGLTFLoader-B6Cm6xQg.cjs +0 -2
- package/dist/useGLTFLoader-kuE8ICl_.js +0 -2477
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";const o=require("three");var F=function(){var i=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(m){m.preventDefault(),a(++i%t.children.length)},!1);function e(m){return t.appendChild(m.dom),m}function a(m){for(var h=0;h<t.children.length;h++)t.children[h].style.display=h===m?"block":"none";i=m}var c=(performance||Date).now(),d=c,r=0,g=e(new F.Panel("FPS","#0ff","#002")),M=e(new F.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var w=e(new F.Panel("MB","#f08","#201"));return a(0),{REVISION:16,dom:t,addPanel:e,showPanel:a,begin:function(){c=(performance||Date).now()},end:function(){r++;var m=(performance||Date).now();if(M.update(m-c,200),m>=d+1e3&&(g.update(r*1e3/(m-d),100),d=m,r=0,w)){var h=performance.memory;w.update(h.usedJSHeapSize/1048576,h.jsHeapSizeLimit/1048576)}return m},update:function(){c=this.end()},domElement:t,setMode:a}};F.Panel=function(i,t,e){var a=1/0,c=0,d=Math.round,r=d(window.devicePixelRatio||1),g=80*r,M=48*r,w=3*r,m=2*r,h=3*r,A=15*r,C=74*r,L=30*r,v=document.createElement("canvas");v.width=g,v.height=M,v.style.cssText="width:80px;height:48px";var n=v.getContext("2d");return n.font="bold "+9*r+"px Helvetica,Arial,sans-serif",n.textBaseline="top",n.fillStyle=e,n.fillRect(0,0,g,M),n.fillStyle=t,n.fillText(i,w,m),n.fillRect(h,A,C,L),n.fillStyle=e,n.globalAlpha=.9,n.fillRect(h,A,C,L),{dom:v,update:function(s,P){a=Math.min(a,s),c=Math.max(c,s),n.fillStyle=e,n.globalAlpha=1,n.fillRect(0,0,g,A),n.fillStyle=t,n.fillText(d(s)+" "+i+" ("+d(a)+"-"+d(c)+")",w,m),n.drawImage(v,h+r,A,C-r,L,h,A,C-r,L),n.fillRect(h+C-r,A,r,L),n.fillStyle=e,n.globalAlpha=.9,n.fillRect(h+C-r,A,r,d((1-s/P)*L))}}};const q=new o.Vector3,at=new o.Quaternion,$=new o.Vector3;class rt 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(e){e.element instanceof e.element.ownerDocument.defaultView.Element&&e.element.parentNode!==null&&e.element.remove()})})}copy(t,e){return super.copy(t,e),this.element=t.element.cloneNode(!0),this}}class ht extends rt{constructor(t){super(t),this.isCSS3DSprite=!0,this.rotation2D=0}copy(t,e){return super.copy(t,e),this.rotation2D=t.rotation2D,this}}const k=new o.Matrix4,lt=new o.Matrix4;class ct{constructor(t={}){const e=this;let a,c,d,r;const g={camera:{style:""},objects:new WeakMap},M=t.element!==void 0?t.element:document.createElement("div");M.style.overflow="hidden",this.domElement=M;const w=document.createElement("div");w.style.transformOrigin="0 0",w.style.pointerEvents="none",M.appendChild(w);const m=document.createElement("div");m.style.transformStyle="preserve-3d",w.appendChild(m),this.getSize=function(){return{width:a,height:c}},this.render=function(n,s){const P=s.projectionMatrix.elements[5]*r;s.view&&s.view.enabled?(w.style.transform=`translate( ${-s.view.offsetX*(a/s.view.width)}px, ${-s.view.offsetY*(c/s.view.height)}px )`,w.style.transform+=`scale( ${s.view.fullWidth/s.view.width}, ${s.view.fullHeight/s.view.height} )`):w.style.transform="",n.matrixWorldAutoUpdate===!0&&n.updateMatrixWorld(),s.parent===null&&s.matrixWorldAutoUpdate===!0&&s.updateMatrixWorld();let Y,R;s.isOrthographicCamera&&(Y=-(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(`+P+")translate("+h(Y)+"px,"+h(R)+"px)"+A(s.matrixWorldInverse):`scale( ${O} )translateZ(`+P+"px)"+A(s.matrixWorldInverse),l=(s.isPerspectiveCamera?"perspective("+P+"px) ":"")+H+"translate("+d+"px,"+r+"px)";g.camera.style!==l&&(m.style.transform=l,g.camera.style=l),v(n,n,s)},this.setSize=function(n,s){a=n,c=s,d=a/2,r=c/2,M.style.width=n+"px",M.style.height=s+"px",w.style.width=n+"px",w.style.height=s+"px",m.style.width=n+"px",m.style.height=s+"px"};function h(n){return Math.abs(n)<1e-10?0:n}function A(n){const s=n.elements;return"matrix3d("+h(s[0])+","+h(-s[1])+","+h(s[2])+","+h(s[3])+","+h(s[4])+","+h(-s[5])+","+h(s[6])+","+h(s[7])+","+h(s[8])+","+h(-s[9])+","+h(s[10])+","+h(s[11])+","+h(s[12])+","+h(-s[13])+","+h(s[14])+","+h(s[15])+")"}function C(n){const s=n.elements;return"translate(-50%,-50%)"+("matrix3d("+h(s[0])+","+h(s[1])+","+h(s[2])+","+h(s[3])+","+h(-s[4])+","+h(-s[5])+","+h(-s[6])+","+h(-s[7])+","+h(s[8])+","+h(s[9])+","+h(s[10])+","+h(s[11])+","+h(s[12])+","+h(s[13])+","+h(s[14])+","+h(s[15])+")")}function L(n){n.isCSS3DObject&&(n.element.style.display="none");for(let s=0,P=n.children.length;s<P;s++)L(n.children[s])}function v(n,s,P,Y){if(n.visible===!1){L(n);return}if(n.isCSS3DObject){const R=n.layers.test(P.layers)===!0,O=n.element;if(O.style.display=R===!0?"":"none",R===!0){n.onBeforeRender(e,s,P);let H;n.isCSS3DSprite?(k.copy(P.matrixWorldInverse),k.transpose(),n.rotation2D!==0&&k.multiply(lt.makeRotationZ(n.rotation2D)),n.matrixWorld.decompose(q,at,$),k.setPosition(q),k.scale($),k.elements[3]=0,k.elements[7]=0,k.elements[11]=0,k.elements[15]=1,H=C(k)):H=C(n.matrixWorld);const I=g.objects.get(n);if(I===void 0||I.style!==H){O.style.transform=H;const l={style:H};g.objects.set(n,l)}O.parentNode!==m&&m.appendChild(O),n.onAfterRender(e,s,P)}}for(let R=0,O=n.children.length;R<O;R++)v(n.children[R],s,P)}}}const Q={type:"change"},K={type:"start"},et={type:"end"},G=new o.Ray,J=new o.Plane,pt=Math.cos(70*o.MathUtils.DEG2RAD),D=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},B=1e-6;class it extends o.Controls{constructor(t,e=null){super(t,e),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=ut.bind(this),this._onPointerDown=dt.bind(this),this._onPointerUp=_t.bind(this),this._onContextMenu=wt.bind(this),this._onMouseWheel=yt.bind(this),this._onKeyDown=gt.bind(this),this._onTouchStart=Et.bind(this),this._onTouchMove=bt.bind(this),this._onMouseDown=mt.bind(this),this._onMouseMove=ft.bind(this),this._interceptControlDown=St.bind(this),this._interceptControlUp=Tt.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(Q),this.update(),this.state=u.NONE}update(t=null){const e=this.object.position;D.copy(e).sub(this.target),D.applyQuaternion(this._quat),this._spherical.setFromVector3(D),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 a=this.minAzimuthAngle,c=this.maxAzimuthAngle;isFinite(a)&&isFinite(c)&&(a<-Math.PI?a+=x:a>Math.PI&&(a-=x),c<-Math.PI?c+=x:c>Math.PI&&(c-=x),a<=c?this._spherical.theta=Math.max(a,Math.min(c,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(a+c)/2?Math.max(a,this._spherical.theta):Math.min(c,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 d=!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),d=r!=this._spherical.radius}if(D.setFromSpherical(this._spherical),D.applyQuaternion(this._quatInverse),e.copy(this.target).add(D),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 g=D.length();r=this._clampDistance(g*this._scale);const M=g-r;this.object.position.addScaledVector(this._dollyDirection,M),this.object.updateMatrixWorld(),d=!!M}else if(this.object.isOrthographicCamera){const g=new o.Vector3(this._mouse.x,this._mouse.y,0);g.unproject(this.object);const M=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),d=M!==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(g),this.object.updateMatrixWorld(),r=D.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):(G.origin.copy(this.object.position),G.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(G.direction))<pt?this.object.lookAt(this.target):(J.setFromNormalAndCoplanarPoint(this.object.up,this.target),G.intersectPlane(J,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(),d=!0)}return this._scale=1,this._performCursorZoom=!1,d||this._lastPosition.distanceToSquared(this.object.position)>B||8*(1-this._lastQuaternion.dot(this.object.quaternion))>B||this._lastTargetPosition.distanceToSquared(this.target)>B?(this.dispatchEvent(Q),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 e=Math.abs(t*.01);return Math.pow(.95,this.zoomSpeed*e)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,e){D.setFromMatrixColumn(e,0),D.multiplyScalar(-t),this._panOffset.add(D)}_panUp(t,e){this.screenSpacePanning===!0?D.setFromMatrixColumn(e,1):(D.setFromMatrixColumn(e,0),D.crossVectors(this.object.up,D)),D.multiplyScalar(t),this._panOffset.add(D)}_pan(t,e){const a=this.domElement;if(this.object.isPerspectiveCamera){const c=this.object.position;D.copy(c).sub(this.target);let d=D.length();d*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*d/a.clientHeight,this.object.matrix),this._panUp(2*e*d/a.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/a.clientWidth,this.object.matrix),this._panUp(e*(this.object.top-this.object.bottom)/this.object.zoom/a.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,e){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const a=this.domElement.getBoundingClientRect(),c=t-a.left,d=e-a.top,r=a.width,g=a.height;this._mouse.x=c/r*2-1,this._mouse.y=-(d/g)*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 e=this.domElement;this._rotateLeft(x*this._rotateDelta.x/e.clientHeight),this._rotateUp(x*this._rotateDelta.y/e.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 e=!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),e=!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),e=!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),e=!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),e=!0;break}e&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(this._pointers.length===1)this._rotateStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),a=.5*(t.pageX+e.x),c=.5*(t.pageY+e.y);this._rotateStart.set(a,c)}}_handleTouchStartPan(t){if(this._pointers.length===1)this._panStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),a=.5*(t.pageX+e.x),c=.5*(t.pageY+e.y);this._panStart.set(a,c)}}_handleTouchStartDolly(t){const e=this._getSecondPointerPosition(t),a=t.pageX-e.x,c=t.pageY-e.y,d=Math.sqrt(a*a+c*c);this._dollyStart.set(0,d)}_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 a=this._getSecondPointerPosition(t),c=.5*(t.pageX+a.x),d=.5*(t.pageY+a.y);this._rotateEnd.set(c,d)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(x*this._rotateDelta.x/e.clientHeight),this._rotateUp(x*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(this._pointers.length===1)this._panEnd.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),a=.5*(t.pageX+e.x),c=.5*(t.pageY+e.y);this._panEnd.set(a,c)}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 e=this._getSecondPointerPosition(t),a=t.pageX-e.x,c=t.pageY-e.y,d=Math.sqrt(a*a+c*c);this._dollyEnd.set(0,d),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+e.x)*.5,g=(t.pageY+e.y)*.5;this._updateZoomParameters(r,g)}_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 e=0;e<this._pointers.length;e++)if(this._pointers[e]==t.pointerId){this._pointers.splice(e,1);return}}_isTrackingPointer(t){for(let e=0;e<this._pointers.length;e++)if(this._pointers[e]==t.pointerId)return!0;return!1}_trackPointer(t){let e=this._pointerPositions[t.pointerId];e===void 0&&(e=new o.Vector2,this._pointerPositions[t.pointerId]=e),e.set(t.pageX,t.pageY)}_getSecondPointerPosition(t){const e=t.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[e]}_customWheelEvent(t){const e=t.deltaMode,a={clientX:t.clientX,clientY:t.clientY,deltaY:t.deltaY};switch(e){case 1:a.deltaY*=16;break;case 2:a.deltaY*=100;break}return t.ctrlKey&&!this._controlActive&&(a.deltaY*=10),a}}function dt(i){this.enabled!==!1&&(this._pointers.length===0&&(this.domElement.setPointerCapture(i.pointerId),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerup",this._onPointerUp)),!this._isTrackingPointer(i)&&(this._addPointer(i),i.pointerType==="touch"?this._onTouchStart(i):this._onMouseDown(i)))}function ut(i){this.enabled!==!1&&(i.pointerType==="touch"?this._onTouchMove(i):this._onMouseMove(i))}function _t(i){switch(this._removePointer(i),this._pointers.length){case 0:this.domElement.releasePointerCapture(i.pointerId),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.dispatchEvent(et),this.state=u.NONE;break;case 1:const t=this._pointers[0],e=this._pointerPositions[t];this._onTouchStart({pointerId:t,pageX:e.x,pageY:e.y});break}}function mt(i){let t;switch(i.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(i),this.state=u.DOLLY;break;case o.MOUSE.ROTATE:if(i.ctrlKey||i.metaKey||i.shiftKey){if(this.enablePan===!1)return;this._handleMouseDownPan(i),this.state=u.PAN}else{if(this.enableRotate===!1)return;this._handleMouseDownRotate(i),this.state=u.ROTATE}break;case o.MOUSE.PAN:if(i.ctrlKey||i.metaKey||i.shiftKey){if(this.enableRotate===!1)return;this._handleMouseDownRotate(i),this.state=u.ROTATE}else{if(this.enablePan===!1)return;this._handleMouseDownPan(i),this.state=u.PAN}break;default:this.state=u.NONE}this.state!==u.NONE&&this.dispatchEvent(K)}function ft(i){switch(this.state){case u.ROTATE:if(this.enableRotate===!1)return;this._handleMouseMoveRotate(i);break;case u.DOLLY:if(this.enableZoom===!1)return;this._handleMouseMoveDolly(i);break;case u.PAN:if(this.enablePan===!1)return;this._handleMouseMovePan(i);break}}function yt(i){this.enabled===!1||this.enableZoom===!1||this.state!==u.NONE||(i.preventDefault(),this.dispatchEvent(K),this._handleMouseWheel(this._customWheelEvent(i)),this.dispatchEvent(et))}function gt(i){this.enabled!==!1&&this._handleKeyDown(i)}function Et(i){switch(this._trackPointer(i),this._pointers.length){case 1:switch(this.touches.ONE){case o.TOUCH.ROTATE:if(this.enableRotate===!1)return;this._handleTouchStartRotate(i),this.state=u.TOUCH_ROTATE;break;case o.TOUCH.PAN:if(this.enablePan===!1)return;this._handleTouchStartPan(i),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(i),this.state=u.TOUCH_DOLLY_PAN;break;case o.TOUCH.DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchStartDollyRotate(i),this.state=u.TOUCH_DOLLY_ROTATE;break;default:this.state=u.NONE}break;default:this.state=u.NONE}this.state!==u.NONE&&this.dispatchEvent(K)}function bt(i){switch(this._trackPointer(i),this.state){case u.TOUCH_ROTATE:if(this.enableRotate===!1)return;this._handleTouchMoveRotate(i),this.update();break;case u.TOUCH_PAN:if(this.enablePan===!1)return;this._handleTouchMovePan(i),this.update();break;case u.TOUCH_DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchMoveDollyPan(i),this.update();break;case u.TOUCH_DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchMoveDollyRotate(i),this.update();break;default:this.state=u.NONE}}function wt(i){this.enabled!==!1&&i.preventDefault()}function St(i){i.key==="Control"&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function Tt(i){i.key==="Control"&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}class Dt extends it{constructor(t,e){super(t,e),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 Pt(i){return new o.CameraHelper(i)}function Mt(i=150,...t){return new o.GridHelper(i,i/10,...t)}function Rt(i){return new o.BoxHelper(i,16776960)}function xt(i,t){return new it(i,t)}function Ot(i,t){return new Dt(i,t)}function At(){const i=new o.Raycaster,t=new o.Vector2(0,0);return{raycaster:i,pointer:t}}function Ct(i=10){return new o.AxesHelper(i)}function Lt(i=new o.Vector3(1,1,1),t=new o.Vector3(10,10,10),e=5,a=16776960){return i.normalize(),new o.ArrowHelper(i,t,e,a)}function vt(){const i=new F;return i.dom.style.cssText="position:absolute;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",i}class Ht extends o.DataTextureLoader{constructor(t){super(t),this.type=o.HalfFloatType}parse(t){const r=function(l,_){switch(l){case 1:throw new Error("THREE.RGBELoader: Read Error: "+(_||""));case 2:throw new Error("THREE.RGBELoader: Write Error: "+(_||""));case 3:throw new Error("THREE.RGBELoader: Bad File Format: "+(_||""));default:case 4:throw new Error("THREE.RGBELoader: Memory Error: "+(_||""))}},m=`
|
|
2
|
+
`,h=function(l,_,y){_=_||1024;let S=l.pos,b=-1,p=0,T="",f=String.fromCharCode.apply(null,new Uint16Array(l.subarray(S,S+128)));for(;0>(b=f.indexOf(m))&&p<_&&S<l.byteLength;)T+=f,p+=f.length,S+=128,f+=String.fromCharCode.apply(null,new Uint16Array(l.subarray(S,S+128)));return-1<b?(l.pos+=p+b+1,T+f.slice(0,b)):!1},A=function(l){const _=/^#\?(\S+)/,y=/^\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*$/,p={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};let T,f;for((l.pos>=l.byteLength||!(T=h(l)))&&r(1,"no header found"),(f=T.match(_))||r(3,"bad initial token"),p.valid|=1,p.programtype=f[1],p.string+=T+`
|
|
3
|
+
`;T=h(l),T!==!1;){if(p.string+=T+`
|
|
4
|
+
`,T.charAt(0)==="#"){p.comments+=T+`
|
|
5
|
+
`;continue}if((f=T.match(y))&&(p.gamma=parseFloat(f[1])),(f=T.match(E))&&(p.exposure=parseFloat(f[1])),(f=T.match(S))&&(p.valid|=2,p.format=f[1]),(f=T.match(b))&&(p.valid|=4,p.height=parseInt(f[1],10),p.width=parseInt(f[2],10)),p.valid&2&&p.valid&4)break}return p.valid&2||r(3,"missing format specifier"),p.valid&4||r(3,"missing image size specifier"),p},C=function(l,_,y){const E=_;if(E<8||E>32767||l[0]!==2||l[1]!==2||l[2]&128)return new Uint8Array(l);E!==(l[2]<<8|l[3])&&r(3,"wrong scanline width");const S=new Uint8Array(4*_*y);S.length||r(4,"unable to allocate buffer space");let b=0,p=0;const T=4*E,f=new Uint8Array(4),V=new Uint8Array(T);let W=y;for(;W>0&&p<l.byteLength;){p+4>l.byteLength&&r(1),f[0]=l[p++],f[1]=l[p++],f[2]=l[p++],f[3]=l[p++],(f[0]!=2||f[1]!=2||(f[2]<<8|f[3])!=E)&&r(3,"bad rgbe scanline format");let z=0,N;for(;z<T&&p<l.byteLength;){N=l[p++];const U=N>128;if(U&&(N-=128),(N===0||z+N>T)&&r(3,"bad scanline data"),U){const j=l[p++];for(let X=0;X<N;X++)V[z++]=j}else V.set(l.subarray(p,p+N),z),z+=N,p+=N}const nt=E;for(let U=0;U<nt;U++){let j=0;S[b]=V[U+j],j+=E,S[b+1]=V[U+j],j+=E,S[b+2]=V[U+j],j+=E,S[b+3]=V[U+j],b+=4}W--}return S},L=function(l,_,y,E){const S=l[_+3],b=Math.pow(2,S-128)/255;y[E+0]=l[_+0]*b,y[E+1]=l[_+1]*b,y[E+2]=l[_+2]*b,y[E+3]=1},v=function(l,_,y,E){const S=l[_+3],b=Math.pow(2,S-128)/255;y[E+0]=o.DataUtils.toHalfFloat(Math.min(l[_+0]*b,65504)),y[E+1]=o.DataUtils.toHalfFloat(Math.min(l[_+1]*b,65504)),y[E+2]=o.DataUtils.toHalfFloat(Math.min(l[_+2]*b,65504)),y[E+3]=o.DataUtils.toHalfFloat(1)},n=new Uint8Array(t);n.pos=0;const s=A(n),P=s.width,Y=s.height,R=C(n.subarray(n.pos),P,Y);let O,H,I;switch(this.type){case o.FloatType:I=R.length/4;const l=new Float32Array(I*4);for(let y=0;y<I;y++)L(R,y*4,l,y*4);O=l,H=o.FloatType;break;case o.HalfFloatType:I=R.length/4;const _=new Uint16Array(I*4);for(let y=0;y<I;y++)v(R,y*4,_,y*4);O=_,H=o.HalfFloatType;break;default:throw new Error("THREE.RGBELoader: Unsupported type: "+this.type)}return{width:P,height:Y,data:O,header:s.string,gamma:s.gamma,exposure:s.exposure,type:H}}setDataType(t){return this.type=t,this}load(t,e,a,c){function d(r,g){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}e&&e(r,g)}return super.load(t,d,a,c)}}const st=i=>{i.geometry&&i.geometry.dispose(),i.material&&(Array.isArray(i.material)?i.material.forEach(t=>{tt(t)}):tt(i.material)),i.children&&i.children.forEach(t=>st(t))};function tt(i){for(const t in i)i[t]&&i[t].isTexture&&i[t].dispose();i.dispose()}const Z={},ot=new Ht;async function It(i,t){if(t){if(Z[t]){const e=Z[t];i.environment=e;return}return new Promise((e,a)=>{ot.load(t,e,void 0,a)}).then(e=>{e.mapping=o.EquirectangularReflectionMapping,i.environment=e,Z[t]=e}).catch(e=>{console.log(" =====> e:",e)})}}async function kt(i){return new Promise((t,e)=>{ot.load(i,t,void 0,e)})}exports.CSS3DRenderer=ct;exports.CSS3DSprite=ht;exports.ImageLoader=kt;exports.Stats=F;exports.createArrowHelper=Lt;exports.createAxesHelper=Ct;exports.createBox3Helper=Rt;exports.createCameraHelper=Pt;exports.createGridHelper=Mt;exports.createMapControls=Ot;exports.createOrbitControl=xt;exports.createRaycaster=At;exports.createStats=vt;exports.disposeThreeObject=st;exports.initEnvImage=It;
|