@ridp/threejs 1.1.6 → 1.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.
Files changed (74) hide show
  1. package/dist/{common-BHi3qsZW.cjs → common-C1rNPPkt.cjs} +2 -2
  2. package/dist/{common-fbJUHqlj.js → common-D1_IztgM.js} +1 -1
  3. package/dist/hooks.cjs +1 -1
  4. package/dist/hooks.js +1 -1
  5. package/dist/modelSerialize-5oJb1ka7.js +965 -0
  6. package/dist/modelSerialize-Ds_2KBaA.cjs +5 -0
  7. package/dist/threejs.cjs +1 -1
  8. package/dist/threejs.js +185 -25
  9. package/dist/useGLTFLoader-2awW2QaH.cjs +4 -0
  10. package/dist/{useGLTFLoader-DusnFN5B.js → useGLTFLoader-BBGTGOYm.js} +1800 -1952
  11. package/dist/utils.cjs +1 -1
  12. package/dist/utils.js +9 -7
  13. package/esdoc/ast/source/.external-ecmascript.js.json +2801 -2801
  14. package/esdoc/ast/source/hooks/index.js.json +738 -738
  15. package/esdoc/ast/source/hooks/useGLTFLoader.js.json +9110 -9110
  16. package/esdoc/ast/source/hooks/useObb.js.json +16462 -16462
  17. package/esdoc/ast/source/hooks/useRaycaster.js.json +15555 -15555
  18. package/esdoc/ast/source/hooks/useThreeJs.js.json +52886 -52886
  19. package/esdoc/ast/source/index.js.json +569 -569
  20. package/esdoc/ast/source/instance/IDBCache.js.json +40977 -40977
  21. package/esdoc/ast/source/instance/index.js.json +231 -231
  22. package/esdoc/ast/source/utils/ImageLoader.js.json +7036 -7036
  23. package/esdoc/ast/source/utils/common.js.json +5133 -5133
  24. package/esdoc/ast/source/utils/css3dHelper.js.json +9100 -9100
  25. package/esdoc/ast/source/utils/disposeObject.js.json +5977 -5977
  26. package/esdoc/ast/source/utils/helper.js.json +10521 -10521
  27. package/esdoc/ast/source/utils/index.js.json +907 -907
  28. package/esdoc/badge.svg +17 -17
  29. package/esdoc/class/src/instance/IDBCache.js~IDBCache.html +1299 -1299
  30. package/esdoc/coverage.json +85 -85
  31. package/esdoc/css/github.css +83 -83
  32. package/esdoc/css/identifiers.css +37 -37
  33. package/esdoc/css/manual.css +134 -134
  34. package/esdoc/css/prettify-tomorrow.css +132 -132
  35. package/esdoc/css/search.css +84 -84
  36. package/esdoc/css/source.css +55 -55
  37. package/esdoc/css/style.css +608 -608
  38. package/esdoc/css/test.css +58 -58
  39. package/esdoc/file/src/hooks/index.js.html +75 -75
  40. package/esdoc/file/src/hooks/useGLTFLoader.js.html +75 -75
  41. package/esdoc/file/src/hooks/useObb.js.html +75 -75
  42. package/esdoc/file/src/hooks/useRaycaster.js.html +75 -75
  43. package/esdoc/file/src/hooks/useThreeJs.js.html +75 -75
  44. package/esdoc/file/src/index.js.html +75 -75
  45. package/esdoc/file/src/instance/IDBCache.js.html +75 -75
  46. package/esdoc/file/src/instance/index.js.html +75 -75
  47. package/esdoc/file/src/utils/ImageLoader.js.html +75 -75
  48. package/esdoc/file/src/utils/common.js.html +75 -75
  49. package/esdoc/file/src/utils/css3dHelper.js.html +75 -75
  50. package/esdoc/file/src/utils/disposeObject.js.html +75 -75
  51. package/esdoc/file/src/utils/helper.js.html +75 -75
  52. package/esdoc/file/src/utils/index.js.html +75 -75
  53. package/esdoc/function/index.html +2019 -2019
  54. package/esdoc/identifiers.html +738 -738
  55. package/esdoc/image/badge.svg +17 -17
  56. package/esdoc/image/manual-badge.svg +17 -17
  57. package/esdoc/index.html +153 -153
  58. package/esdoc/index.json +2050 -2050
  59. package/esdoc/script/inherited-summary.js +28 -28
  60. package/esdoc/script/inner-link.js +32 -32
  61. package/esdoc/script/manual.js +12 -12
  62. package/esdoc/script/patch-for-local.js +8 -8
  63. package/esdoc/script/prettify/Apache-License-2.0.txt +202 -202
  64. package/esdoc/script/prettify/prettify.js +46 -46
  65. package/esdoc/script/pretty-print.js +25 -25
  66. package/esdoc/script/search.js +117 -117
  67. package/esdoc/script/search_index.js +571 -571
  68. package/esdoc/script/test-summary.js +54 -54
  69. package/esdoc/source.html +213 -213
  70. package/esdoc/variable/index.html +225 -225
  71. package/package.json +3 -2
  72. package/dist/ImageLoader-CB_URfeZ.js +0 -860
  73. package/dist/ImageLoader-DwvBWW6h.cjs +0 -5
  74. package/dist/useGLTFLoader-BiveFkS6.cjs +0 -4
@@ -0,0 +1,5 @@
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;
package/dist/threejs.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./useGLTFLoader-BiveFkS6.cjs"),e=require("./ImageLoader-DwvBWW6h.cjs"),a=require("./common-BHi3qsZW.cjs");exports.IDBCache=r.IDBCache;exports.intersectColor=r.intersectColor;exports.obbObjects=r.obbObjects;exports.useGLTFLoader=r.useGLTFLoader;exports.useObb=r.useObb;exports.useRaycaster=r.useRaycaster;exports.useThreeJs=r.useThreeJs;exports.ImageLoader=e.ImageLoader;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.createStats=e.createStats;exports.disposeThreeObject=e.disposeThreeObject;exports.initEnvImage=e.initEnvImage;exports.createInfoPlane=a.createInfoPlane;exports.createTagPlane=a.createTagPlane;exports.getCommonParent=a.getCommonParent;
1
+ "use strict";var v=Object.defineProperty;var O=(l,e,s)=>e in l?v(l,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):l[e]=s;var t=(l,e,s)=>O(l,typeof e!="symbol"?e+"":e,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./useGLTFLoader-2awW2QaH.cjs"),r=require("./modelSerialize-Ds_2KBaA.cjs"),f=require("./common-C1rNPPkt.cjs"),o=require("three"),m=require("vue"),x="1.0.19",L={enableDamping:!0,dampingFactor:.25,screenSpacePanning:!1,minDistance:.1,maxDistance:1e3,maxPolarAngle:o.MathUtils.degToRad(60)};class p{constructor(e,s){t(this,"isReady",m.ref(!1));t(this,"scene",null);t(this,"camera",null);t(this,"renderer",null);t(this,"control",null);t(this,"css3dRenderer",null);t(this,"el",null);t(this,"renderRequested",!1);t(this,"selector",null);t(this,"eventsListener",{});t(this,"stats",null);t(this,"isDispose",!1);t(this,"version","0.0.0");t(this,"initOpt",{css3d:!1,stats:!1,renderType:"change",initListener:"True",control:{init:!0,options:{}}});t(this,"setup",e=>{this.isDispose=!1,this.selector=e,this.el=document.querySelector(e);const s=Math.tan(Math.PI/180*this.camera.fov/2),[i,c]=this.getTargetSize();if(this.camera.aspect=i/c,this.camera.position.set(47,39,100),this.camera.fov=360/Math.PI*Math.atan(s*(c/i)),this.camera.lookAt(0,0,0),this.camera.updateProjectionMatrix(),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(i,c),this.el.appendChild(this.renderer.domElement),this.initOpt.control&&this.initOpt.control.init){this.control=r.createOrbitControl(this.camera,this.renderer.domElement);const h=Object.assign(L,this.initOpt.control.options||{});Object.keys(h).forEach(n=>{this.control[n]=h[n]})}m.nextTick(()=>this.isReady.value=!0),this.initOpt.stats&&this.initStats(),this.initOpt.css3d&&this.initCss3dRenderer(),this.initOpt.renderType==="loop"?requestAnimationFrame(this.animate):this.initOpt.renderType==="change"&&this.control&&this.control.addEventListener("change",this.requestRenderIfNotRequested),this.initListener()});t(this,"onContextLost",e=>{e.preventDefault(),cancelAnimationFrame(this.animate)});t(this,"onContextRestored",e=>{e.preventDefault(),this.dispose(),m.nextTick(()=>{this.setup(this.selector)})});t(this,"initListener",()=>{this.initOpt.initListener=="True"&&window&&window.addEventListener("resize",()=>this.onResize(),!1),this.renderer.domElement.addEventListener("webglcontextlost",this.onContextLost,!1),this.renderer.domElement.addEventListener("webglcontextrestored",this.onContextRestored,!1)});t(this,"removeListener",()=>{window&&window.removeEventListener("resize",this.onResize,!1),this.renderer.domElement.removeEventListener("webglcontextlost",this.onContextLost.bind(p),!1),this.renderer.domElement.removeEventListener("webglcontextrestored",this.onContextRestored.bind(p),!1)});t(this,"animate",()=>{this.initOpt.renderType==="loop"&&this.onRender(),requestAnimationFrame(this.animate)});t(this,"onRender",()=>{this.isDispose||(this.renderRequested=!1,this.stats&&this.stats.update(),this.control&&this.control.update(),this.renderer.render(this.scene,this.camera),this.css3dRenderer&&this.css3dRenderer.render(this.scene,this.camera),this.eventsListener.onRender&&this.eventsListener.onRender.length&&this.eventsListener.onRender.forEach(e=>e()))});t(this,"requestRenderIfNotRequested",()=>{this.renderRequested||(this.renderRequested=!0,requestAnimationFrame(()=>{this.onRender()}))});t(this,"onResize",()=>{m.nextTick(()=>{const e=Math.tan(Math.PI/180*this.camera.fov/2),[s,i]=this.getTargetSize();this.camera.aspect=s/i,this.camera.fov=360/Math.PI*Math.atan(e*(i/s)),this.camera.updateProjectionMatrix(),this.camera.lookAt(this.scene.position),this.renderer.setSize(s,i),this.css3dRenderer&&this.css3dRenderer.setSize(s,i),this.onRender()})});t(this,"frameArea",(e,s,i)=>{const c=new o.Box3().setFromObject(e),h=c.getSize(new o.Vector3).length(),n=c.getCenter(new o.Vector3);i&&n.add(i);const R=h*s*.5,g=o.MathUtils.degToRad(this.camera.fov*.5),b=R/Math.tan(g),u=new o.Vector3().subVectors(this.camera.position,n).multiply(new o.Vector3(1,1,1)).normalize().multiplyScalar(b).add(n),d={x:u.x,y:u.y,z:u.z,lookAt_x:n.x,lookAt_y:n.y,lookAt_z:n.z};return this.camera.position.set(d.x,d.y,d.z),this.camera.lookAt(d.lookAt_x,d.lookAt_y,d.lookAt_z),this.camera.updateProjectionMatrix(),this.control.target.copy(n),this.control.update(),h});t(this,"on",(e,s)=>{!e||!s||(this.eventsListener[e]||(this.eventsListener[e]=[]),this.eventsListener[e].push(s))});this.isReady.value=!1,this.scene=new o.Scene({}),this.camera=new o.PerspectiveCamera(50,1,.1,2e3),this.renderer=new o.WebGLRenderer({antialias:!0,alpha:!0,precision:"mediump",logarithmicDepthBuffer:!0}),this.version=x,s&&(this.initOpt=Object.assign(this.initOpt,s)),e&&this.setup(e)}initStats(){const e=new Stats;e.dom.style.cssText="position:absolute;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",this.el.appendChild(e.dom)}initCss3dRenderer(){this.css3dRenderer=new r.CSS3DRenderer;const[e,s]=this.getTargetSize();this.css3dRenderer.setSize(e,s),this.css3dRenderer.domElement.style.position="absolute",this.css3dRenderer.domElement.style.pointerEvents="none",this.css3dRenderer.domElement.style.top=0,this.css3dRenderer.domElement.style.left=0,this.el.appendChild(this.css3dRenderer.domElement)}getTargetSize(){const e=document.querySelector(this.selector);return e?[e.clientWidth,e.clientHeight]:[0,0]}off(e){e||(this.eventsListener={}),this.eventsListener[e]&&(this.eventsListener[e]=[])}dispose(){this.isDispose=!0,this.removeListener(),r.disposeThreeObject(this.scene),this.renderer.dispose(),this.renderer.domElement.remove(),this.el=null,this.renderer=null,this.camera=null,this.scene=null,this.control=null,this.css3dRenderer=null}}exports.IDBCache=a.IDBCache;exports.intersectColor=a.intersectColor;exports.obbObjects=a.obbObjects;exports.useGLTFLoader=a.useGLTFLoader;exports.useObb=a.useObb;exports.useRaycaster=a.useRaycaster;exports.useThreeJs=a.useThreeJs;exports.ImageLoader=r.ImageLoader;exports.createArrowHelper=r.createArrowHelper;exports.createAxesHelper=r.createAxesHelper;exports.createBox3Helper=r.createBox3Helper;exports.createCameraHelper=r.createCameraHelper;exports.createGridHelper=r.createGridHelper;exports.createMapControls=r.createMapControls;exports.createOrbitControl=r.createOrbitControl;exports.createRaycaster=r.createRaycaster;exports.createStats=r.createStats;exports.dataToObject3D=r.dataToObject3D;exports.disposeThreeObject=r.disposeThreeObject;exports.initEnvImage=r.initEnvImage;exports.object3DToData=r.object3DToData;exports.createInfoPlane=f.createInfoPlane;exports.createTagPlane=f.createTagPlane;exports.getCommonParent=f.getCommonParent;exports.ThreeIns=p;
package/dist/threejs.js CHANGED
@@ -1,27 +1,187 @@
1
- import { I as r, i as s, o as t, c as o, b as c, a as l, u as n } from "./useGLTFLoader-DusnFN5B.js";
2
- import { I as b, h as i, g as m, b as g, c as C, a as I, e as d, d as f, f as u, i as x, j as H, k as h } from "./ImageLoader-CB_URfeZ.js";
3
- import { c as T, a as j, g as L } from "./common-fbJUHqlj.js";
1
+ var g = Object.defineProperty;
2
+ var x = (a, e, s) => e in a ? g(a, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : a[e] = s;
3
+ var t = (a, e, s) => x(a, typeof e != "symbol" ? e + "" : e, s);
4
+ import { I, i as k, o as H, c as W, b as B, a as V, u as _ } from "./useGLTFLoader-BBGTGOYm.js";
5
+ import { d as v, C as L, j as O } from "./modelSerialize-5oJb1ka7.js";
6
+ import { I as N, h as J, g as U, b as Y, c as K, a as Q, e as X, f as Z, i as $, l as ee, k as te, o as se } from "./modelSerialize-5oJb1ka7.js";
7
+ import { c as ne, a as re, g as oe } from "./common-D1_IztgM.js";
8
+ import { MathUtils as p, Scene as b, PerspectiveCamera as y, WebGLRenderer as z, Box3 as w, Vector3 as h } from "three";
9
+ import { ref as S, nextTick as l } from "vue";
10
+ const C = "1.0.19", E = {
11
+ enableDamping: !0,
12
+ dampingFactor: 0.25,
13
+ screenSpacePanning: !1,
14
+ minDistance: 0.1,
15
+ maxDistance: 1e3,
16
+ maxPolarAngle: p.degToRad(60)
17
+ };
18
+ class m {
19
+ constructor(e, s) {
20
+ t(this, "isReady", S(!1));
21
+ t(this, "scene", null);
22
+ t(this, "camera", null);
23
+ t(this, "renderer", null);
24
+ t(this, "control", null);
25
+ t(this, "css3dRenderer", null);
26
+ t(this, "el", null);
27
+ t(this, "renderRequested", !1);
28
+ t(this, "selector", null);
29
+ t(this, "eventsListener", {});
30
+ t(this, "stats", null);
31
+ t(this, "isDispose", !1);
32
+ t(this, "version", "0.0.0");
33
+ t(this, "initOpt", {
34
+ css3d: !1,
35
+ stats: !1,
36
+ renderType: "change",
37
+ initListener: "True",
38
+ control: {
39
+ init: !0,
40
+ options: {}
41
+ }
42
+ });
43
+ t(this, "setup", (e) => {
44
+ this.isDispose = !1, this.selector = e, this.el = document.querySelector(e);
45
+ const s = Math.tan(Math.PI / 180 * this.camera.fov / 2), [i, r] = this.getTargetSize();
46
+ if (this.camera.aspect = i / r, this.camera.position.set(47, 39, 100), this.camera.fov = 360 / Math.PI * Math.atan(s * (r / i)), this.camera.lookAt(0, 0, 0), this.camera.updateProjectionMatrix(), this.renderer.setPixelRatio(window.devicePixelRatio), this.renderer.setSize(i, r), this.el.appendChild(this.renderer.domElement), this.initOpt.control && this.initOpt.control.init) {
47
+ this.control = v(this.camera, this.renderer.domElement);
48
+ const d = Object.assign(
49
+ E,
50
+ this.initOpt.control.options || {}
51
+ );
52
+ Object.keys(d).forEach((n) => {
53
+ this.control[n] = d[n];
54
+ });
55
+ }
56
+ l(() => this.isReady.value = !0), this.initOpt.stats && this.initStats(), this.initOpt.css3d && this.initCss3dRenderer(), this.initOpt.renderType === "loop" ? requestAnimationFrame(this.animate) : this.initOpt.renderType === "change" && this.control && this.control.addEventListener(
57
+ "change",
58
+ this.requestRenderIfNotRequested
59
+ ), this.initListener();
60
+ });
61
+ t(this, "onContextLost", (e) => {
62
+ e.preventDefault(), cancelAnimationFrame(this.animate);
63
+ });
64
+ t(this, "onContextRestored", (e) => {
65
+ e.preventDefault(), this.dispose(), l(() => {
66
+ this.setup(this.selector);
67
+ });
68
+ });
69
+ t(this, "initListener", () => {
70
+ this.initOpt.initListener == "True" && window && window.addEventListener("resize", () => this.onResize(), !1), this.renderer.domElement.addEventListener(
71
+ "webglcontextlost",
72
+ this.onContextLost,
73
+ !1
74
+ ), this.renderer.domElement.addEventListener(
75
+ "webglcontextrestored",
76
+ this.onContextRestored,
77
+ !1
78
+ );
79
+ });
80
+ t(this, "removeListener", () => {
81
+ window && window.removeEventListener("resize", this.onResize, !1), this.renderer.domElement.removeEventListener(
82
+ "webglcontextlost",
83
+ this.onContextLost.bind(m),
84
+ !1
85
+ ), this.renderer.domElement.removeEventListener(
86
+ "webglcontextrestored",
87
+ this.onContextRestored.bind(m),
88
+ !1
89
+ );
90
+ });
91
+ t(this, "animate", () => {
92
+ this.initOpt.renderType === "loop" && this.onRender(), requestAnimationFrame(this.animate);
93
+ });
94
+ t(this, "onRender", () => {
95
+ this.isDispose || (this.renderRequested = !1, this.stats && this.stats.update(), this.control && this.control.update(), this.renderer.render(this.scene, this.camera), this.css3dRenderer && this.css3dRenderer.render(this.scene, this.camera), this.eventsListener.onRender && this.eventsListener.onRender.length && this.eventsListener.onRender.forEach((e) => e()));
96
+ });
97
+ t(this, "requestRenderIfNotRequested", () => {
98
+ this.renderRequested || (this.renderRequested = !0, requestAnimationFrame(() => {
99
+ this.onRender();
100
+ }));
101
+ });
102
+ t(this, "onResize", () => {
103
+ l(() => {
104
+ const e = Math.tan(Math.PI / 180 * this.camera.fov / 2), [s, i] = this.getTargetSize();
105
+ this.camera.aspect = s / i, this.camera.fov = 360 / Math.PI * Math.atan(e * (i / s)), this.camera.updateProjectionMatrix(), this.camera.lookAt(this.scene.position), this.renderer.setSize(s, i), this.css3dRenderer && this.css3dRenderer.setSize(s, i), this.onRender();
106
+ });
107
+ });
108
+ /**物体视窗自动适应
109
+ *
110
+ * @param {Object3D} model
111
+ * @param {Number} scale
112
+ * @param {Vector3} offset
113
+ */
114
+ t(this, "frameArea", (e, s, i) => {
115
+ const r = new w().setFromObject(e), d = r.getSize(new h()).length(), n = r.getCenter(new h());
116
+ i && n.add(i);
117
+ const u = d * s * 0.5, f = p.degToRad(this.camera.fov * 0.5), R = u / Math.tan(f), c = new h().subVectors(this.camera.position, n).multiply(new h(1, 1, 1)).normalize().multiplyScalar(R).add(n), o = {
118
+ x: c.x,
119
+ y: c.y,
120
+ z: c.z,
121
+ lookAt_x: n.x,
122
+ lookAt_y: n.y,
123
+ lookAt_z: n.z
124
+ };
125
+ return this.camera.position.set(o.x, o.y, o.z), this.camera.lookAt(
126
+ o.lookAt_x,
127
+ o.lookAt_y,
128
+ o.lookAt_z
129
+ ), this.camera.updateProjectionMatrix(), this.control.target.copy(n), this.control.update(), d;
130
+ });
131
+ t(this, "on", (e, s) => {
132
+ !e || !s || (this.eventsListener[e] || (this.eventsListener[e] = []), this.eventsListener[e].push(s));
133
+ });
134
+ this.isReady.value = !1, this.scene = new b({}), this.camera = new y(50, 1, 0.1, 2e3), this.renderer = new z({
135
+ antialias: !0,
136
+ alpha: !0,
137
+ precision: "mediump",
138
+ logarithmicDepthBuffer: !0
139
+ }), this.version = C, s && (this.initOpt = Object.assign(this.initOpt, s)), e && this.setup(e);
140
+ }
141
+ initStats() {
142
+ const e = new Stats();
143
+ e.dom.style.cssText = "position:absolute;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000", this.el.appendChild(e.dom);
144
+ }
145
+ initCss3dRenderer() {
146
+ this.css3dRenderer = new L();
147
+ const [e, s] = this.getTargetSize();
148
+ this.css3dRenderer.setSize(e, s), this.css3dRenderer.domElement.style.position = "absolute", this.css3dRenderer.domElement.style.pointerEvents = "none", this.css3dRenderer.domElement.style.top = 0, this.css3dRenderer.domElement.style.left = 0, this.el.appendChild(this.css3dRenderer.domElement);
149
+ }
150
+ getTargetSize() {
151
+ const e = document.querySelector(this.selector);
152
+ return e ? [e.clientWidth, e.clientHeight] : [0, 0];
153
+ }
154
+ off(e) {
155
+ e || (this.eventsListener = {}), this.eventsListener[e] && (this.eventsListener[e] = []);
156
+ }
157
+ dispose() {
158
+ this.isDispose = !0, this.removeListener(), O(this.scene), this.renderer.dispose(), this.renderer.domElement.remove(), this.el = null, this.renderer = null, this.camera = null, this.scene = null, this.control = null, this.css3dRenderer = null;
159
+ }
160
+ }
4
161
  export {
5
- r as IDBCache,
6
- b as ImageLoader,
7
- i as createArrowHelper,
8
- m as createAxesHelper,
9
- g as createBox3Helper,
10
- C as createCameraHelper,
11
- I as createGridHelper,
12
- T as createInfoPlane,
13
- d as createMapControls,
14
- f as createOrbitControl,
15
- u as createRaycaster,
16
- x as createStats,
17
- j as createTagPlane,
18
- H as disposeThreeObject,
19
- L as getCommonParent,
20
- h as initEnvImage,
21
- s as intersectColor,
22
- t as obbObjects,
23
- o as useGLTFLoader,
24
- c as useObb,
25
- l as useRaycaster,
26
- n as useThreeJs
162
+ I as IDBCache,
163
+ N as ImageLoader,
164
+ m as ThreeIns,
165
+ J as createArrowHelper,
166
+ U as createAxesHelper,
167
+ Y as createBox3Helper,
168
+ K as createCameraHelper,
169
+ Q as createGridHelper,
170
+ ne as createInfoPlane,
171
+ X as createMapControls,
172
+ v as createOrbitControl,
173
+ Z as createRaycaster,
174
+ $ as createStats,
175
+ re as createTagPlane,
176
+ ee as dataToObject3D,
177
+ O as disposeThreeObject,
178
+ oe as getCommonParent,
179
+ te as initEnvImage,
180
+ k as intersectColor,
181
+ H as obbObjects,
182
+ se as object3DToData,
183
+ W as useGLTFLoader,
184
+ B as useObb,
185
+ V as useRaycaster,
186
+ _ as useThreeJs
27
187
  };