@shopware-ag/dive 2.0.1-beta.4 → 2.0.1-beta.6

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 (119) hide show
  1. package/build/chunks/ARSystem-D27w7Pck.mjs +208 -0
  2. package/build/chunks/ARSystem-_0cLAxyG.cjs +1 -0
  3. package/build/{src/modules/animation/AnimationSystem.mjs → chunks/AnimationSystem-Bf-xhqRe.mjs} +24 -18
  4. package/build/chunks/AnimationSystem-DFUYMNpj.cjs +1 -0
  5. package/build/{src/modules/asset/exporter/AssetExporter.cjs → chunks/AssetExporter-CAqADFbL.cjs} +1 -1
  6. package/build/{src/modules/asset/exporter/AssetExporter.mjs → chunks/AssetExporter-ClYQ4gnb.mjs} +2 -2
  7. package/build/{src/modules/asset/loader/AssetLoader.mjs → chunks/AssetLoader-BewzFwHi.mjs} +6 -6
  8. package/build/chunks/AssetLoader-Bq-Ekxil.cjs +4 -0
  9. package/build/chunks/AxisCamera-CUb3g8WX.cjs +1 -0
  10. package/build/chunks/AxisCamera-lXJLIPLK.mjs +39 -0
  11. package/build/chunks/AxisHelperColors-BrGqktN5.cjs +1 -0
  12. package/build/chunks/AxisHelperColors-JLBHYQDi.mjs +9 -0
  13. package/build/chunks/MediaCreator-CEWeS42n.cjs +1 -0
  14. package/build/{src/modules/mediacreator/MediaCreator.mjs → chunks/MediaCreator-psLAAyJA.mjs} +1 -1
  15. package/build/chunks/ModuleRegistry-CBfx1EVd.mjs +13 -0
  16. package/build/chunks/ModuleRegistry-CDIxOzgZ.cjs +1 -0
  17. package/build/chunks/OrbitController-B8VkQV1e.cjs +1 -0
  18. package/build/chunks/OrbitController-CXu1ko6E.mjs +462 -0
  19. package/build/chunks/{PerspectiveCamera-sm4_81KJ.mjs → PerspectiveCamera-PMJPzAn3.mjs} +2 -2
  20. package/build/chunks/SelectTool-9eiKZXT4.cjs +1 -0
  21. package/build/chunks/{SelectTool-DmuTopJx.mjs → SelectTool-DLXheZay.mjs} +23 -18
  22. package/build/{src/modules/state/State.mjs → chunks/State-BNgqNPrs.mjs} +2 -2
  23. package/build/{src/modules/state/State.cjs → chunks/State-Mvu0hG-n.cjs} +1 -1
  24. package/build/{src/modules/toolbox/Toolbox.mjs → chunks/Toolbox-DKuyL8n5.mjs} +1 -1
  25. package/build/chunks/Toolbox-qFN47t2F.cjs +1 -0
  26. package/build/chunks/findInterface-C6mrvf_t.cjs +1 -0
  27. package/build/chunks/findInterface-DbJ5qzbc.mjs +11 -0
  28. package/build/chunks/index-C_uFFwT2.mjs +5 -0
  29. package/build/chunks/index-DAwIH9xh.cjs +1 -0
  30. package/build/chunks/package-CHgGmFCa.cjs +1 -0
  31. package/build/chunks/package-CIkS9WF6.mjs +39 -0
  32. package/build/dive.cjs +2 -2
  33. package/build/dive.mjs +597 -1074
  34. package/build/modules/animation/index.cjs +1 -0
  35. package/build/modules/animation/index.d.ts +2 -0
  36. package/build/modules/animation/index.mjs +5 -0
  37. package/build/modules/ar/index.cjs +1 -0
  38. package/build/modules/ar/index.d.ts +2 -0
  39. package/build/modules/ar/index.mjs +11 -0
  40. package/build/modules/assetconverter/index.cjs +1 -0
  41. package/build/modules/assetconverter/index.d.ts +2 -0
  42. package/build/modules/assetconverter/index.mjs +4 -0
  43. package/build/modules/assetexporter/index.cjs +1 -0
  44. package/build/modules/assetexporter/index.d.ts +2 -0
  45. package/build/modules/assetexporter/index.mjs +4 -0
  46. package/build/modules/assetloader/index.cjs +1 -0
  47. package/build/modules/assetloader/index.d.ts +2 -0
  48. package/build/modules/assetloader/index.mjs +4 -0
  49. package/build/modules/axiscamera/index.cjs +1 -0
  50. package/build/modules/axiscamera/index.d.ts +2 -0
  51. package/build/modules/axiscamera/index.mjs +4 -0
  52. package/build/modules/controller/index.cjs +1 -0
  53. package/build/modules/controller/index.d.ts +2 -0
  54. package/build/modules/controller/index.mjs +5 -0
  55. package/build/modules/mediacreator/index.cjs +1 -0
  56. package/build/modules/mediacreator/index.d.ts +2 -0
  57. package/build/modules/mediacreator/index.mjs +4 -0
  58. package/build/modules/state/index.cjs +1 -0
  59. package/build/modules/state/index.d.ts +2 -0
  60. package/build/modules/state/index.mjs +39 -0
  61. package/build/modules/systeminfo/index.cjs +1 -0
  62. package/build/modules/systeminfo/index.d.ts +2 -0
  63. package/build/{src/modules/systeminfo/SystemInfo.mjs → modules/systeminfo/index.mjs} +48 -27
  64. package/build/modules/toolbox/index.cjs +1 -0
  65. package/build/modules/toolbox/index.d.ts +2 -0
  66. package/build/modules/toolbox/index.mjs +10 -0
  67. package/build/src/components/node/Node.d.ts +3 -3
  68. package/build/src/core/Dive.d.ts +1 -0
  69. package/build/src/engine/index.d.ts +6 -0
  70. package/build/src/engine/renderer/Renderer.d.ts +47 -7
  71. package/build/src/events/index.d.ts +1 -0
  72. package/build/src/index.d.ts +2 -1
  73. package/build/src/modules/ModuleRegistry.d.ts +3 -3
  74. package/build/src/modules/animation/index.d.ts +2 -0
  75. package/build/src/modules/ar/ARSystem.d.ts +0 -20
  76. package/build/src/modules/ar/arquicklook/ARQuickLook.d.ts +8 -0
  77. package/build/src/modules/ar/error/ar-errors.d.ts +18 -0
  78. package/build/src/modules/ar/index.d.ts +4 -0
  79. package/build/src/modules/ar/sceneviewer/SceneViewer.d.ts +10 -0
  80. package/build/src/modules/ar/webxr/raycaster/WebXRRaycaster.d.ts +1 -1
  81. package/build/src/modules/ar/webxr/touchscreencontrols/WebXRTouchscreenControls.d.ts +1 -1
  82. package/build/src/modules/{asset/converter → assetconverter}/AssetConverter.d.ts +3 -3
  83. package/build/src/modules/assetconverter/index.d.ts +1 -0
  84. package/build/src/modules/{asset/exporter → assetexporter}/AssetExporter.d.ts +1 -1
  85. package/build/src/modules/assetexporter/index.d.ts +1 -0
  86. package/build/src/modules/assetloader/index.d.ts +1 -0
  87. package/build/src/modules/axiscamera/index.d.ts +1 -0
  88. package/build/src/modules/controller/index.d.ts +1 -0
  89. package/build/src/modules/mediacreator/index.d.ts +1 -0
  90. package/build/src/modules/state/index.d.ts +4 -0
  91. package/build/src/modules/state/types/ActionTypes.d.ts +1 -1
  92. package/build/src/modules/systeminfo/SystemInfo.d.ts +21 -0
  93. package/build/src/modules/systeminfo/index.d.ts +1 -0
  94. package/build/src/modules/toolbox/index.d.ts +4 -0
  95. package/build/src/modules/toolbox/select/SelectTool.d.ts +0 -3
  96. package/build/src/modules/toolbox/transform/TransformTool.d.ts +0 -3
  97. package/package.json +47 -37
  98. package/build/chunks/ModuleRegistry-NyNtjHb2.cjs +0 -1
  99. package/build/chunks/ModuleRegistry-RSub8W0G.mjs +0 -13
  100. package/build/chunks/SelectTool-C7nerV4P.cjs +0 -1
  101. package/build/chunks/findInterface-BEdL2iUQ.cjs +0 -1
  102. package/build/chunks/findInterface-OrXgmwxj.mjs +0 -18
  103. package/build/chunks/index-C7Wx_9uY.mjs +0 -33
  104. package/build/chunks/index-MNP0K5dt.cjs +0 -1
  105. package/build/chunks/package-GVEz369Q.mjs +0 -39
  106. package/build/chunks/package-HZE1xDCC.cjs +0 -1
  107. package/build/src/error/ar-compatibility/ar-compatibility-error.d.ts +0 -12
  108. package/build/src/modules/animation/AnimationSystem.cjs +0 -1
  109. package/build/src/modules/ar/ARSystem.cjs +0 -1
  110. package/build/src/modules/ar/ARSystem.mjs +0 -163
  111. package/build/src/modules/asset/loader/AssetLoader.cjs +0 -4
  112. package/build/src/modules/mediacreator/MediaCreator.cjs +0 -1
  113. package/build/src/modules/systeminfo/SystemInfo.cjs +0 -1
  114. package/build/src/modules/toolbox/Toolbox.cjs +0 -1
  115. /package/build/{src/modules/asset/converter/AssetConverter.cjs → chunks/AssetConverter-BTAb23e8.cjs} +0 -0
  116. /package/build/{src/modules/asset/converter/AssetConverter.mjs → chunks/AssetConverter-D-qOTLs1.mjs} +0 -0
  117. /package/build/src/{modules/events → events}/EventExecutor.d.ts +0 -0
  118. /package/build/src/modules/{asset/loader → assetloader}/AssetLoader.d.ts +0 -0
  119. /package/build/src/modules/{asset → assetloader}/draco/DracoLoader.d.ts +0 -0
@@ -0,0 +1 @@
1
+ "use strict";var Xe=Object.defineProperty;var We=(j,p,u)=>p in j?Xe(j,p,{enumerable:!0,configurable:!0,writable:!0,value:u}):j[p]=u;var X=(j,p,u)=>We(j,typeof p!="symbol"?p+"":p,u);const n=require("three"),Me={type:"change"},ee={type:"start"},De={type:"end"},W=new n.Ray,we=new n.Plane,Be=Math.cos(70*n.MathUtils.DEG2RAD);class qe extends n.EventDispatcher{constructor(p,u){super(),this.object=p,this.domElement=u,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new n.Vector3,this.cursor=new n.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.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:n.MOUSE.ROTATE,MIDDLE:n.MOUSE.DOLLY,RIGHT:n.MOUSE.PAN},this.touches={ONE:n.TOUCH.ROTATE,TWO:n.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return r.phi},this.getAzimuthalAngle=function(){return r.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(t){t.addEventListener("keydown",$),this._domElementKeyEvents=t},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener("keydown",$),this._domElementKeyEvents=null},this.saveState=function(){e.target0.copy(e.target),e.position0.copy(e.object.position),e.zoom0=e.object.zoom},this.reset=function(){e.target.copy(e.target0),e.object.position.copy(e.position0),e.object.zoom=e.zoom0,e.object.updateProjectionMatrix(),e.dispatchEvent(Me),e.update(),s=a.NONE},this.update=function(){const t=new n.Vector3,o=new n.Quaternion().setFromUnitVectors(p.up,new n.Vector3(0,1,0)),i=o.clone().invert(),c=new n.Vector3,m=new n.Quaternion,E=new n.Vector3,d=2*Math.PI;return function(Ze=null){const Oe=e.object.position;t.copy(Oe).sub(e.target),t.applyQuaternion(o),r.setFromVector3(t),e.autoRotate&&s===a.NONE&&I(je(Ze)),e.enableDamping?(r.theta+=h.theta*e.dampingFactor,r.phi+=h.phi*e.dampingFactor):(r.theta+=h.theta,r.phi+=h.phi);let f=e.minAzimuthAngle,b=e.maxAzimuthAngle;isFinite(f)&&isFinite(b)&&(f<-Math.PI?f+=d:f>Math.PI&&(f-=d),b<-Math.PI?b+=d:b>Math.PI&&(b-=d),f<=b?r.theta=Math.max(f,Math.min(b,r.theta)):r.theta=r.theta>(f+b)/2?Math.max(f,r.theta):Math.min(b,r.theta)),r.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,r.phi)),r.makeSafe(),e.enableDamping===!0?e.target.addScaledVector(A,e.dampingFactor):e.target.add(A),e.target.sub(e.cursor),e.target.clampLength(e.minTargetRadius,e.maxTargetRadius),e.target.add(e.cursor);let z=!1;if(e.zoomToCursor&&H||e.object.isOrthographicCamera)r.radius=v(r.radius);else{const g=r.radius;r.radius=v(r.radius*T),z=g!=r.radius}if(t.setFromSpherical(r),t.applyQuaternion(i),Oe.copy(e.target).add(t),e.object.lookAt(e.target),e.enableDamping===!0?(h.theta*=1-e.dampingFactor,h.phi*=1-e.dampingFactor,A.multiplyScalar(1-e.dampingFactor)):(h.set(0,0,0),A.set(0,0,0)),e.zoomToCursor&&H){let g=null;if(e.object.isPerspectiveCamera){const U=t.length();g=v(U*T);const Z=U-g;e.object.position.addScaledVector(oe,Z),e.object.updateMatrixWorld(),z=!!Z}else if(e.object.isOrthographicCamera){const U=new n.Vector3(y.x,y.y,0);U.unproject(e.object);const Z=e.object.zoom;e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/T)),e.object.updateProjectionMatrix(),z=Z!==e.object.zoom;const Pe=new n.Vector3(y.x,y.y,0);Pe.unproject(e.object),e.object.position.sub(Pe).add(U),e.object.updateMatrixWorld(),g=t.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),e.zoomToCursor=!1;g!==null&&(this.screenSpacePanning?e.target.set(0,0,-1).transformDirection(e.object.matrix).multiplyScalar(g).add(e.object.position):(W.origin.copy(e.object.position),W.direction.set(0,0,-1).transformDirection(e.object.matrix),Math.abs(e.object.up.dot(W.direction))<Be?p.lookAt(e.target):(we.setFromNormalAndCoplanarPoint(e.object.up,e.target),W.intersectPlane(we,e.target))))}else if(e.object.isOrthographicCamera){const g=e.object.zoom;e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/T)),g!==e.object.zoom&&(e.object.updateProjectionMatrix(),z=!0)}return T=1,H=!1,z||c.distanceToSquared(e.object.position)>_||8*(1-m.dot(e.object.quaternion))>_||E.distanceToSquared(e.target)>_?(e.dispatchEvent(Me),c.copy(e.object.position),m.copy(e.object.quaternion),E.copy(e.target),!0):!1}}(),this.dispose=function(){e.domElement.removeEventListener("contextmenu",Ee),e.domElement.removeEventListener("pointerdown",he),e.domElement.removeEventListener("pointercancel",Y),e.domElement.removeEventListener("wheel",fe),e.domElement.removeEventListener("pointermove",J),e.domElement.removeEventListener("pointerup",Y),e.domElement.getRootNode().removeEventListener("keydown",be,{capture:!0}),e._domElementKeyEvents!==null&&(e._domElementKeyEvents.removeEventListener("keydown",$),e._domElementKeyEvents=null)};const e=this,a={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=a.NONE;const _=1e-6,r=new n.Spherical,h=new n.Spherical;let T=1;const A=new n.Vector3,O=new n.Vector2,P=new n.Vector2,x=new n.Vector2,M=new n.Vector2,D=new n.Vector2,L=new n.Vector2,S=new n.Vector2,R=new n.Vector2,w=new n.Vector2,oe=new n.Vector3,y=new n.Vector2;let H=!1;const l=[],N={};let q=!1;function je(t){return t!==null?2*Math.PI/60*e.autoRotateSpeed*t:2*Math.PI/60/60*e.autoRotateSpeed}function F(t){const o=Math.abs(t*.01);return Math.pow(.95,e.zoomSpeed*o)}function I(t){h.theta-=t}function K(t){h.phi-=t}const ne=function(){const t=new n.Vector3;return function(i,c){t.setFromMatrixColumn(c,0),t.multiplyScalar(-i),A.add(t)}}(),ae=function(){const t=new n.Vector3;return function(i,c){e.screenSpacePanning===!0?t.setFromMatrixColumn(c,1):(t.setFromMatrixColumn(c,0),t.crossVectors(e.object.up,t)),t.multiplyScalar(i),A.add(t)}}(),C=function(){const t=new n.Vector3;return function(i,c){const m=e.domElement;if(e.object.isPerspectiveCamera){const E=e.object.position;t.copy(E).sub(e.target);let d=t.length();d*=Math.tan(e.object.fov/2*Math.PI/180),ne(2*i*d/m.clientHeight,e.object.matrix),ae(2*c*d/m.clientHeight,e.object.matrix)}else e.object.isOrthographicCamera?(ne(i*(e.object.right-e.object.left)/e.object.zoom/m.clientWidth,e.object.matrix),ae(c*(e.object.top-e.object.bottom)/e.object.zoom/m.clientHeight,e.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1)}}();function G(t){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?T/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function ie(t){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?T*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function Q(t,o){if(!e.zoomToCursor)return;H=!0;const i=e.domElement.getBoundingClientRect(),c=t-i.left,m=o-i.top,E=i.width,d=i.height;y.x=c/E*2-1,y.y=-(m/d)*2+1,oe.set(y.x,y.y,1).unproject(e.object).sub(e.object.position).normalize()}function v(t){return Math.max(e.minDistance,Math.min(e.maxDistance,t))}function se(t){O.set(t.clientX,t.clientY)}function Ae(t){Q(t.clientX,t.clientX),S.set(t.clientX,t.clientY)}function ce(t){M.set(t.clientX,t.clientY)}function xe(t){P.set(t.clientX,t.clientY),x.subVectors(P,O).multiplyScalar(e.rotateSpeed);const o=e.domElement;I(2*Math.PI*x.x/o.clientHeight),K(2*Math.PI*x.y/o.clientHeight),O.copy(P),e.update()}function Le(t){R.set(t.clientX,t.clientY),w.subVectors(R,S),w.y>0?G(F(w.y)):w.y<0&&ie(F(w.y)),S.copy(R),e.update()}function Se(t){D.set(t.clientX,t.clientY),L.subVectors(D,M).multiplyScalar(e.panSpeed),C(L.x,L.y),M.copy(D),e.update()}function Re(t){Q(t.clientX,t.clientY),t.deltaY<0?ie(F(t.deltaY)):t.deltaY>0&&G(F(t.deltaY)),e.update()}function Ce(t){let o=!1;switch(t.code){case e.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?K(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):C(0,e.keyPanSpeed),o=!0;break;case e.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?K(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):C(0,-e.keyPanSpeed),o=!0;break;case e.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?I(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):C(e.keyPanSpeed,0),o=!0;break;case e.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?I(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):C(-e.keyPanSpeed,0),o=!0;break}o&&(t.preventDefault(),e.update())}function re(t){if(l.length===1)O.set(t.pageX,t.pageY);else{const o=k(t),i=.5*(t.pageX+o.x),c=.5*(t.pageY+o.y);O.set(i,c)}}function le(t){if(l.length===1)M.set(t.pageX,t.pageY);else{const o=k(t),i=.5*(t.pageX+o.x),c=.5*(t.pageY+o.y);M.set(i,c)}}function ue(t){const o=k(t),i=t.pageX-o.x,c=t.pageY-o.y,m=Math.sqrt(i*i+c*c);S.set(0,m)}function ke(t){e.enableZoom&&ue(t),e.enablePan&&le(t)}function Ne(t){e.enableZoom&&ue(t),e.enableRotate&&re(t)}function me(t){if(l.length==1)P.set(t.pageX,t.pageY);else{const i=k(t),c=.5*(t.pageX+i.x),m=.5*(t.pageY+i.y);P.set(c,m)}x.subVectors(P,O).multiplyScalar(e.rotateSpeed);const o=e.domElement;I(2*Math.PI*x.x/o.clientHeight),K(2*Math.PI*x.y/o.clientHeight),O.copy(P)}function pe(t){if(l.length===1)D.set(t.pageX,t.pageY);else{const o=k(t),i=.5*(t.pageX+o.x),c=.5*(t.pageY+o.y);D.set(i,c)}L.subVectors(D,M).multiplyScalar(e.panSpeed),C(L.x,L.y),M.copy(D)}function de(t){const o=k(t),i=t.pageX-o.x,c=t.pageY-o.y,m=Math.sqrt(i*i+c*c);R.set(0,m),w.set(0,Math.pow(R.y/S.y,e.zoomSpeed)),G(w.y),S.copy(R);const E=(t.pageX+o.x)*.5,d=(t.pageY+o.y)*.5;Q(E,d)}function Ie(t){e.enableZoom&&de(t),e.enablePan&&pe(t)}function Ye(t){e.enableZoom&&de(t),e.enableRotate&&me(t)}function he(t){e.enabled!==!1&&(l.length===0&&(e.domElement.setPointerCapture(t.pointerId),e.domElement.addEventListener("pointermove",J),e.domElement.addEventListener("pointerup",Y)),!Ke(t)&&(He(t),t.pointerType==="touch"?ye(t):ze(t)))}function J(t){e.enabled!==!1&&(t.pointerType==="touch"?_e(t):Ue(t))}function Y(t){switch(Fe(t),l.length){case 0:e.domElement.releasePointerCapture(t.pointerId),e.domElement.removeEventListener("pointermove",J),e.domElement.removeEventListener("pointerup",Y),e.dispatchEvent(De),s=a.NONE;break;case 1:const o=l[0],i=N[o];ye({pointerId:o,pageX:i.x,pageY:i.y});break}}function ze(t){let o;switch(t.button){case 0:o=e.mouseButtons.LEFT;break;case 1:o=e.mouseButtons.MIDDLE;break;case 2:o=e.mouseButtons.RIGHT;break;default:o=-1}switch(o){case n.MOUSE.DOLLY:if(e.enableZoom===!1)return;Ae(t),s=a.DOLLY;break;case n.MOUSE.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(e.enablePan===!1)return;ce(t),s=a.PAN}else{if(e.enableRotate===!1)return;se(t),s=a.ROTATE}break;case n.MOUSE.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(e.enableRotate===!1)return;se(t),s=a.ROTATE}else{if(e.enablePan===!1)return;ce(t),s=a.PAN}break;default:s=a.NONE}s!==a.NONE&&e.dispatchEvent(ee)}function Ue(t){switch(s){case a.ROTATE:if(e.enableRotate===!1)return;xe(t);break;case a.DOLLY:if(e.enableZoom===!1)return;Le(t);break;case a.PAN:if(e.enablePan===!1)return;Se(t);break}}function fe(t){e.enabled===!1||e.enableZoom===!1||s!==a.NONE||(t.preventDefault(),e.dispatchEvent(ee),Re(Ve(t)),e.dispatchEvent(De))}function Ve(t){const o=t.deltaMode,i={clientX:t.clientX,clientY:t.clientY,deltaY:t.deltaY};switch(o){case 1:i.deltaY*=16;break;case 2:i.deltaY*=100;break}return t.ctrlKey&&!q&&(i.deltaY*=10),i}function be(t){t.key==="Control"&&(q=!0,e.domElement.getRootNode().addEventListener("keyup",ge,{passive:!0,capture:!0}))}function ge(t){t.key==="Control"&&(q=!1,e.domElement.getRootNode().removeEventListener("keyup",ge,{passive:!0,capture:!0}))}function $(t){e.enabled===!1||e.enablePan===!1||Ce(t)}function ye(t){switch(Te(t),l.length){case 1:switch(e.touches.ONE){case n.TOUCH.ROTATE:if(e.enableRotate===!1)return;re(t),s=a.TOUCH_ROTATE;break;case n.TOUCH.PAN:if(e.enablePan===!1)return;le(t),s=a.TOUCH_PAN;break;default:s=a.NONE}break;case 2:switch(e.touches.TWO){case n.TOUCH.DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;ke(t),s=a.TOUCH_DOLLY_PAN;break;case n.TOUCH.DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Ne(t),s=a.TOUCH_DOLLY_ROTATE;break;default:s=a.NONE}break;default:s=a.NONE}s!==a.NONE&&e.dispatchEvent(ee)}function _e(t){switch(Te(t),s){case a.TOUCH_ROTATE:if(e.enableRotate===!1)return;me(t),e.update();break;case a.TOUCH_PAN:if(e.enablePan===!1)return;pe(t),e.update();break;case a.TOUCH_DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;Ie(t),e.update();break;case a.TOUCH_DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Ye(t),e.update();break;default:s=a.NONE}}function Ee(t){e.enabled!==!1&&t.preventDefault()}function He(t){l.push(t.pointerId)}function Fe(t){delete N[t.pointerId];for(let o=0;o<l.length;o++)if(l[o]==t.pointerId){l.splice(o,1);return}}function Ke(t){for(let o=0;o<l.length;o++)if(l[o]==t.pointerId)return!0;return!1}function Te(t){let o=N[t.pointerId];o===void 0&&(o=new n.Vector2,N[t.pointerId]=o),o.set(t.pageX,t.pageY)}function k(t){const o=t.pointerId===l[0]?l[1]:l[0];return N[o]}e.domElement.addEventListener("contextmenu",Ee),e.domElement.addEventListener("pointerdown",he),e.domElement.addEventListener("pointercancel",Y),e.domElement.addEventListener("wheel",fe,{passive:!1}),e.domElement.getRootNode().addEventListener("keydown",be,{passive:!0,capture:!0}),this.update()}}const B={enableDamping:!0,dampingFactor:.05},V=class V extends qe{constructor(u,e,a=B){super(u,e);X(this,"uuid",n.MathUtils.generateUUID());X(this,"object");this.domElement=e,this.domElement=e,this.object=u,this.enableDamping=a.enableDamping??B.enableDamping,this.dampingFactor=a.dampingFactor??B.dampingFactor,this.object.position.set(0,2,2),this.target.copy({x:0,y:.5,z:0}),this.update()}tick(){this.enabled&&this.update()}computeEncompassingView(u){const e=u.getCenter(new n.Vector3),a=u.getSize(new n.Vector3),s=Math.max(a.x,a.y,a.z)*1.25;return{position:this.object.position.clone().normalize().clone().multiplyScalar(s),target:e.clone()}}zoomIn(u){const e=u||V.DEFAULT_ZOOM_FACTOR,{minDistance:a,maxDistance:s}=this;this.minDistance=this.maxDistance=n.MathUtils.clamp(this.getDistance()-e,a+e,s-e),this.update(),this.minDistance=a,this.maxDistance=s}zoomOut(u){const e=u||V.DEFAULT_ZOOM_FACTOR,{minDistance:a,maxDistance:s}=this;this.minDistance=this.maxDistance=n.MathUtils.clamp(this.getDistance()+e,a+e,s-e),this.update(),this.minDistance=a,this.maxDistance=s}};X(V,"DEFAULT_ZOOM_FACTOR",1);let te=V;exports.OrbitController=te;exports.OrbitControllerDefaultSettings=B;
@@ -0,0 +1,462 @@
1
+ var ve = Object.defineProperty;
2
+ var Je = (A, p, l) => p in A ? ve(A, p, { enumerable: !0, configurable: !0, writable: !0, value: l }) : A[p] = l;
3
+ var G = (A, p, l) => Je(A, typeof p != "symbol" ? p + "" : p, l);
4
+ import { Ray as $e, Plane as et, MathUtils as Q, EventDispatcher as tt, Vector3 as m, MOUSE as C, TOUCH as Y, Spherical as je, Quaternion as Ae, Vector2 as h } from "three";
5
+ const xe = { type: "change" }, ne = { type: "start" }, Le = { type: "end" }, q = new $e(), Re = new et(), ot = Math.cos(70 * Q.DEG2RAD);
6
+ class nt extends tt {
7
+ constructor(p, l) {
8
+ super(), this.object = p, this.domElement = l, this.domElement.style.touchAction = "none", this.enabled = !0, this.target = new m(), this.cursor = new m(), 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 = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 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: C.ROTATE, MIDDLE: C.DOLLY, RIGHT: C.PAN }, this.touches = { ONE: Y.ROTATE, TWO: Y.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this.getPolarAngle = function() {
9
+ return c.phi;
10
+ }, this.getAzimuthalAngle = function() {
11
+ return c.theta;
12
+ }, this.getDistance = function() {
13
+ return this.object.position.distanceTo(this.target);
14
+ }, this.listenToKeyEvents = function(t) {
15
+ t.addEventListener("keydown", oe), this._domElementKeyEvents = t;
16
+ }, this.stopListenToKeyEvents = function() {
17
+ this._domElementKeyEvents.removeEventListener("keydown", oe), this._domElementKeyEvents = null;
18
+ }, this.saveState = function() {
19
+ e.target0.copy(e.target), e.position0.copy(e.object.position), e.zoom0 = e.object.zoom;
20
+ }, this.reset = function() {
21
+ e.target.copy(e.target0), e.object.position.copy(e.position0), e.object.zoom = e.zoom0, e.object.updateProjectionMatrix(), e.dispatchEvent(xe), e.update(), i = n.NONE;
22
+ }, this.update = function() {
23
+ const t = new m(), o = new Ae().setFromUnitVectors(p.up, new m(0, 1, 0)), a = o.clone().invert(), s = new m(), u = new Ae(), T = new m(), d = 2 * Math.PI;
24
+ return function(Qe = null) {
25
+ const we = e.object.position;
26
+ t.copy(we).sub(e.target), t.applyQuaternion(o), c.setFromVector3(t), e.autoRotate && i === n.NONE && _(ke(Qe)), e.enableDamping ? (c.theta += f.theta * e.dampingFactor, c.phi += f.phi * e.dampingFactor) : (c.theta += f.theta, c.phi += f.phi);
27
+ let b = e.minAzimuthAngle, g = e.maxAzimuthAngle;
28
+ isFinite(b) && isFinite(g) && (b < -Math.PI ? b += d : b > Math.PI && (b -= d), g < -Math.PI ? g += d : g > Math.PI && (g -= d), b <= g ? c.theta = Math.max(b, Math.min(g, c.theta)) : c.theta = c.theta > (b + g) / 2 ? Math.max(b, c.theta) : Math.min(g, c.theta)), c.phi = Math.max(e.minPolarAngle, Math.min(e.maxPolarAngle, c.phi)), c.makeSafe(), e.enableDamping === !0 ? e.target.addScaledVector(x, e.dampingFactor) : e.target.add(x), e.target.sub(e.cursor), e.target.clampLength(e.minTargetRadius, e.maxTargetRadius), e.target.add(e.cursor);
29
+ let K = !1;
30
+ if (e.zoomToCursor && X || e.object.isOrthographicCamera)
31
+ c.radius = ee(c.radius);
32
+ else {
33
+ const y = c.radius;
34
+ c.radius = ee(c.radius * P), K = y != c.radius;
35
+ }
36
+ if (t.setFromSpherical(c), t.applyQuaternion(a), we.copy(e.target).add(t), e.object.lookAt(e.target), e.enableDamping === !0 ? (f.theta *= 1 - e.dampingFactor, f.phi *= 1 - e.dampingFactor, x.multiplyScalar(1 - e.dampingFactor)) : (f.set(0, 0, 0), x.set(0, 0, 0)), e.zoomToCursor && X) {
37
+ let y = null;
38
+ if (e.object.isPerspectiveCamera) {
39
+ const U = t.length();
40
+ y = ee(U * P);
41
+ const B = U - y;
42
+ e.object.position.addScaledVector(ie, B), e.object.updateMatrixWorld(), K = !!B;
43
+ } else if (e.object.isOrthographicCamera) {
44
+ const U = new m(E.x, E.y, 0);
45
+ U.unproject(e.object);
46
+ const B = e.object.zoom;
47
+ e.object.zoom = Math.max(e.minZoom, Math.min(e.maxZoom, e.object.zoom / P)), e.object.updateProjectionMatrix(), K = B !== e.object.zoom;
48
+ const Me = new m(E.x, E.y, 0);
49
+ Me.unproject(e.object), e.object.position.sub(Me).add(U), e.object.updateMatrixWorld(), y = t.length();
50
+ } else
51
+ console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), e.zoomToCursor = !1;
52
+ y !== null && (this.screenSpacePanning ? e.target.set(0, 0, -1).transformDirection(e.object.matrix).multiplyScalar(y).add(e.object.position) : (q.origin.copy(e.object.position), q.direction.set(0, 0, -1).transformDirection(e.object.matrix), Math.abs(e.object.up.dot(q.direction)) < ot ? p.lookAt(e.target) : (Re.setFromNormalAndCoplanarPoint(e.object.up, e.target), q.intersectPlane(Re, e.target))));
53
+ } else if (e.object.isOrthographicCamera) {
54
+ const y = e.object.zoom;
55
+ e.object.zoom = Math.max(e.minZoom, Math.min(e.maxZoom, e.object.zoom / P)), y !== e.object.zoom && (e.object.updateProjectionMatrix(), K = !0);
56
+ }
57
+ return P = 1, X = !1, K || s.distanceToSquared(e.object.position) > Z || 8 * (1 - u.dot(e.object.quaternion)) > Z || T.distanceToSquared(e.target) > Z ? (e.dispatchEvent(xe), s.copy(e.object.position), u.copy(e.object.quaternion), T.copy(e.target), !0) : !1;
58
+ };
59
+ }(), this.dispose = function() {
60
+ e.domElement.removeEventListener("contextmenu", Oe), e.domElement.removeEventListener("pointerdown", ge), e.domElement.removeEventListener("pointercancel", F), e.domElement.removeEventListener("wheel", ye), e.domElement.removeEventListener("pointermove", te), e.domElement.removeEventListener("pointerup", F), e.domElement.getRootNode().removeEventListener("keydown", Ee, { capture: !0 }), e._domElementKeyEvents !== null && (e._domElementKeyEvents.removeEventListener("keydown", oe), e._domElementKeyEvents = null);
61
+ };
62
+ const e = this, n = {
63
+ NONE: -1,
64
+ ROTATE: 0,
65
+ DOLLY: 1,
66
+ PAN: 2,
67
+ TOUCH_ROTATE: 3,
68
+ TOUCH_PAN: 4,
69
+ TOUCH_DOLLY_PAN: 5,
70
+ TOUCH_DOLLY_ROTATE: 6
71
+ };
72
+ let i = n.NONE;
73
+ const Z = 1e-6, c = new je(), f = new je();
74
+ let P = 1;
75
+ const x = new m(), O = new h(), D = new h(), L = new h(), w = new h(), M = new h(), R = new h(), S = new h(), k = new h(), j = new h(), ie = new m(), E = new h();
76
+ let X = !1;
77
+ const r = [], z = {};
78
+ let v = !1;
79
+ function ke(t) {
80
+ return t !== null ? 2 * Math.PI / 60 * e.autoRotateSpeed * t : 2 * Math.PI / 60 / 60 * e.autoRotateSpeed;
81
+ }
82
+ function V(t) {
83
+ const o = Math.abs(t * 0.01);
84
+ return Math.pow(0.95, e.zoomSpeed * o);
85
+ }
86
+ function _(t) {
87
+ f.theta -= t;
88
+ }
89
+ function W(t) {
90
+ f.phi -= t;
91
+ }
92
+ const se = function() {
93
+ const t = new m();
94
+ return function(a, s) {
95
+ t.setFromMatrixColumn(s, 0), t.multiplyScalar(-a), x.add(t);
96
+ };
97
+ }(), ce = function() {
98
+ const t = new m();
99
+ return function(a, s) {
100
+ e.screenSpacePanning === !0 ? t.setFromMatrixColumn(s, 1) : (t.setFromMatrixColumn(s, 0), t.crossVectors(e.object.up, t)), t.multiplyScalar(a), x.add(t);
101
+ };
102
+ }(), N = function() {
103
+ const t = new m();
104
+ return function(a, s) {
105
+ const u = e.domElement;
106
+ if (e.object.isPerspectiveCamera) {
107
+ const T = e.object.position;
108
+ t.copy(T).sub(e.target);
109
+ let d = t.length();
110
+ d *= Math.tan(e.object.fov / 2 * Math.PI / 180), se(2 * a * d / u.clientHeight, e.object.matrix), ce(2 * s * d / u.clientHeight, e.object.matrix);
111
+ } else e.object.isOrthographicCamera ? (se(a * (e.object.right - e.object.left) / e.object.zoom / u.clientWidth, e.object.matrix), ce(s * (e.object.top - e.object.bottom) / e.object.zoom / u.clientHeight, e.object.matrix)) : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."), e.enablePan = !1);
112
+ };
113
+ }();
114
+ function J(t) {
115
+ e.object.isPerspectiveCamera || e.object.isOrthographicCamera ? P /= t : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."), e.enableZoom = !1);
116
+ }
117
+ function re(t) {
118
+ e.object.isPerspectiveCamera || e.object.isOrthographicCamera ? P *= t : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."), e.enableZoom = !1);
119
+ }
120
+ function $(t, o) {
121
+ if (!e.zoomToCursor)
122
+ return;
123
+ X = !0;
124
+ const a = e.domElement.getBoundingClientRect(), s = t - a.left, u = o - a.top, T = a.width, d = a.height;
125
+ E.x = s / T * 2 - 1, E.y = -(u / d) * 2 + 1, ie.set(E.x, E.y, 1).unproject(e.object).sub(e.object.position).normalize();
126
+ }
127
+ function ee(t) {
128
+ return Math.max(e.minDistance, Math.min(e.maxDistance, t));
129
+ }
130
+ function le(t) {
131
+ O.set(t.clientX, t.clientY);
132
+ }
133
+ function Ne(t) {
134
+ $(t.clientX, t.clientX), S.set(t.clientX, t.clientY);
135
+ }
136
+ function ue(t) {
137
+ w.set(t.clientX, t.clientY);
138
+ }
139
+ function Ie(t) {
140
+ D.set(t.clientX, t.clientY), L.subVectors(D, O).multiplyScalar(e.rotateSpeed);
141
+ const o = e.domElement;
142
+ _(2 * Math.PI * L.x / o.clientHeight), W(2 * Math.PI * L.y / o.clientHeight), O.copy(D), e.update();
143
+ }
144
+ function Ce(t) {
145
+ k.set(t.clientX, t.clientY), j.subVectors(k, S), j.y > 0 ? J(V(j.y)) : j.y < 0 && re(V(j.y)), S.copy(k), e.update();
146
+ }
147
+ function Ye(t) {
148
+ M.set(t.clientX, t.clientY), R.subVectors(M, w).multiplyScalar(e.panSpeed), N(R.x, R.y), w.copy(M), e.update();
149
+ }
150
+ function ze(t) {
151
+ $(t.clientX, t.clientY), t.deltaY < 0 ? re(V(t.deltaY)) : t.deltaY > 0 && J(V(t.deltaY)), e.update();
152
+ }
153
+ function _e(t) {
154
+ let o = !1;
155
+ switch (t.code) {
156
+ case e.keys.UP:
157
+ t.ctrlKey || t.metaKey || t.shiftKey ? W(2 * Math.PI * e.rotateSpeed / e.domElement.clientHeight) : N(0, e.keyPanSpeed), o = !0;
158
+ break;
159
+ case e.keys.BOTTOM:
160
+ t.ctrlKey || t.metaKey || t.shiftKey ? W(-2 * Math.PI * e.rotateSpeed / e.domElement.clientHeight) : N(0, -e.keyPanSpeed), o = !0;
161
+ break;
162
+ case e.keys.LEFT:
163
+ t.ctrlKey || t.metaKey || t.shiftKey ? _(2 * Math.PI * e.rotateSpeed / e.domElement.clientHeight) : N(e.keyPanSpeed, 0), o = !0;
164
+ break;
165
+ case e.keys.RIGHT:
166
+ t.ctrlKey || t.metaKey || t.shiftKey ? _(-2 * Math.PI * e.rotateSpeed / e.domElement.clientHeight) : N(-e.keyPanSpeed, 0), o = !0;
167
+ break;
168
+ }
169
+ o && (t.preventDefault(), e.update());
170
+ }
171
+ function me(t) {
172
+ if (r.length === 1)
173
+ O.set(t.pageX, t.pageY);
174
+ else {
175
+ const o = I(t), a = 0.5 * (t.pageX + o.x), s = 0.5 * (t.pageY + o.y);
176
+ O.set(a, s);
177
+ }
178
+ }
179
+ function pe(t) {
180
+ if (r.length === 1)
181
+ w.set(t.pageX, t.pageY);
182
+ else {
183
+ const o = I(t), a = 0.5 * (t.pageX + o.x), s = 0.5 * (t.pageY + o.y);
184
+ w.set(a, s);
185
+ }
186
+ }
187
+ function de(t) {
188
+ const o = I(t), a = t.pageX - o.x, s = t.pageY - o.y, u = Math.sqrt(a * a + s * s);
189
+ S.set(0, u);
190
+ }
191
+ function Fe(t) {
192
+ e.enableZoom && de(t), e.enablePan && pe(t);
193
+ }
194
+ function Ke(t) {
195
+ e.enableZoom && de(t), e.enableRotate && me(t);
196
+ }
197
+ function he(t) {
198
+ if (r.length == 1)
199
+ D.set(t.pageX, t.pageY);
200
+ else {
201
+ const a = I(t), s = 0.5 * (t.pageX + a.x), u = 0.5 * (t.pageY + a.y);
202
+ D.set(s, u);
203
+ }
204
+ L.subVectors(D, O).multiplyScalar(e.rotateSpeed);
205
+ const o = e.domElement;
206
+ _(2 * Math.PI * L.x / o.clientHeight), W(2 * Math.PI * L.y / o.clientHeight), O.copy(D);
207
+ }
208
+ function fe(t) {
209
+ if (r.length === 1)
210
+ M.set(t.pageX, t.pageY);
211
+ else {
212
+ const o = I(t), a = 0.5 * (t.pageX + o.x), s = 0.5 * (t.pageY + o.y);
213
+ M.set(a, s);
214
+ }
215
+ R.subVectors(M, w).multiplyScalar(e.panSpeed), N(R.x, R.y), w.copy(M);
216
+ }
217
+ function be(t) {
218
+ const o = I(t), a = t.pageX - o.x, s = t.pageY - o.y, u = Math.sqrt(a * a + s * s);
219
+ k.set(0, u), j.set(0, Math.pow(k.y / S.y, e.zoomSpeed)), J(j.y), S.copy(k);
220
+ const T = (t.pageX + o.x) * 0.5, d = (t.pageY + o.y) * 0.5;
221
+ $(T, d);
222
+ }
223
+ function Ue(t) {
224
+ e.enableZoom && be(t), e.enablePan && fe(t);
225
+ }
226
+ function He(t) {
227
+ e.enableZoom && be(t), e.enableRotate && he(t);
228
+ }
229
+ function ge(t) {
230
+ e.enabled !== !1 && (r.length === 0 && (e.domElement.setPointerCapture(t.pointerId), e.domElement.addEventListener("pointermove", te), e.domElement.addEventListener("pointerup", F)), !qe(t) && (Be(t), t.pointerType === "touch" ? Pe(t) : Ze(t)));
231
+ }
232
+ function te(t) {
233
+ e.enabled !== !1 && (t.pointerType === "touch" ? We(t) : Xe(t));
234
+ }
235
+ function F(t) {
236
+ switch (Ge(t), r.length) {
237
+ case 0:
238
+ e.domElement.releasePointerCapture(t.pointerId), e.domElement.removeEventListener("pointermove", te), e.domElement.removeEventListener("pointerup", F), e.dispatchEvent(Le), i = n.NONE;
239
+ break;
240
+ case 1:
241
+ const o = r[0], a = z[o];
242
+ Pe({ pointerId: o, pageX: a.x, pageY: a.y });
243
+ break;
244
+ }
245
+ }
246
+ function Ze(t) {
247
+ let o;
248
+ switch (t.button) {
249
+ case 0:
250
+ o = e.mouseButtons.LEFT;
251
+ break;
252
+ case 1:
253
+ o = e.mouseButtons.MIDDLE;
254
+ break;
255
+ case 2:
256
+ o = e.mouseButtons.RIGHT;
257
+ break;
258
+ default:
259
+ o = -1;
260
+ }
261
+ switch (o) {
262
+ case C.DOLLY:
263
+ if (e.enableZoom === !1) return;
264
+ Ne(t), i = n.DOLLY;
265
+ break;
266
+ case C.ROTATE:
267
+ if (t.ctrlKey || t.metaKey || t.shiftKey) {
268
+ if (e.enablePan === !1) return;
269
+ ue(t), i = n.PAN;
270
+ } else {
271
+ if (e.enableRotate === !1) return;
272
+ le(t), i = n.ROTATE;
273
+ }
274
+ break;
275
+ case C.PAN:
276
+ if (t.ctrlKey || t.metaKey || t.shiftKey) {
277
+ if (e.enableRotate === !1) return;
278
+ le(t), i = n.ROTATE;
279
+ } else {
280
+ if (e.enablePan === !1) return;
281
+ ue(t), i = n.PAN;
282
+ }
283
+ break;
284
+ default:
285
+ i = n.NONE;
286
+ }
287
+ i !== n.NONE && e.dispatchEvent(ne);
288
+ }
289
+ function Xe(t) {
290
+ switch (i) {
291
+ case n.ROTATE:
292
+ if (e.enableRotate === !1) return;
293
+ Ie(t);
294
+ break;
295
+ case n.DOLLY:
296
+ if (e.enableZoom === !1) return;
297
+ Ce(t);
298
+ break;
299
+ case n.PAN:
300
+ if (e.enablePan === !1) return;
301
+ Ye(t);
302
+ break;
303
+ }
304
+ }
305
+ function ye(t) {
306
+ e.enabled === !1 || e.enableZoom === !1 || i !== n.NONE || (t.preventDefault(), e.dispatchEvent(ne), ze(Ve(t)), e.dispatchEvent(Le));
307
+ }
308
+ function Ve(t) {
309
+ const o = t.deltaMode, a = {
310
+ clientX: t.clientX,
311
+ clientY: t.clientY,
312
+ deltaY: t.deltaY
313
+ };
314
+ switch (o) {
315
+ case 1:
316
+ a.deltaY *= 16;
317
+ break;
318
+ case 2:
319
+ a.deltaY *= 100;
320
+ break;
321
+ }
322
+ return t.ctrlKey && !v && (a.deltaY *= 10), a;
323
+ }
324
+ function Ee(t) {
325
+ t.key === "Control" && (v = !0, e.domElement.getRootNode().addEventListener("keyup", Te, { passive: !0, capture: !0 }));
326
+ }
327
+ function Te(t) {
328
+ t.key === "Control" && (v = !1, e.domElement.getRootNode().removeEventListener("keyup", Te, { passive: !0, capture: !0 }));
329
+ }
330
+ function oe(t) {
331
+ e.enabled === !1 || e.enablePan === !1 || _e(t);
332
+ }
333
+ function Pe(t) {
334
+ switch (De(t), r.length) {
335
+ case 1:
336
+ switch (e.touches.ONE) {
337
+ case Y.ROTATE:
338
+ if (e.enableRotate === !1) return;
339
+ me(t), i = n.TOUCH_ROTATE;
340
+ break;
341
+ case Y.PAN:
342
+ if (e.enablePan === !1) return;
343
+ pe(t), i = n.TOUCH_PAN;
344
+ break;
345
+ default:
346
+ i = n.NONE;
347
+ }
348
+ break;
349
+ case 2:
350
+ switch (e.touches.TWO) {
351
+ case Y.DOLLY_PAN:
352
+ if (e.enableZoom === !1 && e.enablePan === !1) return;
353
+ Fe(t), i = n.TOUCH_DOLLY_PAN;
354
+ break;
355
+ case Y.DOLLY_ROTATE:
356
+ if (e.enableZoom === !1 && e.enableRotate === !1) return;
357
+ Ke(t), i = n.TOUCH_DOLLY_ROTATE;
358
+ break;
359
+ default:
360
+ i = n.NONE;
361
+ }
362
+ break;
363
+ default:
364
+ i = n.NONE;
365
+ }
366
+ i !== n.NONE && e.dispatchEvent(ne);
367
+ }
368
+ function We(t) {
369
+ switch (De(t), i) {
370
+ case n.TOUCH_ROTATE:
371
+ if (e.enableRotate === !1) return;
372
+ he(t), e.update();
373
+ break;
374
+ case n.TOUCH_PAN:
375
+ if (e.enablePan === !1) return;
376
+ fe(t), e.update();
377
+ break;
378
+ case n.TOUCH_DOLLY_PAN:
379
+ if (e.enableZoom === !1 && e.enablePan === !1) return;
380
+ Ue(t), e.update();
381
+ break;
382
+ case n.TOUCH_DOLLY_ROTATE:
383
+ if (e.enableZoom === !1 && e.enableRotate === !1) return;
384
+ He(t), e.update();
385
+ break;
386
+ default:
387
+ i = n.NONE;
388
+ }
389
+ }
390
+ function Oe(t) {
391
+ e.enabled !== !1 && t.preventDefault();
392
+ }
393
+ function Be(t) {
394
+ r.push(t.pointerId);
395
+ }
396
+ function Ge(t) {
397
+ delete z[t.pointerId];
398
+ for (let o = 0; o < r.length; o++)
399
+ if (r[o] == t.pointerId) {
400
+ r.splice(o, 1);
401
+ return;
402
+ }
403
+ }
404
+ function qe(t) {
405
+ for (let o = 0; o < r.length; o++)
406
+ if (r[o] == t.pointerId) return !0;
407
+ return !1;
408
+ }
409
+ function De(t) {
410
+ let o = z[t.pointerId];
411
+ o === void 0 && (o = new h(), z[t.pointerId] = o), o.set(t.pageX, t.pageY);
412
+ }
413
+ function I(t) {
414
+ const o = t.pointerId === r[0] ? r[1] : r[0];
415
+ return z[o];
416
+ }
417
+ e.domElement.addEventListener("contextmenu", Oe), e.domElement.addEventListener("pointerdown", ge), e.domElement.addEventListener("pointercancel", F), e.domElement.addEventListener("wheel", ye, { passive: !1 }), e.domElement.getRootNode().addEventListener("keydown", Ee, { passive: !0, capture: !0 }), this.update();
418
+ }
419
+ }
420
+ const ae = {
421
+ enableDamping: !0,
422
+ dampingFactor: 0.05
423
+ }, H = class H extends nt {
424
+ constructor(l, e, n = ae) {
425
+ super(l, e);
426
+ G(this, "uuid", Q.generateUUID());
427
+ G(this, "object");
428
+ this.domElement = e, this.domElement = e, this.object = l, this.enableDamping = n.enableDamping ?? ae.enableDamping, this.dampingFactor = n.dampingFactor ?? ae.dampingFactor, this.object.position.set(0, 2, 2), this.target.copy({ x: 0, y: 0.5, z: 0 }), this.update();
429
+ }
430
+ tick() {
431
+ this.enabled && this.update();
432
+ }
433
+ computeEncompassingView(l) {
434
+ const e = l.getCenter(new m()), n = l.getSize(new m()), i = Math.max(n.x, n.y, n.z) * 1.25;
435
+ return {
436
+ position: this.object.position.clone().normalize().clone().multiplyScalar(i),
437
+ target: e.clone()
438
+ };
439
+ }
440
+ zoomIn(l) {
441
+ const e = l || H.DEFAULT_ZOOM_FACTOR, { minDistance: n, maxDistance: i } = this;
442
+ this.minDistance = this.maxDistance = Q.clamp(
443
+ this.getDistance() - e,
444
+ n + e,
445
+ i - e
446
+ ), this.update(), this.minDistance = n, this.maxDistance = i;
447
+ }
448
+ zoomOut(l) {
449
+ const e = l || H.DEFAULT_ZOOM_FACTOR, { minDistance: n, maxDistance: i } = this;
450
+ this.minDistance = this.maxDistance = Q.clamp(
451
+ this.getDistance() + e,
452
+ n + e,
453
+ i - e
454
+ ), this.update(), this.minDistance = n, this.maxDistance = i;
455
+ }
456
+ };
457
+ G(H, "DEFAULT_ZOOM_FACTOR", 1);
458
+ let Se = H;
459
+ export {
460
+ ae as O,
461
+ Se as a
462
+ };
@@ -29,6 +29,6 @@ const E = {
29
29
  e(r, "EDITOR_VIEW_LAYER_MASK", i | I | M | A), e(r, "LIVE_VIEW_LAYER_MASK", A);
30
30
  let _ = r;
31
31
  export {
32
- E as D,
33
- _ as a
32
+ _ as D,
33
+ E as a
34
34
  };
@@ -0,0 +1 @@
1
+ "use strict";var wt=Object.defineProperty;var gt=(r,n,e)=>n in r?wt(r,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[n]=e;var h=(r,n,e)=>gt(r,typeof n!="symbol"?n+"":n,e);const t=require("three"),$=require("./VisibilityLayerMask-BI7jPKdx.cjs"),j=require("./findInterface-C6mrvf_t.cjs"),Q=require("./AxisHelperColors-BrGqktN5.cjs"),D=new t.Raycaster,p=new t.Vector3,P=new t.Vector3,c=new t.Quaternion,tt={X:new t.Vector3(1,0,0),Y:new t.Vector3(0,1,0),Z:new t.Vector3(0,0,1)},U={type:"change"},et={type:"mouseDown"},it={type:"mouseUp",mode:null},nt={type:"objectChange"};class bt extends t.Object3D{constructor(n,e){super(),e===void 0&&(console.warn('THREE.TransformControls: The second parameter "domElement" is now mandatory.'),e=document),this.isTransformControls=!0,this.visible=!1,this.domElement=e,this.domElement.style.touchAction="none";const o=new xt;this._gizmo=o,this.add(o);const s=new Dt;this._plane=s,this.add(s);const a=this;function i(m,y){let A=y;Object.defineProperty(a,m,{get:function(){return A!==void 0?A:y},set:function(x){A!==x&&(A=x,s[m]=x,o[m]=x,a.dispatchEvent({type:m+"-changed",value:x}),a.dispatchEvent(U))}}),a[m]=y,s[m]=y,o[m]=y}i("camera",n),i("object",void 0),i("enabled",!0),i("axis",null),i("mode","translate"),i("translationSnap",null),i("rotationSnap",null),i("scaleSnap",null),i("space","world"),i("size",1),i("dragging",!1),i("showX",!0),i("showY",!0),i("showZ",!0);const d=new t.Vector3,f=new t.Vector3,E=new t.Quaternion,T=new t.Quaternion,z=new t.Vector3,C=new t.Quaternion,K=new t.Vector3,H=new t.Vector3,M=new t.Vector3,S=0,g=new t.Vector3;i("worldPosition",d),i("worldPositionStart",f),i("worldQuaternion",E),i("worldQuaternionStart",T),i("cameraPosition",z),i("cameraQuaternion",C),i("pointStart",K),i("pointEnd",H),i("rotationAxis",M),i("rotationAngle",S),i("eye",g),this._offset=new t.Vector3,this._startNorm=new t.Vector3,this._endNorm=new t.Vector3,this._cameraScale=new t.Vector3,this._parentPosition=new t.Vector3,this._parentQuaternion=new t.Quaternion,this._parentQuaternionInv=new t.Quaternion,this._parentScale=new t.Vector3,this._worldScaleStart=new t.Vector3,this._worldQuaternionInv=new t.Quaternion,this._worldScale=new t.Vector3,this._positionStart=new t.Vector3,this._quaternionStart=new t.Quaternion,this._scaleStart=new t.Vector3,this._getPointer=Mt.bind(this),this._onPointerDown=vt.bind(this),this._onPointerHover=St.bind(this),this._onPointerMove=Pt.bind(this),this._onPointerUp=Et.bind(this),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointermove",this._onPointerHover),this.domElement.addEventListener("pointerup",this._onPointerUp)}updateMatrixWorld(n){this.object!==void 0&&(this.object.updateMatrixWorld(),this.object.parent===null?console.error("TransformControls: The attached 3D object must be a part of the scene graph."):this.object.parent.matrixWorld.decompose(this._parentPosition,this._parentQuaternion,this._parentScale),this.object.matrixWorld.decompose(this.worldPosition,this.worldQuaternion,this._worldScale),this._parentQuaternionInv.copy(this._parentQuaternion).invert(),this._worldQuaternionInv.copy(this.worldQuaternion).invert()),this.camera.updateMatrixWorld(),this.camera.matrixWorld.decompose(this.cameraPosition,this.cameraQuaternion,this._cameraScale),this.camera.isOrthographicCamera?this.camera.getWorldDirection(this.eye).negate():this.eye.copy(this.cameraPosition).sub(this.worldPosition).normalize(),super.updateMatrixWorld(n)}pointerHover(n){if(this.object===void 0||this.dragging===!0)return;n!==null&&D.setFromCamera(n,this.camera);const e=N(this._gizmo.picker[this.mode],D);e?this.axis=e.object.name:this.axis=null}pointerDown(n){if(!(this.object===void 0||this.dragging===!0||n!=null&&n.button!==0)&&this.axis!==null){n!==null&&D.setFromCamera(n,this.camera);const e=N(this._plane,D,!0);e&&(this.object.updateMatrixWorld(),this.object.parent.updateMatrixWorld(),this._positionStart.copy(this.object.position),this._quaternionStart.copy(this.object.quaternion),this._scaleStart.copy(this.object.scale),this.object.matrixWorld.decompose(this.worldPositionStart,this.worldQuaternionStart,this._worldScaleStart),this.pointStart.copy(e.point).sub(this.worldPositionStart)),this.dragging=!0,et.mode=this.mode,this.dispatchEvent(et)}}pointerMove(n){const e=this.axis,o=this.mode,s=this.object;let a=this.space;if(o==="scale"?a="local":(e==="E"||e==="XYZE"||e==="XYZ")&&(a="world"),s===void 0||e===null||this.dragging===!1||n!==null&&n.button!==-1)return;n!==null&&D.setFromCamera(n,this.camera);const i=N(this._plane,D,!0);if(i){if(this.pointEnd.copy(i.point).sub(this.worldPositionStart),o==="translate")this._offset.copy(this.pointEnd).sub(this.pointStart),a==="local"&&e!=="XYZ"&&this._offset.applyQuaternion(this._worldQuaternionInv),e.indexOf("X")===-1&&(this._offset.x=0),e.indexOf("Y")===-1&&(this._offset.y=0),e.indexOf("Z")===-1&&(this._offset.z=0),a==="local"&&e!=="XYZ"?this._offset.applyQuaternion(this._quaternionStart).divide(this._parentScale):this._offset.applyQuaternion(this._parentQuaternionInv).divide(this._parentScale),s.position.copy(this._offset).add(this._positionStart),this.translationSnap&&(a==="local"&&(s.position.applyQuaternion(c.copy(this._quaternionStart).invert()),e.search("X")!==-1&&(s.position.x=Math.round(s.position.x/this.translationSnap)*this.translationSnap),e.search("Y")!==-1&&(s.position.y=Math.round(s.position.y/this.translationSnap)*this.translationSnap),e.search("Z")!==-1&&(s.position.z=Math.round(s.position.z/this.translationSnap)*this.translationSnap),s.position.applyQuaternion(this._quaternionStart)),a==="world"&&(s.parent&&s.position.add(p.setFromMatrixPosition(s.parent.matrixWorld)),e.search("X")!==-1&&(s.position.x=Math.round(s.position.x/this.translationSnap)*this.translationSnap),e.search("Y")!==-1&&(s.position.y=Math.round(s.position.y/this.translationSnap)*this.translationSnap),e.search("Z")!==-1&&(s.position.z=Math.round(s.position.z/this.translationSnap)*this.translationSnap),s.parent&&s.position.sub(p.setFromMatrixPosition(s.parent.matrixWorld))));else if(o==="scale"){if(e.search("XYZ")!==-1){let d=this.pointEnd.length()/this.pointStart.length();this.pointEnd.dot(this.pointStart)<0&&(d*=-1),P.set(d,d,d)}else p.copy(this.pointStart),P.copy(this.pointEnd),p.applyQuaternion(this._worldQuaternionInv),P.applyQuaternion(this._worldQuaternionInv),P.divide(p),e.search("X")===-1&&(P.x=1),e.search("Y")===-1&&(P.y=1),e.search("Z")===-1&&(P.z=1);s.scale.copy(this._scaleStart).multiply(P),this.scaleSnap&&(e.search("X")!==-1&&(s.scale.x=Math.round(s.scale.x/this.scaleSnap)*this.scaleSnap||this.scaleSnap),e.search("Y")!==-1&&(s.scale.y=Math.round(s.scale.y/this.scaleSnap)*this.scaleSnap||this.scaleSnap),e.search("Z")!==-1&&(s.scale.z=Math.round(s.scale.z/this.scaleSnap)*this.scaleSnap||this.scaleSnap))}else if(o==="rotate"){this._offset.copy(this.pointEnd).sub(this.pointStart);const d=20/this.worldPosition.distanceTo(p.setFromMatrixPosition(this.camera.matrixWorld));let f=!1;e==="XYZE"?(this.rotationAxis.copy(this._offset).cross(this.eye).normalize(),this.rotationAngle=this._offset.dot(p.copy(this.rotationAxis).cross(this.eye))*d):(e==="X"||e==="Y"||e==="Z")&&(this.rotationAxis.copy(tt[e]),p.copy(tt[e]),a==="local"&&p.applyQuaternion(this.worldQuaternion),p.cross(this.eye),p.length()===0?f=!0:this.rotationAngle=this._offset.dot(p.normalize())*d),(e==="E"||f)&&(this.rotationAxis.copy(this.eye),this.rotationAngle=this.pointEnd.angleTo(this.pointStart),this._startNorm.copy(this.pointStart).normalize(),this._endNorm.copy(this.pointEnd).normalize(),this.rotationAngle*=this._endNorm.cross(this._startNorm).dot(this.eye)<0?1:-1),this.rotationSnap&&(this.rotationAngle=Math.round(this.rotationAngle/this.rotationSnap)*this.rotationSnap),a==="local"&&e!=="E"&&e!=="XYZE"?(s.quaternion.copy(this._quaternionStart),s.quaternion.multiply(c.setFromAxisAngle(this.rotationAxis,this.rotationAngle)).normalize()):(this.rotationAxis.applyQuaternion(this._parentQuaternionInv),s.quaternion.copy(c.setFromAxisAngle(this.rotationAxis,this.rotationAngle)),s.quaternion.multiply(this._quaternionStart).normalize())}this.dispatchEvent(U),this.dispatchEvent(nt)}}pointerUp(n){n!==null&&n.button!==0||(this.dragging&&this.axis!==null&&(it.mode=this.mode,this.dispatchEvent(it)),this.dragging=!1,this.axis=null)}dispose(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerHover),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.traverse(function(n){n.geometry&&n.geometry.dispose(),n.material&&n.material.dispose()})}attach(n){return this.object=n,this.visible=!0,this}detach(){return this.object=void 0,this.visible=!1,this.axis=null,this}reset(){this.enabled&&this.dragging&&(this.object.position.copy(this._positionStart),this.object.quaternion.copy(this._quaternionStart),this.object.scale.copy(this._scaleStart),this.dispatchEvent(U),this.dispatchEvent(nt),this.pointStart.copy(this.pointEnd))}getRaycaster(){return D}getMode(){return this.mode}setMode(n){this.mode=n}setTranslationSnap(n){this.translationSnap=n}setRotationSnap(n){this.rotationSnap=n}setScaleSnap(n){this.scaleSnap=n}setSize(n){this.size=n}setSpace(n){this.space=n}}function Mt(r){if(this.domElement.ownerDocument.pointerLockElement)return{x:0,y:0,button:r.button};{const n=this.domElement.getBoundingClientRect();return{x:(r.clientX-n.left)/n.width*2-1,y:-(r.clientY-n.top)/n.height*2+1,button:r.button}}}function St(r){if(this.enabled)switch(r.pointerType){case"mouse":case"pen":this.pointerHover(this._getPointer(r));break}}function vt(r){this.enabled&&(document.pointerLockElement||this.domElement.setPointerCapture(r.pointerId),this.domElement.addEventListener("pointermove",this._onPointerMove),this.pointerHover(this._getPointer(r)),this.pointerDown(this._getPointer(r)))}function Pt(r){this.enabled&&this.pointerMove(this._getPointer(r))}function Et(r){this.enabled&&(this.domElement.releasePointerCapture(r.pointerId),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.pointerUp(this._getPointer(r)))}function N(r,n,e){const o=n.intersectObject(r,!0);for(let s=0;s<o.length;s++)if(o[s].object.visible||e)return o[s];return!1}const q=new t.Euler,l=new t.Vector3(0,1,0),ot=new t.Vector3(0,0,0),st=new t.Matrix4,B=new t.Quaternion,F=new t.Quaternion,b=new t.Vector3,rt=new t.Matrix4,O=new t.Vector3(1,0,0),I=new t.Vector3(0,1,0),Z=new t.Vector3(0,0,1),W=new t.Vector3,X=new t.Vector3,Y=new t.Vector3;class xt extends t.Object3D{constructor(){super(),this.isTransformControlsGizmo=!0,this.type="TransformControlsGizmo";const n=new t.MeshBasicMaterial({depthTest:!1,depthWrite:!1,fog:!1,toneMapped:!1,transparent:!0}),e=new t.LineBasicMaterial({depthTest:!1,depthWrite:!1,fog:!1,toneMapped:!1,transparent:!0}),o=n.clone();o.opacity=.15;const s=e.clone();s.opacity=.5;const a=n.clone();a.color.setHex(16711680);const i=n.clone();i.color.setHex(65280);const d=n.clone();d.color.setHex(255);const f=n.clone();f.color.setHex(16711680),f.opacity=.5;const E=n.clone();E.color.setHex(65280),E.opacity=.5;const T=n.clone();T.color.setHex(255),T.opacity=.5;const z=n.clone();z.opacity=.25;const C=n.clone();C.color.setHex(16776960),C.opacity=.25,n.clone().color.setHex(16776960);const H=n.clone();H.color.setHex(7895160);const M=new t.CylinderGeometry(0,.04,.1,12);M.translate(0,.05,0);const S=new t.BoxGeometry(.08,.08,.08);S.translate(0,.04,0);const g=new t.BufferGeometry;g.setAttribute("position",new t.Float32BufferAttribute([0,0,0,1,0,0],3));const m=new t.CylinderGeometry(.0075,.0075,.5,3);m.translate(0,.25,0);function y(_,V){const w=new t.TorusGeometry(_,.0075,3,64,V*Math.PI*2);return w.rotateY(Math.PI/2),w.rotateX(Math.PI/2),w}function A(){const _=new t.BufferGeometry;return _.setAttribute("position",new t.Float32BufferAttribute([0,0,0,1,1,1],3)),_}const x={X:[[new t.Mesh(M,a),[.5,0,0],[0,0,-Math.PI/2]],[new t.Mesh(M,a),[-.5,0,0],[0,0,Math.PI/2]],[new t.Mesh(m,a),[0,0,0],[0,0,-Math.PI/2]]],Y:[[new t.Mesh(M,i),[0,.5,0]],[new t.Mesh(M,i),[0,-.5,0],[Math.PI,0,0]],[new t.Mesh(m,i)]],Z:[[new t.Mesh(M,d),[0,0,.5],[Math.PI/2,0,0]],[new t.Mesh(M,d),[0,0,-.5],[-Math.PI/2,0,0]],[new t.Mesh(m,d),null,[Math.PI/2,0,0]]],XYZ:[[new t.Mesh(new t.OctahedronGeometry(.1,0),z.clone()),[0,0,0]]],XY:[[new t.Mesh(new t.BoxGeometry(.15,.15,.01),T.clone()),[.15,.15,0]]],YZ:[[new t.Mesh(new t.BoxGeometry(.15,.15,.01),f.clone()),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new t.Mesh(new t.BoxGeometry(.15,.15,.01),E.clone()),[.15,0,.15],[-Math.PI/2,0,0]]]},ht={X:[[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[.3,0,0],[0,0,-Math.PI/2]],[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[-.3,0,0],[0,0,Math.PI/2]]],Y:[[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,.3,0]],[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,-.3,0],[0,0,Math.PI]]],Z:[[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,0,.3],[Math.PI/2,0,0]],[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,0,-.3],[-Math.PI/2,0,0]]],XYZ:[[new t.Mesh(new t.OctahedronGeometry(.2,0),o)]],XY:[[new t.Mesh(new t.BoxGeometry(.2,.2,.01),o),[.15,.15,0]]],YZ:[[new t.Mesh(new t.BoxGeometry(.2,.2,.01),o),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new t.Mesh(new t.BoxGeometry(.2,.2,.01),o),[.15,0,.15],[-Math.PI/2,0,0]]]},ct={START:[[new t.Mesh(new t.OctahedronGeometry(.01,2),s),null,null,null,"helper"]],END:[[new t.Mesh(new t.OctahedronGeometry(.01,2),s),null,null,null,"helper"]],DELTA:[[new t.Line(A(),s),null,null,null,"helper"]],X:[[new t.Line(g,s.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new t.Line(g,s.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new t.Line(g,s.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]},dt={XYZE:[[new t.Mesh(y(.5,1),H),null,[0,Math.PI/2,0]]],X:[[new t.Mesh(y(.5,.5),a)]],Y:[[new t.Mesh(y(.5,.5),i),null,[0,0,-Math.PI/2]]],Z:[[new t.Mesh(y(.5,.5),d),null,[0,Math.PI/2,0]]],E:[[new t.Mesh(y(.75,1),C),null,[0,Math.PI/2,0]]]},pt={AXIS:[[new t.Line(g,s.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]]},mt={XYZE:[[new t.Mesh(new t.SphereGeometry(.25,10,8),o)]],X:[[new t.Mesh(new t.TorusGeometry(.5,.1,4,24),o),[0,0,0],[0,-Math.PI/2,-Math.PI/2]]],Y:[[new t.Mesh(new t.TorusGeometry(.5,.1,4,24),o),[0,0,0],[Math.PI/2,0,0]]],Z:[[new t.Mesh(new t.TorusGeometry(.5,.1,4,24),o),[0,0,0],[0,0,-Math.PI/2]]],E:[[new t.Mesh(new t.TorusGeometry(.75,.1,2,24),o)]]},ut={X:[[new t.Mesh(S,a),[.5,0,0],[0,0,-Math.PI/2]],[new t.Mesh(m,a),[0,0,0],[0,0,-Math.PI/2]],[new t.Mesh(S,a),[-.5,0,0],[0,0,Math.PI/2]]],Y:[[new t.Mesh(S,i),[0,.5,0]],[new t.Mesh(m,i)],[new t.Mesh(S,i),[0,-.5,0],[0,0,Math.PI]]],Z:[[new t.Mesh(S,d),[0,0,.5],[Math.PI/2,0,0]],[new t.Mesh(m,d),[0,0,0],[Math.PI/2,0,0]],[new t.Mesh(S,d),[0,0,-.5],[-Math.PI/2,0,0]]],XY:[[new t.Mesh(new t.BoxGeometry(.15,.15,.01),T),[.15,.15,0]]],YZ:[[new t.Mesh(new t.BoxGeometry(.15,.15,.01),f),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new t.Mesh(new t.BoxGeometry(.15,.15,.01),E),[.15,0,.15],[-Math.PI/2,0,0]]],XYZ:[[new t.Mesh(new t.BoxGeometry(.1,.1,.1),z.clone())]]},ft={X:[[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[.3,0,0],[0,0,-Math.PI/2]],[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[-.3,0,0],[0,0,Math.PI/2]]],Y:[[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,.3,0]],[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,-.3,0],[0,0,Math.PI]]],Z:[[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,0,.3],[Math.PI/2,0,0]],[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,0,-.3],[-Math.PI/2,0,0]]],XY:[[new t.Mesh(new t.BoxGeometry(.2,.2,.01),o),[.15,.15,0]]],YZ:[[new t.Mesh(new t.BoxGeometry(.2,.2,.01),o),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new t.Mesh(new t.BoxGeometry(.2,.2,.01),o),[.15,0,.15],[-Math.PI/2,0,0]]],XYZ:[[new t.Mesh(new t.BoxGeometry(.2,.2,.2),o),[0,0,0]]]},_t={X:[[new t.Line(g,s.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new t.Line(g,s.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new t.Line(g,s.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]};function v(_){const V=new t.Object3D;for(const w in _)for(let G=_[w].length;G--;){const u=_[w][G][0].clone(),L=_[w][G][1],R=_[w][G][2],k=_[w][G][3],yt=_[w][G][4];u.name=w,u.tag=yt,L&&u.position.set(L[0],L[1],L[2]),R&&u.rotation.set(R[0],R[1],R[2]),k&&u.scale.set(k[0],k[1],k[2]),u.updateMatrix();const J=u.geometry.clone();J.applyMatrix4(u.matrix),u.geometry=J,u.renderOrder=1/0,u.position.set(0,0,0),u.rotation.set(0,0,0),u.scale.set(1,1,1),V.add(u)}return V}this.gizmo={},this.picker={},this.helper={},this.add(this.gizmo.translate=v(x)),this.add(this.gizmo.rotate=v(dt)),this.add(this.gizmo.scale=v(ut)),this.add(this.picker.translate=v(ht)),this.add(this.picker.rotate=v(mt)),this.add(this.picker.scale=v(ft)),this.add(this.helper.translate=v(ct)),this.add(this.helper.rotate=v(pt)),this.add(this.helper.scale=v(_t)),this.picker.translate.visible=!1,this.picker.rotate.visible=!1,this.picker.scale.visible=!1}updateMatrixWorld(n){const o=(this.mode==="scale"?"local":this.space)==="local"?this.worldQuaternion:F;this.gizmo.translate.visible=this.mode==="translate",this.gizmo.rotate.visible=this.mode==="rotate",this.gizmo.scale.visible=this.mode==="scale",this.helper.translate.visible=this.mode==="translate",this.helper.rotate.visible=this.mode==="rotate",this.helper.scale.visible=this.mode==="scale";let s=[];s=s.concat(this.picker[this.mode].children),s=s.concat(this.gizmo[this.mode].children),s=s.concat(this.helper[this.mode].children);for(let a=0;a<s.length;a++){const i=s[a];i.visible=!0,i.rotation.set(0,0,0),i.position.copy(this.worldPosition);let d;if(this.camera.isOrthographicCamera?d=(this.camera.top-this.camera.bottom)/this.camera.zoom:d=this.worldPosition.distanceTo(this.cameraPosition)*Math.min(1.9*Math.tan(Math.PI*this.camera.fov/360)/this.camera.zoom,7),i.scale.set(1,1,1).multiplyScalar(d*this.size/4),i.tag==="helper"){i.visible=!1,i.name==="AXIS"?(i.visible=!!this.axis,this.axis==="X"&&(c.setFromEuler(q.set(0,0,0)),i.quaternion.copy(o).multiply(c),Math.abs(l.copy(O).applyQuaternion(o).dot(this.eye))>.9&&(i.visible=!1)),this.axis==="Y"&&(c.setFromEuler(q.set(0,0,Math.PI/2)),i.quaternion.copy(o).multiply(c),Math.abs(l.copy(I).applyQuaternion(o).dot(this.eye))>.9&&(i.visible=!1)),this.axis==="Z"&&(c.setFromEuler(q.set(0,Math.PI/2,0)),i.quaternion.copy(o).multiply(c),Math.abs(l.copy(Z).applyQuaternion(o).dot(this.eye))>.9&&(i.visible=!1)),this.axis==="XYZE"&&(c.setFromEuler(q.set(0,Math.PI/2,0)),l.copy(this.rotationAxis),i.quaternion.setFromRotationMatrix(st.lookAt(ot,l,I)),i.quaternion.multiply(c),i.visible=this.dragging),this.axis==="E"&&(i.visible=!1)):i.name==="START"?(i.position.copy(this.worldPositionStart),i.visible=this.dragging):i.name==="END"?(i.position.copy(this.worldPosition),i.visible=this.dragging):i.name==="DELTA"?(i.position.copy(this.worldPositionStart),i.quaternion.copy(this.worldQuaternionStart),p.set(1e-10,1e-10,1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1),p.applyQuaternion(this.worldQuaternionStart.clone().invert()),i.scale.copy(p),i.visible=this.dragging):(i.quaternion.copy(o),this.dragging?i.position.copy(this.worldPositionStart):i.position.copy(this.worldPosition),this.axis&&(i.visible=this.axis.search(i.name)!==-1));continue}i.quaternion.copy(o),this.mode==="translate"||this.mode==="scale"?(i.name==="X"&&Math.abs(l.copy(O).applyQuaternion(o).dot(this.eye))>.99&&(i.scale.set(1e-10,1e-10,1e-10),i.visible=!1),i.name==="Y"&&Math.abs(l.copy(I).applyQuaternion(o).dot(this.eye))>.99&&(i.scale.set(1e-10,1e-10,1e-10),i.visible=!1),i.name==="Z"&&Math.abs(l.copy(Z).applyQuaternion(o).dot(this.eye))>.99&&(i.scale.set(1e-10,1e-10,1e-10),i.visible=!1),i.name==="XY"&&Math.abs(l.copy(Z).applyQuaternion(o).dot(this.eye))<.2&&(i.scale.set(1e-10,1e-10,1e-10),i.visible=!1),i.name==="YZ"&&Math.abs(l.copy(O).applyQuaternion(o).dot(this.eye))<.2&&(i.scale.set(1e-10,1e-10,1e-10),i.visible=!1),i.name==="XZ"&&Math.abs(l.copy(I).applyQuaternion(o).dot(this.eye))<.2&&(i.scale.set(1e-10,1e-10,1e-10),i.visible=!1)):this.mode==="rotate"&&(B.copy(o),l.copy(this.eye).applyQuaternion(c.copy(o).invert()),i.name.search("E")!==-1&&i.quaternion.setFromRotationMatrix(st.lookAt(this.eye,ot,I)),i.name==="X"&&(c.setFromAxisAngle(O,Math.atan2(-l.y,l.z)),c.multiplyQuaternions(B,c),i.quaternion.copy(c)),i.name==="Y"&&(c.setFromAxisAngle(I,Math.atan2(l.x,l.z)),c.multiplyQuaternions(B,c),i.quaternion.copy(c)),i.name==="Z"&&(c.setFromAxisAngle(Z,Math.atan2(l.y,l.x)),c.multiplyQuaternions(B,c),i.quaternion.copy(c))),i.visible=i.visible&&(i.name.indexOf("X")===-1||this.showX),i.visible=i.visible&&(i.name.indexOf("Y")===-1||this.showY),i.visible=i.visible&&(i.name.indexOf("Z")===-1||this.showZ),i.visible=i.visible&&(i.name.indexOf("E")===-1||this.showX&&this.showY&&this.showZ),i.material._color=i.material._color||i.material.color.clone(),i.material._opacity=i.material._opacity||i.material.opacity,i.material.color.copy(i.material._color),i.material.opacity=i.material._opacity,this.enabled&&this.axis&&(i.name===this.axis||this.axis.split("").some(function(f){return i.name===f}))&&(i.material.color.setHex(16776960),i.material.opacity=1)}super.updateMatrixWorld(n)}}class Dt extends t.Mesh{constructor(){super(new t.PlaneGeometry(1e5,1e5,2,2),new t.MeshBasicMaterial({visible:!1,wireframe:!0,side:t.DoubleSide,transparent:!0,opacity:.1,toneMapped:!1})),this.isTransformControlsPlane=!0,this.type="TransformControlsPlane"}updateMatrixWorld(n){let e=this.space;switch(this.position.copy(this.worldPosition),this.mode==="scale"&&(e="local"),W.copy(O).applyQuaternion(e==="local"?this.worldQuaternion:F),X.copy(I).applyQuaternion(e==="local"?this.worldQuaternion:F),Y.copy(Z).applyQuaternion(e==="local"?this.worldQuaternion:F),l.copy(X),this.mode){case"translate":case"scale":switch(this.axis){case"X":l.copy(this.eye).cross(W),b.copy(W).cross(l);break;case"Y":l.copy(this.eye).cross(X),b.copy(X).cross(l);break;case"Z":l.copy(this.eye).cross(Y),b.copy(Y).cross(l);break;case"XY":b.copy(Y);break;case"YZ":b.copy(W);break;case"XZ":l.copy(Y),b.copy(X);break;case"XYZ":case"E":b.set(0,0,0);break}break;case"rotate":default:b.set(0,0,0)}b.length()===0?this.quaternion.copy(this.cameraQuaternion):(rt.lookAt(p.set(0,0,0),b,l),this.quaternion.setFromRotationMatrix(rt)),super.updateMatrixWorld(n)}}class at{constructor(n,e){h(this,"POINTER_DRAG_THRESHOLD",.001);h(this,"name");h(this,"_canvas");h(this,"_scene");h(this,"_controller");h(this,"_pointer");h(this,"_pointerPrimaryDown");h(this,"_pointerMiddleDown");h(this,"_pointerSecondaryDown");h(this,"_lastPointerDown");h(this,"_lastPointerUp");h(this,"_raycaster");h(this,"_intersects");h(this,"_hovered");h(this,"_dragging");h(this,"_dragStart");h(this,"_dragCurrent");h(this,"_dragEnd");h(this,"_dragDelta");h(this,"_draggable");h(this,"_dragRaycastOnObjects");this.name="BaseTool",this._canvas=e.domElement,this._scene=n,this._controller=e,this._pointer=new t.Vector2,this._pointerPrimaryDown=!1,this._pointerMiddleDown=!1,this._pointerSecondaryDown=!1,this._lastPointerDown=new t.Vector2,this._lastPointerUp=new t.Vector2,this._raycaster=new t.Raycaster,this._raycaster.layers.mask=$.PRODUCT_LAYER_MASK|$.UI_LAYER_MASK,this._intersects=[],this._hovered=null,this._dragging=!1,this._dragStart=new t.Vector3,this._dragCurrent=new t.Vector3,this._dragEnd=new t.Vector3,this._dragDelta=new t.Vector3,this._draggable=null,this._dragRaycastOnObjects=null}get _pointerAnyDown(){return this._pointerPrimaryDown||this._pointerMiddleDown||this._pointerSecondaryDown}activate(){}deactivate(){}onPointerDown(n){var e;switch(n.button){case 0:{this._pointerPrimaryDown=!0;break}case 1:{this._pointerMiddleDown=!0;break}case 2:{this._pointerSecondaryDown=!0;break}default:console.warn("DIVEBaseTool.onPointerDown: Unknown button: "+n.button)}this._lastPointerDown.copy(this._pointer),this._draggable=j.findInterface((e=this._intersects[0])==null?void 0:e.object,"isDraggable")||null}onDragStart(n){this._draggable&&(this._dragRaycastOnObjects!==null&&(this._intersects=this._raycaster.intersectObjects(this._dragRaycastOnObjects,!0)),this._intersects.length!==0&&(this._dragStart.copy(this._intersects[0].point.clone()),this._dragCurrent.copy(this._intersects[0].point.clone()),this._dragEnd.copy(this._dragStart.clone()),this._dragDelta.set(0,0,0),this._draggable&&this._draggable.onDragStart&&(this._draggable.onDragStart({dragStart:this._dragStart,dragCurrent:this._dragCurrent,dragEnd:this._dragEnd,dragDelta:this._dragDelta}),this._dragging=!0,this._controller.enabled=!1)))}onPointerMove(n){var o;this._pointer.x=n.offsetX/this._canvas.clientWidth*2-1,this._pointer.y=-(n.offsetY/this._canvas.clientHeight)*2+1,this._raycaster.setFromCamera(this._pointer,this._controller.object),this._intersects=this.raycast(this._scene.children);const e=j.findInterface((o=this._intersects[0])==null?void 0:o.object,"isHoverable");if(this._intersects[0]&&e){if(!this._hovered){e.onPointerEnter&&e.onPointerEnter(this._intersects[0]),this._hovered=e;return}if(this._hovered.uuid!==e.uuid){this._hovered.onPointerLeave&&this._hovered.onPointerLeave(),e.onPointerEnter&&e.onPointerEnter(this._intersects[0]),this._hovered=e;return}e.onPointerOver&&e.onPointerOver(this._intersects[0]),this._hovered=e}else this._hovered&&this._hovered.onPointerLeave&&this._hovered.onPointerLeave(),this._hovered=null;this._pointerAnyDown&&(this._dragging||this.onDragStart(n),this.onDrag(n))}onDrag(n){this._dragRaycastOnObjects!==null&&(this._intersects=this._raycaster.intersectObjects(this._dragRaycastOnObjects,!0));const e=this._intersects[0];e&&(this._dragCurrent.copy(e.point.clone()),this._dragEnd.copy(e.point.clone()),this._dragDelta.subVectors(this._dragCurrent.clone(),this._dragStart.clone()),this._draggable&&this._draggable.onDrag&&this._draggable.onDrag({dragStart:this._dragStart,dragCurrent:this._dragCurrent,dragEnd:this._dragEnd,dragDelta:this._dragDelta}))}onPointerUp(n){switch(this.pointerWasDragged()||this._dragging?this._draggable&&this.onDragEnd(n):this.onClick(n),n.button){case 0:this._pointerPrimaryDown=!1;break;case 1:this._pointerMiddleDown=!1;break;case 2:this._pointerSecondaryDown=!1;break}this._lastPointerUp.copy(this._pointer)}onClick(n){}onDragEnd(n){const e=this._intersects[0];e&&(this._dragEnd.copy(e.point.clone()),this._dragCurrent.copy(e.point.clone()),this._dragDelta.subVectors(this._dragCurrent.clone(),this._dragStart.clone())),this._draggable&&this._draggable.onDragEnd&&this._draggable.onDragEnd({dragStart:this._dragStart,dragCurrent:this._dragCurrent,dragEnd:this._dragEnd,dragDelta:this._dragDelta}),this._draggable=null,this._dragging=!1,this._dragStart.set(0,0,0),this._dragCurrent.set(0,0,0),this._dragEnd.set(0,0,0),this._dragDelta.set(0,0,0),this._controller.enabled=!0}onWheel(n){}raycast(n){return n!==void 0?this._raycaster.intersectObjects(n,!0).filter(e=>e.object.visible):this._raycaster.intersectObjects(this._scene.children,!0).filter(e=>e.object.visible)}pointerWasDragged(){return this._lastPointerDown.distanceTo(this._pointer)>this.POINTER_DRAG_THRESHOLD}}const It=r=>r.isTransformTool!==void 0;class lt extends at{constructor(e,o){super(e,o);h(this,"isTransformTool",!0);h(this,"_scaleLinked");h(this,"_gizmo");this.name="DIVETransformTool",this._scaleLinked=!1,this._gizmo=this.initGizmo(),this._scene.add(this._gizmo)}activate(){}setGizmoMode(e){this._gizmo.mode=e}setGizmoVisibility(e){const o=this._scene.children.includes(this._gizmo);e&&!o?(this._scene.add(this._gizmo),"isTransformControls"in this._gizmo&&this._gizmo.getRaycaster().layers.enableAll()):!e&&o&&(this._scene.remove(this._gizmo),"isTransformControls"in this._gizmo&&this._gizmo.getRaycaster().layers.disableAll())}setGizmoScaleLinked(e){this._scaleLinked=e}initGizmo(){const e=new bt(this._controller.object,this._controller.domElement);return e.mode="translate",e.traverse(o=>{if(!("isMesh"in o))return;const s=o.material;o.name==="X"&&s.color.set(Q.AxesColorRed),o.name==="Y"&&s.color.set(Q.AxesColorGreen),o.name==="Z"&&s.color.set(Q.AxesColorBlue),o.name==="XY"&&s.color.set(Q.AxesColorBlue),o.name==="YZ"&&s.color.set(Q.AxesColorRed),o.name==="XZ"&&s.color.set(Q.AxesColorGreen)}),e.addEventListener("mouseDown",()=>{this._controller.enabled=!1,j.implementsInterface(e.object,"isMovable")&&e.object.onMoveStart&&e.object.onMoveStart()}),e.addEventListener("objectChange",()=>{if(j.implementsInterface(e.object,"isMovable")&&e.object.onMove&&(e.object.onMove(),this._scaleLinked)){const o=e.object.scale,s=(o.x+o.y+o.z)/3;e.object.scale.set(s,s,s)}}),e.addEventListener("mouseUp",()=>{this._controller.enabled=!0,j.implementsInterface(e.object,"isMovable")&&e.object.onMoveEnd&&e.object.onMoveEnd()}),e}}const Tt=r=>r.isSelectTool!==void 0;class At extends lt{constructor(e,o){super(e,o);h(this,"isSelectTool",!0);this.name="SelectTool"}activate(){}select(e){this.attachGizmo(e),e.onSelect&&e.onSelect()}deselect(e){this.detachGizmo(),e.onDeselect&&e.onDeselect()}attachGizmo(e){if("isMovable"in e){const o=e;this._gizmo.attach(o),this.setGizmoVisibility(o.visible)}}detachGizmo(){this._gizmo.detach()}onClick(e){super.onClick(e);const o=this._raycaster.intersectObjects(this._scene.root.children,!0).filter(a=>a.object.visible)[0],s=j.findInterface(o==null?void 0:o.object,"isSelectable");if(!o||!s){this._gizmo.object&&this.deselect(this._gizmo.object);return}if(this._gizmo.object){if(this._gizmo.object.uuid===s.uuid)return;this.deselect(this._gizmo.object)}this.select(s)}}exports.DIVEBaseTool=at;exports.DIVESelectTool=At;exports.DIVETransformTool=lt;exports.isSelectTool=Tt;exports.isTransformTool=It;