@luminocity/lemonate-engine 15.2.2 → 15.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/dist/engine.min.js +302 -0
  2. package/dist/player.zip +302 -0
  3. package/package.json +6 -2
  4. package/dist/Builder.js +0 -93
  5. package/dist/Builder.js.map +0 -1
  6. package/dist/Canvas.js +0 -109
  7. package/dist/Canvas.js.map +0 -1
  8. package/dist/Controllers.js +0 -97
  9. package/dist/Controllers.js.map +0 -1
  10. package/dist/EditorScene.js +0 -372
  11. package/dist/EditorScene.js.map +0 -1
  12. package/dist/Engine.js +0 -1576
  13. package/dist/Engine.js.map +0 -1
  14. package/dist/LoadingManager.js +0 -1195
  15. package/dist/LoadingManager.js.map +0 -1
  16. package/dist/LoadingState.js +0 -37
  17. package/dist/LoadingState.js.map +0 -1
  18. package/dist/Logger.js +0 -141
  19. package/dist/Logger.js.map +0 -1
  20. package/dist/Player.js +0 -470
  21. package/dist/Player.js.map +0 -1
  22. package/dist/Preview.js +0 -166
  23. package/dist/Preview.js.map +0 -1
  24. package/dist/RenderOptions.js +0 -59
  25. package/dist/RenderOptions.js.map +0 -1
  26. package/dist/RenderPassInfo.js +0 -133
  27. package/dist/RenderPassInfo.js.map +0 -1
  28. package/dist/RenderView.js +0 -459
  29. package/dist/RenderView.js.map +0 -1
  30. package/dist/Renderer.js +0 -1867
  31. package/dist/Renderer.js.map +0 -1
  32. package/dist/SceneGraph.js +0 -798
  33. package/dist/SceneGraph.js.map +0 -1
  34. package/dist/SceneGraphCollection.js +0 -614
  35. package/dist/SceneGraphCollection.js.map +0 -1
  36. package/dist/Shortcuts.js +0 -259
  37. package/dist/Shortcuts.js.map +0 -1
  38. package/dist/Tools.js +0 -500
  39. package/dist/Tools.js.map +0 -1
  40. package/dist/Variables.js +0 -243
  41. package/dist/Variables.js.map +0 -1
  42. package/dist/helpers/ArrowHelper.js +0 -104
  43. package/dist/helpers/ArrowHelper.js.map +0 -1
  44. package/dist/helpers/BoxHelper.js +0 -112
  45. package/dist/helpers/BoxHelper.js.map +0 -1
  46. package/dist/helpers/CameraHelper.js +0 -237
  47. package/dist/helpers/CameraHelper.js.map +0 -1
  48. package/dist/helpers/FaceNormalsHelper.js +0 -85
  49. package/dist/helpers/FaceNormalsHelper.js.map +0 -1
  50. package/dist/helpers/MeshHelper.js +0 -92
  51. package/dist/helpers/MeshHelper.js.map +0 -1
  52. package/dist/helpers/MultiGridHelper.js +0 -61
  53. package/dist/helpers/MultiGridHelper.js.map +0 -1
  54. package/dist/helpers/ParticlesHelper.js +0 -245
  55. package/dist/helpers/ParticlesHelper.js.map +0 -1
  56. package/dist/helpers/PointHelper.js +0 -85
  57. package/dist/helpers/PointHelper.js.map +0 -1
  58. package/dist/helpers/SphereHelper.js +0 -62
  59. package/dist/helpers/SphereHelper.js.map +0 -1
  60. package/dist/helpers/VertexNormalsHelper.js +0 -75
  61. package/dist/helpers/VertexNormalsHelper.js.map +0 -1
  62. package/dist/helpers/ViewHelper.js +0 -252
  63. package/dist/helpers/ViewHelper.js.map +0 -1
  64. package/dist/helpers/lighthelpers/DirectionalLightHelper.js +0 -136
  65. package/dist/helpers/lighthelpers/DirectionalLightHelper.js.map +0 -1
  66. package/dist/helpers/lighthelpers/HemisphereLightHelper.js +0 -124
  67. package/dist/helpers/lighthelpers/HemisphereLightHelper.js.map +0 -1
  68. package/dist/helpers/lighthelpers/PointLightHelper.js +0 -133
  69. package/dist/helpers/lighthelpers/PointLightHelper.js.map +0 -1
  70. package/dist/helpers/lighthelpers/SpotLightHelper.js +0 -123
  71. package/dist/helpers/lighthelpers/SpotLightHelper.js.map +0 -1
  72. package/dist/index.js +0 -40
  73. package/dist/index.js.map +0 -1
  74. package/dist/items/AudioCollectionItem.js +0 -230
  75. package/dist/items/AudioCollectionItem.js.map +0 -1
  76. package/dist/items/AudioItem.js +0 -75
  77. package/dist/items/AudioItem.js.map +0 -1
  78. package/dist/items/BackgroundShaderItem.js +0 -239
  79. package/dist/items/BackgroundShaderItem.js.map +0 -1
  80. package/dist/items/CanvasTextureItem.js +0 -194
  81. package/dist/items/CanvasTextureItem.js.map +0 -1
  82. package/dist/items/CompositionItem.js +0 -110
  83. package/dist/items/CompositionItem.js.map +0 -1
  84. package/dist/items/FontItem.js +0 -135
  85. package/dist/items/FontItem.js.map +0 -1
  86. package/dist/items/GaussianSplatsItem.js +0 -103
  87. package/dist/items/GaussianSplatsItem.js.map +0 -1
  88. package/dist/items/GridMapItem.js +0 -202
  89. package/dist/items/GridMapItem.js.map +0 -1
  90. package/dist/items/ImageItem.js +0 -255
  91. package/dist/items/ImageItem.js.map +0 -1
  92. package/dist/items/Item.js +0 -739
  93. package/dist/items/Item.js.map +0 -1
  94. package/dist/items/MaterialCollectionItem.js +0 -216
  95. package/dist/items/MaterialCollectionItem.js.map +0 -1
  96. package/dist/items/MaterialItem.js +0 -1762
  97. package/dist/items/MaterialItem.js.map +0 -1
  98. package/dist/items/MeshCollectionItem.js +0 -258
  99. package/dist/items/MeshCollectionItem.js.map +0 -1
  100. package/dist/items/MeshItem.js +0 -274
  101. package/dist/items/MeshItem.js.map +0 -1
  102. package/dist/items/ParticlesItem.js +0 -187
  103. package/dist/items/ParticlesItem.js.map +0 -1
  104. package/dist/items/PixelShaderItem.js +0 -42
  105. package/dist/items/PixelShaderItem.js.map +0 -1
  106. package/dist/items/PointsItem.js +0 -122
  107. package/dist/items/PointsItem.js.map +0 -1
  108. package/dist/items/PrefabItem.js +0 -140
  109. package/dist/items/PrefabItem.js.map +0 -1
  110. package/dist/items/ProjectItem.js +0 -857
  111. package/dist/items/ProjectItem.js.map +0 -1
  112. package/dist/items/SceneItem.js +0 -443
  113. package/dist/items/SceneItem.js.map +0 -1
  114. package/dist/items/ScriptItem.js +0 -159
  115. package/dist/items/ScriptItem.js.map +0 -1
  116. package/dist/items/VariableSetItem.js +0 -208
  117. package/dist/items/VariableSetItem.js.map +0 -1
  118. package/dist/items/VertexShaderItem.js +0 -42
  119. package/dist/items/VertexShaderItem.js.map +0 -1
  120. package/dist/items/VideoItem.js +0 -152
  121. package/dist/items/VideoItem.js.map +0 -1
  122. package/dist/items/base/ImageOwningItem.js +0 -205
  123. package/dist/items/base/ImageOwningItem.js.map +0 -1
  124. package/dist/items/base/MeshBase.js +0 -342
  125. package/dist/items/base/MeshBase.js.map +0 -1
  126. package/dist/items/base/ShaderBase.js +0 -115
  127. package/dist/items/base/ShaderBase.js.map +0 -1
  128. package/dist/items/helpers/ListEntry.js +0 -113
  129. package/dist/items/helpers/ListEntry.js.map +0 -1
  130. package/dist/items/helpers/ListField.js +0 -210
  131. package/dist/items/helpers/ListField.js.map +0 -1
  132. package/dist/items/helpers/MappingSetup.js +0 -126
  133. package/dist/items/helpers/MappingSetup.js.map +0 -1
  134. package/dist/json/packageVersionInfo.json +0 -6
  135. package/dist/json/shortcuts.json +0 -37
  136. package/dist/renderers/ForwardRenderer.js +0 -50
  137. package/dist/renderers/ForwardRenderer.js.map +0 -1
  138. package/dist/renderers/RendererBase.js +0 -38
  139. package/dist/renderers/RendererBase.js.map +0 -1
  140. package/dist/scenegraph/SgAudio.js +0 -286
  141. package/dist/scenegraph/SgAudio.js.map +0 -1
  142. package/dist/scenegraph/SgAudioListener.js +0 -64
  143. package/dist/scenegraph/SgAudioListener.js.map +0 -1
  144. package/dist/scenegraph/SgBillboard.js +0 -150
  145. package/dist/scenegraph/SgBillboard.js.map +0 -1
  146. package/dist/scenegraph/SgBox.js +0 -54
  147. package/dist/scenegraph/SgBox.js.map +0 -1
  148. package/dist/scenegraph/SgCamera.js +0 -219
  149. package/dist/scenegraph/SgCamera.js.map +0 -1
  150. package/dist/scenegraph/SgCircleShadow.js +0 -105
  151. package/dist/scenegraph/SgCircleShadow.js.map +0 -1
  152. package/dist/scenegraph/SgCone.js +0 -61
  153. package/dist/scenegraph/SgCone.js.map +0 -1
  154. package/dist/scenegraph/SgCylinder.js +0 -62
  155. package/dist/scenegraph/SgCylinder.js.map +0 -1
  156. package/dist/scenegraph/SgGaussianSplats.js +0 -103
  157. package/dist/scenegraph/SgGaussianSplats.js.map +0 -1
  158. package/dist/scenegraph/SgGridMap.js +0 -112
  159. package/dist/scenegraph/SgGridMap.js.map +0 -1
  160. package/dist/scenegraph/SgGroup.js +0 -40
  161. package/dist/scenegraph/SgGroup.js.map +0 -1
  162. package/dist/scenegraph/SgItem.js +0 -1427
  163. package/dist/scenegraph/SgItem.js.map +0 -1
  164. package/dist/scenegraph/SgItemScript.js +0 -117
  165. package/dist/scenegraph/SgItemScript.js.map +0 -1
  166. package/dist/scenegraph/SgLightsource.js +0 -319
  167. package/dist/scenegraph/SgLightsource.js.map +0 -1
  168. package/dist/scenegraph/SgLod.js +0 -82
  169. package/dist/scenegraph/SgLod.js.map +0 -1
  170. package/dist/scenegraph/SgMesh.js +0 -662
  171. package/dist/scenegraph/SgMesh.js.map +0 -1
  172. package/dist/scenegraph/SgNavMesh.js +0 -503
  173. package/dist/scenegraph/SgNavMesh.js.map +0 -1
  174. package/dist/scenegraph/SgParticles.js +0 -796
  175. package/dist/scenegraph/SgParticles.js.map +0 -1
  176. package/dist/scenegraph/SgPhysicsItem.js +0 -806
  177. package/dist/scenegraph/SgPhysicsItem.js.map +0 -1
  178. package/dist/scenegraph/SgPhysicsSubItem.js +0 -449
  179. package/dist/scenegraph/SgPhysicsSubItem.js.map +0 -1
  180. package/dist/scenegraph/SgPlane.js +0 -47
  181. package/dist/scenegraph/SgPlane.js.map +0 -1
  182. package/dist/scenegraph/SgPoints.js +0 -143
  183. package/dist/scenegraph/SgPoints.js.map +0 -1
  184. package/dist/scenegraph/SgPositionalAudio.js +0 -93
  185. package/dist/scenegraph/SgPositionalAudio.js.map +0 -1
  186. package/dist/scenegraph/SgPrefab.js +0 -153
  187. package/dist/scenegraph/SgPrefab.js.map +0 -1
  188. package/dist/scenegraph/SgProceduralGeometryItem.js +0 -146
  189. package/dist/scenegraph/SgProceduralGeometryItem.js.map +0 -1
  190. package/dist/scenegraph/SgResourceOwner.js +0 -127
  191. package/dist/scenegraph/SgResourceOwner.js.map +0 -1
  192. package/dist/scenegraph/SgRibbon.js +0 -107
  193. package/dist/scenegraph/SgRibbon.js.map +0 -1
  194. package/dist/scenegraph/SgRing.js +0 -49
  195. package/dist/scenegraph/SgRing.js.map +0 -1
  196. package/dist/scenegraph/SgRoot.js +0 -87
  197. package/dist/scenegraph/SgRoot.js.map +0 -1
  198. package/dist/scenegraph/SgScriptedMesh.js +0 -213
  199. package/dist/scenegraph/SgScriptedMesh.js.map +0 -1
  200. package/dist/scenegraph/SgSky.js +0 -126
  201. package/dist/scenegraph/SgSky.js.map +0 -1
  202. package/dist/scenegraph/SgSphere.js +0 -59
  203. package/dist/scenegraph/SgSphere.js.map +0 -1
  204. package/dist/scenegraph/SgText.js +0 -182
  205. package/dist/scenegraph/SgText.js.map +0 -1
  206. package/dist/scenegraph/SgTorus.js +0 -48
  207. package/dist/scenegraph/SgTorus.js.map +0 -1
  208. package/dist/scenegraph/SgVehicle.js +0 -370
  209. package/dist/scenegraph/SgVehicle.js.map +0 -1
  210. package/dist/subsystems/AudioSystem.js +0 -128
  211. package/dist/subsystems/AudioSystem.js.map +0 -1
  212. package/dist/subsystems/Billboard.js +0 -190
  213. package/dist/subsystems/Billboard.js.map +0 -1
  214. package/dist/subsystems/FontLoader.js +0 -161
  215. package/dist/subsystems/FontLoader.js.map +0 -1
  216. package/dist/subsystems/Physics.js +0 -1079
  217. package/dist/subsystems/Physics.js.map +0 -1
  218. package/dist/subsystems/Ribbons.js +0 -179
  219. package/dist/subsystems/Ribbons.js.map +0 -1
  220. package/dist/subsystems/gridmap/GridMapBuilder.js +0 -430
  221. package/dist/subsystems/gridmap/GridMapBuilder.js.map +0 -1
  222. package/dist/subsystems/imgui/ImGui.js +0 -742
  223. package/dist/subsystems/imgui/ImGui.js.map +0 -1
  224. package/dist/subsystems/importer/Converter.js +0 -199
  225. package/dist/subsystems/importer/Converter.js.map +0 -1
  226. package/dist/subsystems/importer/ImageConverter.js +0 -77
  227. package/dist/subsystems/importer/ImageConverter.js.map +0 -1
  228. package/dist/subsystems/importer/Importer.js +0 -381
  229. package/dist/subsystems/importer/Importer.js.map +0 -1
  230. package/dist/subsystems/importer/MeshConverter.js +0 -595
  231. package/dist/subsystems/importer/MeshConverter.js.map +0 -1
  232. package/dist/subsystems/particlesystem/CurlNoiseTexturePreview.js +0 -127
  233. package/dist/subsystems/particlesystem/CurlNoiseTexturePreview.js.map +0 -1
  234. package/dist/subsystems/particlesystem/Emitters/CircleEmitter.js +0 -135
  235. package/dist/subsystems/particlesystem/Emitters/CircleEmitter.js.map +0 -1
  236. package/dist/subsystems/particlesystem/Emitters/ConeEmitter.js +0 -192
  237. package/dist/subsystems/particlesystem/Emitters/ConeEmitter.js.map +0 -1
  238. package/dist/subsystems/particlesystem/Emitters/CubeEmitter.js +0 -157
  239. package/dist/subsystems/particlesystem/Emitters/CubeEmitter.js.map +0 -1
  240. package/dist/subsystems/particlesystem/Emitters/EdgeEmitter.js +0 -133
  241. package/dist/subsystems/particlesystem/Emitters/EdgeEmitter.js.map +0 -1
  242. package/dist/subsystems/particlesystem/Emitters/Emitter.js +0 -107
  243. package/dist/subsystems/particlesystem/Emitters/Emitter.js.map +0 -1
  244. package/dist/subsystems/particlesystem/Emitters/HemiSphereEmitter.js +0 -142
  245. package/dist/subsystems/particlesystem/Emitters/HemiSphereEmitter.js.map +0 -1
  246. package/dist/subsystems/particlesystem/Emitters/MeshEmitter.js +0 -56
  247. package/dist/subsystems/particlesystem/Emitters/MeshEmitter.js.map +0 -1
  248. package/dist/subsystems/particlesystem/Emitters/SphereEmitter.js +0 -142
  249. package/dist/subsystems/particlesystem/Emitters/SphereEmitter.js.map +0 -1
  250. package/dist/subsystems/particlesystem/Emitters/TorusEmitter.js +0 -159
  251. package/dist/subsystems/particlesystem/Emitters/TorusEmitter.js.map +0 -1
  252. package/dist/subsystems/particlesystem/ParticleSystem.js +0 -706
  253. package/dist/subsystems/particlesystem/ParticleSystem.js.map +0 -1
  254. package/dist/subsystems/particlesystem/Simulation.js +0 -475
  255. package/dist/subsystems/particlesystem/Simulation.js.map +0 -1
  256. package/dist/subsystems/particlesystem/Visualization.js +0 -518
  257. package/dist/subsystems/particlesystem/Visualization.js.map +0 -1
  258. package/dist/subsystems/particlesystem/shaders/noise/CurlNoiseTexturePreviewShader.js +0 -56
  259. package/dist/subsystems/particlesystem/shaders/noise/CurlNoiseTexturePreviewShader.js.map +0 -1
  260. package/dist/subsystems/particlesystem/utils.js +0 -115
  261. package/dist/subsystems/particlesystem/utils.js.map +0 -1
  262. package/dist/subsystems/scripting/ScriptEngine.js +0 -1074
  263. package/dist/subsystems/scripting/ScriptEngine.js.map +0 -1
  264. package/dist/subsystems/scripting/ScriptRunner.js +0 -153
  265. package/dist/subsystems/scripting/ScriptRunner.js.map +0 -1
  266. package/dist/subsystems/scripting/ScriptRuntime.js +0 -244
  267. package/dist/subsystems/scripting/ScriptRuntime.js.map +0 -1
  268. package/dist/subsystems/scripting/runtime/RtAudio.js +0 -37
  269. package/dist/subsystems/scripting/runtime/RtAudio.js.map +0 -1
  270. package/dist/subsystems/scripting/runtime/RtBase.js +0 -117
  271. package/dist/subsystems/scripting/runtime/RtBase.js.map +0 -1
  272. package/dist/subsystems/scripting/runtime/RtCanvas.js +0 -326
  273. package/dist/subsystems/scripting/runtime/RtCanvas.js.map +0 -1
  274. package/dist/subsystems/scripting/runtime/RtComposer.js +0 -58
  275. package/dist/subsystems/scripting/runtime/RtComposer.js.map +0 -1
  276. package/dist/subsystems/scripting/runtime/RtConsole.js +0 -51
  277. package/dist/subsystems/scripting/runtime/RtConsole.js.map +0 -1
  278. package/dist/subsystems/scripting/runtime/RtControllers.js +0 -52
  279. package/dist/subsystems/scripting/runtime/RtControllers.js.map +0 -1
  280. package/dist/subsystems/scripting/runtime/RtEvents.js +0 -46
  281. package/dist/subsystems/scripting/runtime/RtEvents.js.map +0 -1
  282. package/dist/subsystems/scripting/runtime/RtImGui.js +0 -410
  283. package/dist/subsystems/scripting/runtime/RtImGui.js.map +0 -1
  284. package/dist/subsystems/scripting/runtime/RtItem.js +0 -297
  285. package/dist/subsystems/scripting/runtime/RtItem.js.map +0 -1
  286. package/dist/subsystems/scripting/runtime/RtLoader.js +0 -77
  287. package/dist/subsystems/scripting/runtime/RtLoader.js.map +0 -1
  288. package/dist/subsystems/scripting/runtime/RtObject.js +0 -34
  289. package/dist/subsystems/scripting/runtime/RtObject.js.map +0 -1
  290. package/dist/subsystems/scripting/runtime/RtPhysics.js +0 -69
  291. package/dist/subsystems/scripting/runtime/RtPhysics.js.map +0 -1
  292. package/dist/subsystems/scripting/runtime/RtPointer.js +0 -45
  293. package/dist/subsystems/scripting/runtime/RtPointer.js.map +0 -1
  294. package/dist/subsystems/scripting/runtime/RtProject.js +0 -66
  295. package/dist/subsystems/scripting/runtime/RtProject.js.map +0 -1
  296. package/dist/subsystems/scripting/runtime/RtRenderer.js +0 -138
  297. package/dist/subsystems/scripting/runtime/RtRenderer.js.map +0 -1
  298. package/dist/subsystems/scripting/runtime/RtSceneEntry.js +0 -67
  299. package/dist/subsystems/scripting/runtime/RtSceneEntry.js.map +0 -1
  300. package/dist/subsystems/scripting/runtime/RtSceneObject.js +0 -666
  301. package/dist/subsystems/scripting/runtime/RtSceneObject.js.map +0 -1
  302. package/dist/subsystems/scripting/runtime/RtStorage.js +0 -64
  303. package/dist/subsystems/scripting/runtime/RtStorage.js.map +0 -1
  304. package/dist/subsystems/scripting/runtime/RtSystem.js +0 -85
  305. package/dist/subsystems/scripting/runtime/RtSystem.js.map +0 -1
  306. package/dist/subsystems/scripting/runtime/RtTools.js +0 -37
  307. package/dist/subsystems/scripting/runtime/RtTools.js.map +0 -1
  308. package/dist/subsystems/scripting/runtime/RtVariables.js +0 -57
  309. package/dist/subsystems/scripting/runtime/RtVariables.js.map +0 -1
  310. package/dist/subsystems/scripting/runtime/items/RtCanvasTexture.js +0 -101
  311. package/dist/subsystems/scripting/runtime/items/RtCanvasTexture.js.map +0 -1
  312. package/dist/subsystems/scripting/runtime/items/RtMaterial.js +0 -34
  313. package/dist/subsystems/scripting/runtime/items/RtMaterial.js.map +0 -1
  314. package/dist/subsystems/scripting/runtime/items/RtMesh.js +0 -34
  315. package/dist/subsystems/scripting/runtime/items/RtMesh.js.map +0 -1
  316. package/dist/subsystems/scripting/runtime/items/RtTexture.js +0 -34
  317. package/dist/subsystems/scripting/runtime/items/RtTexture.js.map +0 -1
  318. package/dist/subsystems/scripting/runtime/items/RtVideo.js +0 -56
  319. package/dist/subsystems/scripting/runtime/items/RtVideo.js.map +0 -1
  320. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgAudio.js +0 -59
  321. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgAudio.js.map +0 -1
  322. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgCamera.js +0 -134
  323. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgCamera.js.map +0 -1
  324. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgMesh.js +0 -99
  325. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgMesh.js.map +0 -1
  326. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgNavMesh.js +0 -114
  327. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgNavMesh.js.map +0 -1
  328. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgParticles.js +0 -576
  329. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgParticles.js.map +0 -1
  330. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgPositionalAudio.js +0 -56
  331. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgPositionalAudio.js.map +0 -1
  332. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgRibbon.js +0 -42
  333. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgRibbon.js.map +0 -1
  334. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgScriptedMesh.js +0 -65
  335. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgScriptedMesh.js.map +0 -1
  336. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgVehicle.js +0 -60
  337. package/dist/subsystems/scripting/runtime/sceneobjects/RtSgVehicle.js.map +0 -1
  338. package/dist/tools/AsyncInterval.js +0 -55
  339. package/dist/tools/AsyncInterval.js.map +0 -1
  340. package/dist/tools/Converters.js +0 -41
  341. package/dist/tools/Converters.js.map +0 -1
  342. package/dist/tools/DebugTools.js +0 -91
  343. package/dist/tools/DebugTools.js.map +0 -1
  344. package/dist/tools/FontTools.js +0 -43
  345. package/dist/tools/FontTools.js.map +0 -1
  346. package/dist/tools/FsShader.js +0 -112
  347. package/dist/tools/FsShader.js.map +0 -1
  348. package/dist/tools/GeometryTools.js +0 -373
  349. package/dist/tools/GeometryTools.js.map +0 -1
  350. package/dist/tools/ItemTools.js +0 -139
  351. package/dist/tools/ItemTools.js.map +0 -1
  352. package/dist/tools/MathHelpers.js +0 -125
  353. package/dist/tools/MathHelpers.js.map +0 -1
  354. package/dist/tools/Profiler.js +0 -174
  355. package/dist/tools/Profiler.js.map +0 -1
  356. package/dist/tools/Random.js +0 -48
  357. package/dist/tools/Random.js.map +0 -1
  358. package/dist/tools/RtDebugger.js +0 -84
  359. package/dist/tools/RtDebugger.js.map +0 -1
  360. package/dist/tools/StringExtensions.js +0 -72
  361. package/dist/tools/StringExtensions.js.map +0 -1
  362. package/dist/tools/TextureTools.js +0 -444
  363. package/dist/tools/TextureTools.js.map +0 -1
  364. package/dist/tools/Timer.js +0 -52
  365. package/dist/tools/Timer.js.map +0 -1
  366. package/dist/tools/audioVisualizers/WavyAudioVisualizer.js +0 -59
  367. package/dist/tools/audioVisualizers/WavyAudioVisualizer.js.map +0 -1
  368. /package/dist/renderers/{forwardrenderer.d.ts → ForwardRenderer.d.ts} +0 -0
  369. /package/dist/subsystems/imgui/{imgui.d.ts → ImGui.d.ts} +0 -0
  370. /package/dist/subsystems/importer/{imageconverter.d.ts → ImageConverter.d.ts} +0 -0
  371. /package/dist/subsystems/scripting/{scriptrunner.d.ts → ScriptRunner.d.ts} +0 -0
  372. /package/dist/subsystems/scripting/{scriptruntime.d.ts → ScriptRuntime.d.ts} +0 -0
  373. /package/dist/subsystems/scripting/runtime/{rtAudio.d.ts → RtAudio.d.ts} +0 -0
  374. /package/dist/subsystems/scripting/runtime/{rtComposer.d.ts → RtComposer.d.ts} +0 -0
  375. /package/dist/subsystems/scripting/runtime/{rtObject.d.ts → RtObject.d.ts} +0 -0
@@ -1,1195 +0,0 @@
1
- // -----------------------------------------------------------------------------------------------------------
2
- // __ ______ __ __ ______ __ __ ______ ______ ______
3
- // /\ \ /\ ___\ /\ "-./ \ /\ __ \ /\ "-.\ \ /\ __ \ /\__ _\ /\ ___\
4
- // \ \ \____ \ \ __\ \ \ \-./\ \ \ \ \/\ \ \ \ \-. \ \ \ __ \ \/_/\ \/ \ \ __\
5
- // \ \_____\ \ \_____\ \ \_\ \ \_\ \ \_____\ \ \_\\"\_\ \ \_\ \_\ \ \_\ \ \_____\
6
- // \/_____/ \/_____/ \/_/ \/_/ \/_____/ \/_/ \/_/ \/_/\/_/ \/_/ \/_____/
7
- //
8
- //
9
- // Copyright 2023- Luminocity AG
10
- //
11
- // "The cake is a lie." - Portal (2007)
12
- //
13
- // Permission is hereby granted, free of charge, to any person obtaining a copy of this software
14
- // and associated documentation files (the “Software”), to deal in the Software without restriction,
15
- // including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
16
- // and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
17
- // subject to the following conditions:
18
- //
19
- // The above copyright notice and this permission notice shall be included in all copies or substantial
20
- // portions of the Software.
21
- //
22
- // THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
23
- // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24
- // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
25
- // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26
- // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27
- // -----------------------------------------------------------------------------------------------------------
28
- import lodash from 'lodash';
29
- import { AudioItem } from "./items/AudioItem";
30
- import { AudioCollectionItem } from './items/AudioCollectionItem';
31
- import { BackgroundShaderItem } from "./items/BackgroundShaderItem";
32
- import { CanvasTextureItem } from "./items/CanvasTextureItem";
33
- import { CompositionItem } from './items/CompositionItem';
34
- import { FontItem } from "./items/FontItem";
35
- import { GaussianSplatsItem } from './items/GaussianSplatsItem';
36
- import { GridMapItem } from "./items/GridMapItem";
37
- import { MaterialItem } from "./items/MaterialItem";
38
- import { MaterialCollectionItem } from "./items/MaterialCollectionItem";
39
- import { MeshItem } from "./items/MeshItem";
40
- import { MeshCollectionItem } from "./items/MeshCollectionItem";
41
- import { ParticlesItem } from "./items/ParticlesItem";
42
- import { PixelShaderItem } from "./items/PixelShaderItem";
43
- import { PointsItem } from "./items/PointsItem";
44
- import { PrefabItem } from "./items/PrefabItem";
45
- import { ProjectItem } from './items/ProjectItem';
46
- import { SceneItem } from "./items/SceneItem";
47
- import { ScriptItem } from "./items/ScriptItem";
48
- import { ImageItem } from "./items/ImageItem";
49
- import { VariableSetItem } from './items/VariableSetItem';
50
- import { VertexShaderItem } from "./items/VertexShaderItem";
51
- import { VideoItem } from "./items/VideoItem";
52
- import { ItemState, itemStateToString } from "./items/Item";
53
- import tools from "./Tools.js";
54
- import { LoadingState } from "./LoadingState.js";
55
- // Once all references to an object are removed, it can be destroyed and removed from memory. In many cases it
56
- // is more than possible that it will be instanced again within short period of time. So define a period of time
57
- // where deleted objects will be kept until garbage collected
58
- const DELETION_GRACE_PERIOD_MS = 10000;
59
- // This is the maximum time we accept a create() method to take before we output a warning. anything time consuming
60
- // like loading resources should be done in load() not in create()
61
- const MAX_ACCEPTABLE_CREATE_TIME_MS = 10;
62
- export class LoadingManager {
63
- gpuRamQuota;
64
- renderer;
65
- engine;
66
- debugMode;
67
- deletionGracePeriodMs = DELETION_GRACE_PERIOD_MS;
68
- startTime = new Date();
69
- endTime;
70
- totalTime;
71
- // Ready defines the moment, the scene is fully renderable in at least the lowest LOD
72
- readyTime;
73
- secondsToReady;
74
- // Finished defines the moment all resources of the scene are fully ready and we can render in full quality
75
- finishedTime;
76
- secondsToFinished;
77
- active = true;
78
- // This map keeps track of what state changes should resolve which Promises.
79
- waitForStateMap = new Map();
80
- itemsToLoad = [];
81
- itemsMap = new Map();
82
- itemsTypeMap = new Map();
83
- itemsByTypeMap = new Map();
84
- _removeEvents;
85
- _intervalHandle;
86
- _clearIntervalHandle;
87
- constructor(renderer, engine, debugMode, gpuRamQuota) {
88
- gpuRamQuota = gpuRamQuota === undefined ? 512 : gpuRamQuota;
89
- tools.assert(renderer, "LoadingManager: renderer must be set in NkLoadingManager");
90
- tools.assert(engine, "LoadingManager: engine must be set in NkLoadingManager");
91
- this.debugMode = debugMode || false;
92
- this.renderer = renderer;
93
- this.engine = engine;
94
- this.gpuRamQuota = gpuRamQuota * 1024 * 1024;
95
- this.reset();
96
- const _refreshReadyState = lodash.debounce(() => {
97
- function printState(arr, level) {
98
- const padding = "".padEnd(level, " ");
99
- for (const info of arr) {
100
- console.log(padding, info.item.item.name, "TYPE:" + info.item.item.type, "OWN:" + itemStateToString(info.ownState), "ACU:" + itemStateToString(info.state));
101
- printState(info.children, ++level);
102
- }
103
- }
104
- const info = [];
105
- const state = this.engine.getReadyState(info);
106
- if (this.debugMode) {
107
- console.log("Loading manager debug output --------------------------------------------------");
108
- console.log("Final state: " + itemStateToString(state));
109
- printState(info, 0);
110
- console.log("-------------------------------------------------------------------------------");
111
- }
112
- if (state === ItemState.Alive) {
113
- this._ready();
114
- }
115
- else if (state === ItemState.Finished) {
116
- this._finished();
117
- }
118
- }, 10);
119
- this.engine.eventBus.$on('item:stateChanged', _refreshReadyState);
120
- this.engine.eventBus.$on('item:contentUpdated', _refreshReadyState);
121
- this.engine.eventBus.$on('item:rename', (data) => this._handleRename(data), this);
122
- this.engine.eventBus.$on('item:stateChanged', (data) => {
123
- const itemID = data.item.item._id;
124
- // If this item just finished loading and there are promises waiting for it, resolve them.
125
- const funcs = this.waitForStateMap.get(itemID);
126
- if (funcs && data.item.state === ItemState.Finished) {
127
- for (const resolveFunc of funcs) {
128
- resolveFunc();
129
- }
130
- this.waitForStateMap.delete(itemID);
131
- }
132
- });
133
- this._removeEvents = () => {
134
- this.engine.eventBus.$off('item:stateChanged', _refreshReadyState);
135
- this.engine.eventBus.$off('item:contentUpdated', _refreshReadyState);
136
- this.engine.eventBus.$offByOwner('item:rename', this);
137
- };
138
- }
139
- setDeletionGracePeriod(ms) {
140
- tools.assert(ms >= 0, "Deletion grace period needs to be >= 0");
141
- this.deletionGracePeriodMs = ms;
142
- }
143
- dispose() {
144
- if (this._intervalHandle) {
145
- clearInterval(this._intervalHandle);
146
- this._intervalHandle = null;
147
- }
148
- if (this._clearIntervalHandle) {
149
- clearInterval(this._clearIntervalHandle);
150
- this._clearIntervalHandle = null;
151
- }
152
- this._removeEvents();
153
- }
154
- run() {
155
- const _this = this;
156
- this._intervalHandle = setInterval(function () {
157
- _this._run();
158
- }, 50);
159
- this._clearIntervalHandle = setInterval(function () {
160
- _this._clearUnusedItemInstances();
161
- }, 1000);
162
- }
163
- getItems() {
164
- return this.itemsToLoad;
165
- }
166
- /**
167
- * Returns a list of item instances if they have a render method and also are referenced
168
- * @return {*[]}
169
- */
170
- getRenderableItemInstances() {
171
- const result = [];
172
- for (const entry of this.itemsToLoad) {
173
- if (entry.references.size && entry.itemInstance && typeof entry.itemInstance.render === 'function') {
174
- result.push(entry.itemInstance);
175
- }
176
- }
177
- return result;
178
- }
179
- /**
180
- * Checks if an item instance exists and if so, returns it and adds a reference
181
- * @param itemId
182
- * @param referenceId
183
- * @returns {null|*}
184
- * @private
185
- */
186
- _getItemInstance(itemId, referenceId) {
187
- tools.assert(typeof referenceId === 'string' && referenceId !== "", "LoadingManager: Cannot request a resource from loading manager without a valid reference ID");
188
- let entry = this.itemsMap.get(itemId);
189
- if (!entry)
190
- return undefined;
191
- if (referenceId) {
192
- entry.references.set(referenceId, true);
193
- entry.unusedSince = undefined;
194
- this.engine.eventBus.$emit('loadingManager:updated');
195
- }
196
- return entry.itemInstance;
197
- }
198
- /**
199
- * Sets an item instance and adds its first reference
200
- * @param id
201
- * @param itemInstance
202
- * @param referenceId
203
- * @param isPrivate a private reference of an item is owned by exactly a single owner and cannot be shared.
204
- * @private
205
- */
206
- _setItemInstance(id, itemInstance, referenceId, isPrivate = false) {
207
- let entry = this.itemsMap.get(id);
208
- if (entry) {
209
- if (!isPrivate) {
210
- if (referenceId)
211
- entry.references.set(referenceId, true);
212
- if (entry.itemInstance) {
213
- console.error("Setting item instance reference although one is set already!", id);
214
- }
215
- entry.itemInstance = itemInstance;
216
- }
217
- else {
218
- if (entry.itemPrivateInstances.has(referenceId)) {
219
- console.error("For this reference ID we already have an item instance. Cannot have two!");
220
- }
221
- entry.itemPrivateInstances.set(referenceId, itemInstance);
222
- }
223
- // In case the item was a composition, we need to update the editor output options.
224
- if (itemInstance instanceof CompositionItem)
225
- this.engine.renderer.updateEditorOutputOptions();
226
- this.engine.eventBus.$emit('loadingManager:updated');
227
- }
228
- }
229
- /**
230
- * Unload a resource. If it has more references, only the reference is removed, otherwise it is
231
- * destroyed for everyone
232
- * @param referenceId
233
- * @param itemInstance
234
- */
235
- unload(referenceId, itemInstance) {
236
- tools.assert(itemInstance, "LoadingManager: Item instance not passed to method.");
237
- tools.assert(typeof referenceId === 'string' && referenceId !== "", "LoadingManager: Cannot unload a resource from loading manager without a valid reference ID");
238
- const id = itemInstance.getId();
239
- let entry = this.itemsMap.get(id);
240
- if (!entry)
241
- return;
242
- if (entry.references.has(referenceId)) {
243
- entry.references.delete(referenceId);
244
- }
245
- else if (entry.itemPrivateInstances.has(referenceId)) {
246
- const itemInstance = entry.itemPrivateInstances.get(referenceId);
247
- try {
248
- const p = itemInstance.destroy(false, true);
249
- if (p && p.then) {
250
- p.catch((err) => {
251
- console.error(`LoadingManager: Error while destroying private item instance of ${id}`, err);
252
- });
253
- }
254
- }
255
- catch (err) {
256
- console.error(`LoadingManager: Error while destroying private item instance of ${id}`, err);
257
- }
258
- entry.itemPrivateInstances.delete(referenceId);
259
- }
260
- else {
261
- console.warn(`LoadingManager: Object with ID ${referenceId} tried to remove reference from item ${id} but does not have one.`);
262
- }
263
- if (!entry.references.size && !entry.itemPrivateInstances.size) {
264
- entry.unusedSince = new Date();
265
- }
266
- this.engine.eventBus.$emit('loadingManager:updated');
267
- }
268
- typeNameToType(name) {
269
- switch (name) {
270
- case "Texture": return ImageItem;
271
- case "Material": return MaterialItem;
272
- case "CanvasTexture": return CanvasTextureItem;
273
- case "Mesh": return MeshItem;
274
- default:
275
- throw new Error("Item type not known: " + name);
276
- }
277
- }
278
- async create(referenceId, typeName, attributes = {}) {
279
- attributes = attributes || {};
280
- const ItemType = this.typeNameToType(typeName);
281
- const item = {
282
- _id: tools.createGeneratedItemId(),
283
- name: `Generated ${typeName}`,
284
- type: typeName,
285
- attributes: attributes,
286
- links: [],
287
- fields: [],
288
- fieldInstances: [],
289
- userFieldInstances: []
290
- };
291
- return this.load(referenceId, item, ItemType, null, attributes);
292
- }
293
- get(id, referenceId) {
294
- return this._getItemInstance(id, referenceId);
295
- }
296
- /**
297
- * This function returns an item instance by item ID but will not add a new reference to it.
298
- * This means that this item reference could become invalid at any time without notice and should
299
- * only be used to retrieve an item for immediate use and then toss the reference as it might not
300
- * survive long.
301
- * @param itemId
302
- * @returns {null|*|null}
303
- */
304
- getWeakItemInstance(itemId) {
305
- let entry = this.itemsMap.get(itemId);
306
- if (!entry)
307
- return null;
308
- return entry.itemInstance;
309
- }
310
- async load(referenceId, item, ItemType, options, attributes) {
311
- options = options || {};
312
- // in case the item is a package, use its contents, not the item itself
313
- if (item.type === "Package") {
314
- item = item.packageContent;
315
- }
316
- // If the item should be recreated, don't return an already existing instance.
317
- if (!options.recreate) {
318
- const instance = this._getItemInstance(item._id, referenceId);
319
- // Because add the item instance is set before creating the item,
320
- // we need to also check if the item has already
321
- // been created before returning its instance.
322
- if (instance && instance.state !== ItemState.None) {
323
- if (options.waitUntilFinished && instance.state !== ItemState.Finished) {
324
- await this._waitFor(instance, item._id);
325
- }
326
- return instance;
327
- }
328
- }
329
- else {
330
- // We want the item instance recreated. But for that to work and to be a true
331
- // independant object of its own, the item model below has to be cloned, otherwise
332
- // both will work on the same fields, blocks, etc.
333
- item = this.engine.itemRepo.createNewItemInstance(item._id);
334
- }
335
- // add the item to the maps
336
- this.addItem(item);
337
- // create the new item instance
338
- let itemObject;
339
- if (Array.isArray(ItemType)) {
340
- for (const Type of ItemType) {
341
- if (item.type === Type.name) {
342
- itemObject = new Type.type(item, this.engine, this.renderer, options.lodMode);
343
- }
344
- }
345
- if (!itemObject)
346
- throw "Fitting item type not found!";
347
- }
348
- else {
349
- // @ts-ignore
350
- itemObject = new ItemType(item, this.engine, this.renderer, options.lodMode);
351
- }
352
- // make sure it is filled with all required field instances and make sure the default are set if something is missing
353
- itemObject.setFieldInstanceDefaults();
354
- if (attributes) {
355
- itemObject.setFieldAndLinkValues(attributes);
356
- }
357
- // store the item instance
358
- const isPrivate = options.recreate; // if we force recreate the item, this is now a privately owned instance.
359
- this._setItemInstance(item._id, itemObject, referenceId, isPrivate);
360
- // Create the item and time it. It should not take too long, anything expensive has to be done
361
- // in load() not in create() so execution is not blocked unnecessarily
362
- const startTime = Date.now();
363
- const instance = await itemObject.create(options);
364
- const endTime = Date.now();
365
- const duration = Math.floor(endTime - startTime);
366
- if (this.debugMode) {
367
- if (duration > MAX_ACCEPTABLE_CREATE_TIME_MS) {
368
- console.warn(`Creating ${itemObject.getType()} ${itemObject.getName()} took too long: ${duration}ms`);
369
- }
370
- else {
371
- console.log(`Creating ${itemObject.getType()} ${itemObject.getName()} took: ${duration}ms`);
372
- }
373
- }
374
- // Now load the item (if needed) asynchronously, we do not want to wait for it except in the case below
375
- itemObject.load(options).catch(function (error) {
376
- console.error(error);
377
- console.error(`Error loading ${ItemType.constructor.name} ${item._id}`);
378
- });
379
- if (options.waitUntilFinished) {
380
- // When the waitUntilFinished option is set, we additionally wait
381
- // until the items state changes to Finished before returning.
382
- await this._waitFor(instance, item._id);
383
- }
384
- return instance;
385
- }
386
- /**
387
- * Wait for the instance to be finished loading.
388
- * @param instance Item instance
389
- * @param itemId Item ID
390
- * @return {Promise<void>}
391
- * @private
392
- */
393
- async _waitFor(instance, itemId) {
394
- if (instance.state === ItemState.Finished)
395
- return;
396
- const waitingPromises = this.waitForStateMap.get(itemId) || [];
397
- const promise = new Promise((resolve) => waitingPromises.push(resolve));
398
- // Add this promise to the list of promises that should be resolved
399
- // when the item is finished.
400
- this.waitForStateMap.set(itemId, waitingPromises);
401
- await promise;
402
- }
403
- /**
404
- * Load a texture. If the texture is an environment map, enable the param. the noCache parameter will cause
405
- * the texture to be recreated in any case and not used from the resources and also loading manager will
406
- * not store the resulting item. This should only be used if the intention is to modify the texture after loading
407
- * because then it should be treated separately and not be reused.
408
- * @param referenceId the reference id of the item that wants to load this
409
- * @param item
410
- * @param options
411
- * @returns {Promise<ImageItem|*>}
412
- */
413
- async loadTexture(referenceId, item, options) {
414
- //@ts-ignore
415
- return this.load(referenceId, item, ImageItem, options);
416
- }
417
- /**
418
- * Load a texture or composition.
419
- * @param referenceId
420
- * @param item
421
- * @param options
422
- * @return {Promise<*>}
423
- */
424
- async loadTextureOrComposition(referenceId, item, options = {}) {
425
- options.renderToTexture = true;
426
- const loadableTypes = [
427
- { name: "Image", type: ImageItem },
428
- { name: "Composition", type: CompositionItem }
429
- ];
430
- //@ts-ignore
431
- return this.load(referenceId, item, loadableTypes, options);
432
- }
433
- /**
434
- * Load a texture, composition or video.
435
- * @param referenceId
436
- * @param item
437
- * @param options
438
- * @return {Promise<*>}
439
- */
440
- async loadTextureCompositionOrVideo(referenceId, item, options = {}) {
441
- options.renderToTexture = true;
442
- const loadableTypes = [
443
- { name: "Image", type: ImageItem },
444
- { name: "Composition", type: CompositionItem },
445
- { name: "Video", type: VideoItem }
446
- ];
447
- //@ts-ignore
448
- return this.load(referenceId, item, loadableTypes, options);
449
- }
450
- /**
451
- * Load a shader and store it in the loading manager
452
- * @param referenceId the reference id of the item that wants to load this
453
- * @param item
454
- * @returns {Promise<Backgroundshader|*>}
455
- */
456
- async loadBackgroundShader(referenceId, item, options = {}) {
457
- //@ts-ignore
458
- return this.load(referenceId, item, BackgroundShaderItem, options);
459
- }
460
- /**
461
- * Load a shader and store it in the loading manager
462
- * @param referenceId the reference id of the item that wants to load this
463
- * @param item
464
- * @returns {Promise<Backgroundshader|*>}
465
- */
466
- async loadPixelShader(referenceId, item, options = {}) {
467
- //@ts-ignore
468
- return this.load(referenceId, item, PixelShaderItem, options);
469
- }
470
- /**
471
- * Load a shader and store it in the loading manager
472
- * @param referenceId the reference id of the item that wants to load this
473
- * @param item
474
- * @returns {Promise<Backgroundshader|*>}
475
- */
476
- async loadVertexShader(referenceId, item, options = {}) {
477
- //@ts-ignore
478
- return this.load(referenceId, item, VertexShaderItem, options);
479
- }
480
- /**
481
- * Load a composition item and store it in the loading manager
482
- * @param referenceId the reference id of the item that wants to load this
483
- * @param item
484
- * @returns {Promise<PostFX|*>}
485
- */
486
- async loadComposition(referenceId, item, options = {}) {
487
- //@ts-ignore
488
- return this.load(referenceId, item, CompositionItem, options);
489
- }
490
- /**
491
- * Load a material and store it in the loading manager
492
- * @param referenceId the reference id of the item that wants to load this
493
- * @param item
494
- * @returns {Promise<Material|*>}
495
- */
496
- async loadMaterial(referenceId, item, options = {}) {
497
- //@ts-ignore
498
- return this.load(referenceId, item, MaterialItem, options);
499
- }
500
- /**
501
- * Load a material collection and store it in the loading manager
502
- * @param referenceId the reference id of the item that wants to load this
503
- * @param item
504
- * @returns {Promise<Material|*>}
505
- */
506
- async loadMaterialCollection(referenceId, item, options = {}) {
507
- //@ts-ignore
508
- return this.load(referenceId, item, MaterialCollectionItem, options);
509
- }
510
- /**
511
- * Load a mesh and store it in the loading manager
512
- * @param referenceId the reference id of the item that wants to load this
513
- * @param item
514
- * @param options
515
- * @returns {Promise<MeshItem|*>}
516
- */
517
- async loadMesh(referenceId, item, options = {}) {
518
- //@ts-ignore
519
- return this.load(referenceId, item, MeshItem, options);
520
- }
521
- ;
522
- /**
523
- * Load a mesh collection and store it in the loading manager
524
- * @param referenceId
525
- * @param item
526
- * @param options
527
- * @returns {Promise<void>}
528
- */
529
- async loadMeshCollection(referenceId, item, options = {}) {
530
- //@ts-ignore
531
- return this.load(referenceId, item, MeshCollectionItem, options);
532
- }
533
- /**
534
- * Load a gridmap and store it in the loading manager
535
- * @param referenceId the reference id of the item that wants to load this
536
- * @param item
537
- * @param options
538
- * @returns {Promise<MeshItem|*>}
539
- */
540
- async loadGridMap(referenceId, item, options = {}) {
541
- //@ts-ignore
542
- return this.load(referenceId, item, GridMapItem, options);
543
- }
544
- ;
545
- /**
546
- * Load a gaussian splats item and store it in the loading manager
547
- * @param referenceId the reference id of the item that wants to load this
548
- * @param item
549
- * @return {Promise<void>}
550
- */
551
- async loadGaussianSplats(referenceId, item, options = {}) {
552
- //@ts-ignore
553
- return this.load(referenceId, item, GaussianSplatsItem, options);
554
- }
555
- /**
556
- * Load a Font and store it in the loading manager
557
- * @param referenceId the reference id of the item that wants to load this
558
- * @param item
559
- * @returns {Promise<FontItem|*>}
560
- */
561
- async loadFont(referenceId, item, options = {}) {
562
- //@ts-ignore
563
- return this.load(referenceId, item, FontItem, options);
564
- }
565
- ;
566
- /**
567
- * Load a Font and store it in the loading manager
568
- * @param referenceId the reference id of the item that wants to load this
569
- * @param item
570
- * @returns {Promise<FontItem|*>}
571
- */
572
- async loadParticles(referenceId, item, options = {}) {
573
- //@ts-ignore
574
- return this.load(referenceId, item, ParticlesItem, options);
575
- }
576
- ;
577
- /**
578
- * Load a point cloud and store it in the loading manager
579
- * @param referenceId the reference id of the item that wants to load this
580
- * @param item
581
- * @param options
582
- * @returns {Promise<PointsItem|*>}
583
- */
584
- async loadPoints(referenceId, item, options = {}) {
585
- //@ts-ignore
586
- return this.load(referenceId, item, PointsItem, options);
587
- }
588
- ;
589
- /**
590
- * Load a scene and store it in the loading manager
591
- * @param referenceId the reference id of the item that wants to load this
592
- * @param item
593
- * @param options
594
- * @returns {Promise<SceneItem|*>}
595
- */
596
- async loadScene(referenceId, item, options = {}) {
597
- //@ts-ignore
598
- return this.load(referenceId, item, SceneItem, options);
599
- }
600
- ;
601
- /**
602
- * Load a prefab and store it in the loading manager
603
- * @param referenceId the reference id of the item that wants to load this
604
- * @param item
605
- * @param options
606
- * @returns {Promise<SceneItem|*>}
607
- */
608
- async loadPrefab(referenceId, item, options = {}) {
609
- //@ts-ignore
610
- return this.load(referenceId, item, PrefabItem, options);
611
- }
612
- ;
613
- /**
614
- * Load a scene or a prefab
615
- * @param referenceId
616
- * @param item
617
- * @param options
618
- * @return {Promise<*>}
619
- */
620
- async loadSceneOrPrefab(referenceId, item, options = {}) {
621
- const loadableTypes = [
622
- { name: "Prefab", type: PrefabItem },
623
- { name: "Scene", type: SceneItem }
624
- ];
625
- //@ts-ignore
626
- return this.load(referenceId, item, loadableTypes, options);
627
- }
628
- /**
629
- * Load a project and store it in the loading manager
630
- * @param referenceId the reference id of the item that wants to load this
631
- * @param item
632
- * @param options
633
- * @returns {Promise<SceneItem|*>}
634
- */
635
- async loadProject(referenceId, item, options = {}) {
636
- //@ts-ignore
637
- return this.load(referenceId, item, ProjectItem, options);
638
- }
639
- ;
640
- /**
641
- * Load an audio file and store it in the loading manager
642
- * @param referenceId
643
- * @param item
644
- * @returns {Promise<void>}
645
- */
646
- async loadAudio(referenceId, item, options = {}) {
647
- //@ts-ignore
648
- return this.load(referenceId, item, AudioItem, options);
649
- }
650
- /**
651
- * Load an audio collection and store it in the loading manager
652
- * @param referenceId
653
- * @param item
654
- * @returns {Promise<void>}
655
- */
656
- async loadAudioCollection(referenceId, item, options = {}) {
657
- //@ts-ignore
658
- return this.load(referenceId, item, AudioCollectionItem, options);
659
- }
660
- /**
661
- * Load a script and store it in the loading manager
662
- * @param referenceId
663
- * @param item
664
- * @return {Promise<void>}
665
- */
666
- async loadScript(referenceId, item, options = {}) {
667
- //@ts-ignore
668
- return this.load(referenceId, item, ScriptItem, options);
669
- }
670
- /**
671
- * Load a variable set and store it in the loading manager
672
- * @param referenceId the reference id of the item that wants to load this
673
- * @param item
674
- * @returns {Promise<SceneItem|*>}
675
- */
676
- async loadVariableSet(referenceId, item, options = {}) {
677
- //@ts-ignore
678
- return this.load(referenceId, item, VariableSetItem, options);
679
- }
680
- ;
681
- /**
682
- * Load a package and store it in the loading manager. Returns the created scenegraph with the package at the root.
683
- * @param referenceId the reference id of the item that wants to load this
684
- * @param packageItem
685
- * @returns {Promise<SceneGraph>}
686
- */
687
- /*async loadPackage(referenceId: string, packageItem: PreparedItem) {
688
- let item = packageItem.packageContent!;
689
-
690
- const instance = this._getItemInstance(packageItem._id, referenceId);
691
- if (instance)
692
- return instance;
693
-
694
- this.addItem(item);
695
-
696
- if (packageItem.packageType === "Scene") {
697
- // Create a new scene from the package and return its scenegraph.
698
- const scene = new Scene(item, this.engine, this.renderer);
699
- this._setItemInstance(item._id, scene, referenceId);
700
- const s = await scene.create(false);
701
- return s.getSceneGraph();
702
- } else if (packageItem.packageType === "Mesh") {
703
- // Create a new scenegraph and a mesh item.
704
- await this.engine.createSceneGraph(item);
705
- const mesh = new Mesh(item, this.engine, this.renderer);
706
- this._setItemInstance(item._id, mesh, referenceId);
707
-
708
- // Add the mesh to the scenegraph.
709
- const meshItem = await mesh.create();
710
- this.engine.scene.add(meshItem.getObject());
711
-
712
- return this.engine.sceneGraph;
713
- } else {
714
- throw new Error("Unsupported package type.");
715
- }
716
- }*/
717
- setGpuRamQuota(value) {
718
- this.gpuRamQuota = value;
719
- }
720
- done() {
721
- this.active = false;
722
- this.printReport();
723
- }
724
- isActive() {
725
- return this.active;
726
- }
727
- reset() {
728
- this.itemsToLoad = [];
729
- this.itemsMap = new Map();
730
- this.itemsByTypeMap = new Map();
731
- this.itemsTypeMap = new Map();
732
- this.startTime = new Date();
733
- }
734
- async play() {
735
- const promises = [];
736
- for (const entry of this.itemsMap.values()) {
737
- if (entry.itemInstance) {
738
- promises.push(entry.itemInstance.play());
739
- }
740
- }
741
- await Promise.all(promises).catch(function (err) {
742
- console.error(err);
743
- });
744
- }
745
- async stop() {
746
- const promises = [];
747
- for (const entry of this.itemsMap.values()) {
748
- if (entry.itemInstance) {
749
- promises.push(entry.itemInstance.stop());
750
- }
751
- }
752
- await Promise.all(promises).catch(function (err) {
753
- console.error(err);
754
- });
755
- }
756
- getItemInstance(itemId, itemType) {
757
- const entry = this.itemsMap.get(itemId);
758
- if (!entry)
759
- return null;
760
- if (itemType !== undefined) {
761
- if (entry.item.type !== itemType)
762
- return null;
763
- }
764
- return entry.itemInstance;
765
- }
766
- getAllItemInstances() {
767
- const arr = [];
768
- for (const entry of this.itemsMap.values()) {
769
- if (entry.itemInstance)
770
- arr.push(entry.itemInstance);
771
- }
772
- return arr;
773
- }
774
- getItemsOfType(type) {
775
- const map = this._getItemMapForType(type);
776
- return Array.from(map.values());
777
- }
778
- getItemInstancesOfType(type) {
779
- const map = this._getItemMapForType(type);
780
- const arr = [];
781
- for (const entry of map.values()) {
782
- if (entry.itemInstance)
783
- arr.push(entry.itemInstance);
784
- }
785
- return arr;
786
- }
787
- getGpuRamQuotaLeft() {
788
- return this.gpuRamQuota - this.getTotalGpuRamUsage();
789
- }
790
- getSecondsToReady() {
791
- return this.secondsToReady;
792
- }
793
- getSecondsToFinished() {
794
- return this.secondsToFinished;
795
- }
796
- getProgressPercent() {
797
- let total = 0;
798
- for (const entry of this.itemsToLoad) {
799
- total += entry.progressPercent;
800
- }
801
- return total / this.itemsToLoad.length;
802
- }
803
- getProgressBytes() {
804
- let total = 0;
805
- let loaded = 0;
806
- for (const entry of this.itemsToLoad) {
807
- total += entry.bytesTotal;
808
- loaded += entry.bytesLoaded;
809
- }
810
- //console.log(`[DOWNLOAD] manager: ${loaded} of ${total}`);
811
- return {
812
- total, loaded
813
- };
814
- }
815
- initFromItem(item) {
816
- this._initFromItem(item);
817
- this.itemsToLoad.sort(function (a, b) {
818
- return a.item.name.localeCompare(b.item.name);
819
- });
820
- this.run();
821
- }
822
- _initFromItem(item) {
823
- this.addItem(item);
824
- this._initFromFields(item.fieldInstances);
825
- }
826
- _initFromFields(fields) {
827
- if (Array.isArray(fields)) {
828
- for (const field of fields) {
829
- if (field.type === "Link" && field.value && typeof field.value === 'object' && field.loadingManagerRule !== "ignore") {
830
- this._initFromItem(field.value);
831
- }
832
- if (field.blocks && field.blocks.length) {
833
- this._initFromBlocks(field.blocks);
834
- }
835
- }
836
- }
837
- }
838
- _initFromBlocks(blocks) {
839
- if (Array.isArray(blocks)) {
840
- for (const block of blocks) {
841
- if (block.fields && block.fields.length) {
842
- this._initFromFields(block.fields);
843
- }
844
- if (block.blocks && block.blocks.length) {
845
- this._initFromBlocks(block.blocks);
846
- }
847
- }
848
- }
849
- }
850
- removeItem(id) {
851
- if (!this.itemsMap.has(id)) {
852
- console.warn(`LoadingManager: Tried to remove item ${id} but it is not in map.`);
853
- return;
854
- }
855
- // Get the type of the item and remove that type from the list
856
- const type = this.itemsTypeMap.get(id);
857
- this.itemsTypeMap.delete(id);
858
- // Get the item from the item type map and delete it
859
- const arr = this._getItemMapForType(type);
860
- arr.delete(id);
861
- // Now delete from the main map and remove from the items to load
862
- this.itemsMap.delete(id);
863
- this.itemsToLoad.removeByFilterFunc(x => x.id === id);
864
- }
865
- addItem(item, alternateItemId) {
866
- const id = alternateItemId || item._id;
867
- if (this.itemsMap.has(id))
868
- return;
869
- const entry = {
870
- id: id,
871
- url: undefined,
872
- objectUrl: undefined,
873
- item: item,
874
- itemInstance: undefined,
875
- itemPrivateInstances: new Map(), // instances owned by a single reference, like prefabs or scenes.
876
- progressPercent: 0,
877
- bytesTotal: item.filesize || 0,
878
- bytesLoaded: 0,
879
- state: 0,
880
- gpuRamUsage: 0,
881
- projectedGpuRamUsage: 0,
882
- readyForUse: false,
883
- readyForLodIncrease: false,
884
- references: new Map(),
885
- unusedSince: undefined
886
- };
887
- this.itemsToLoad.push(entry);
888
- this.itemsMap.set(id, entry);
889
- this.itemsTypeMap.set(id, item.type);
890
- const typeMap = this._getItemMapForType(item.type);
891
- typeMap.set(id, entry);
892
- }
893
- _clearUnusedItemInstances() {
894
- const entriesToClear = [];
895
- const now = new Date();
896
- for (const entry of this.itemsMap.values()) {
897
- if (entry.unusedSince) {
898
- const diff = now.valueOf() - entry.unusedSince.valueOf();
899
- if (diff > this.deletionGracePeriodMs) {
900
- entriesToClear.push(entry);
901
- }
902
- }
903
- }
904
- let refreshEditorOutputOptions = false;
905
- for (const entry of entriesToClear) {
906
- // In case the item was a composition, we need to update the editor output options.
907
- if (entry.itemInstance instanceof CompositionItem)
908
- refreshEditorOutputOptions = true;
909
- if (entry.itemInstance) {
910
- try {
911
- const p = entry.itemInstance.destroy(false, true);
912
- if (p && p.catch) {
913
- p.catch((err) => {
914
- console.error(`LoadingManager: Error while destroying item instance of ${entry.id}`, err);
915
- });
916
- }
917
- }
918
- catch (err) {
919
- console.error(`LoadingManager: Error while destroying item instance of ${entry.id}`, err);
920
- }
921
- }
922
- entry.itemInstance = undefined;
923
- this.removeItem(entry.id);
924
- }
925
- if (refreshEditorOutputOptions)
926
- this.engine.renderer.updateEditorOutputOptions();
927
- if (entriesToClear.length)
928
- this.engine.eventBus.$emit('loadingManager:updated');
929
- }
930
- _getItemMapForType(type) {
931
- let map = this.itemsByTypeMap.get(type);
932
- if (map)
933
- return map;
934
- map = new Map();
935
- this.itemsByTypeMap.set(type, map);
936
- return map;
937
- }
938
- discard(id) {
939
- if (this.itemsMap.has(id)) {
940
- this.itemsMap.delete(id);
941
- for (let i = 0; i < this.itemsToLoad.length; i++) {
942
- if (this.itemsToLoad[i].id === id) {
943
- this.itemsToLoad.splice(i, 1);
944
- return;
945
- }
946
- }
947
- }
948
- }
949
- getItemCountToLoad() {
950
- let count = 0;
951
- for (const entry of this.itemsToLoad) {
952
- if (entry.state !== LoadingState.DONE)
953
- count++;
954
- }
955
- return count;
956
- }
957
- getIdByUrl(url) {
958
- for (const entry of this.itemsToLoad) {
959
- if (entry.url === url)
960
- return entry.id;
961
- }
962
- return null;
963
- }
964
- getIdByObjectUrl(objectUrl) {
965
- for (const entry of this.itemsToLoad) {
966
- if (entry.objectUrl === objectUrl)
967
- return entry.id;
968
- }
969
- return null;
970
- }
971
- setUrl(id, url) {
972
- let entry = this.itemsMap.get(id);
973
- if (entry) {
974
- entry.url = url;
975
- }
976
- }
977
- setObjectReady(id) {
978
- let entry = this.itemsMap.get(id);
979
- if (entry && entry.itemInstance) {
980
- entry.readyForLodIncrease = entry.itemInstance.hasMoreLodLevels();
981
- if (!entry.readyForLodIncrease)
982
- entry.itemInstance.markFinished();
983
- }
984
- }
985
- setObjectUrl(id, objectUrl) {
986
- let entry = this.itemsMap.get(id);
987
- if (entry) {
988
- entry.objectUrl = objectUrl;
989
- }
990
- }
991
- isAllReadyForUse() {
992
- return this.secondsToReady !== undefined;
993
- }
994
- isAllFinishedForUse() {
995
- return this.secondsToFinished !== undefined;
996
- }
997
- getGpuRamQuota() {
998
- return this.gpuRamQuota;
999
- }
1000
- getTotalGpuRamUsage() {
1001
- let sum = 0;
1002
- for (const entry of this.itemsToLoad) {
1003
- if (entry.projectedGpuRamUsage)
1004
- sum += entry.projectedGpuRamUsage;
1005
- else if (entry.gpuRamUsage)
1006
- sum += entry.gpuRamUsage;
1007
- }
1008
- return sum;
1009
- }
1010
- getTotalFilesize() {
1011
- let sum = 0;
1012
- for (const entry of this.itemsToLoad) {
1013
- sum += entry.item.filesize ? entry.item.filesize : 0;
1014
- }
1015
- return sum;
1016
- }
1017
- updateInfo(id) {
1018
- let entry = this.itemsMap.get(id);
1019
- if (entry && entry.itemInstance) {
1020
- entry.gpuRamUsage = entry.itemInstance.getGpuMemUsage();
1021
- entry.readyForUse = entry.itemInstance.isReadyForUse();
1022
- if (entry.projectedGpuRamUsage < entry.gpuRamUsage)
1023
- entry.projectedGpuRamUsage = entry.gpuRamUsage;
1024
- }
1025
- }
1026
- setProgress(id, state, progress) {
1027
- let entry = this.itemsMap.get(id);
1028
- if (entry) {
1029
- const stateChanged = entry.state !== state;
1030
- let gpuMemUsage = 0;
1031
- let isReadyForUse = true;
1032
- let instances = [entry.itemInstance, ...entry.itemPrivateInstances.values()];
1033
- for (const instance of instances) {
1034
- if (instance) {
1035
- gpuMemUsage += instance.getGpuMemUsage();
1036
- if (!instance.isReadyForUse())
1037
- isReadyForUse = false;
1038
- }
1039
- }
1040
- entry.state = state;
1041
- entry.gpuRamUsage = gpuMemUsage;
1042
- entry.readyForUse = isReadyForUse;
1043
- switch (state) {
1044
- case LoadingState.NONE:
1045
- entry.progressPercent = 0;
1046
- break;
1047
- case LoadingState.LOADING:
1048
- entry.progressPercent = progress || 0;
1049
- entry.bytesLoaded = entry.progressPercent / 100 * entry.bytesTotal;
1050
- if (stateChanged)
1051
- entry.startedLoading = new Date();
1052
- break;
1053
- case LoadingState.LOADED:
1054
- entry.progressPercent = 100;
1055
- entry.bytesLoaded = entry.bytesTotal;
1056
- if (stateChanged) {
1057
- entry.startedLoading = entry.startedLoading || new Date();
1058
- entry.finishedLoading = new Date();
1059
- entry.loadingTimeMs = entry.finishedLoading.valueOf() - entry.startedLoading.valueOf();
1060
- }
1061
- break;
1062
- case LoadingState.IMPORTING:
1063
- entry.progressPercent = 100;
1064
- entry.bytesLoaded = entry.bytesTotal;
1065
- if (stateChanged)
1066
- entry.startedImporting = new Date();
1067
- break;
1068
- case LoadingState.DONE:
1069
- entry.progressPercent = 100;
1070
- entry.bytesLoaded = entry.bytesTotal;
1071
- if (stateChanged) {
1072
- entry.startedImporting = entry.startedImporting || new Date();
1073
- entry.finishedImporting = new Date();
1074
- entry.importTimeMs = entry.finishedImporting.valueOf() - entry.startedImporting.valueOf();
1075
- }
1076
- break;
1077
- }
1078
- const countRemaining = this.getItemCountToLoad();
1079
- const stateString = this.getStateString(state);
1080
- if (this.debugMode)
1081
- console.log(entry.item.name + "(" + entry.item.type + "): " + stateString + " - Remaining: " + countRemaining);
1082
- }
1083
- else {
1084
- console.error("Trying to set progress on unknown item!", id, state, progress);
1085
- }
1086
- }
1087
- getStateString(state) {
1088
- switch (state) {
1089
- case LoadingState.NONE: return "NONE";
1090
- case LoadingState.LOADING: return "LOADING";
1091
- case LoadingState.LOADED: return "LOADED";
1092
- case LoadingState.IMPORTING: return "IMPORTING";
1093
- case LoadingState.DONE: return "DONE";
1094
- }
1095
- return `unknown(${state})`;
1096
- }
1097
- printReport() {
1098
- this.endTime = new Date();
1099
- this.totalTime = this.endTime.valueOf() - this.startTime.valueOf();
1100
- const itemCountToLoad = this.getItemCountToLoad();
1101
- console.log("Loading manager report:");
1102
- console.log("------------------------------------");
1103
- let loadedSize = 0;
1104
- let accumulatedTime = 0;
1105
- for (const entry of this.itemsToLoad) {
1106
- const state = this.getStateString(entry.state);
1107
- loadedSize += entry.item.filesize || 0;
1108
- const time = (entry.loadingTimeMs || 0) + (entry.importTimeMs || 0);
1109
- accumulatedTime += time;
1110
- console.log(`${entry.item.name} (${entry.item.type}) of size ${entry.item.filesize}: ${state} (time: ${time}ms)`);
1111
- }
1112
- const mb = Math.floor(loadedSize * 100 / 1024 / 1024) / 100;
1113
- console.log("------------------------------------");
1114
- console.log("Items in list :" + this.itemsToLoad.length);
1115
- console.log("Items remaining to load :" + itemCountToLoad);
1116
- console.log("Total filesize :" + mb + " MiB");
1117
- console.log("Accumulated time :" + accumulatedTime + " ms");
1118
- console.log("Total time :" + this.totalTime + " ms");
1119
- console.log("------------------------------------");
1120
- }
1121
- _handleRename({ id, newName }) {
1122
- for (const entry of this.itemsToLoad) {
1123
- if (entry.id === id) {
1124
- entry.item.name = newName;
1125
- this.engine.eventBus.$emit('loadingManager:updated');
1126
- return;
1127
- }
1128
- }
1129
- }
1130
- _markAllReadyItemsAsFinished() {
1131
- for (const entry of this.itemsToLoad) {
1132
- if (entry.itemInstance && entry.readyForLodIncrease) {
1133
- entry.readyForLodIncrease = false;
1134
- entry.itemInstance.markFinished();
1135
- }
1136
- }
1137
- }
1138
- _run() {
1139
- this._increaseLods();
1140
- }
1141
- _increaseLods() {
1142
- // We will not increase any LOD levels unless all objects are at least loaded in their lowest LOD
1143
- if (!this.readyTime)
1144
- return;
1145
- let gpuMemQuotaLeft = this.getGpuRamQuotaLeft();
1146
- if (gpuMemQuotaLeft <= 0) {
1147
- this._markAllReadyItemsAsFinished();
1148
- return;
1149
- }
1150
- for (const entry of this.itemsToLoad) {
1151
- if (entry.itemInstance && entry.readyForLodIncrease) {
1152
- try {
1153
- const memUsage = entry.itemInstance.getNextLodLevelGpuMemUsage();
1154
- if (gpuMemQuotaLeft >= memUsage) {
1155
- if (this.debugMode)
1156
- console.log(`Increasing LOD of ${entry.item.name} to ${entry.itemInstance.activeLodLevel}`);
1157
- gpuMemQuotaLeft -= memUsage;
1158
- entry.projectedGpuRamUsage = memUsage;
1159
- entry.readyForLodIncrease = false;
1160
- entry.itemInstance.increaseLodLevel();
1161
- }
1162
- else {
1163
- entry.readyForLodIncrease = false;
1164
- entry.itemInstance.markFinished();
1165
- }
1166
- }
1167
- catch (err) {
1168
- console.error(err);
1169
- }
1170
- }
1171
- }
1172
- }
1173
- _ready() {
1174
- if (!this.readyTime) {
1175
- this.readyTime = new Date();
1176
- this.secondsToReady = (this.readyTime.valueOf() - this.startTime.valueOf()) / 1000;
1177
- console.log("[TIMING] Seconds to ready: " + this.secondsToReady);
1178
- this.engine.eventBus.$emit('loadingManager:readyForUse');
1179
- }
1180
- }
1181
- _finished() {
1182
- this._ready();
1183
- if (!this.finishedTime) {
1184
- if (!this.readyTime) {
1185
- this.readyTime = new Date();
1186
- this.secondsToReady = (this.readyTime.valueOf() - this.startTime.valueOf()) / 1000;
1187
- }
1188
- this.finishedTime = new Date();
1189
- this.secondsToFinished = (this.finishedTime.valueOf() - this.startTime.valueOf()) / 1000;
1190
- console.log("[TIMING] Seconds to finished: " + this.secondsToFinished);
1191
- this.engine.eventBus.$emit('loadingManager:finishedForUse');
1192
- }
1193
- }
1194
- }
1195
- //# sourceMappingURL=LoadingManager.js.map