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

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 (267) hide show
  1. package/build/chunks/{AssetExporter-ClYQ4gnb.mjs → AssetExporter-QnOue3VT.mjs} +19 -19
  2. package/build/chunks/{AssetExporter-CAqADFbL.cjs → AssetExporter-TzKB2FHh.cjs} +4 -4
  3. package/build/chunks/AssetLoader-BfPa_oNd.cjs +4 -0
  4. package/build/chunks/{AssetLoader-BewzFwHi.mjs → AssetLoader-C8Teswp4.mjs} +38 -35
  5. package/build/chunks/FileTypes-B2JRjVgw.cjs +30 -0
  6. package/build/chunks/FileTypes-CXnW0NAe.mjs +1109 -0
  7. package/build/chunks/MathUtils-CBW56ZuG.cjs +1 -0
  8. package/build/chunks/MathUtils-CFGjHuVF.mjs +159 -0
  9. package/build/chunks/OrbitController-D-WNei2f.mjs +940 -0
  10. package/build/chunks/OrbitController-rMX8EHvJ.cjs +1 -0
  11. package/build/chunks/PerspectiveCamera-CONx93im.cjs +1 -0
  12. package/build/chunks/PerspectiveCamera-DUiWJJIj.mjs +38 -0
  13. package/build/chunks/PovSchema-Co9FznEz.cjs +1 -0
  14. package/build/chunks/PovSchema-DWWvr_ED.mjs +10 -0
  15. package/build/chunks/{SelectTool-DLXheZay.mjs → SelectTool-DFpr9XHT.mjs} +10 -10
  16. package/build/chunks/SelectTool-DVqL2ebn.cjs +1 -0
  17. package/build/chunks/network-error-CHvryg-4.mjs +18 -0
  18. package/build/chunks/network-error-D_pq8VU6.cjs +1 -0
  19. package/build/chunks/package-BBfJ2Cc5.cjs +1 -0
  20. package/build/chunks/package-CHFUaMpF.mjs +39 -0
  21. package/build/dive.cjs +1 -30
  22. package/build/dive.mjs +617 -1089
  23. package/build/plugins/animation/index.cjs +1 -0
  24. package/build/plugins/animation/index.d.ts +2 -0
  25. package/build/plugins/animation/index.mjs +126 -0
  26. package/build/plugins/ar/index.cjs +1 -0
  27. package/build/plugins/ar/index.d.ts +2 -0
  28. package/build/{chunks/ARSystem-D27w7Pck.mjs → plugins/ar/index.mjs} +38 -44
  29. package/build/plugins/assetconverter/index.d.ts +2 -0
  30. package/build/plugins/assetexporter/index.cjs +1 -0
  31. package/build/plugins/assetexporter/index.d.ts +2 -0
  32. package/build/plugins/assetexporter/index.mjs +4 -0
  33. package/build/plugins/assetloader/index.cjs +1 -0
  34. package/build/plugins/assetloader/index.d.ts +2 -0
  35. package/build/plugins/assetloader/index.mjs +6 -0
  36. package/build/plugins/axiscamera/index.cjs +1 -0
  37. package/build/plugins/axiscamera/index.d.ts +2 -0
  38. package/build/plugins/axiscamera/index.mjs +4 -0
  39. package/build/plugins/mediacreator/index.cjs +1 -0
  40. package/build/plugins/mediacreator/index.d.ts +2 -0
  41. package/build/{chunks/MediaCreator-psLAAyJA.mjs → plugins/mediacreator/index.mjs} +1 -1
  42. package/build/{modules/controller → plugins/orbitcontroller}/index.cjs +1 -1
  43. package/build/plugins/orbitcontroller/index.d.ts +2 -0
  44. package/build/plugins/orbitcontroller/index.mjs +5 -0
  45. package/build/plugins/state/index.cjs +27 -0
  46. package/build/plugins/state/index.d.ts +2 -0
  47. package/build/plugins/state/index.mjs +4265 -0
  48. package/build/plugins/systeminfo/index.cjs +1 -0
  49. package/build/plugins/systeminfo/index.d.ts +2 -0
  50. package/build/{modules → plugins}/systeminfo/index.mjs +24 -23
  51. package/build/plugins/toolbox/index.cjs +1 -0
  52. package/build/plugins/toolbox/index.d.ts +2 -0
  53. package/build/{chunks/Toolbox-DKuyL8n5.mjs → plugins/toolbox/index.mjs} +8 -2
  54. package/build/src/components/gizmo/Gizmo.d.ts +1 -1
  55. package/build/src/components/gizmo/handles/AxisHandle.d.ts +1 -1
  56. package/build/src/components/gizmo/handles/RadialHandle.d.ts +1 -1
  57. package/build/src/components/gizmo/handles/ScaleHandle.d.ts +1 -1
  58. package/build/src/components/gizmo/rotate/RotateGizmo.d.ts +2 -2
  59. package/build/src/components/gizmo/scale/ScaleGizmo.d.ts +2 -2
  60. package/build/src/components/gizmo/translate/TranslateGizmo.d.ts +2 -2
  61. package/build/src/components/model/Model.d.ts +2 -2
  62. package/build/src/components/primitive/Primitive.d.ts +3 -3
  63. package/build/src/components/root/Root.d.ts +5 -7
  64. package/build/src/core/Dive.d.ts +1 -1
  65. package/build/src/engine/clock/Clock.d.ts +1 -0
  66. package/build/src/index.d.ts +2 -1
  67. package/build/src/interfaces/Draggable.d.ts +1 -1
  68. package/build/src/plugins/animation/index.d.ts +2 -0
  69. package/build/src/{modules/animation → plugins/animation/src}/animator/Animator.d.ts +2 -3
  70. package/build/src/plugins/animation/src/index.d.ts +3 -0
  71. package/build/src/plugins/animation/src/system/AnimationSystem.d.ts +23 -0
  72. package/build/src/plugins/ar/index.d.ts +4 -0
  73. package/build/src/{modules/ar → plugins/ar/src}/ARSystem.d.ts +0 -27
  74. package/build/src/{modules/ar → plugins/ar/src}/webxr/WebXR.d.ts +2 -2
  75. package/build/src/{modules/ar → plugins/ar/src}/webxr/controller/WebXRController.d.ts +2 -2
  76. package/build/src/{modules/ar → plugins/ar/src}/webxr/origin/WebXROrigin.d.ts +1 -1
  77. package/build/src/{modules/ar → plugins/ar/src}/webxr/raycaster/WebXRRaycaster.d.ts +3 -3
  78. package/build/src/{modules/ar → plugins/ar/src}/webxr/raycaster/ar/WebXRRaycasterAR.d.ts +1 -1
  79. package/build/src/{modules/ar → plugins/ar/src}/webxr/raycaster/three/WebXRRaycasterTHREE.d.ts +2 -2
  80. package/build/src/{modules/ar → plugins/ar/src}/webxr/touchscreencontrols/WebXRTouchscreenControls.d.ts +1 -1
  81. package/build/src/plugins/assetconverter/index.d.ts +1 -0
  82. package/build/src/plugins/assetconverter/src/AssetConverter.d.ts +13 -0
  83. package/build/src/plugins/assetexporter/index.d.ts +1 -0
  84. package/build/src/{modules/assetexporter → plugins/assetexporter/src}/AssetExporter.d.ts +1 -18
  85. package/build/src/plugins/assetloader/index.d.ts +3 -0
  86. package/build/src/plugins/assetloader/src/loader/AssetLoader.d.ts +8 -0
  87. package/build/src/plugins/axiscamera/index.d.ts +1 -0
  88. package/build/src/{modules/axiscamera → plugins/axiscamera/src}/AxisCamera.d.ts +1 -4
  89. package/build/src/plugins/mediacreator/index.d.ts +1 -0
  90. package/build/src/plugins/mediacreator/src/MediaCreator.d.ts +15 -0
  91. package/build/src/plugins/orbitcontroller/index.d.ts +1 -0
  92. package/build/src/{modules/controller/orbit → plugins/orbitcontroller/src}/OrbitController.d.ts +3 -3
  93. package/build/src/plugins/state/index.d.ts +4 -0
  94. package/build/src/{modules/state → plugins/state/src}/State.d.ts +4 -27
  95. package/build/src/{modules/state → plugins/state/src}/actions/action.d.ts +1 -1
  96. package/build/src/{modules/state → plugins/state/src}/actions/ar/launchar.d.ts +2 -2
  97. package/build/src/{modules/state → plugins/state/src}/actions/camera/computeencompassingview.d.ts +1 -1
  98. package/build/src/{modules/state → plugins/state/src}/actions/camera/getcameratransform.d.ts +1 -1
  99. package/build/src/{modules/state → plugins/state/src}/actions/camera/lockcamera.d.ts +1 -1
  100. package/build/src/{modules/state → plugins/state/src}/actions/camera/movecamera.d.ts +3 -3
  101. package/build/src/{modules/state → plugins/state/src}/actions/camera/setcameralayer.d.ts +1 -1
  102. package/build/src/{modules/state → plugins/state/src}/actions/camera/setcameratransform.d.ts +1 -1
  103. package/build/src/{modules/state → plugins/state/src}/actions/camera/zoomcamera.d.ts +1 -1
  104. package/build/src/{modules/state → plugins/state/src}/actions/media/generatemedia.d.ts +1 -1
  105. package/build/src/plugins/state/src/actions/object/addobject.d.ts +9 -0
  106. package/build/src/plugins/state/src/actions/object/deleteobject.d.ts +13 -0
  107. package/build/src/plugins/state/src/actions/object/deselectobject.d.ts +13 -0
  108. package/build/src/{modules/state → plugins/state/src}/actions/object/dropit.d.ts +3 -3
  109. package/build/src/{modules/state → plugins/state/src}/actions/object/getallobjects.d.ts +3 -2
  110. package/build/src/plugins/state/src/actions/object/getobjects.d.ts +13 -0
  111. package/build/src/{modules/state → plugins/state/src}/actions/object/modelloaded.d.ts +1 -1
  112. package/build/src/{modules/state → plugins/state/src}/actions/object/placeonfloor.d.ts +3 -3
  113. package/build/src/plugins/state/src/actions/object/selectobject.d.ts +13 -0
  114. package/build/src/plugins/state/src/actions/object/setparent.d.ts +23 -0
  115. package/build/src/plugins/state/src/actions/object/updateobject.d.ts +13 -0
  116. package/build/src/{modules/state → plugins/state/src}/actions/renderer/startrender.d.ts +1 -1
  117. package/build/src/{modules/state → plugins/state/src}/actions/scene/exportscene.d.ts +4 -4
  118. package/build/src/plugins/state/src/actions/scene/getallscenedata.d.ts +9 -0
  119. package/build/src/{modules/state → plugins/state/src}/actions/scene/setbackground.d.ts +1 -1
  120. package/build/src/{modules/state → plugins/state/src}/actions/scene/updatescene.d.ts +1 -1
  121. package/build/src/{modules/state → plugins/state/src}/actions/toolbox/setgizmomode.d.ts +1 -1
  122. package/build/src/{modules/state → plugins/state/src}/actions/toolbox/setgizmoscalelinked.d.ts +1 -1
  123. package/build/src/{modules/state → plugins/state/src}/actions/toolbox/setgizmovisible.d.ts +1 -1
  124. package/build/src/{modules/state → plugins/state/src}/actions/toolbox/usetool.d.ts +2 -2
  125. package/build/src/{modules → plugins}/state/types/ActionTypes.d.ts +8 -9
  126. package/build/src/{types/SceneType.d.ts → plugins/state/types/StateExportFileType.d.ts} +1 -1
  127. package/build/src/plugins/state/types/StateSceneData.d.ts +19 -0
  128. package/build/src/plugins/state/types/index.d.ts +1 -0
  129. package/build/src/plugins/systeminfo/index.d.ts +2 -0
  130. package/build/src/{modules/systeminfo → plugins/systeminfo/src}/SystemInfo.d.ts +1 -32
  131. package/build/src/plugins/toolbox/index.d.ts +4 -0
  132. package/build/src/{modules/toolbox → plugins/toolbox/src}/BaseTool.d.ts +2 -4
  133. package/build/src/{modules/toolbox → plugins/toolbox/src}/Toolbox.d.ts +2 -11
  134. package/build/src/{modules/toolbox → plugins/toolbox/src}/select/SelectTool.d.ts +2 -3
  135. package/build/src/{modules/toolbox → plugins/toolbox/src}/transform/TransformTool.d.ts +2 -3
  136. package/build/src/types/components/DIVELight.d.ts +4 -0
  137. package/build/src/types/components/DIVESceneObject.d.ts +6 -0
  138. package/build/src/types/components/index.d.ts +2 -0
  139. package/build/src/types/index.d.ts +2 -5
  140. package/build/src/types/schema/BaseEntitySchema.d.ts +8 -0
  141. package/build/src/types/schema/EntitySchema.d.ts +11 -0
  142. package/build/src/types/schema/EntityTypeSchema.d.ts +1 -0
  143. package/build/src/types/schema/GeometrySchema.d.ts +7 -0
  144. package/build/src/types/schema/GeometryTypeSchema.d.ts +1 -0
  145. package/build/src/types/schema/GroupSchema.d.ts +11 -0
  146. package/build/src/types/schema/LightSchema.d.ts +28 -0
  147. package/build/src/{modules/state/types/COMMaterial.d.ts → types/schema/MaterialSchema.d.ts} +1 -1
  148. package/build/src/types/schema/ModelSchema.d.ts +14 -0
  149. package/build/src/types/schema/PovSchema.d.ts +10 -0
  150. package/build/src/types/schema/PrimitiveSchema.d.ts +14 -0
  151. package/build/src/types/schema/index.d.ts +11 -0
  152. package/package.json +42 -40
  153. package/build/chunks/ARSystem-_0cLAxyG.cjs +0 -1
  154. package/build/chunks/AnimationSystem-Bf-xhqRe.mjs +0 -101
  155. package/build/chunks/AnimationSystem-DFUYMNpj.cjs +0 -1
  156. package/build/chunks/AssetLoader-Bq-Ekxil.cjs +0 -4
  157. package/build/chunks/AxisCamera-CUb3g8WX.cjs +0 -1
  158. package/build/chunks/AxisCamera-lXJLIPLK.mjs +0 -39
  159. package/build/chunks/AxisHelperColors-BrGqktN5.cjs +0 -1
  160. package/build/chunks/AxisHelperColors-JLBHYQDi.mjs +0 -9
  161. package/build/chunks/FileTypes-DuVGjbcR.mjs +0 -36
  162. package/build/chunks/FileTypes-DzVpDu_p.cjs +0 -1
  163. package/build/chunks/MediaCreator-CEWeS42n.cjs +0 -1
  164. package/build/chunks/ModuleRegistry-CBfx1EVd.mjs +0 -13
  165. package/build/chunks/ModuleRegistry-CDIxOzgZ.cjs +0 -1
  166. package/build/chunks/OrbitController-B8VkQV1e.cjs +0 -1
  167. package/build/chunks/OrbitController-CXu1ko6E.mjs +0 -462
  168. package/build/chunks/PerspectiveCamera-BByyG5R4.cjs +0 -1
  169. package/build/chunks/PerspectiveCamera-PMJPzAn3.mjs +0 -34
  170. package/build/chunks/SelectTool-9eiKZXT4.cjs +0 -1
  171. package/build/chunks/State-BNgqNPrs.mjs +0 -4296
  172. package/build/chunks/State-Mvu0hG-n.cjs +0 -27
  173. package/build/chunks/Toolbox-qFN47t2F.cjs +0 -1
  174. package/build/chunks/VisibilityLayerMask-BI7jPKdx.cjs +0 -1
  175. package/build/chunks/VisibilityLayerMask-CXgt1fJc.mjs +0 -8
  176. package/build/chunks/index-C_uFFwT2.mjs +0 -5
  177. package/build/chunks/index-DAwIH9xh.cjs +0 -1
  178. package/build/chunks/package-CHgGmFCa.cjs +0 -1
  179. package/build/chunks/package-CIkS9WF6.mjs +0 -39
  180. package/build/modules/animation/index.cjs +0 -1
  181. package/build/modules/animation/index.d.ts +0 -2
  182. package/build/modules/animation/index.mjs +0 -5
  183. package/build/modules/ar/index.cjs +0 -1
  184. package/build/modules/ar/index.d.ts +0 -2
  185. package/build/modules/ar/index.mjs +0 -11
  186. package/build/modules/assetconverter/index.cjs +0 -1
  187. package/build/modules/assetconverter/index.d.ts +0 -2
  188. package/build/modules/assetconverter/index.mjs +0 -4
  189. package/build/modules/assetexporter/index.cjs +0 -1
  190. package/build/modules/assetexporter/index.d.ts +0 -2
  191. package/build/modules/assetexporter/index.mjs +0 -4
  192. package/build/modules/assetloader/index.cjs +0 -1
  193. package/build/modules/assetloader/index.d.ts +0 -2
  194. package/build/modules/assetloader/index.mjs +0 -4
  195. package/build/modules/axiscamera/index.cjs +0 -1
  196. package/build/modules/axiscamera/index.d.ts +0 -2
  197. package/build/modules/axiscamera/index.mjs +0 -4
  198. package/build/modules/controller/index.d.ts +0 -2
  199. package/build/modules/controller/index.mjs +0 -5
  200. package/build/modules/mediacreator/index.cjs +0 -1
  201. package/build/modules/mediacreator/index.d.ts +0 -2
  202. package/build/modules/mediacreator/index.mjs +0 -4
  203. package/build/modules/state/index.cjs +0 -1
  204. package/build/modules/state/index.d.ts +0 -2
  205. package/build/modules/state/index.mjs +0 -39
  206. package/build/modules/systeminfo/index.cjs +0 -1
  207. package/build/modules/systeminfo/index.d.ts +0 -2
  208. package/build/modules/toolbox/index.cjs +0 -1
  209. package/build/modules/toolbox/index.d.ts +0 -2
  210. package/build/modules/toolbox/index.mjs +0 -10
  211. package/build/src/modules/ModuleRegistry.d.ts +0 -19
  212. package/build/src/modules/animation/AnimationSystem.d.ts +0 -36
  213. package/build/src/modules/animation/index.d.ts +0 -2
  214. package/build/src/modules/ar/index.d.ts +0 -4
  215. package/build/src/modules/assetconverter/AssetConverter.d.ts +0 -30
  216. package/build/src/modules/assetconverter/index.d.ts +0 -1
  217. package/build/src/modules/assetexporter/index.d.ts +0 -1
  218. package/build/src/modules/assetloader/AssetLoader.d.ts +0 -29
  219. package/build/src/modules/assetloader/index.d.ts +0 -1
  220. package/build/src/modules/axiscamera/index.d.ts +0 -1
  221. package/build/src/modules/controller/index.d.ts +0 -1
  222. package/build/src/modules/mediacreator/MediaCreator.d.ts +0 -44
  223. package/build/src/modules/mediacreator/index.d.ts +0 -1
  224. package/build/src/modules/state/actions/object/addobject.d.ts +0 -8
  225. package/build/src/modules/state/actions/object/deleteobject.d.ts +0 -12
  226. package/build/src/modules/state/actions/object/deselectobject.d.ts +0 -12
  227. package/build/src/modules/state/actions/object/getobjects.d.ts +0 -12
  228. package/build/src/modules/state/actions/object/selectobject.d.ts +0 -12
  229. package/build/src/modules/state/actions/object/setparent.d.ts +0 -22
  230. package/build/src/modules/state/actions/object/updateobject.d.ts +0 -12
  231. package/build/src/modules/state/actions/scene/getallscenedata.d.ts +0 -9
  232. package/build/src/modules/state/index.d.ts +0 -4
  233. package/build/src/modules/state/types/COMBaseEntity.d.ts +0 -8
  234. package/build/src/modules/state/types/COMEntity.d.ts +0 -11
  235. package/build/src/modules/state/types/COMEntityType.d.ts +0 -1
  236. package/build/src/modules/state/types/COMGeometry.d.ts +0 -7
  237. package/build/src/modules/state/types/COMGeometryType.d.ts +0 -1
  238. package/build/src/modules/state/types/COMGroup.d.ts +0 -11
  239. package/build/src/modules/state/types/COMLight.d.ts +0 -28
  240. package/build/src/modules/state/types/COMModel.d.ts +0 -14
  241. package/build/src/modules/state/types/COMPov.d.ts +0 -10
  242. package/build/src/modules/state/types/COMPrimitive.d.ts +0 -14
  243. package/build/src/modules/state/types/index.d.ts +0 -11
  244. package/build/src/modules/systeminfo/index.d.ts +0 -1
  245. package/build/src/modules/toolbox/index.d.ts +0 -4
  246. package/build/src/types/SceneData.d.ts +0 -19
  247. package/build/src/types/SceneObjects.d.ts +0 -9
  248. package/build/src/types/UUID.d.ts +0 -1
  249. /package/build/{chunks/AssetConverter-BTAb23e8.cjs → plugins/assetconverter/index.cjs} +0 -0
  250. /package/build/{chunks/AssetConverter-D-qOTLs1.mjs → plugins/assetconverter/index.mjs} +0 -0
  251. /package/build/src/{modules/animation → plugins/animation/src}/types/AnimatorParameters.d.ts +0 -0
  252. /package/build/src/{modules/ar → plugins/ar/src}/arquicklook/ARQuickLook.d.ts +0 -0
  253. /package/build/src/{modules/ar → plugins/ar/src}/error/ar-errors.d.ts +0 -0
  254. /package/build/src/{modules/ar → plugins/ar/src}/sceneviewer/SceneViewer.d.ts +0 -0
  255. /package/build/src/{modules/ar → plugins/ar/src}/webxr/crosshair/WebXRCrosshair.d.ts +0 -0
  256. /package/build/src/{modules/ar → plugins/ar/src}/webxr/overlay/Overlay.d.ts +0 -0
  257. /package/build/src/{modules/assetloader → plugins/assetloader/src}/draco/DracoLoader.d.ts +0 -0
  258. /package/build/src/{modules/state → plugins/state/src}/ActionRegistry.d.ts +0 -0
  259. /package/build/src/{modules/state → plugins/state/src}/actions/ar/index.d.ts +0 -0
  260. /package/build/src/{modules/state → plugins/state/src}/actions/camera/index.d.ts +0 -0
  261. /package/build/src/{modules/state → plugins/state/src}/actions/index.d.ts +0 -0
  262. /package/build/src/{modules/state → plugins/state/src}/actions/media/index.d.ts +0 -0
  263. /package/build/src/{modules/state → plugins/state/src}/actions/object/index.d.ts +0 -0
  264. /package/build/src/{modules/state → plugins/state/src}/actions/renderer/index.d.ts +0 -0
  265. /package/build/src/{modules/state → plugins/state/src}/actions/scene/index.d.ts +0 -0
  266. /package/build/src/{modules/state → plugins/state/src}/actions/toolbox/index.d.ts +0 -0
  267. /package/build/src/{types/info → plugins/systeminfo/types}/index.d.ts +0 -0
@@ -0,0 +1 @@
1
+ "use strict";var Bt=Object.defineProperty;var Gt=(j,t,s)=>t in j?Bt(j,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):j[t]=s;var W=(j,t,s)=>Gt(j,typeof t!="symbol"?t+"":t,s);const d=require("three"),Z=require("./MathUtils-CBW56ZuG.cjs"),Ct={type:"change"},st={type:"start"},Pt={type:"end"},B=new d.Ray,St=new d.Plane,Jt=Math.cos(70*d.MathUtils.DEG2RAD);class $t extends d.EventDispatcher{constructor(t,s){super(),this.object=t,this.domElement=s,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new d.Vector3,this.cursor=new d.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:d.MOUSE.ROTATE,MIDDLE:d.MOUSE.DOLLY,RIGHT:d.MOUSE.PAN},this.touches={ONE:d.TOUCH.ROTATE,TWO:d.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 a.phi},this.getAzimuthalAngle=function(){return a.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(i){i.addEventListener("keydown",it),this._domElementKeyEvents=i},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener("keydown",it),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(Ct),e.update(),o=n.NONE},this.update=function(){const i=new d.Vector3,r=new d.Quaternion().setFromUnitVectors(t.up,new d.Vector3(0,1,0)),_=r.clone().invert(),z=new d.Vector3,M=new d.Quaternion,k=new d.Vector3,E=2*Math.PI;return function(Wt=null){const Et=e.object.position;i.copy(Et).sub(e.target),i.applyQuaternion(r),a.setFromVector3(i),e.autoRotate&&o===n.NONE&&Y(At(Wt)),e.enableDamping?(a.theta+=y.theta*e.dampingFactor,a.phi+=y.phi*e.dampingFactor):(a.theta+=y.theta,a.phi+=y.phi);let S=e.minAzimuthAngle,D=e.maxAzimuthAngle;isFinite(S)&&isFinite(D)&&(S<-Math.PI?S+=E:S>Math.PI&&(S-=E),D<-Math.PI?D+=E:D>Math.PI&&(D-=E),S<=D?a.theta=Math.max(S,Math.min(D,a.theta)):a.theta=a.theta>(S+D)/2?Math.max(S,a.theta):Math.min(D,a.theta)),a.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,a.phi)),a.makeSafe(),e.enableDamping===!0?e.target.addScaledVector(l,e.dampingFactor):e.target.add(l),e.target.sub(e.cursor),e.target.clampLength(e.minTargetRadius,e.maxTargetRadius),e.target.add(e.cursor);let F=!1;if(e.zoomToCursor&&L||e.object.isOrthographicCamera)a.radius=tt(a.radius);else{const A=a.radius;a.radius=tt(a.radius*c),F=A!=a.radius}if(i.setFromSpherical(a),i.applyQuaternion(_),Et.copy(e.target).add(i),e.object.lookAt(e.target),e.enableDamping===!0?(y.theta*=1-e.dampingFactor,y.phi*=1-e.dampingFactor,l.multiplyScalar(1-e.dampingFactor)):(y.set(0,0,0),l.set(0,0,0)),e.zoomToCursor&&L){let A=null;if(e.object.isPerspectiveCamera){const V=i.length();A=tt(V*c);const Q=V-A;e.object.position.addScaledVector(O,Q),e.object.updateMatrixWorld(),F=!!Q}else if(e.object.isOrthographicCamera){const V=new d.Vector3(f.x,f.y,0);V.unproject(e.object);const Q=e.object.zoom;e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/c)),e.object.updateProjectionMatrix(),F=Q!==e.object.zoom;const Tt=new d.Vector3(f.x,f.y,0);Tt.unproject(e.object),e.object.position.sub(Tt).add(V),e.object.updateMatrixWorld(),A=i.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),e.zoomToCursor=!1;A!==null&&(this.screenSpacePanning?e.target.set(0,0,-1).transformDirection(e.object.matrix).multiplyScalar(A).add(e.object.position):(B.origin.copy(e.object.position),B.direction.set(0,0,-1).transformDirection(e.object.matrix),Math.abs(e.object.up.dot(B.direction))<Jt?t.lookAt(e.target):(St.setFromNormalAndCoplanarPoint(e.object.up,e.target),B.intersectPlane(St,e.target))))}else if(e.object.isOrthographicCamera){const A=e.object.zoom;e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/c)),A!==e.object.zoom&&(e.object.updateProjectionMatrix(),F=!0)}return c=1,L=!1,F||z.distanceToSquared(e.object.position)>p||8*(1-M.dot(e.object.quaternion))>p||k.distanceToSquared(e.target)>p?(e.dispatchEvent(Ct),z.copy(e.object.position),M.copy(e.object.quaternion),k.copy(e.target),!0):!1}}(),this.dispose=function(){e.domElement.removeEventListener("contextmenu",bt),e.domElement.removeEventListener("pointerdown",_t),e.domElement.removeEventListener("pointercancel",U),e.domElement.removeEventListener("wheel",zt),e.domElement.removeEventListener("pointermove",et),e.domElement.removeEventListener("pointerup",U),e.domElement.getRootNode().removeEventListener("keydown",ft,{capture:!0}),e._domElementKeyEvents!==null&&(e._domElementKeyEvents.removeEventListener("keydown",it),e._domElementKeyEvents=null)};const e=this,n={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let o=n.NONE;const p=1e-6,a=new d.Spherical,y=new d.Spherical;let c=1;const l=new d.Vector3,u=new d.Vector2,m=new d.Vector2,h=new d.Vector2,x=new d.Vector2,w=new d.Vector2,b=new d.Vector2,T=new d.Vector2,P=new d.Vector2,C=new d.Vector2,O=new d.Vector3,f=new d.Vector2;let L=!1;const g=[],I={};let J=!1;function At(i){return i!==null?2*Math.PI/60*e.autoRotateSpeed*i:2*Math.PI/60/60*e.autoRotateSpeed}function K(i){const r=Math.abs(i*.01);return Math.pow(.95,e.zoomSpeed*r)}function Y(i){y.theta-=i}function q(i){y.phi-=i}const at=function(){const i=new d.Vector3;return function(_,z){i.setFromMatrixColumn(z,0),i.multiplyScalar(-_),l.add(i)}}(),rt=function(){const i=new d.Vector3;return function(_,z){e.screenSpacePanning===!0?i.setFromMatrixColumn(z,1):(i.setFromMatrixColumn(z,0),i.crossVectors(e.object.up,i)),i.multiplyScalar(_),l.add(i)}}(),R=function(){const i=new d.Vector3;return function(_,z){const M=e.domElement;if(e.object.isPerspectiveCamera){const k=e.object.position;i.copy(k).sub(e.target);let E=i.length();E*=Math.tan(e.object.fov/2*Math.PI/180),at(2*_*E/M.clientHeight,e.object.matrix),rt(2*z*E/M.clientHeight,e.object.matrix)}else e.object.isOrthographicCamera?(at(_*(e.object.right-e.object.left)/e.object.zoom/M.clientWidth,e.object.matrix),rt(z*(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 $(i){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?c/=i:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function ht(i){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?c*=i:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function v(i,r){if(!e.zoomToCursor)return;L=!0;const _=e.domElement.getBoundingClientRect(),z=i-_.left,M=r-_.top,k=_.width,E=_.height;f.x=z/k*2-1,f.y=-(M/E)*2+1,O.set(f.x,f.y,1).unproject(e.object).sub(e.object.position).normalize()}function tt(i){return Math.max(e.minDistance,Math.min(e.maxDistance,i))}function ct(i){u.set(i.clientX,i.clientY)}function kt(i){v(i.clientX,i.clientX),T.set(i.clientX,i.clientY)}function lt(i){x.set(i.clientX,i.clientY)}function jt(i){m.set(i.clientX,i.clientY),h.subVectors(m,u).multiplyScalar(e.rotateSpeed);const r=e.domElement;Y(2*Math.PI*h.x/r.clientHeight),q(2*Math.PI*h.y/r.clientHeight),u.copy(m),e.update()}function Ot(i){P.set(i.clientX,i.clientY),C.subVectors(P,T),C.y>0?$(K(C.y)):C.y<0&&ht(K(C.y)),T.copy(P),e.update()}function Lt(i){w.set(i.clientX,i.clientY),b.subVectors(w,x).multiplyScalar(e.panSpeed),R(b.x,b.y),x.copy(w),e.update()}function Rt(i){v(i.clientX,i.clientY),i.deltaY<0?ht(K(i.deltaY)):i.deltaY>0&&$(K(i.deltaY)),e.update()}function Nt(i){let r=!1;switch(i.code){case e.keys.UP:i.ctrlKey||i.metaKey||i.shiftKey?q(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):R(0,e.keyPanSpeed),r=!0;break;case e.keys.BOTTOM:i.ctrlKey||i.metaKey||i.shiftKey?q(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):R(0,-e.keyPanSpeed),r=!0;break;case e.keys.LEFT:i.ctrlKey||i.metaKey||i.shiftKey?Y(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):R(e.keyPanSpeed,0),r=!0;break;case e.keys.RIGHT:i.ctrlKey||i.metaKey||i.shiftKey?Y(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):R(-e.keyPanSpeed,0),r=!0;break}r&&(i.preventDefault(),e.update())}function ut(i){if(g.length===1)u.set(i.pageX,i.pageY);else{const r=N(i),_=.5*(i.pageX+r.x),z=.5*(i.pageY+r.y);u.set(_,z)}}function mt(i){if(g.length===1)x.set(i.pageX,i.pageY);else{const r=N(i),_=.5*(i.pageX+r.x),z=.5*(i.pageY+r.y);x.set(_,z)}}function yt(i){const r=N(i),_=i.pageX-r.x,z=i.pageY-r.y,M=Math.sqrt(_*_+z*z);T.set(0,M)}function It(i){e.enableZoom&&yt(i),e.enablePan&&mt(i)}function Yt(i){e.enableZoom&&yt(i),e.enableRotate&&ut(i)}function pt(i){if(g.length==1)m.set(i.pageX,i.pageY);else{const _=N(i),z=.5*(i.pageX+_.x),M=.5*(i.pageY+_.y);m.set(z,M)}h.subVectors(m,u).multiplyScalar(e.rotateSpeed);const r=e.domElement;Y(2*Math.PI*h.x/r.clientHeight),q(2*Math.PI*h.y/r.clientHeight),u.copy(m)}function dt(i){if(g.length===1)w.set(i.pageX,i.pageY);else{const r=N(i),_=.5*(i.pageX+r.x),z=.5*(i.pageY+r.y);w.set(_,z)}b.subVectors(w,x).multiplyScalar(e.panSpeed),R(b.x,b.y),x.copy(w)}function xt(i){const r=N(i),_=i.pageX-r.x,z=i.pageY-r.y,M=Math.sqrt(_*_+z*z);P.set(0,M),C.set(0,Math.pow(P.y/T.y,e.zoomSpeed)),$(C.y),T.copy(P);const k=(i.pageX+r.x)*.5,E=(i.pageY+r.y)*.5;v(k,E)}function Ut(i){e.enableZoom&&xt(i),e.enablePan&&dt(i)}function Ft(i){e.enableZoom&&xt(i),e.enableRotate&&pt(i)}function _t(i){e.enabled!==!1&&(g.length===0&&(e.domElement.setPointerCapture(i.pointerId),e.domElement.addEventListener("pointermove",et),e.domElement.addEventListener("pointerup",U)),!Qt(i)&&(Kt(i),i.pointerType==="touch"?Mt(i):Vt(i)))}function et(i){e.enabled!==!1&&(i.pointerType==="touch"?Xt(i):Zt(i))}function U(i){switch(qt(i),g.length){case 0:e.domElement.releasePointerCapture(i.pointerId),e.domElement.removeEventListener("pointermove",et),e.domElement.removeEventListener("pointerup",U),e.dispatchEvent(Pt),o=n.NONE;break;case 1:const r=g[0],_=I[r];Mt({pointerId:r,pageX:_.x,pageY:_.y});break}}function Vt(i){let r;switch(i.button){case 0:r=e.mouseButtons.LEFT;break;case 1:r=e.mouseButtons.MIDDLE;break;case 2:r=e.mouseButtons.RIGHT;break;default:r=-1}switch(r){case d.MOUSE.DOLLY:if(e.enableZoom===!1)return;kt(i),o=n.DOLLY;break;case d.MOUSE.ROTATE:if(i.ctrlKey||i.metaKey||i.shiftKey){if(e.enablePan===!1)return;lt(i),o=n.PAN}else{if(e.enableRotate===!1)return;ct(i),o=n.ROTATE}break;case d.MOUSE.PAN:if(i.ctrlKey||i.metaKey||i.shiftKey){if(e.enableRotate===!1)return;ct(i),o=n.ROTATE}else{if(e.enablePan===!1)return;lt(i),o=n.PAN}break;default:o=n.NONE}o!==n.NONE&&e.dispatchEvent(st)}function Zt(i){switch(o){case n.ROTATE:if(e.enableRotate===!1)return;jt(i);break;case n.DOLLY:if(e.enableZoom===!1)return;Ot(i);break;case n.PAN:if(e.enablePan===!1)return;Lt(i);break}}function zt(i){e.enabled===!1||e.enableZoom===!1||o!==n.NONE||(i.preventDefault(),e.dispatchEvent(st),Rt(Ht(i)),e.dispatchEvent(Pt))}function Ht(i){const r=i.deltaMode,_={clientX:i.clientX,clientY:i.clientY,deltaY:i.deltaY};switch(r){case 1:_.deltaY*=16;break;case 2:_.deltaY*=100;break}return i.ctrlKey&&!J&&(_.deltaY*=10),_}function ft(i){i.key==="Control"&&(J=!0,e.domElement.getRootNode().addEventListener("keyup",gt,{passive:!0,capture:!0}))}function gt(i){i.key==="Control"&&(J=!1,e.domElement.getRootNode().removeEventListener("keyup",gt,{passive:!0,capture:!0}))}function it(i){e.enabled===!1||e.enablePan===!1||Nt(i)}function Mt(i){switch(wt(i),g.length){case 1:switch(e.touches.ONE){case d.TOUCH.ROTATE:if(e.enableRotate===!1)return;ut(i),o=n.TOUCH_ROTATE;break;case d.TOUCH.PAN:if(e.enablePan===!1)return;mt(i),o=n.TOUCH_PAN;break;default:o=n.NONE}break;case 2:switch(e.touches.TWO){case d.TOUCH.DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;It(i),o=n.TOUCH_DOLLY_PAN;break;case d.TOUCH.DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Yt(i),o=n.TOUCH_DOLLY_ROTATE;break;default:o=n.NONE}break;default:o=n.NONE}o!==n.NONE&&e.dispatchEvent(st)}function Xt(i){switch(wt(i),o){case n.TOUCH_ROTATE:if(e.enableRotate===!1)return;pt(i),e.update();break;case n.TOUCH_PAN:if(e.enablePan===!1)return;dt(i),e.update();break;case n.TOUCH_DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;Ut(i),e.update();break;case n.TOUCH_DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Ft(i),e.update();break;default:o=n.NONE}}function bt(i){e.enabled!==!1&&i.preventDefault()}function Kt(i){g.push(i.pointerId)}function qt(i){delete I[i.pointerId];for(let r=0;r<g.length;r++)if(g[r]==i.pointerId){g.splice(r,1);return}}function Qt(i){for(let r=0;r<g.length;r++)if(g[r]==i.pointerId)return!0;return!1}function wt(i){let r=I[i.pointerId];r===void 0&&(r=new d.Vector2,I[i.pointerId]=r),r.set(i.pageX,i.pageY)}function N(i){const r=i.pointerId===g[0]?g[1]:g[0];return I[r]}e.domElement.addEventListener("contextmenu",bt),e.domElement.addEventListener("pointerdown",_t),e.domElement.addEventListener("pointercancel",U),e.domElement.addEventListener("wheel",zt,{passive:!1}),e.domElement.getRootNode().addEventListener("keydown",ft,{passive:!0,capture:!0}),this.update()}}class vt{constructor(t=0,s=0,e=0,n=1){this.isQuaternion=!0,this._x=t,this._y=s,this._z=e,this._w=n}static slerpFlat(t,s,e,n,o,p,a){let y=e[n+0],c=e[n+1],l=e[n+2],u=e[n+3];const m=o[p+0],h=o[p+1],x=o[p+2],w=o[p+3];if(a===0){t[s+0]=y,t[s+1]=c,t[s+2]=l,t[s+3]=u;return}if(a===1){t[s+0]=m,t[s+1]=h,t[s+2]=x,t[s+3]=w;return}if(u!==w||y!==m||c!==h||l!==x){let b=1-a;const T=y*m+c*h+l*x+u*w,P=T>=0?1:-1,C=1-T*T;if(C>Number.EPSILON){const f=Math.sqrt(C),L=Math.atan2(f,T*P);b=Math.sin(b*L)/f,a=Math.sin(a*L)/f}const O=a*P;if(y=y*b+m*O,c=c*b+h*O,l=l*b+x*O,u=u*b+w*O,b===1-a){const f=1/Math.sqrt(y*y+c*c+l*l+u*u);y*=f,c*=f,l*=f,u*=f}}t[s]=y,t[s+1]=c,t[s+2]=l,t[s+3]=u}static multiplyQuaternionsFlat(t,s,e,n,o,p){const a=e[n],y=e[n+1],c=e[n+2],l=e[n+3],u=o[p],m=o[p+1],h=o[p+2],x=o[p+3];return t[s]=a*x+l*u+y*h-c*m,t[s+1]=y*x+l*m+c*u-a*h,t[s+2]=c*x+l*h+a*m-y*u,t[s+3]=l*x-a*u-y*m-c*h,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,s,e,n){return this._x=t,this._y=s,this._z=e,this._w=n,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,s=!0){const e=t._x,n=t._y,o=t._z,p=t._order,a=Math.cos,y=Math.sin,c=a(e/2),l=a(n/2),u=a(o/2),m=y(e/2),h=y(n/2),x=y(o/2);switch(p){case"XYZ":this._x=m*l*u+c*h*x,this._y=c*h*u-m*l*x,this._z=c*l*x+m*h*u,this._w=c*l*u-m*h*x;break;case"YXZ":this._x=m*l*u+c*h*x,this._y=c*h*u-m*l*x,this._z=c*l*x-m*h*u,this._w=c*l*u+m*h*x;break;case"ZXY":this._x=m*l*u-c*h*x,this._y=c*h*u+m*l*x,this._z=c*l*x+m*h*u,this._w=c*l*u-m*h*x;break;case"ZYX":this._x=m*l*u-c*h*x,this._y=c*h*u+m*l*x,this._z=c*l*x-m*h*u,this._w=c*l*u+m*h*x;break;case"YZX":this._x=m*l*u+c*h*x,this._y=c*h*u+m*l*x,this._z=c*l*x-m*h*u,this._w=c*l*u-m*h*x;break;case"XZY":this._x=m*l*u-c*h*x,this._y=c*h*u-m*l*x,this._z=c*l*x+m*h*u,this._w=c*l*u+m*h*x;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+p)}return s===!0&&this._onChangeCallback(),this}setFromAxisAngle(t,s){const e=s/2,n=Math.sin(e);return this._x=t.x*n,this._y=t.y*n,this._z=t.z*n,this._w=Math.cos(e),this._onChangeCallback(),this}setFromRotationMatrix(t){const s=t.elements,e=s[0],n=s[4],o=s[8],p=s[1],a=s[5],y=s[9],c=s[2],l=s[6],u=s[10],m=e+a+u;if(m>0){const h=.5/Math.sqrt(m+1);this._w=.25/h,this._x=(l-y)*h,this._y=(o-c)*h,this._z=(p-n)*h}else if(e>a&&e>u){const h=2*Math.sqrt(1+e-a-u);this._w=(l-y)/h,this._x=.25*h,this._y=(n+p)/h,this._z=(o+c)/h}else if(a>u){const h=2*Math.sqrt(1+a-e-u);this._w=(o-c)/h,this._x=(n+p)/h,this._y=.25*h,this._z=(y+l)/h}else{const h=2*Math.sqrt(1+u-e-a);this._w=(p-n)/h,this._x=(o+c)/h,this._y=(y+l)/h,this._z=.25*h}return this._onChangeCallback(),this}setFromUnitVectors(t,s){let e=t.dot(s)+1;return e<Number.EPSILON?(e=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=e):(this._x=0,this._y=-t.z,this._z=t.y,this._w=e)):(this._x=t.y*s.z-t.z*s.y,this._y=t.z*s.x-t.x*s.z,this._z=t.x*s.y-t.y*s.x,this._w=e),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(Z.clamp(this.dot(t),-1,1)))}rotateTowards(t,s){const e=this.angleTo(t);if(e===0)return this;const n=Math.min(1,s/e);return this.slerp(t,n),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,s){const e=t._x,n=t._y,o=t._z,p=t._w,a=s._x,y=s._y,c=s._z,l=s._w;return this._x=e*l+p*a+n*c-o*y,this._y=n*l+p*y+o*a-e*c,this._z=o*l+p*c+e*y-n*a,this._w=p*l-e*a-n*y-o*c,this._onChangeCallback(),this}slerp(t,s){if(s===0)return this;if(s===1)return this.copy(t);const e=this._x,n=this._y,o=this._z,p=this._w;let a=p*t._w+e*t._x+n*t._y+o*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=p,this._x=e,this._y=n,this._z=o,this;const y=1-a*a;if(y<=Number.EPSILON){const h=1-s;return this._w=h*p+s*this._w,this._x=h*e+s*this._x,this._y=h*n+s*this._y,this._z=h*o+s*this._z,this.normalize(),this}const c=Math.sqrt(y),l=Math.atan2(c,a),u=Math.sin((1-s)*l)/c,m=Math.sin(s*l)/c;return this._w=p*u+this._w*m,this._x=e*u+this._x*m,this._y=n*u+this._y*m,this._z=o*u+this._z*m,this._onChangeCallback(),this}slerpQuaternions(t,s,e){return this.copy(t).slerp(s,e)}random(){const t=2*Math.PI*Math.random(),s=2*Math.PI*Math.random(),e=Math.random(),n=Math.sqrt(1-e),o=Math.sqrt(e);return this.set(n*Math.sin(t),n*Math.cos(t),o*Math.sin(s),o*Math.cos(s))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,s=0){return this._x=t[s],this._y=t[s+1],this._z=t[s+2],this._w=t[s+3],this._onChangeCallback(),this}toArray(t=[],s=0){return t[s]=this._x,t[s+1]=this._y,t[s+2]=this._z,t[s+3]=this._w,t}fromBufferAttribute(t,s){return this._x=t.getX(s),this._y=t.getY(s),this._z=t.getZ(s),this._w=t.getW(s),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class X{constructor(t=0,s=0,e=0){X.prototype.isVector3=!0,this.x=t,this.y=s,this.z=e}set(t,s,e){return e===void 0&&(e=this.z),this.x=t,this.y=s,this.z=e,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,s){switch(t){case 0:this.x=s;break;case 1:this.y=s;break;case 2:this.z=s;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,s){return this.x=t.x+s.x,this.y=t.y+s.y,this.z=t.z+s.z,this}addScaledVector(t,s){return this.x+=t.x*s,this.y+=t.y*s,this.z+=t.z*s,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,s){return this.x=t.x-s.x,this.y=t.y-s.y,this.z=t.z-s.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,s){return this.x=t.x*s.x,this.y=t.y*s.y,this.z=t.z*s.z,this}applyEuler(t){return this.applyQuaternion(Dt.setFromEuler(t))}applyAxisAngle(t,s){return this.applyQuaternion(Dt.setFromAxisAngle(t,s))}applyMatrix3(t){const s=this.x,e=this.y,n=this.z,o=t.elements;return this.x=o[0]*s+o[3]*e+o[6]*n,this.y=o[1]*s+o[4]*e+o[7]*n,this.z=o[2]*s+o[5]*e+o[8]*n,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const s=this.x,e=this.y,n=this.z,o=t.elements,p=1/(o[3]*s+o[7]*e+o[11]*n+o[15]);return this.x=(o[0]*s+o[4]*e+o[8]*n+o[12])*p,this.y=(o[1]*s+o[5]*e+o[9]*n+o[13])*p,this.z=(o[2]*s+o[6]*e+o[10]*n+o[14])*p,this}applyQuaternion(t){const s=this.x,e=this.y,n=this.z,o=t.x,p=t.y,a=t.z,y=t.w,c=2*(p*n-a*e),l=2*(a*s-o*n),u=2*(o*e-p*s);return this.x=s+y*c+p*u-a*l,this.y=e+y*l+a*c-o*u,this.z=n+y*u+o*l-p*c,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const s=this.x,e=this.y,n=this.z,o=t.elements;return this.x=o[0]*s+o[4]*e+o[8]*n,this.y=o[1]*s+o[5]*e+o[9]*n,this.z=o[2]*s+o[6]*e+o[10]*n,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,s){return this.x=Math.max(t.x,Math.min(s.x,this.x)),this.y=Math.max(t.y,Math.min(s.y,this.y)),this.z=Math.max(t.z,Math.min(s.z,this.z)),this}clampScalar(t,s){return this.x=Math.max(t,Math.min(s,this.x)),this.y=Math.max(t,Math.min(s,this.y)),this.z=Math.max(t,Math.min(s,this.z)),this}clampLength(t,s){const e=this.length();return this.divideScalar(e||1).multiplyScalar(Math.max(t,Math.min(s,e)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,s){return this.x+=(t.x-this.x)*s,this.y+=(t.y-this.y)*s,this.z+=(t.z-this.z)*s,this}lerpVectors(t,s,e){return this.x=t.x+(s.x-t.x)*e,this.y=t.y+(s.y-t.y)*e,this.z=t.z+(s.z-t.z)*e,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,s){const e=t.x,n=t.y,o=t.z,p=s.x,a=s.y,y=s.z;return this.x=n*y-o*a,this.y=o*p-e*y,this.z=e*a-n*p,this}projectOnVector(t){const s=t.lengthSq();if(s===0)return this.set(0,0,0);const e=t.dot(this)/s;return this.copy(t).multiplyScalar(e)}projectOnPlane(t){return nt.copy(this).projectOnVector(t),this.sub(nt)}reflect(t){return this.sub(nt.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const s=Math.sqrt(this.lengthSq()*t.lengthSq());if(s===0)return Math.PI/2;const e=this.dot(t)/s;return Math.acos(Z.clamp(e,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const s=this.x-t.x,e=this.y-t.y,n=this.z-t.z;return s*s+e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,s,e){const n=Math.sin(s)*t;return this.x=n*Math.sin(e),this.y=Math.cos(s)*t,this.z=n*Math.cos(e),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,s,e){return this.x=t*Math.sin(s),this.y=e,this.z=t*Math.cos(s),this}setFromMatrixPosition(t){const s=t.elements;return this.x=s[12],this.y=s[13],this.z=s[14],this}setFromMatrixScale(t){const s=this.setFromMatrixColumn(t,0).length(),e=this.setFromMatrixColumn(t,1).length(),n=this.setFromMatrixColumn(t,2).length();return this.x=s,this.y=e,this.z=n,this}setFromMatrixColumn(t,s){return this.fromArray(t.elements,s*4)}setFromMatrix3Column(t,s){return this.fromArray(t.elements,s*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,s=0){return this.x=t[s],this.y=t[s+1],this.z=t[s+2],this}toArray(t=[],s=0){return t[s]=this.x,t[s+1]=this.y,t[s+2]=this.z,t}fromBufferAttribute(t,s){return this.x=t.getX(s),this.y=t.getY(s),this.z=t.getZ(s),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,s=Math.random()*2-1,e=Math.sqrt(1-s*s);return this.x=e*Math.cos(t),this.y=s,this.z=e*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const nt=new X,Dt=new vt,G={enableDamping:!0,dampingFactor:.05},H=class H extends $t{constructor(s,e,n=G){super(s,e);W(this,"uuid",Z.MathUtils.generateUUID());W(this,"object");this.domElement=e,this.domElement=e,this.object=s,this.enableDamping=n.enableDamping??G.enableDamping,this.dampingFactor=n.dampingFactor??G.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(s){const e=s.getCenter(new X),n=s.getSize(new X),o=Math.max(n.x,n.y,n.z)*1.25;return{position:this.object.position.clone().normalize().clone().multiplyScalar(o),target:e.clone()}}zoomIn(s){const e=s||H.DEFAULT_ZOOM_FACTOR,{minDistance:n,maxDistance:o}=this;this.minDistance=this.maxDistance=Z.MathUtils.clamp(this.getDistance()-e,n+e,o-e),this.update(),this.minDistance=n,this.maxDistance=o}zoomOut(s){const e=s||H.DEFAULT_ZOOM_FACTOR,{minDistance:n,maxDistance:o}=this;this.minDistance=this.maxDistance=Z.MathUtils.clamp(this.getDistance()+e,n+e,o-e),this.update(),this.minDistance=n,this.maxDistance=o}};W(H,"DEFAULT_ZOOM_FACTOR",1);let ot=H;exports.OrbitController=ot;exports.OrbitControllerDefaultSettings=G;
@@ -0,0 +1 @@
1
+ "use strict";var c=Object.defineProperty;var n=(t,A,e)=>A in t?c(t,A,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[A]=e;var s=(t,A,e)=>n(t,typeof A!="symbol"?A+"":A,e);const M=require("three"),L=1,I=2,R=4,S=8,_=16,a={fov:70,near:.1,far:1e3},E=class E extends M.PerspectiveCamera{constructor(e=a){super(e.fov||a.fov,1,e.near||a.near,e.far||a.far);s(this,"onSetCameraLayer",()=>{});this.layers.mask=E.EDITOR_VIEW_LAYER_MASK}onResize(e,o){this.aspect=e/o,this.updateProjectionMatrix()}setCameraLayer(e){this.layers.mask=e==="LIVE"?E.LIVE_VIEW_LAYER_MASK:E.EDITOR_VIEW_LAYER_MASK,this.onSetCameraLayer(this.layers.mask)}};s(E,"EDITOR_VIEW_LAYER_MASK",L|R|S|_),s(E,"LIVE_VIEW_LAYER_MASK",_);let r=E;exports.COORDINATE_LAYER_MASK=I;exports.DEFAULT_LAYER_MASK=L;exports.DIVEPerspectiveCamera=r;exports.DIVEPerspectiveCameraDefaultSettings=a;exports.HELPER_LAYER_MASK=S;exports.PRODUCT_LAYER_MASK=_;exports.UI_LAYER_MASK=R;
@@ -0,0 +1,38 @@
1
+ var L = Object.defineProperty;
2
+ var R = (E, s, a) => s in E ? L(E, s, { enumerable: !0, configurable: !0, writable: !0, value: a }) : E[s] = a;
3
+ var A = (E, s, a) => R(E, typeof s != "symbol" ? s + "" : s, a);
4
+ import { PerspectiveCamera as n } from "three";
5
+ const S = 1, K = 2, c = 4, I = 8, r = 16, e = {
6
+ fov: 70,
7
+ near: 0.1,
8
+ far: 1e3
9
+ }, t = class t extends n {
10
+ constructor(a = e) {
11
+ super(
12
+ a.fov || e.fov,
13
+ 1,
14
+ a.near || e.near,
15
+ a.far || e.far
16
+ );
17
+ A(this, "onSetCameraLayer", () => {
18
+ });
19
+ this.layers.mask = t.EDITOR_VIEW_LAYER_MASK;
20
+ }
21
+ onResize(a, o) {
22
+ this.aspect = a / o, this.updateProjectionMatrix();
23
+ }
24
+ setCameraLayer(a) {
25
+ this.layers.mask = a === "LIVE" ? t.LIVE_VIEW_LAYER_MASK : t.EDITOR_VIEW_LAYER_MASK, this.onSetCameraLayer(this.layers.mask);
26
+ }
27
+ };
28
+ A(t, "EDITOR_VIEW_LAYER_MASK", S | c | I | r), A(t, "LIVE_VIEW_LAYER_MASK", r);
29
+ let _ = t;
30
+ export {
31
+ K as C,
32
+ _ as D,
33
+ I as H,
34
+ r as P,
35
+ c as U,
36
+ e as a,
37
+ S as b
38
+ };
@@ -0,0 +1 @@
1
+ "use strict";function t(e){return e.entityType==="model"}function i(e){return e.entityType==="pov"}exports.isModelSchema=t;exports.isPovSchema=i;
@@ -0,0 +1,10 @@
1
+ function t(e) {
2
+ return e.entityType === "model";
3
+ }
4
+ function n(e) {
5
+ return e.entityType === "pov";
6
+ }
7
+ export {
8
+ n as a,
9
+ t as i
10
+ };
@@ -1,10 +1,10 @@
1
1
  var jt = Object.defineProperty;
2
2
  var Xt = (r, i, t) => i in r ? jt(r, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[i] = t;
3
3
  var c = (r, i, t) => Xt(r, typeof i != "symbol" ? i + "" : i, t);
4
- import { Object3D as st, Vector3 as a, Quaternion as E, Raycaster as bt, MeshBasicMaterial as St, LineBasicMaterial as Yt, CylinderGeometry as w, BoxGeometry as f, BufferGeometry as lt, Float32BufferAttribute as ht, Mesh as o, OctahedronGeometry as B, Line as I, TorusGeometry as C, SphereGeometry as Qt, Euler as Zt, Matrix4 as vt, PlaneGeometry as Ht, DoubleSide as Ot, Vector2 as tt } from "three";
5
- import { P as Ct, U as kt } from "./VisibilityLayerMask-CXgt1fJc.mjs";
4
+ import { A as lt, a as ht, b as ct } from "./FileTypes-CXnW0NAe.mjs";
5
+ import { Object3D as st, Vector3 as a, Quaternion as E, Raycaster as bt, MeshBasicMaterial as St, LineBasicMaterial as Yt, CylinderGeometry as w, BoxGeometry as f, BufferGeometry as dt, Float32BufferAttribute as pt, Mesh as o, OctahedronGeometry as B, Line as I, TorusGeometry as C, SphereGeometry as Qt, Euler as Zt, Matrix4 as vt, PlaneGeometry as Ht, DoubleSide as Ot, Vector2 as tt } from "three";
6
6
  import { f as ot, i as et } from "./findInterface-DbJ5qzbc.mjs";
7
- import { A as ct, a as dt, b as pt } from "./AxisHelperColors-JLBHYQDi.mjs";
7
+ import { P as Ct, U as kt } from "./PerspectiveCamera-DUiWJJIj.mjs";
8
8
  const j = new bt(), u = new a(), T = new a(), d = new E(), ut = {
9
9
  X: new a(1, 0, 0),
10
10
  Y: new a(0, 1, 0),
@@ -203,8 +203,8 @@ class Ut extends st {
203
203
  M.translate(0, 0.05, 0);
204
204
  const x = new f(0.08, 0.08, 0.08);
205
205
  x.translate(0, 0.04, 0);
206
- const v = new lt();
207
- v.setAttribute("position", new ht([0, 0, 0, 1, 0, 0], 3));
206
+ const v = new dt();
207
+ v.setAttribute("position", new pt([0, 0, 0, 1, 0, 0], 3));
208
208
  const m = new w(75e-4, 75e-4, 0.5, 3);
209
209
  m.translate(0, 0.25, 0);
210
210
  function b(y, W) {
@@ -212,8 +212,8 @@ class Ut extends st {
212
212
  return S.rotateY(Math.PI / 2), S.rotateX(Math.PI / 2), S;
213
213
  }
214
214
  function Q() {
215
- const y = new lt();
216
- return y.setAttribute("position", new ht([0, 0, 0, 1, 1, 1], 3)), y;
215
+ const y = new dt();
216
+ return y.setAttribute("position", new pt([0, 0, 0, 1, 1, 1], 3)), y;
217
217
  }
218
218
  const A = {
219
219
  X: [
@@ -654,7 +654,7 @@ class Nt extends Bt {
654
654
  return t.mode = "translate", t.traverse((n) => {
655
655
  if (!("isMesh" in n)) return;
656
656
  const s = n.material;
657
- n.name === "X" && s.color.set(ct), n.name === "Y" && s.color.set(dt), n.name === "Z" && s.color.set(pt), n.name === "XY" && s.color.set(pt), n.name === "YZ" && s.color.set(ct), n.name === "XZ" && s.color.set(dt);
657
+ n.name === "X" && s.color.set(lt), n.name === "Y" && s.color.set(ht), n.name === "Z" && s.color.set(ct), n.name === "XY" && s.color.set(ct), n.name === "YZ" && s.color.set(lt), n.name === "XZ" && s.color.set(ht);
658
658
  }), t.addEventListener("mouseDown", () => {
659
659
  this._controller.enabled = !1, et(t.object, "isMovable") && t.object.onMoveStart && t.object.onMoveStart();
660
660
  }), t.addEventListener("objectChange", () => {
@@ -709,8 +709,8 @@ class se extends Nt {
709
709
  }
710
710
  }
711
711
  export {
712
- Bt as D,
713
- se as a,
712
+ se as D,
713
+ Bt as a,
714
714
  ie as b,
715
715
  Nt as c,
716
716
  ne as i
@@ -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 Q=require("./FileTypes-B2JRjVgw.cjs"),t=require("three"),j=require("./findInterface-C6mrvf_t.cjs"),$=require("./PerspectiveCamera-CONx93im.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;
@@ -0,0 +1,18 @@
1
+ function o(r) {
2
+ var t;
3
+ const e = r.split("/").pop() || "";
4
+ return !e.includes(".") || e.endsWith(".") ? "" : ((t = e.split(".").pop()) == null ? void 0 : t.toLowerCase().split("?")[0]) || "";
5
+ }
6
+ function i(r) {
7
+ return r.toLowerCase() in { glb: !0, gltf: !0, usdz: !0 };
8
+ }
9
+ class n extends Error {
10
+ constructor(e, s, t) {
11
+ super(s), this.url = e, this.cause = t, this.name = "NetworkError";
12
+ }
13
+ }
14
+ export {
15
+ n as N,
16
+ o as g,
17
+ i
18
+ };
@@ -0,0 +1 @@
1
+ "use strict";function s(r){var t;const e=r.split("/").pop()||"";return!e.includes(".")||e.endsWith(".")?"":((t=e.split(".").pop())==null?void 0:t.toLowerCase().split("?")[0])||""}function i(r){return r.toLowerCase()in{glb:!0,gltf:!0,usdz:!0}}class n extends Error{constructor(e,o,t){super(o),this.url=e,this.cause=t,this.name="NetworkError"}}exports.NetworkError=n;exports.getFileTypeFromUri=s;exports.isFileTypeSupported=i;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="@shopware-ag/dive",i="2.0.1-beta.8",s="Shopware Spatial Framework",t="module",r="build/dive.cjs",n="build/dive.mjs",d="build/dive.d.ts",o={".":{types:"./build/dive.d.ts",import:"./build/dive.mjs",require:"./build/dive.cjs"},"./animation":{types:"./build/plugins/animation/index.d.ts",import:"./build/plugins/animation/index.mjs",require:"./build/plugins/animation/index.cjs"},"./ar":{types:"./build/plugins/ar/index.d.ts",import:"./build/plugins/ar/index.mjs",require:"./build/plugins/ar/index.cjs"},"./assetconverter":{types:"./build/plugins/assetconverter/index.d.ts",import:"./build/plugins/assetconverter/index.mjs",require:"./build/plugins/assetconverter/index.cjs"},"./assetexporter":{types:"./build/plugins/assetexporter/index.d.ts",import:"./build/plugins/assetexporter/index.mjs",require:"./build/plugins/assetexporter/index.cjs"},"./assetloader":{types:"./build/plugins/assetloader/index.d.ts",import:"./build/plugins/assetloader/index.mjs",require:"./build/plugins/assetloader/index.cjs"},"./axiscamera":{types:"./build/plugins/axiscamera/index.d.ts",import:"./build/plugins/axiscamera/index.mjs",require:"./build/plugins/axiscamera/index.cjs"},"./mediacreator":{types:"./build/plugins/mediacreator/index.d.ts",import:"./build/plugins/mediacreator/index.mjs",require:"./build/plugins/mediacreator/index.cjs"},"./orbitcontroller":{types:"./build/plugins/orbitcontroller/index.d.ts",import:"./build/plugins/orbitcontroller/index.mjs",require:"./build/plugins/orbitcontroller/index.cjs"},"./state":{types:"./build/plugins/state/index.d.ts",import:"./build/plugins/state/index.mjs",require:"./build/plugins/state/index.cjs"},"./systeminfo":{types:"./build/plugins/systeminfo/index.d.ts",import:"./build/plugins/systeminfo/index.mjs",require:"./build/plugins/systeminfo/index.cjs"},"./toolbox":{types:"./build/plugins/toolbox/index.d.ts",import:"./build/plugins/toolbox/index.mjs",require:"./build/plugins/toolbox/index.cjs"}},l=["build","LICENSE","package.json"],a=["dive","shopware","sw6","three","three.js","3d","typescript"],p="git@github.com:shopware/dive.git",u="ffrank <f.frank@shopware.com>",c="MIT",b=["> 1%, not dead, not ie 11, not op_mini all"],m={three:"^0.163.0","@tweenjs/tween.js":"^23.1.1","three-spritetext":"^1.8.2",lodash:"^4.17.21"},g={"@eslint/js":"^9.1.1","@testing-library/jest-dom":"^6.6.3","@types/jest":"^29.5.12","@types/lodash":"^4.17.12","@types/node":"^20.12.7","@types/three":"^0.163.0","@vitest/coverage-v8":"3.1.2",acorn:"^8.14.1","acorn-walk":"^8.3.4",eslint:"^9.1.1",glob:"^11.0.1",globals:"^15.0.0",jsdom:"^26.1.0","log-update":"^6.1.0","magic-string":"^0.30.17",prettier:"^3.3.3","prettier-plugin-multiline-arrays":"^3.0.6","rollup-plugin-copy":"^3.5.0","ts-jest":"^29.1.2","ts-morph":"^25.0.1","ts-node":"^10.9.2",tsc:"^2.0.4",tsx:"^4.19.4",typescript:"^5.8.2","typescript-eslint":"^7.7.1",vite:"^6.2.1","vite-plugin-dts":"^4.5.3","vite-plugin-wasm":"^3.4.1","vite-tsconfig-paths":"^5.1.4",vitest:"^3.1.2"},x={"validate-build-paths":"NODE_OPTIONS='--loader ts-node/esm' ts-node ci/build/validate-build-paths.ts",build:"vite build",dev:"vite build --watch",lint:"eslint","prettier:check":"prettier --check .","prettier:fix":"prettier --write .",unit:"vitest --run",coverage:"vitest --coverage --run",docs:"yarn docs:actions && yarn docs:modules","docs:actions":"tsx docs/generators/generate-actions-docs.ts","docs:modules":"tsx docs/generators/generate-modules-docs.ts",ci:"yarn && yarn lint && yarn prettier:check && yarn coverage && yarn build"},y={name:e,version:i,description:s,type:t,main:r,module:n,types:d,exports:o,files:l,keywords:a,repository:p,author:u,license:c,browserslist:b,dependencies:m,devDependencies:g,scripts:x};exports.author=u;exports.browserslist=b;exports.default=y;exports.dependencies=m;exports.description=s;exports.devDependencies=g;exports.exports=o;exports.files=l;exports.keywords=a;exports.license=c;exports.main=r;exports.module=n;exports.name=e;exports.repository=p;exports.scripts=x;exports.type=t;exports.types=d;exports.version=i;
@@ -0,0 +1,39 @@
1
+ const e = "@shopware-ag/dive", i = "2.0.1-beta.8", s = "Shopware Spatial Framework", t = "module", n = "build/dive.cjs", r = "build/dive.mjs", d = "build/dive.d.ts", o = { ".": { types: "./build/dive.d.ts", import: "./build/dive.mjs", require: "./build/dive.cjs" }, "./animation": { types: "./build/plugins/animation/index.d.ts", import: "./build/plugins/animation/index.mjs", require: "./build/plugins/animation/index.cjs" }, "./ar": { types: "./build/plugins/ar/index.d.ts", import: "./build/plugins/ar/index.mjs", require: "./build/plugins/ar/index.cjs" }, "./assetconverter": { types: "./build/plugins/assetconverter/index.d.ts", import: "./build/plugins/assetconverter/index.mjs", require: "./build/plugins/assetconverter/index.cjs" }, "./assetexporter": { types: "./build/plugins/assetexporter/index.d.ts", import: "./build/plugins/assetexporter/index.mjs", require: "./build/plugins/assetexporter/index.cjs" }, "./assetloader": { types: "./build/plugins/assetloader/index.d.ts", import: "./build/plugins/assetloader/index.mjs", require: "./build/plugins/assetloader/index.cjs" }, "./axiscamera": { types: "./build/plugins/axiscamera/index.d.ts", import: "./build/plugins/axiscamera/index.mjs", require: "./build/plugins/axiscamera/index.cjs" }, "./mediacreator": { types: "./build/plugins/mediacreator/index.d.ts", import: "./build/plugins/mediacreator/index.mjs", require: "./build/plugins/mediacreator/index.cjs" }, "./orbitcontroller": { types: "./build/plugins/orbitcontroller/index.d.ts", import: "./build/plugins/orbitcontroller/index.mjs", require: "./build/plugins/orbitcontroller/index.cjs" }, "./state": { types: "./build/plugins/state/index.d.ts", import: "./build/plugins/state/index.mjs", require: "./build/plugins/state/index.cjs" }, "./systeminfo": { types: "./build/plugins/systeminfo/index.d.ts", import: "./build/plugins/systeminfo/index.mjs", require: "./build/plugins/systeminfo/index.cjs" }, "./toolbox": { types: "./build/plugins/toolbox/index.d.ts", import: "./build/plugins/toolbox/index.mjs", require: "./build/plugins/toolbox/index.cjs" } }, l = ["build", "LICENSE", "package.json"], a = ["dive", "shopware", "sw6", "three", "three.js", "3d", "typescript"], u = "git@github.com:shopware/dive.git", p = "ffrank <f.frank@shopware.com>", c = "MIT", b = ["> 1%, not dead, not ie 11, not op_mini all"], m = { three: "^0.163.0", "@tweenjs/tween.js": "^23.1.1", "three-spritetext": "^1.8.2", lodash: "^4.17.21" }, g = { "@eslint/js": "^9.1.1", "@testing-library/jest-dom": "^6.6.3", "@types/jest": "^29.5.12", "@types/lodash": "^4.17.12", "@types/node": "^20.12.7", "@types/three": "^0.163.0", "@vitest/coverage-v8": "3.1.2", acorn: "^8.14.1", "acorn-walk": "^8.3.4", eslint: "^9.1.1", glob: "^11.0.1", globals: "^15.0.0", jsdom: "^26.1.0", "log-update": "^6.1.0", "magic-string": "^0.30.17", prettier: "^3.3.3", "prettier-plugin-multiline-arrays": "^3.0.6", "rollup-plugin-copy": "^3.5.0", "ts-jest": "^29.1.2", "ts-morph": "^25.0.1", "ts-node": "^10.9.2", tsc: "^2.0.4", tsx: "^4.19.4", typescript: "^5.8.2", "typescript-eslint": "^7.7.1", vite: "^6.2.1", "vite-plugin-dts": "^4.5.3", "vite-plugin-wasm": "^3.4.1", "vite-tsconfig-paths": "^5.1.4", vitest: "^3.1.2" }, x = { "validate-build-paths": "NODE_OPTIONS='--loader ts-node/esm' ts-node ci/build/validate-build-paths.ts", build: "vite build", dev: "vite build --watch", lint: "eslint", "prettier:check": "prettier --check .", "prettier:fix": "prettier --write .", unit: "vitest --run", coverage: "vitest --coverage --run", docs: "yarn docs:actions && yarn docs:modules", "docs:actions": "tsx docs/generators/generate-actions-docs.ts", "docs:modules": "tsx docs/generators/generate-modules-docs.ts", ci: "yarn && yarn lint && yarn prettier:check && yarn coverage && yarn build" }, y = {
2
+ name: e,
3
+ version: i,
4
+ description: s,
5
+ type: t,
6
+ main: n,
7
+ module: r,
8
+ types: d,
9
+ exports: o,
10
+ files: l,
11
+ keywords: a,
12
+ repository: u,
13
+ author: p,
14
+ license: c,
15
+ browserslist: b,
16
+ dependencies: m,
17
+ devDependencies: g,
18
+ scripts: x
19
+ };
20
+ export {
21
+ p as author,
22
+ b as browserslist,
23
+ y as default,
24
+ m as dependencies,
25
+ s as description,
26
+ g as devDependencies,
27
+ o as exports,
28
+ l as files,
29
+ a as keywords,
30
+ c as license,
31
+ n as main,
32
+ r as module,
33
+ e as name,
34
+ u as repository,
35
+ x as scripts,
36
+ t as type,
37
+ d as types,
38
+ i as version
39
+ };
package/build/dive.cjs CHANGED
@@ -1,30 +1 @@
1
- "use strict";var k=Object.defineProperty;var G=(n,i,e)=>i in n?k(n,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[i]=e;var o=(n,i,e)=>G(n,typeof i!="symbol"?i+"":i,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("./chunks/OrbitController-B8VkQV1e.cjs"),U=require("./chunks/AxisCamera-CUb3g8WX.cjs"),s=require("three"),u=require("./chunks/VisibilityLayerMask-BI7jPKdx.cjs"),c=require("./chunks/ModuleRegistry-CDIxOzgZ.cjs"),f=require("./chunks/PerspectiveCamera-BByyG5R4.cjs"),p=require("./chunks/FileTypes-DzVpDu_p.cjs"),I=require("./chunks/findInterface-C6mrvf_t.cjs"),M=require("./chunks/parse-error-Bd09D_1L.cjs"),L=require("./chunks/index-DAwIH9xh.cjs");class F extends s.Object3D{constructor(){super();o(this,"isDIVELight",!0);o(this,"isDIVEAmbientLight",!0);o(this,"_light");this.name="DIVEAmbientLight",this._light=new s.AmbientLight(16777215,1),this._light.layers.mask=u.PRODUCT_LAYER_MASK,this.add(this._light)}setColor(e){this._light.color=e}setIntensity(e){this._light.intensity=e}setEnabled(e){this._light.visible=e}}class z extends s.Object3D{constructor(){super();o(this,"isDIVELight",!0);o(this,"isDIVEPointLight",!0);o(this,"isMovable",!0);o(this,"isSelectable",!0);o(this,"gizmo",null);o(this,"light");o(this,"mesh");this.name="DIVEPointLight",this.light=new s.PointLight(16777215,1),this.light.layers.mask=u.PRODUCT_LAYER_MASK,this.light.castShadow=!0,this.light.shadow.mapSize.width=512,this.light.shadow.mapSize.height=512,this.add(this.light);const e=.1,t=new s.SphereGeometry(e,e*320,e*320),r=new s.MeshBasicMaterial({color:this.light.color,transparent:!0,opacity:.8,side:s.FrontSide});this.mesh=new s.Mesh(t,r),this.mesh.layers.mask=u.UI_LAYER_MASK,this.add(this.mesh)}setColor(e){this.light.color=e,this.mesh.material.color=e}setIntensity(e){this.light.intensity=e,this.mesh.material.opacity=e>.8?.8:e*.8}setEnabled(e){this.light.visible=e}onMove(){c.getModule("State").then(e=>{var t;(t=e.get(this.userData.id))==null||t.performAction("UPDATE_OBJECT",{id:this.userData.id,position:this.position})})}onSelect(){c.getModule("State").then(e=>{var t;(t=e.get(this.userData.id))==null||t.performAction("SELECT_OBJECT",{id:this.userData.id})})}onDeselect(){c.getModule("State").then(e=>{var t;(t=e.get(this.userData.id))==null||t.performAction("DESELECT_OBJECT",{id:this.userData.id})})}}class C extends s.Object3D{constructor(){super();o(this,"isDIVELight",!0);o(this,"isDIVESceneLight",!0);o(this,"_hemiLight");o(this,"_dirLight");this.name="DIVESceneLight",this._hemiLight=new s.HemisphereLight(16777215,16777215,2),this._hemiLight.layers.mask=u.PRODUCT_LAYER_MASK,this._hemiLight.position.set(0,50,0),this.add(this._hemiLight),this._dirLight=new s.DirectionalLight(16777215,3),this._dirLight.layers.mask=u.PRODUCT_LAYER_MASK,this._dirLight.position.set(1,1.75,1),this._dirLight.position.multiplyScalar(30),this._dirLight.castShadow=!0,this._dirLight.shadow.mapSize.width=2048,this._dirLight.shadow.mapSize.height=2048;const e=5;this._dirLight.shadow.camera.left=-5,this._dirLight.shadow.camera.right=e,this._dirLight.shadow.camera.top=e,this._dirLight.shadow.camera.bottom=-5,this._dirLight.shadow.camera.far=3500,this.add(this._dirLight)}setColor(e){this._hemiLight.color=e,this._dirLight.color=e}setIntensity(e){this._hemiLight.intensity=e*2,this._dirLight.intensity=e*3}setEnabled(e){this._hemiLight.visible=e,this._dirLight.visible=e}}const w=n=>n.parent?w(n.parent):n;class D extends s.Object3D{constructor(){super();o(this,"isSelectable",!0);o(this,"isMovable",!0);o(this,"isDIVENode",!0);o(this,"gizmo",null);o(this,"_positionWorldBuffer");o(this,"_boundingBox");this.layers.mask=u.PRODUCT_LAYER_MASK,this._positionWorldBuffer=new s.Vector3,this._boundingBox=new s.Box3}setPosition(e){if(!this.parent){this.position.set(e.x,e.y,e.z);return}const t=new s.Vector3(e.x,e.y,e.z);this.position.copy(this.parent.worldToLocal(t)),"isDIVEGroup"in this.parent&&this.parent.updateLineTo(this)}setRotation(e){this.rotation.set(e.x,e.y,e.z)}setScale(e){this.scale.set(e.x,e.y,e.z)}setVisibility(e){this.visible=e}setToWorldOrigin(){this.position.set(0,0,0),c.getModule("State").then(e=>{var t;(t=e.get(this.userData.id))==null||t.performAction("UPDATE_OBJECT",{id:this.userData.id,position:this.getWorldPosition(this._positionWorldBuffer),rotation:this.rotation,scale:this.scale})})}onMove(){c.getModule("State").then(e=>{var t;(t=e.get(this.userData.id))==null||t.performAction("UPDATE_OBJECT",{id:this.userData.id,position:this.getWorldPosition(this._positionWorldBuffer),rotation:this.rotation,scale:this.scale})})}onSelect(){c.getModule("State").then(e=>{var t;(t=e.get(this.userData.id))==null||t.performAction("SELECT_OBJECT",{id:this.userData.id})})}onDeselect(){c.getModule("State").then(e=>{var t;(t=e.get(this.userData.id))==null||t.performAction("DESELECT_OBJECT",{id:this.userData.id})})}}class V extends D{constructor(){super(...arguments);o(this,"isDIVEModel",!0);o(this,"_mesh",null);o(this,"_material",null);o(this,"_assetLoader",null)}async _getAssetLoader(){return this._assetLoader||(this._assetLoader=new(await c.getModule("AssetLoader"))),this._assetLoader}async setFromURL(e){const r=await(await this._getAssetLoader()).load(e);this.setFromGLTF(r),c.getModule("State").then(a=>{var h;(h=a.get(this.userData.id))==null||h.performAction("MODEL_LOADED",{id:this.userData.id})})}setFromGLTF(e){this.clear(),this._boundingBox.makeEmpty(),e.traverse(t=>{t.castShadow=!0,t.receiveShadow=!0,t.layers.mask=this.layers.mask,this._boundingBox.expandByObject(t),!this._mesh&&"isMesh"in t&&(this._mesh=t,this._material?this._mesh.material=this._material:this._material=t.material)}),this.add(e)}setMaterial(e){this._material||(this._material=new s.MeshStandardMaterial),e.vertexColors!==void 0&&(this._material.vertexColors=e.vertexColors),e.color!==void 0&&this._material.color.set(e.color),e.map!==void 0&&(this._material.map=e.map),e.normalMap!==void 0&&(this._material.normalMap=e.normalMap),e.roughness!==void 0&&(this._material.roughness=e.roughness),e.roughnessMap!==void 0&&(this._material.roughnessMap=e.roughnessMap,this._material.roughnessMap&&(this._material.roughness=1)),e.metalness!==void 0&&(this._material.metalness=e.metalness),e.metalnessMap!==void 0&&(this._material.metalnessMap=e.metalnessMap,this._material.metalnessMap&&(this._material.metalness=1)),this._mesh&&(this._mesh.material=this._material)}placeOnFloor(){var a,h,l,d;const e=this.getWorldPosition(this._positionWorldBuffer),t=e.clone();(h=(a=this._mesh)==null?void 0:a.geometry)==null||h.computeBoundingBox();const r=(d=(l=this._mesh)==null?void 0:l.geometry)==null?void 0:d.boundingBox;!r||!this._mesh||(e.y=e.y-this._mesh.localToWorld(r.min.clone()).y,e.y!==t.y&&c.getModule("State").then(g=>{var m;(m=g.get(this.userData.id))==null||m.performAction("UPDATE_OBJECT",{id:this.userData.id,position:e,rotation:this.rotation,scale:this.scale})}))}dropIt(){if(!this.parent){console.warn("DIVEModel: dropIt() called on a model that is not in the scene.",this);return}const e=this._boundingBox.min.y*this.scale.y,t=this.localToWorld(this._boundingBox.getCenter(new s.Vector3).multiply(this.scale));t.y=e+this.position.y;const r=new s.Raycaster(t,new s.Vector3(0,-1,0));r.layers.mask=u.PRODUCT_LAYER_MASK;const a=r.intersectObjects(w(this).root.children,!0);if(a.length>0){const h=a[0].object;h.geometry.computeBoundingBox();const l=h.geometry.boundingBox,d=h.localToWorld(l.max.clone()),g=this.position.clone(),m=this.position.clone().setY(d.y).sub(new s.Vector3(0,e,0));if(this.position.copy(m),this.position.y===g.y)return;this.onMove()}}}class W extends D{constructor(){super();o(this,"isDIVEPrimitive",!0);o(this,"_mesh");this._mesh=new s.Mesh,this._mesh.layers.mask=u.PRODUCT_LAYER_MASK,this._mesh.castShadow=!0,this._mesh.receiveShadow=!0,this._mesh.material=new s.MeshStandardMaterial,this.add(this._mesh)}setGeometry(e){const t=this.assembleGeometry(e);t&&(this._mesh.geometry=t,this._boundingBox.setFromObject(this._mesh))}setMaterial(e){const t=this._mesh.material;e.vertexColors!==void 0&&(t.vertexColors=e.vertexColors),e.color!==void 0&&(t.color=new s.Color(e.color)),e.map!==void 0&&(t.map=e.map),e.normalMap!==void 0&&(t.normalMap=e.normalMap),e.roughness!==void 0&&(t.roughness=e.roughness),e.roughnessMap!==void 0&&(t.roughnessMap=e.roughnessMap,t.roughnessMap&&(t.roughness=1)),e.metalness!==void 0&&(t.metalness=e.metalness),e.metalnessMap!==void 0&&(t.metalnessMap=e.metalnessMap,t.metalnessMap&&(t.metalness=0)),this._mesh&&(this._mesh.material=t)}placeOnFloor(){var a,h,l,d;const e=this.getWorldPosition(this._positionWorldBuffer),t=e.clone();(h=(a=this._mesh)==null?void 0:a.geometry)==null||h.computeBoundingBox();const r=(d=(l=this._mesh)==null?void 0:l.geometry)==null?void 0:d.boundingBox;!r||!this._mesh||(e.y=e.y-this._mesh.localToWorld(r.min.clone()).y,e.y!==t.y&&c.getModule("State").then(g=>{var m;(m=g.get(this.userData.id))==null||m.performAction("UPDATE_OBJECT",{id:this.userData.id,position:e,rotation:this.rotation,scale:this.scale})}))}dropIt(){if(!this.parent){console.warn("DIVEPrimitive: dropIt() called on a model that is not in the scene.",this);return}const e=this._boundingBox.min.y*this.scale.y,t=this.localToWorld(this._boundingBox.getCenter(new s.Vector3).multiply(this.scale));t.y=e+this.position.y;const r=new s.Raycaster(t,new s.Vector3(0,-1,0));r.layers.mask=u.PRODUCT_LAYER_MASK;const a=r.intersectObjects(w(this).root.children,!0);if(a.length>0){const h=a[0].object;h.geometry.computeBoundingBox();const l=h.geometry.boundingBox,d=h.localToWorld(l.max.clone()),g=this.position.clone(),m=this.position.clone().setY(d.y).sub(new s.Vector3(0,e,0));if(this.position.copy(m),this.position.y===g.y)return;this.onMove()}}assembleGeometry(e){switch(this._mesh.material.flatShading=!1,e.name.toLowerCase()){case"cylinder":return this.createCylinderGeometry(e);case"sphere":return this.createSphereGeometry(e);case"pyramid":return this._mesh.material.flatShading=!0,this.createPyramidGeometry(e);case"cube":case"box":return this.createBoxGeometry(e);case"cone":return this.createConeGeometry(e);case"wall":return this.createWallGeometry(e);case"plane":return this.createPlaneGeometry(e);default:return console.warn("DIVEPrimitive.assembleGeometry: Invalid geometry type:",e.name.toLowerCase()),null}}createCylinderGeometry(e){const t=new s.CylinderGeometry(e.width/2,e.width/2,e.height,64);return t.translate(0,e.height/2,0),t}createSphereGeometry(e){return new s.SphereGeometry(e.width/2,256,256)}createPyramidGeometry(e){const t=new Float32Array([-e.width/2,0,-e.depth/2,e.width/2,0,-e.depth/2,e.width/2,0,e.depth/2,-e.width/2,0,e.depth/2,0,e.height,0]),r=new Uint16Array([0,1,2,0,2,3,0,4,1,1,4,2,2,4,3,3,4,0]),a=new s.BufferGeometry;return a.setAttribute("position",new s.BufferAttribute(t,3)),a.setIndex(new s.BufferAttribute(r,1)),a.computeVertexNormals(),a.computeBoundingBox(),a.computeBoundingSphere(),a}createBoxGeometry(e){const t=new s.BoxGeometry(e.width,e.height,e.depth);return t.translate(0,e.height/2,0),t}createConeGeometry(e){const t=new s.ConeGeometry(e.width/2,e.height,256);return t.translate(0,e.height/2,0),t}createWallGeometry(e){const t=new s.BoxGeometry(e.width,e.height,e.depth||.05,16);return t.translate(0,e.height/2,0),t}createPlaneGeometry(e){const t=new s.BoxGeometry(e.width,e.height,e.depth);return t.translate(0,e.height/2,0),t}}class Y extends D{constructor(){super();o(this,"isDIVEGroup",!0);o(this,"_members");o(this,"_lines");this.name="DIVEGroup",this._members=[],this._lines=[]}get members(){return this._members}setPosition(e){super.setPosition(e),this._members.forEach(t=>{"isDIVENode"in t&&t.onMove()})}setLinesVisibility(e,t){if(!t){this._lines.forEach(a=>{a.visible=e});return}const r=this._members.indexOf(t);r!==-1&&(this._lines[r].visible=e)}attach(e){if(this._members.includes(e))return this;const t=this.createLine();return this.add(t),this._lines.push(t),super.attach(e),this._members.push(e),this._updateLineTo(t,e),this.setLinesVisibility(!0,e),this}remove(e){const t=this._members.indexOf(e);if(t===-1)return this;const r=this._lines[t];return super.remove(r),this._lines.splice(t,1),super.remove(e),this._members.splice(t,1),this}updateLineTo(e){const t=this._members.indexOf(e);t!==-1&&this._updateLineTo(this._lines[t],e)}createLine(){const e=new s.BufferGeometry,t=new s.LineDashedMaterial({color:6710886,dashSize:.05,gapSize:.025}),r=new s.Line(e,t);return r.visible=!1,r}_updateLineTo(e,t){const r=[new s.Vector3(0,0,0),t.position.clone()];e.geometry.setFromPoints(r),e.computeLineDistances()}}class q extends s.Mesh{constructor(){const e=new s.PlaneGeometry(1,1);e.scale(1e3,1e3,1),e.rotateX(-Math.PI/2);const t=new s.MeshStandardMaterial({color:new s.Color(16777215),side:s.FrontSide});super(e,t);o(this,"isDIVEFloor",!0);this.name="Floor",this.layers.mask=u.PRODUCT_LAYER_MASK,this.receiveShadow=!0}setVisibility(e){this.visible=e}setColor(e){this.material.color=new s.Color(e)}}class K extends s.Object3D{constructor(){super();o(this,"isDIVERoot",!0);o(this,"_floor");o(this,"_assetLoader",null);this.name="Root",this._floor=new q,this.add(this._floor)}get floor(){return this._floor}async _getAssetLoader(){return this._assetLoader||(this._assetLoader=new(await c.getModule("AssetLoader"))),this._assetLoader}computeSceneBB(){const e=new s.Box3;return this.children.forEach(t=>{"isDIVEFloor"in t||t.traverse(r=>{"isObject3D"in r&&e.expandByObject(r)})}),e}getSceneObject(e){let t;return this.traverse(r=>{t||r.userData.id===e.id&&(t=r)}),t}addSceneObject(e){let t=this.getSceneObject(e);if(t)return console.warn(`DIVERoot.addSceneObject: Scene object with id ${e.id} already exists`),t;switch(e.entityType){case"pov":break;case"light":{switch(e.type){case"scene":{t=new C;break}case"ambient":{t=new F;break}case"point":{t=new z;break}default:throw new Error(`DIVERoot.addSceneObject: Unknown light type: ${e.type}`)}t.name=e.name,t.userData.id=e.id,this.add(t),this._updateLight(t,e);break}case"model":{t=new V,t.name=e.name,t.userData.id=e.id,t.userData.uri=e.uri,this.add(t),this._updateModel(t,e);break}case"primitive":{t=new W,t.name=e.name,t.userData.id=e.id,this.add(t),this._updatePrimitive(t,e);break}case"group":{t=new Y,t.name=e.name,t.userData.id=e.id,this.add(t),this._updateGroup(t,e);break}default:throw new Error(`DIVERoot.addSceneObject: Unknown entity type: ${e.entityType}`)}return t}updateSceneObject(e){const t=this.getSceneObject(e);if(!t){console.warn(`DIVERoot.updateSceneObject: Scene object with id ${e.id} does not exist`);return}switch(e.entityType){case"pov":break;case"light":{this._updateLight(t,e);break}case"model":{this._updateModel(t,e);break}case"primitive":{this._updatePrimitive(t,e);break}case"group":{this._updateGroup(t,e);break}default:throw new Error(`DIVERoot.updateSceneObject: Unknown entity type: ${e.entityType}`)}}deleteSceneObject(e){const t=this.getSceneObject(e);if(!t){console.warn(`DIVERoot.deleteSceneObject: Object with id ${e.id} not found`);return}switch(e.entityType){case"pov":break;case"light":{this._deleteLight(t);break}case"model":{this._deleteModel(t);break}case"primitive":{this._deletePrimitive(t);break}case"group":{this._deleteGroup(t);break}default:throw new Error(`DIVERoot.deleteSceneObject: Unknown entity type: ${e.entityType}`)}}_updateLight(e,t){t.name!==void 0&&t.name!==null&&(e.name=t.name),t.position!==void 0&&t.position!==null&&e.position.set(t.position.x,t.position.y,t.position.z),t.intensity!==void 0&&t.intensity!==null&&e.setIntensity(t.intensity),t.enabled!==void 0&&t.enabled!==null&&e.setEnabled(t.enabled),t.color!==void 0&&t.color!==null&&e.setColor(new s.Color(t.color)),t.visible!==void 0&&t.visible!==null&&(e.visible=t.visible),t.parentId!==void 0&&this._setParent({...t,parentId:t.parentId})}_updateModel(e,t){t.uri!==void 0&&e.setFromURL(t.uri),t.name!==void 0&&(e.name=t.name),t.position!==void 0&&e.setPosition(t.position),t.rotation!==void 0&&e.setRotation(t.rotation),t.scale!==void 0&&e.setScale(t.scale),t.visible!==void 0&&e.setVisibility(t.visible),t.material!==void 0&&e.setMaterial(t.material),t.parentId!==void 0&&this._setParent({...t,parentId:t.parentId})}_updatePrimitive(e,t){t.name!==void 0&&(e.name=t.name),t.geometry!==void 0&&e.setGeometry(t.geometry),t.position!==void 0&&e.setPosition(t.position),t.rotation!==void 0&&e.setRotation(t.rotation),t.scale!==void 0&&e.setScale(t.scale),t.visible!==void 0&&e.setVisibility(t.visible),t.material!==void 0&&e.setMaterial(t.material),t.parentId!==void 0&&this._setParent({...t,parentId:t.parentId})}_updateGroup(e,t){t.name!==void 0&&(e.name=t.name),t.position!==void 0&&e.setPosition(t.position),t.rotation!==void 0&&e.setRotation(t.rotation),t.scale!==void 0&&e.setScale(t.scale),t.visible!==void 0&&e.setVisibility(t.visible),t.bbVisible!==void 0&&e.setLinesVisibility(t.bbVisible),t.parentId!==void 0&&this._setParent({...t,parentId:t.parentId})}_deleteLight(e){this._detachTransformControls(e),e.parent.remove(e)}_deleteModel(e){this._detachTransformControls(e),e.parent.remove(e)}_deletePrimitive(e){this._detachTransformControls(e),e.parent.remove(e)}_deleteGroup(e){this._detachTransformControls(e);for(let t=e.members.length-1;t>=0;t--)this.attach(e.members[t]);e.parent.remove(e)}_setParent(e){const t=this.getSceneObject(e);if(e.parentId!==null){const r=this.getSceneObject({id:e.parentId,entityType:e.entityType});if(!r)return;r.attach(t)}else this.attach(t)}_detachTransformControls(e){this._findScene(e).children.find(t=>{"isTransformControls"in t&&t.detach()})}_findScene(e){return e.parent!==null?this._findScene(e.parent):e}}const N="#888888",J="#dddddd";class $ extends s.Object3D{constructor(){super(),this.name="Grid";const i=new s.GridHelper(100,100,N,J);i.material.depthTest=!1,i.layers.mask=u.HELPER_LAYER_MASK,this.add(i)}setVisibility(i){this.visible=i}}class P extends s.Scene{constructor(){super();o(this,"_root");o(this,"_grid");this.background=new s.Color(16777215),this._root=new K,this.add(this._root),this._grid=new $,this.add(this._grid)}get root(){return this._root}get grid(){return this._grid}setBackground(e){this.background=new s.Color(e)}computeSceneBB(){return this.root.computeSceneBB()}}const b={canvas:void 0,antialias:!0,alpha:!0,powerPreference:"high-performance",precision:"highp",stencil:!1,depth:!0,logarithmicDepthBuffer:!1,shadows:!0,shadowQuality:"high"};class T{constructor(i,e,t){o(this,"_webglrenderer");o(this,"_settings");this._scene=i,this._camera=e,this._settings={...b,...t??{}},this._webglrenderer=new s.WebGLRenderer(this._settings),this._webglrenderer.shadowMap.enabled=this._settings.shadows,this._webglrenderer.shadowMap.type=this._settings.shadowQuality==="high"?s.PCFSoftShadowMap:this._settings.shadowQuality==="medium"?s.PCFShadowMap:s.BasicShadowMap}get webglrenderer(){return this._webglrenderer}setCanvas(i){this._webglrenderer.dispose(),this._settings.canvas=i,this._webglrenderer=new s.WebGLRenderer(this._settings)}render(){this._webglrenderer.render(this._scene,this._camera)}onResize(i,e){this._webglrenderer.setSize(i,e,!1)}dispose(){this._webglrenderer.dispose()}}class x{constructor(){o(this,"_renderer",null);o(this,"_lastTime",0);o(this,"_isRunning",!1);o(this,"_tickers",[])}start(){this._isRunning||(this._isRunning=!0,this._lastTime=performance.now(),requestAnimationFrame(this._tick.bind(this)))}stop(){this._isRunning=!1}setRenderer(i){this._renderer=i}addTicker(i){this._tickers.find(e=>e.uuid===i.uuid)||this._tickers.push(i)}removeTicker(i){const e=this._tickers.findIndex(t=>t.uuid===i.uuid);e!==-1&&this._tickers.splice(e,1)}dispose(){this.stop(),this._tickers.forEach(i=>{var e;return(e=i.dispose)==null?void 0:e.call(i)}),this._tickers=[],this._isRunning=!1,this._lastTime=0}_tick(i){var t;if(!this._isRunning)return;const e=(i-this._lastTime)/1e3;this._lastTime=i,this._tickers.forEach(r=>r.tick(e)),(t=this._renderer)==null||t.render(),requestAnimationFrame(this._tick.bind(this))}}class R{constructor(i,e){o(this,"_resizeObserver");o(this,"_width",0);o(this,"_height",0);this._resizeObserver=new ResizeObserver(t=>{for(const r of t){const{width:a,height:h}=r.contentRect;a===this._width&&h===this._height||(i.onResize(a,h),e.onResize(a,h),this._width=a,this._height=h)}}),this._observeCanvas(i.webglrenderer.domElement)}setCanvas(i){this._resizeObserver.disconnect(),this._observeCanvas(i)}dispose(){this._resizeObserver.disconnect()}_observeCanvas(i){if(i.parentElement)this._resizeObserver.observe(i.parentElement);else{const e=setInterval(()=>{i.parentElement&&(this._resizeObserver.observe(i.parentElement),clearInterval(e))},16)}}}const v={autoStart:!0,displayAxes:!1,...f.DIVEPerspectiveCameraDefaultSettings,...b};class B{constructor(i){o(this,"_renderer");o(this,"_scene");o(this,"_camera");o(this,"_resizeManager");o(this,"_clock");o(this,"_settings");this._settings={...v,...i??{}},this._scene=new P,this._camera=new f.DIVEPerspectiveCamera(this._settings),this._renderer=new T(this._scene,this._camera,this._settings),this._resizeManager=new R(this._renderer,this._camera),this._clock=new x,this._clock.setRenderer(this._renderer),this._settings.autoStart&&this.start()}get scene(){return this._scene}get camera(){return this._camera}get renderer(){return this._renderer}setCanvas(i){this._renderer.setCanvas(i),this._resizeManager.setCanvas(i)}get clock(){return this._clock}start(){this._clock.start()}stop(){this._clock.stop()}dispose(){this._clock.dispose(),this._resizeManager.dispose(),this._renderer.dispose()}}function _(n,i){const e=(n+"e").split("e");return+(e[0]+"e"+(+e[1]+(i||0)))}function Q(n,i=0){const e=_(n,+i);return _(Math.ceil(e),-i)}function H(n,i=0){const e=_(n,+i);return _(Math.floor(e),-i)}function A(n,i=0){if(n<0)return-A(-n,i);const e=_(n,+i);return _(Math.round(e),-i)}function X(n,i,e){return Math.atan2(n.clone().cross(i).dot(e),i.clone().dot(n))}function Z(n,i=0){const e=_(n,+i);return _(Math.round(e),-i).toFixed(i)}function j(n,i=0){const e=_(n,+i);return _(Math.trunc(e),-i)}function ee(n){return(s.MathUtils.radToDeg(n)+360)%360}function te(n){return s.MathUtils.degToRad(n)}const ie={ceilExp:Q,floorExp:H,roundExp:A,toFixedExp:Z,truncateExp:j,signedAngleTo:X,radToDeg:ee,degToRad:te};window.DIVE={instances:[],get instance(){return window.DIVE.instances[0]}};const O={...v,...E.OrbitControllerDefaultSettings};class S{constructor(i){o(this,"_instanceId",s.MathUtils.generateUUID());o(this,"_settings");o(this,"_engine");o(this,"orbitController");o(this,"axisCamera");this._settings={...O,...i??{}},this._engine=new B(i),this.orbitController=new E.OrbitController(this._engine.camera,this._engine.renderer.webglrenderer.domElement,this._settings),this._engine.clock.addTicker(this.orbitController),this._settings.displayAxes?(this.axisCamera=new U.DIVEAxisCamera(this._engine.renderer,this._engine.scene,this._engine.camera),this._engine.clock.addTicker(this.axisCamera)):this.axisCamera=null,Promise.resolve().then(()=>require("./chunks/package-CHgGmFCa.cjs")).then(e=>{console.log(`DIVE ${e.default.version} initialized successfully!`),console.log(`
2
- @@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@
3
- @@@@+-:::::::---------------------==------------------------------=#@@@@
4
- @@%=::::.......::---------------------------------------------------------+@@
5
- @@+:::...........::-----------------------------------------------------------#@@
6
- @@=:::.........::::::-------------------------------------------------------------%@
7
- @%:::.......:::::::-----------------------------------------------------------------#@
8
- @*:::.....:::::-----------------------------------------------------------------------*@
9
- @%::::::.::::---------------------------------------------------------------------------@@
10
- @@-:::::::::-----------------------------------------------------------------------------=@
11
- @%::::::::--------------------------------------------------------------------------------%@
12
- @+::::::::--------------------------------=@@@@@%-----------------------------------------%@
13
- @=:::::::--------------------------------*@@ @@+---------------------------------------#@
14
- @+:::::::-------------------------------*@ @*--------------------------------------%@
15
- @#::::::::-----------------------------=@@ @@=-------------------------------------%@
16
- @@-::::::::----------------------------@@ @@------------------------------------=@
17
- @%:::::::::--------------------------*@ @*-----------------------------------@@
18
- @*:::::::::-------------------------@@ @@----------------------------------%@
19
- @#::::::::::----------------------%@ @%--------------------------------%@
20
- @#:::::::::::-------------------=@@ @@=------------------------------%@
21
- @@-::::::::::::----------------%@ @%----------------------------=@@
22
- @@#::::::::::::::------------*@ @*--------------------------#@@
23
- @@+::::::::::::::::--------@@ @@------------------------+@@
24
- @@*:::::::::::::::::----@@ @@---------------------+@@
25
- @@@-:::::::::::::::--#@ @#-----------------=%@@
26
- @@%-::::::::::::-%@ @%-------------=%@@
27
- @@@@+:::::::#@@ @@*-------*@@@@
28
- @@@@@@@ @@@@@@
29
-
30
- `)}),window.DIVE.instances.push(this)}static async QuickView(i,e){const t=new S(e);t.engine.scene.background=new s.Color(16777215),t.engine.scene.grid.setVisibility(!1),t.engine.scene.root.floor.setVisibility(!0),t.engine.camera.position.set(0,2,2),t.orbitController.target.set(0,.5,0);const r=new C;r.name="SceneLight",r.userData.id=s.MathUtils.generateUUID(),r.setEnabled(!0),r.visible=!0,r.setIntensity((e==null?void 0:e.lightIntensity)??1),r.setColor(new s.Color(16777215)),t.engine.scene.root.add(r);const a=new V;a.name="object",a.userData.id=s.MathUtils.generateUUID(),a.userData.uri=i,a.visible=!0,t.engine.scene.root.add(a),await a.setFromURL(i);const h=t.engine.scene.computeSceneBB(),l=t.orbitController.computeEncompassingView(h);return t.engine.camera.position.copy(l.position),t.orbitController.target.copy(l.target),t}get engine(){return this._engine}get canvas(){return this._engine.renderer.webglrenderer.domElement}setCanvas(i){this._engine.setCanvas(i),this._engine.clock.removeTicker(this.orbitController),this.orbitController.dispose(),this.orbitController=new E.OrbitController(this._engine.camera,i,this._settings),this._engine.clock.addTicker(this.orbitController)}async dispose(){return new Promise(i=>{this._engine.clock.removeTicker(this.orbitController),this.orbitController.dispose(),this.axisCamera&&(this._engine.clock.removeTicker(this.axisCamera),this.axisCamera.dispose()),window.DIVE.instances=window.DIVE.instances.filter(e=>e._instanceId!==this._instanceId),i()})}}class se{constructor(){o(this,"isMovable",!0)}}class re{constructor(){o(this,"isSelectable",!0)}}const y=(n,i)=>{if(Object.keys(n).length===0&&Object.keys(i).length===0)return{};if(typeof n!="object"||typeof i!="object")return i;let e={};return Object.keys(i).forEach(t=>{if(!Object.keys(n).includes(t)){e={...e,[t]:i[t]};return}if(Array.isArray(i[t])){if(!Array.isArray(n[t])){e={...e,[t]:i[t]};return}const r=n[t],a=i[t];if(r.length===0&&a.length===0){e={...e};return}if(r.length!==a.length){e={...e,[t]:i[t]};return}const h=[];if(a.forEach((l,d)=>{const g=y(r[d],a[d]);Object.keys(g).length&&h.push(a[d])}),Object.keys(h).length){e={...e,[t]:h};return}return}if(typeof i[t]=="object"){if(typeof n[t]!="object"){e={...e,[t]:i[t]};return}const r=y(n[t],i[t]);if(Object.keys(r).length){e={...e,[t]:r};return}}n[t]!==i[t]&&(e={...e,[t]:i[t]})}),e};function ne(n,i){return i.forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(r=>{if(r==="constructor")return;const a=Object.getOwnPropertyDescriptor(e.prototype,r);Object.defineProperty(n.prototype,r,a)});const t=new e;Object.getOwnPropertyNames(t).forEach(r=>{const a=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n.prototype,r,a)})}),n}exports.getModule=c.getModule;exports.DIVEPerspectiveCamera=f.DIVEPerspectiveCamera;exports.DIVEPerspectiveCameraDefaultSettings=f.DIVEPerspectiveCameraDefaultSettings;exports.FILE_TYPES=p.FILE_TYPES;exports.NetworkError=p.NetworkError;exports.SUPPORTED_FILE_TYPES=p.SUPPORTED_FILE_TYPES;exports.getFileTypeFromUri=p.getFileTypeFromUri;exports.isFileTypeSupported=p.isFileTypeSupported;exports.findInterface=I.findInterface;exports.implementsInterface=I.implementsInterface;exports.FileTypeError=M.FileTypeError;exports.ParseError=M.ParseError;exports.ESystem=L.ESystem;exports.EWebXRUnsupportedReason=L.EWebXRUnsupportedReason;exports.DIVE=S;exports.DIVEClock=x;exports.DIVEDefaultSettings=O;exports.DIVEEngine=B;exports.DIVEMath=ie;exports.DIVEMovable=se;exports.DIVERenderPipeline=T;exports.DIVERenderPipelineDefaultSettings=b;exports.DIVEResizeManager=R;exports.DIVEScene=P;exports.DIVESelectable=re;exports.EngineDefaultSettings=v;exports.applyMixins=ne;exports.findSceneRecursive=w;exports.getObjectDelta=y;
1
+ "use strict";var w=Object.defineProperty;var x=(i,n,e)=>n in i?w(i,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[n]=e;var s=(i,n,e)=>x(i,typeof n!="symbol"?n+"":n,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./chunks/FileTypes-B2JRjVgw.cjs"),d=require("./chunks/PerspectiveCamera-CONx93im.cjs"),r=require("three"),M=require("./chunks/network-error-D_pq8VU6.cjs"),I=require("./chunks/findInterface-C6mrvf_t.cjs"),V=require("./chunks/parse-error-Bd09D_1L.cjs"),b=require("./chunks/PovSchema-Co9FznEz.cjs");class f extends r.Object3D{constructor(e,t,o,h,l){super();s(this,"isHoverable",!0);s(this,"isDraggable",!0);s(this,"parent",null);s(this,"axis");s(this,"_color",new r.Color(16711935));s(this,"_colorHover");s(this,"_hovered");s(this,"_highlight");s(this,"_lineMaterial");s(this,"_colliderMesh");this.name="DIVERadialHandle",this.axis=e,this._color.set(l),this._colorHover=this._color.clone().multiplyScalar(2),this._hovered=!1,this._highlight=!1;const _=new r.TorusGeometry(t,.01,13,48,o);this._lineMaterial=new r.MeshBasicMaterial({color:l,depthTest:!1,depthWrite:!1});const c=new r.Mesh(_,this._lineMaterial);c.layers.mask=d.UI_LAYER_MASK,c.renderOrder=1/0,this.add(c);const p=new r.TorusGeometry(t,.1,3,48,o),g=new r.MeshBasicMaterial({color:16711935,transparent:!0,opacity:.15,depthTest:!1,depthWrite:!1});this._colliderMesh=new r.Mesh(p,g),this._colliderMesh.visible=!1,this._colliderMesh.layers.mask=d.UI_LAYER_MASK,this._colliderMesh.renderOrder=1/0,this.add(this._colliderMesh),this.lookAt(h)}set debug(e){this._colliderMesh.visible=e}get highlight(){return this._highlight}set highlight(e){this._highlight=e,this._lineMaterial.color=this._highlight||this._hovered?this._colorHover:this._color}get forwardVector(){return new r.Vector3(0,0,1).applyQuaternion(this.quaternion).normalize()}get rightVector(){return new r.Vector3(1,0,0).applyQuaternion(this.quaternion).normalize()}get upVector(){return new r.Vector3(0,1,0).applyQuaternion(this.quaternion).normalize()}reset(){this._lineMaterial.color=this._color}onPointerEnter(){this._hovered=!0,this.parent&&this.parent.onHandleHover(this,!0)}onPointerLeave(){this._hovered=!1,this.parent&&this.parent.onHandleHover(this,!1)}onDragStart(){this.parent&&this.parent.onHandleDragStart(this)}onDrag(e){this.parent&&this.parent.onHandleDrag(this,e)}onDragEnd(){this.parent&&this.parent.onHandleDragEnd(this)}}function u(i,n){const e=(i+"e").split("e");return+(e[0]+"e"+(+e[1]+(n||0)))}function P(i,n=0){const e=u(i,+n);return u(Math.ceil(e),-n)}function S(i,n=0){const e=u(i,+n);return u(Math.floor(e),-n)}function y(i,n=0){if(i<0)return-y(-i,n);const e=u(i,+n);return u(Math.round(e),-n)}function R(i,n,e){return Math.atan2(i.clone().cross(n).dot(e),n.clone().dot(i))}function v(i,n=0){const e=u(i,+n);return u(Math.round(e),-n).toFixed(n)}function H(i,n=0){const e=u(i,+n);return u(Math.trunc(e),-n)}function z(i){return(r.MathUtils.radToDeg(i)+360)%360}function G(i){return r.MathUtils.degToRad(i)}const A={ceilExp:P,floorExp:S,roundExp:y,toFixedExp:v,truncateExp:H,signedAngleTo:R,radToDeg:z,degToRad:G};class L extends r.Object3D{constructor(e){super();s(this,"children");s(this,"_controller");s(this,"_startRot");this.name="DIVERotateGizmo",this.children=[],this._startRot=null,this._controller=e,this.add(new f("x",1,Math.PI/2,new r.Vector3(1,0,0),a.AxesColorRed)),this.add(new f("y",1,-Math.PI/2,new r.Vector3(0,1,0),a.AxesColorGreen)),this.add(new f("z",1,Math.PI/2,new r.Vector3(0,0,1),a.AxesColorBlue))}set debug(e){this.children.forEach(t=>{t.debug=e})}reset(){this.children.forEach(e=>{e.reset()})}handleHighlight(e,t,o){this.children.forEach(h=>{o?h.highlight=h.axis===e&&o:h.highlight=h.axis===e&&t})}onHandleHover(e,t){this._startRot||this.parent&&this.parent.parent&&(this.parent.parent.onHover("rotate",e.axis,t),this.handleHighlight(e.axis,t,!1))}onHandleDragStart(e){if(!this.parent||!this.parent.parent)return;const t=this.parent.parent.object;t&&(this._startRot=t.rotation.clone(),this.handleHighlight(e.axis,!0,!0))}onHandleDrag(e,t){if(!this._startRot||!this.parent||!this.parent.parent||!("onChange"in this.parent.parent))return;const o=t.dragCurrent.clone().sub(this.parent.parent.position).normalize(),h=t.dragStart.clone().sub(this.parent.parent.position).normalize(),l=A.signedAngleTo(h,o,e.forwardVector),_=new r.Euler(this._startRot.x+e.forwardVector.x*l,this._startRot.y+e.forwardVector.y*l,this._startRot.z+e.forwardVector.z*l);this.parent.parent.onChange(void 0,_)}onHandleDragEnd(e){this._startRot=null,this.handleHighlight(e.axis,!1,!1)}}class E extends r.Object3D{constructor(e,t,o,h){super();s(this,"isHoverable",!0);s(this,"isDraggable",!0);s(this,"parent",null);s(this,"axis");s(this,"_color",new r.Color(16711935));s(this,"_colorHover");s(this,"_hovered");s(this,"_highlight");s(this,"_lineMaterial");s(this,"_colliderMesh");this.name="DIVEAxisHandle",this.axis=e,this._color.set(h),this._colorHover=this._color.clone().multiplyScalar(2),this._highlight=!1,this._hovered=!1;const l=new r.CylinderGeometry(.01,.01,t,13);this._lineMaterial=new r.MeshBasicMaterial({color:h,depthTest:!1,depthWrite:!1});const _=new r.Mesh(l,this._lineMaterial);_.layers.mask=d.UI_LAYER_MASK,_.renderOrder=1/0,_.rotateX(Math.PI/2),_.translateY(t/2),this.add(_);const c=new r.CylinderGeometry(.1,.1,t,3),p=new r.MeshBasicMaterial({color:16711935,transparent:!0,opacity:.15,depthTest:!1,depthWrite:!1});this._colliderMesh=new r.Mesh(c,p),this._colliderMesh.visible=!1,this._colliderMesh.layers.mask=d.UI_LAYER_MASK,this._colliderMesh.renderOrder=1/0,this._colliderMesh.rotateX(Math.PI/2),this._colliderMesh.translateY(t/2),this.add(this._colliderMesh),this.rotateX(o.y*-Math.PI/2),this.rotateY(o.x*Math.PI/2)}set debug(e){this._colliderMesh.visible=e}get highlight(){return this._highlight}set highlight(e){this._highlight=e,this._lineMaterial.color=this._highlight||this._hovered?this._colorHover:this._color}get forwardVector(){return new r.Vector3(0,0,1).applyQuaternion(this.quaternion).normalize()}get rightVector(){return new r.Vector3(1,0,0).applyQuaternion(this.quaternion).normalize()}get upVector(){return new r.Vector3(0,1,0).applyQuaternion(this.quaternion).normalize()}reset(){this._lineMaterial.color=this._color}onPointerEnter(){this._hovered=!0,this.parent&&this.parent.onHandleHover(this,!0)}onPointerLeave(){this._hovered=!1,this.parent&&this.parent.onHandleHover(this,!1)}onDragStart(){this.parent&&this.parent.onHandleDragStart(this)}onDrag(e){this.parent&&this.parent.onHandleDrag(this,e)}onDragEnd(){this.parent&&this.parent.onHandleDragEnd(this)}}class O extends r.Object3D{constructor(e){super();s(this,"_controller");s(this,"children");s(this,"_startPos");this.name="DIVETranslateGizmo",this.children=[],this._startPos=null,this._controller=e,this.add(new E("x",1,new r.Vector3(1,0,0),a.AxesColorRed)),this.add(new E("y",1,new r.Vector3(0,1,0),a.AxesColorGreen)),this.add(new E("z",1,new r.Vector3(0,0,1),a.AxesColorBlue))}set debug(e){this.children.forEach(t=>{t.debug=e})}reset(){this.children.forEach(e=>{e.reset()})}handleHighlight(e,t,o){this.children.forEach(h=>{o?h.highlight=h.axis===e&&o:h.highlight=h.axis===e&&t})}onHandleHover(e,t){this._startPos||this.parent&&this.parent.parent&&(this.parent.parent.onHover("translate",e.axis,t),this.handleHighlight(e.axis,t,!1))}onHandleDragStart(e){if(!this.parent||!this.parent.parent)return;const t=this.parent.parent.object;t&&(this._startPos=t.position.clone(),this.handleHighlight(e.axis,!0,!0))}onHandleDrag(e,t){if(!this._startPos||!this.parent||!this.parent.parent||!("onChange"in this.parent.parent))return;const o=t.dragDelta.clone().projectOnVector(e.forwardVector);this.parent.parent.onChange(this._startPos.clone().add(o))}onHandleDragEnd(e){this._startPos=null,this.handleHighlight(e.axis,!1,!1)}}class m extends r.Object3D{constructor(e,t,o,h,l=.05){super();s(this,"isHoverable",!0);s(this,"isDraggable",!0);s(this,"parent",null);s(this,"axis");s(this,"_color",new r.Color(16711935));s(this,"_colorHover");s(this,"_hovered");s(this,"_highlight");s(this,"_lineMaterial");s(this,"_colliderMesh");s(this,"_box");s(this,"_boxSize");this.name="DIVEScaleHandle",this.axis=e,this._color.set(h),this._colorHover=this._color.clone().multiplyScalar(2),this._hovered=!1,this._highlight=!1,this._boxSize=l;const _=new r.CylinderGeometry(.01,.01,t-l/2,13);this._lineMaterial=new r.MeshBasicMaterial({color:h,depthTest:!1,depthWrite:!1});const c=new r.Mesh(_,this._lineMaterial);c.layers.mask=d.UI_LAYER_MASK,c.renderOrder=1/0,c.rotateX(Math.PI/2),c.translateY(t/2-l/4),this.add(c),this._box=new r.Mesh(new r.BoxGeometry(l,l,l),this._lineMaterial),this._box.layers.mask=d.UI_LAYER_MASK,this._box.renderOrder=1/0,this._box.rotateX(Math.PI/2),this._box.translateY(t-l/2),this._box.rotateZ(o.x*Math.PI/2),this._box.rotateX(o.z*Math.PI/2),this.add(this._box);const p=new r.CylinderGeometry(.1,.1,t+l/2,3),g=new r.MeshBasicMaterial({color:16711935,transparent:!0,opacity:.15,depthTest:!1,depthWrite:!1});this._colliderMesh=new r.Mesh(p,g),this._colliderMesh.visible=!1,this._colliderMesh.layers.mask=d.UI_LAYER_MASK,this._colliderMesh.renderOrder=1/0,this._colliderMesh.rotateX(Math.PI/2),this._colliderMesh.translateY(t/2),this.add(this._colliderMesh),this.rotateX(o.y*-Math.PI/2),this.rotateY(o.x*Math.PI/2)}set debug(e){this._colliderMesh.visible=e}get highlight(){return this._highlight}set highlight(e){this._highlight=e,this._lineMaterial.color=this._highlight||this._hovered?this._colorHover:this._color}get forwardVector(){return new r.Vector3(0,0,1).applyQuaternion(this.quaternion).normalize()}get rightVector(){return new r.Vector3(1,0,0).applyQuaternion(this.quaternion).normalize()}get upVector(){return new r.Vector3(0,1,0).applyQuaternion(this.quaternion).normalize()}reset(){this._lineMaterial.color=this._color}update(e){this._box.scale.copy(new r.Vector3(1,1,1).sub(this.forwardVector).add(e.clone().multiply(this.forwardVector)))}onPointerEnter(){this._hovered=!0,this.parent&&this.parent.onHoverAxis(this,!0)}onPointerLeave(){this._hovered=!1,this.parent&&this.parent.onHoverAxis(this,!1)}onDragStart(){this.parent&&this.parent.onAxisDragStart(this)}onDrag(e){this.parent&&this.parent.onAxisDrag(this,e)}onDragEnd(){this.parent&&this.parent.onAxisDragEnd(this)}}class j extends r.Object3D{constructor(e){super();s(this,"isHoverable",!0);s(this,"children");s(this,"_controller");s(this,"_startScale");this.name="DIVEScaleGizmo",this.children=[],this._startScale=null,this._controller=e,this.add(new m("x",1,new r.Vector3(1,0,0),a.AxesColorRed)),this.add(new m("y",1,new r.Vector3(0,1,0),a.AxesColorGreen)),this.add(new m("z",1,new r.Vector3(0,0,1),a.AxesColorBlue))}set debug(e){this.children.forEach(t=>{t.debug=e})}reset(){this.children.forEach(e=>{e.reset()})}update(e){this.children.forEach(t=>{t.update(e)})}handleHighlight(e,t,o){this.children.forEach(h=>{o?h.highlight=h.axis===e&&o:h.highlight=h.axis===e&&t})}onHoverAxis(e,t){this._startScale||this.parent&&this.parent.parent&&(this.parent.parent.onHover("translate",e.axis,t),this.handleHighlight(e.axis,t,!1))}onAxisDragStart(e){if(!this.parent||!this.parent.parent)return;const t=this.parent.parent.object;t&&(this._startScale=t.scale.clone(),this.handleHighlight(e.axis,!0,!0))}onAxisDrag(e,t){if(!this._startScale||!this.parent||!this.parent.parent||!("onChange"in this.parent.parent))return;const o=t.dragDelta.clone().projectOnVector(e.forwardVector);this.parent.parent.onChange(void 0,void 0,this._startScale.clone().add(o))}onAxisDragEnd(e){this._startScale=null,this.handleHighlight(e.axis,!1,!1)}}class C extends r.Object3D{constructor(){super();s(this,"_meshX");s(this,"_meshY");s(this,"_meshZ");this.name="DIVEGizmoPlane";const e=new r.MeshBasicMaterial({transparent:!0,opacity:.15,depthTest:!1,depthWrite:!1,side:2}),t=new r.PlaneGeometry(100,100,2,2),o=e.clone();o.color.set(16711680),this._meshX=new r.Mesh(t,o),this._meshX.layers.mask=d.UI_LAYER_MASK,this._meshX.rotateY(Math.PI/2);const h=new r.PlaneGeometry(100,100,2,2),l=e.clone();l.color.set(65280),this._meshY=new r.Mesh(h,l),this._meshY.layers.mask=d.UI_LAYER_MASK,this._meshY.rotateX(-Math.PI/2);const _=new r.PlaneGeometry(100,100,2,2),c=e.clone();c.color.set(255),this._meshZ=new r.Mesh(_,c),this._meshZ.layers.mask=d.UI_LAYER_MASK}get XPlane(){return this._meshX}get YPlane(){return this._meshY}get ZPlane(){return this._meshZ}assemble(e,t){if(this.clear(),e==="translate"||e==="scale")switch(t){case"x":this.add(this._meshY),this.add(this._meshZ);break;case"y":this.add(this._meshX),this.add(this._meshZ);break;case"z":this.add(this._meshX),this.add(this._meshY);break}else if(e==="rotate")switch(t){case"x":this.add(this._meshX);break;case"y":this.add(this._meshY);break;case"z":this.add(this._meshZ);break}}}class Y extends r.Object3D{constructor(e){super();s(this,"_mode");s(this,"_gizmoNode");s(this,"_translateGizmo");s(this,"_rotateGizmo");s(this,"_scaleGizmo");s(this,"_gizmoPlane");s(this,"_object");this.name="DIVEGizmo",e.addEventListener("change",()=>{const t=e.getDistance()/2.5;this.scale.set(t,t,t)}),this._mode="translate",this._gizmoNode=new r.Object3D,this.add(this._gizmoNode),this._translateGizmo=new O(e),this._rotateGizmo=new L(e),this._scaleGizmo=new j(e),this._gizmoPlane=new C,this._gizmoPlane.visible=!1,this._object=null}get mode(){return this._mode}set mode(e){this._mode=e,this.assemble()}set debug(e){this._translateGizmo.debug=e,this._rotateGizmo.debug=e,this._scaleGizmo.debug=e}get gizmoNode(){return this._gizmoNode}get gizmoPlane(){return this._gizmoPlane}get object(){return this._object}attach(e){return this._object=e,this.assemble(),this}detach(){return this._object=null,this.assemble(),this}onHover(e,t,o){o&&this._gizmoPlane.assemble(e,t)}onChange(e,t,o){this.object!==null&&(e&&(this.position.copy(e),this.object.position.copy(e)),t&&this.object.rotation.copy(t),o&&(this.object.scale.copy(o),this._scaleGizmo.update(o)))}assemble(){this._gizmoNode.clear(),this._gizmoPlane.clear(),this._translateGizmo.reset(),this._rotateGizmo.reset(),this._scaleGizmo.reset(),this.object!==null&&(this._mode==="translate"&&this._gizmoNode.add(this._translateGizmo),this._mode==="rotate"&&this._gizmoNode.add(this._rotateGizmo),this._mode==="scale"&&this._gizmoNode.add(this._scaleGizmo),this.add(this._gizmoPlane))}}class T{constructor(){s(this,"isMovable",!0)}}class N{constructor(){s(this,"isSelectable",!0)}}const D=(i,n)=>{if(Object.keys(i).length===0&&Object.keys(n).length===0)return{};if(typeof i!="object"||typeof n!="object")return n;let e={};return Object.keys(n).forEach(t=>{if(!Object.keys(i).includes(t)){e={...e,[t]:n[t]};return}if(Array.isArray(n[t])){if(!Array.isArray(i[t])){e={...e,[t]:n[t]};return}const o=i[t],h=n[t];if(o.length===0&&h.length===0){e={...e};return}if(o.length!==h.length){e={...e,[t]:n[t]};return}const l=[];if(h.forEach((_,c)=>{const p=D(o[c],h[c]);Object.keys(p).length&&l.push(h[c])}),Object.keys(l).length){e={...e,[t]:l};return}return}if(typeof n[t]=="object"){if(typeof i[t]!="object"){e={...e,[t]:n[t]};return}const o=D(i[t],n[t]);if(Object.keys(o).length){e={...e,[t]:o};return}}i[t]!==n[t]&&(e={...e,[t]:n[t]})}),e};function U(i,n){return n.forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(o=>{if(o==="constructor")return;const h=Object.getOwnPropertyDescriptor(e.prototype,o);Object.defineProperty(i.prototype,o,h)});const t=new e;Object.getOwnPropertyNames(t).forEach(o=>{const h=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(i.prototype,o,h)})}),i}function K(i){return i.entityType==="group"}function X(i){return i.entityType==="light"}function F(i){return i.entityType==="primitive"}exports.AxesColorBlue=a.AxesColorBlue;exports.AxesColorBlueLetter=a.AxesColorBlueLetter;exports.AxesColorGreen=a.AxesColorGreen;exports.AxesColorGreenLetter=a.AxesColorGreenLetter;exports.AxesColorRed=a.AxesColorRed;exports.AxesColorRedLetter=a.AxesColorRedLetter;exports.DIVE=a.DIVE;exports.DIVEAmbientLight=a.DIVEAmbientLight;exports.DIVEClock=a.DIVEClock;exports.DIVEDefaultSettings=a.DIVEDefaultSettings;exports.DIVEEngine=a.DIVEEngine;exports.DIVEFloor=a.DIVEFloor;exports.DIVEGrid=a.DIVEGrid;exports.DIVEGroup=a.DIVEGroup;exports.DIVEModel=a.DIVEModel;exports.DIVENode=a.DIVENode;exports.DIVEPointLight=a.DIVEPointLight;exports.DIVEPrimitive=a.DIVEPrimitive;exports.DIVERenderPipeline=a.DIVERenderPipeline;exports.DIVERenderPipelineDefaultSettings=a.DIVERenderPipelineDefaultSettings;exports.DIVEResizeManager=a.DIVEResizeManager;exports.DIVERoot=a.DIVERoot;exports.DIVEScene=a.DIVEScene;exports.DIVESceneLight=a.DIVESceneLight;exports.EngineDefaultSettings=a.EngineDefaultSettings;exports.FILE_TYPES=a.FILE_TYPES;exports.GRID_CENTER_LINE_COLOR=a.GRID_CENTER_LINE_COLOR;exports.GRID_SIDE_LINE_COLOR=a.GRID_SIDE_LINE_COLOR;exports.SUPPORTED_FILE_TYPES=a.SUPPORTED_FILE_TYPES;exports.findSceneRecursive=a.findSceneRecursive;exports.COORDINATE_LAYER_MASK=d.COORDINATE_LAYER_MASK;exports.DEFAULT_LAYER_MASK=d.DEFAULT_LAYER_MASK;exports.DIVEPerspectiveCamera=d.DIVEPerspectiveCamera;exports.DIVEPerspectiveCameraDefaultSettings=d.DIVEPerspectiveCameraDefaultSettings;exports.HELPER_LAYER_MASK=d.HELPER_LAYER_MASK;exports.PRODUCT_LAYER_MASK=d.PRODUCT_LAYER_MASK;exports.UI_LAYER_MASK=d.UI_LAYER_MASK;exports.NetworkError=M.NetworkError;exports.getFileTypeFromUri=M.getFileTypeFromUri;exports.isFileTypeSupported=M.isFileTypeSupported;exports.findInterface=I.findInterface;exports.implementsInterface=I.implementsInterface;exports.FileTypeError=V.FileTypeError;exports.ParseError=V.ParseError;exports.isModelSchema=b.isModelSchema;exports.isPovSchema=b.isPovSchema;exports.DIVEGizmo=Y;exports.DIVEMath=A;exports.DIVEMovable=T;exports.DIVESelectable=N;exports.applyMixins=U;exports.getObjectDelta=D;exports.isGroupSchema=K;exports.isLightSchema=X;exports.isPrimitiveSchema=F;