@combeenation/3d-viewer 5.1.2 → 5.2.0-alpha1

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 (322) hide show
  1. package/README.md +111 -111
  2. package/dist/lib-cjs/buildinfo.json +3 -3
  3. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -0
  4. package/dist/lib-cjs/{api → src/api}/classes/animationInterface.d.ts +8 -8
  5. package/dist/lib-cjs/src/api/classes/animationInterface.js +3 -0
  6. package/dist/lib-cjs/src/api/classes/animationInterface.js.map +1 -0
  7. package/dist/{lib-es6 → lib-cjs/src}/api/classes/dottedPath.d.ts +79 -79
  8. package/dist/lib-cjs/src/api/classes/dottedPath.js +167 -0
  9. package/dist/lib-cjs/src/api/classes/dottedPath.js.map +1 -0
  10. package/dist/lib-cjs/{api → src/api}/classes/element.d.ts +149 -149
  11. package/dist/lib-cjs/src/api/classes/element.js +669 -0
  12. package/dist/lib-cjs/src/api/classes/element.js.map +1 -0
  13. package/dist/{lib-es6 → lib-cjs/src}/api/classes/event.d.ts +326 -326
  14. package/dist/lib-cjs/src/api/classes/event.js +350 -0
  15. package/dist/lib-cjs/src/api/classes/event.js.map +1 -0
  16. package/dist/{lib-es6 → lib-cjs/src}/api/classes/eventBroadcaster.d.ts +26 -26
  17. package/dist/lib-cjs/src/api/classes/eventBroadcaster.js +50 -0
  18. package/dist/lib-cjs/src/api/classes/eventBroadcaster.js.map +1 -0
  19. package/dist/{lib-es6 → lib-cjs/src}/api/classes/parameter.d.ts +336 -336
  20. package/dist/lib-cjs/src/api/classes/parameter.js +462 -0
  21. package/dist/lib-cjs/src/api/classes/parameter.js.map +1 -0
  22. package/dist/lib-cjs/{api → src/api}/classes/parameterObservable.d.ts +36 -36
  23. package/dist/lib-cjs/src/api/classes/parameterObservable.js +98 -0
  24. package/dist/lib-cjs/src/api/classes/parameterObservable.js.map +1 -0
  25. package/dist/lib-cjs/{api → src/api}/classes/parameterizable.d.ts +15 -15
  26. package/dist/lib-cjs/src/api/classes/parameterizable.js +103 -0
  27. package/dist/lib-cjs/src/api/classes/parameterizable.js.map +1 -0
  28. package/dist/lib-cjs/{api → src/api}/classes/placementAnimation.d.ts +45 -44
  29. package/dist/lib-cjs/{api → src/api}/classes/placementAnimation.js +175 -163
  30. package/dist/lib-cjs/src/api/classes/placementAnimation.js.map +1 -0
  31. package/dist/{lib-es6 → lib-cjs/src}/api/classes/variant.d.ts +234 -234
  32. package/dist/lib-cjs/src/api/classes/variant.js +837 -0
  33. package/dist/lib-cjs/src/api/classes/variant.js.map +1 -0
  34. package/dist/lib-cjs/{api → src/api}/classes/variantInstance.d.ts +45 -45
  35. package/dist/lib-cjs/src/api/classes/variantInstance.js +102 -0
  36. package/dist/lib-cjs/src/api/classes/variantInstance.js.map +1 -0
  37. package/dist/{lib-es6 → lib-cjs/src}/api/classes/variantParameterizable.d.ts +17 -17
  38. package/dist/lib-cjs/src/api/classes/variantParameterizable.js +89 -0
  39. package/dist/lib-cjs/src/api/classes/variantParameterizable.js.map +1 -0
  40. package/dist/lib-cjs/{api → src/api}/classes/viewer.d.ts +187 -184
  41. package/dist/lib-cjs/src/api/classes/viewer.js +594 -0
  42. package/dist/lib-cjs/src/api/classes/viewer.js.map +1 -0
  43. package/dist/lib-cjs/{api → src/api}/classes/viewerLight.d.ts +66 -66
  44. package/dist/lib-cjs/src/api/classes/viewerLight.js +344 -0
  45. package/dist/lib-cjs/src/api/classes/viewerLight.js.map +1 -0
  46. package/dist/{lib-es6 → lib-cjs/src}/api/internal/lensRendering.d.ts +8 -8
  47. package/dist/lib-cjs/{api → src/api}/internal/lensRendering.js +11 -11
  48. package/dist/lib-cjs/src/api/internal/lensRendering.js.map +1 -0
  49. package/dist/{lib-es6 → lib-cjs/src}/api/internal/sceneSetup.d.ts +13 -13
  50. package/dist/lib-cjs/src/api/internal/sceneSetup.js +226 -0
  51. package/dist/lib-cjs/src/api/internal/sceneSetup.js.map +1 -0
  52. package/dist/lib-cjs/{api → src/api}/manager/animationManager.d.ts +30 -29
  53. package/dist/lib-cjs/src/api/manager/animationManager.js +127 -0
  54. package/dist/lib-cjs/src/api/manager/animationManager.js.map +1 -0
  55. package/dist/lib-cjs/{api → src/api}/manager/gltfExportManager.d.ts +65 -65
  56. package/dist/lib-cjs/src/api/manager/gltfExportManager.js +197 -0
  57. package/dist/lib-cjs/src/api/manager/gltfExportManager.js.map +1 -0
  58. package/dist/lib-cjs/{api → src/api}/manager/sceneManager.d.ts +31 -31
  59. package/dist/lib-cjs/src/api/manager/sceneManager.js +128 -0
  60. package/dist/lib-cjs/src/api/manager/sceneManager.js.map +1 -0
  61. package/dist/{lib-es6 → lib-cjs/src}/api/manager/variantInstanceManager.d.ts +92 -92
  62. package/dist/lib-cjs/src/api/manager/variantInstanceManager.js +261 -0
  63. package/dist/lib-cjs/src/api/manager/variantInstanceManager.js.map +1 -0
  64. package/dist/{lib-es6 → lib-cjs/src}/api/store/specStorage.d.ts +24 -24
  65. package/dist/lib-cjs/{api → src/api}/store/specStorage.js +50 -51
  66. package/dist/lib-cjs/src/api/store/specStorage.js.map +1 -0
  67. package/dist/{lib-es6 → lib-cjs/src}/api/util/babylonHelper.d.ts +174 -174
  68. package/dist/lib-cjs/{api → src/api}/util/babylonHelper.js +591 -611
  69. package/dist/lib-cjs/src/api/util/babylonHelper.js.map +1 -0
  70. package/dist/{lib-es6 → lib-cjs/src}/api/util/globalTypes.d.ts +366 -366
  71. package/dist/lib-cjs/src/api/util/globalTypes.js +2 -0
  72. package/dist/lib-cjs/src/api/util/globalTypes.js.map +1 -0
  73. package/dist/lib-cjs/{api → src/api}/util/resourceHelper.d.ts +58 -58
  74. package/dist/lib-cjs/src/api/util/resourceHelper.js +202 -0
  75. package/dist/lib-cjs/src/api/util/resourceHelper.js.map +1 -0
  76. package/dist/lib-cjs/{api → src/api}/util/sceneLoaderHelper.d.ts +35 -35
  77. package/dist/lib-cjs/{api → src/api}/util/sceneLoaderHelper.js +141 -140
  78. package/dist/lib-cjs/src/api/util/sceneLoaderHelper.js.map +1 -0
  79. package/dist/{lib-es6 → lib-cjs/src}/api/util/stringHelper.d.ts +9 -9
  80. package/dist/lib-cjs/{api → src/api}/util/stringHelper.js +23 -25
  81. package/dist/lib-cjs/src/api/util/stringHelper.js.map +1 -0
  82. package/dist/{lib-es6 → lib-cjs/src}/api/util/structureHelper.d.ts +9 -9
  83. package/dist/lib-cjs/{api → src/api}/util/structureHelper.js +48 -48
  84. package/dist/lib-cjs/src/api/util/structureHelper.js.map +1 -0
  85. package/dist/lib-cjs/{index.d.ts → src/index.d.ts} +51 -49
  86. package/dist/lib-cjs/{index.js → src/index.js} +110 -89
  87. package/dist/lib-cjs/src/index.js.map +1 -0
  88. package/dist/lib-es6/buildinfo.json +3 -3
  89. package/dist/lib-es6/es6.tsconfig.tsbuildinfo +1 -0
  90. package/dist/lib-es6/{api → src/api}/classes/animationInterface.d.ts +8 -8
  91. package/dist/lib-es6/src/api/classes/animationInterface.js +2 -0
  92. package/dist/lib-es6/src/api/classes/animationInterface.js.map +1 -0
  93. package/dist/{lib-cjs → lib-es6/src}/api/classes/dottedPath.d.ts +79 -79
  94. package/dist/lib-es6/src/api/classes/dottedPath.js +163 -0
  95. package/dist/lib-es6/src/api/classes/dottedPath.js.map +1 -0
  96. package/dist/lib-es6/{api → src/api}/classes/element.d.ts +149 -149
  97. package/dist/lib-es6/src/api/classes/element.js +665 -0
  98. package/dist/lib-es6/src/api/classes/element.js.map +1 -0
  99. package/dist/{lib-cjs → lib-es6/src}/api/classes/event.d.ts +326 -326
  100. package/dist/lib-es6/src/api/classes/event.js +346 -0
  101. package/dist/lib-es6/src/api/classes/event.js.map +1 -0
  102. package/dist/{lib-cjs → lib-es6/src}/api/classes/eventBroadcaster.d.ts +26 -26
  103. package/dist/lib-es6/src/api/classes/eventBroadcaster.js +43 -0
  104. package/dist/lib-es6/src/api/classes/eventBroadcaster.js.map +1 -0
  105. package/dist/{lib-cjs → lib-es6/src}/api/classes/parameter.d.ts +336 -336
  106. package/dist/lib-es6/src/api/classes/parameter.js +458 -0
  107. package/dist/lib-es6/src/api/classes/parameter.js.map +1 -0
  108. package/dist/lib-es6/{api → src/api}/classes/parameterObservable.d.ts +36 -36
  109. package/dist/lib-es6/src/api/classes/parameterObservable.js +94 -0
  110. package/dist/lib-es6/src/api/classes/parameterObservable.js.map +1 -0
  111. package/dist/lib-es6/{api → src/api}/classes/parameterizable.d.ts +15 -15
  112. package/dist/lib-es6/src/api/classes/parameterizable.js +99 -0
  113. package/dist/lib-es6/src/api/classes/parameterizable.js.map +1 -0
  114. package/dist/lib-es6/{api → src/api}/classes/placementAnimation.d.ts +45 -44
  115. package/dist/lib-es6/{api → src/api}/classes/placementAnimation.js +171 -160
  116. package/dist/lib-es6/src/api/classes/placementAnimation.js.map +1 -0
  117. package/dist/{lib-cjs → lib-es6/src}/api/classes/variant.d.ts +234 -234
  118. package/dist/lib-es6/src/api/classes/variant.js +833 -0
  119. package/dist/lib-es6/src/api/classes/variant.js.map +1 -0
  120. package/dist/lib-es6/{api → src/api}/classes/variantInstance.d.ts +45 -45
  121. package/dist/lib-es6/src/api/classes/variantInstance.js +98 -0
  122. package/dist/lib-es6/src/api/classes/variantInstance.js.map +1 -0
  123. package/dist/{lib-cjs → lib-es6/src}/api/classes/variantParameterizable.d.ts +17 -17
  124. package/dist/lib-es6/src/api/classes/variantParameterizable.js +85 -0
  125. package/dist/lib-es6/src/api/classes/variantParameterizable.js.map +1 -0
  126. package/dist/lib-es6/{api → src/api}/classes/viewer.d.ts +187 -184
  127. package/dist/lib-es6/src/api/classes/viewer.js +587 -0
  128. package/dist/lib-es6/src/api/classes/viewer.js.map +1 -0
  129. package/dist/lib-es6/{api → src/api}/classes/viewerLight.d.ts +66 -66
  130. package/dist/lib-es6/src/api/classes/viewerLight.js +317 -0
  131. package/dist/lib-es6/src/api/classes/viewerLight.js.map +1 -0
  132. package/dist/{lib-cjs → lib-es6/src}/api/internal/lensRendering.d.ts +8 -8
  133. package/dist/lib-es6/{api → src/api}/internal/lensRendering.js +8 -8
  134. package/dist/lib-es6/src/api/internal/lensRendering.js.map +1 -0
  135. package/dist/{lib-cjs → lib-es6/src}/api/internal/sceneSetup.d.ts +13 -13
  136. package/dist/lib-es6/src/api/internal/sceneSetup.js +198 -0
  137. package/dist/lib-es6/src/api/internal/sceneSetup.js.map +1 -0
  138. package/dist/lib-es6/{api → src/api}/manager/animationManager.d.ts +30 -29
  139. package/dist/lib-es6/src/api/manager/animationManager.js +123 -0
  140. package/dist/lib-es6/src/api/manager/animationManager.js.map +1 -0
  141. package/dist/lib-es6/{api → src/api}/manager/gltfExportManager.d.ts +65 -65
  142. package/dist/lib-es6/{api → src/api}/manager/gltfExportManager.js +192 -220
  143. package/dist/lib-es6/src/api/manager/gltfExportManager.js.map +1 -0
  144. package/dist/lib-es6/{api → src/api}/manager/sceneManager.d.ts +31 -31
  145. package/dist/lib-es6/src/api/manager/sceneManager.js +124 -0
  146. package/dist/lib-es6/src/api/manager/sceneManager.js.map +1 -0
  147. package/dist/{lib-cjs → lib-es6/src}/api/manager/variantInstanceManager.d.ts +92 -92
  148. package/dist/lib-es6/src/api/manager/variantInstanceManager.js +257 -0
  149. package/dist/lib-es6/src/api/manager/variantInstanceManager.js.map +1 -0
  150. package/dist/{lib-cjs → lib-es6/src}/api/store/specStorage.d.ts +24 -24
  151. package/dist/lib-es6/{api → src/api}/store/specStorage.js +46 -48
  152. package/dist/lib-es6/src/api/store/specStorage.js.map +1 -0
  153. package/dist/{lib-cjs → lib-es6/src}/api/util/babylonHelper.d.ts +174 -174
  154. package/dist/lib-es6/{api → src/api}/util/babylonHelper.js +561 -581
  155. package/dist/lib-es6/src/api/util/babylonHelper.js.map +1 -0
  156. package/dist/{lib-cjs → lib-es6/src}/api/util/globalTypes.d.ts +366 -366
  157. package/dist/lib-es6/src/api/util/globalTypes.js +2 -0
  158. package/dist/lib-es6/src/api/util/globalTypes.js.map +1 -0
  159. package/dist/lib-es6/{api → src/api}/util/resourceHelper.d.ts +58 -58
  160. package/dist/lib-es6/src/api/util/resourceHelper.js +192 -0
  161. package/dist/lib-es6/src/api/util/resourceHelper.js.map +1 -0
  162. package/dist/lib-es6/{api → src/api}/util/sceneLoaderHelper.d.ts +35 -35
  163. package/dist/lib-es6/{api → src/api}/util/sceneLoaderHelper.js +131 -133
  164. package/dist/lib-es6/src/api/util/sceneLoaderHelper.js.map +1 -0
  165. package/dist/{lib-cjs → lib-es6/src}/api/util/stringHelper.d.ts +9 -9
  166. package/dist/lib-es6/{api → src/api}/util/stringHelper.js +19 -21
  167. package/dist/lib-es6/src/api/util/stringHelper.js.map +1 -0
  168. package/dist/{lib-cjs → lib-es6/src}/api/util/structureHelper.d.ts +9 -9
  169. package/dist/lib-es6/{api → src/api}/util/structureHelper.js +45 -45
  170. package/dist/lib-es6/src/api/util/structureHelper.js.map +1 -0
  171. package/dist/lib-es6/{index.js → src/index.d.ts} +51 -51
  172. package/dist/lib-es6/{index.d.ts → src/index.js} +49 -49
  173. package/dist/lib-es6/src/index.js.map +1 -0
  174. package/dist/lib-full/lens-rendering.js +2 -0
  175. package/dist/lib-full/lens-rendering.js.map +1 -0
  176. package/dist/lib-full/main.js +3 -0
  177. package/dist/lib-full/main.js.LICENSE.txt +9 -0
  178. package/dist/lib-full/main.js.map +1 -0
  179. package/package.json +76 -88
  180. package/src/api/classes/animationInterface.ts +10 -10
  181. package/src/api/classes/dottedPath.ts +181 -181
  182. package/src/api/classes/element.ts +716 -716
  183. package/src/api/classes/event.ts +367 -367
  184. package/src/api/classes/eventBroadcaster.ts +52 -52
  185. package/src/api/classes/parameter.ts +494 -494
  186. package/src/api/classes/parameterObservable.ts +100 -100
  187. package/src/api/classes/parameterizable.ts +87 -87
  188. package/src/api/classes/placementAnimation.ts +161 -160
  189. package/src/api/classes/variant.ts +904 -905
  190. package/src/api/classes/variantInstance.ts +97 -97
  191. package/src/api/classes/variantParameterizable.ts +85 -85
  192. package/src/api/classes/viewer.ts +669 -668
  193. package/src/api/classes/viewerLight.ts +334 -334
  194. package/src/api/internal/debugViewer.ts +90 -90
  195. package/src/api/internal/lensRendering.ts +9 -10
  196. package/src/api/internal/sceneSetup.ts +204 -204
  197. package/src/api/manager/animationManager.ts +143 -142
  198. package/src/api/manager/gltfExportManager.ts +191 -191
  199. package/src/api/manager/sceneManager.ts +127 -127
  200. package/src/api/manager/variantInstanceManager.ts +265 -265
  201. package/src/api/store/specStorage.ts +51 -51
  202. package/src/api/util/babylonHelper.ts +663 -663
  203. package/src/api/util/globalTypes.ts +413 -413
  204. package/src/api/util/resourceHelper.ts +189 -189
  205. package/src/api/util/sceneLoaderHelper.ts +148 -147
  206. package/src/api/util/stringHelper.ts +23 -23
  207. package/src/api/util/structureHelper.ts +49 -49
  208. package/src/dev.ts +61 -64
  209. package/src/index.ts +96 -94
  210. package/src/types.d.ts +28 -28
  211. package/dist/lib-cjs/api/classes/animationInterface.js +0 -2
  212. package/dist/lib-cjs/api/classes/animationInterface.js.map +0 -1
  213. package/dist/lib-cjs/api/classes/dottedPath.js +0 -188
  214. package/dist/lib-cjs/api/classes/dottedPath.js.map +0 -1
  215. package/dist/lib-cjs/api/classes/element.js +0 -824
  216. package/dist/lib-cjs/api/classes/element.js.map +0 -1
  217. package/dist/lib-cjs/api/classes/elementParameterizable.d.ts +0 -14
  218. package/dist/lib-cjs/api/classes/elementParameterizable.js +0 -135
  219. package/dist/lib-cjs/api/classes/elementParameterizable.js.map +0 -1
  220. package/dist/lib-cjs/api/classes/event.js +0 -372
  221. package/dist/lib-cjs/api/classes/event.js.map +0 -1
  222. package/dist/lib-cjs/api/classes/eventBroadcaster.js +0 -54
  223. package/dist/lib-cjs/api/classes/eventBroadcaster.js.map +0 -1
  224. package/dist/lib-cjs/api/classes/parameter.js +0 -472
  225. package/dist/lib-cjs/api/classes/parameter.js.map +0 -1
  226. package/dist/lib-cjs/api/classes/parameterObservable.js +0 -102
  227. package/dist/lib-cjs/api/classes/parameterObservable.js.map +0 -1
  228. package/dist/lib-cjs/api/classes/parameterizable.js +0 -150
  229. package/dist/lib-cjs/api/classes/parameterizable.js.map +0 -1
  230. package/dist/lib-cjs/api/classes/placementAnimation.js.map +0 -1
  231. package/dist/lib-cjs/api/classes/variant.js +0 -1204
  232. package/dist/lib-cjs/api/classes/variant.js.map +0 -1
  233. package/dist/lib-cjs/api/classes/variantInstance.js +0 -109
  234. package/dist/lib-cjs/api/classes/variantInstance.js.map +0 -1
  235. package/dist/lib-cjs/api/classes/variantParameterizable.js +0 -100
  236. package/dist/lib-cjs/api/classes/variantParameterizable.js.map +0 -1
  237. package/dist/lib-cjs/api/classes/viewer.js +0 -732
  238. package/dist/lib-cjs/api/classes/viewer.js.map +0 -1
  239. package/dist/lib-cjs/api/classes/viewerLight.js +0 -393
  240. package/dist/lib-cjs/api/classes/viewerLight.js.map +0 -1
  241. package/dist/lib-cjs/api/internal/debugViewer.d.ts +0 -13
  242. package/dist/lib-cjs/api/internal/debugViewer.js +0 -87
  243. package/dist/lib-cjs/api/internal/debugViewer.js.map +0 -1
  244. package/dist/lib-cjs/api/internal/lensRendering.js.map +0 -1
  245. package/dist/lib-cjs/api/internal/sceneSetup.js +0 -239
  246. package/dist/lib-cjs/api/internal/sceneSetup.js.map +0 -1
  247. package/dist/lib-cjs/api/manager/animationManager.js +0 -131
  248. package/dist/lib-cjs/api/manager/animationManager.js.map +0 -1
  249. package/dist/lib-cjs/api/manager/gltfExportManager.js +0 -224
  250. package/dist/lib-cjs/api/manager/gltfExportManager.js.map +0 -1
  251. package/dist/lib-cjs/api/manager/sceneManager.js +0 -153
  252. package/dist/lib-cjs/api/manager/sceneManager.js.map +0 -1
  253. package/dist/lib-cjs/api/manager/variantInstanceManager.js +0 -336
  254. package/dist/lib-cjs/api/manager/variantInstanceManager.js.map +0 -1
  255. package/dist/lib-cjs/api/store/specStorage.js.map +0 -1
  256. package/dist/lib-cjs/api/util/babylonHelper.js.map +0 -1
  257. package/dist/lib-cjs/api/util/globalTypes.js +0 -2
  258. package/dist/lib-cjs/api/util/globalTypes.js.map +0 -1
  259. package/dist/lib-cjs/api/util/resourceHelper.js +0 -258
  260. package/dist/lib-cjs/api/util/resourceHelper.js.map +0 -1
  261. package/dist/lib-cjs/api/util/sceneLoaderHelper.js.map +0 -1
  262. package/dist/lib-cjs/api/util/stringHelper.js.map +0 -1
  263. package/dist/lib-cjs/api/util/structureHelper.js.map +0 -1
  264. package/dist/lib-cjs/index.js.map +0 -1
  265. package/dist/lib-es6/api/classes/animationInterface.js +0 -2
  266. package/dist/lib-es6/api/classes/animationInterface.js.map +0 -1
  267. package/dist/lib-es6/api/classes/dottedPath.js +0 -185
  268. package/dist/lib-es6/api/classes/dottedPath.js.map +0 -1
  269. package/dist/lib-es6/api/classes/element.js +0 -821
  270. package/dist/lib-es6/api/classes/element.js.map +0 -1
  271. package/dist/lib-es6/api/classes/event.js +0 -369
  272. package/dist/lib-es6/api/classes/event.js.map +0 -1
  273. package/dist/lib-es6/api/classes/eventBroadcaster.js +0 -51
  274. package/dist/lib-es6/api/classes/eventBroadcaster.js.map +0 -1
  275. package/dist/lib-es6/api/classes/parameter.js +0 -469
  276. package/dist/lib-es6/api/classes/parameter.js.map +0 -1
  277. package/dist/lib-es6/api/classes/parameterObservable.js +0 -99
  278. package/dist/lib-es6/api/classes/parameterObservable.js.map +0 -1
  279. package/dist/lib-es6/api/classes/parameterizable.js +0 -147
  280. package/dist/lib-es6/api/classes/parameterizable.js.map +0 -1
  281. package/dist/lib-es6/api/classes/placementAnimation.js.map +0 -1
  282. package/dist/lib-es6/api/classes/variant.js +0 -1199
  283. package/dist/lib-es6/api/classes/variant.js.map +0 -1
  284. package/dist/lib-es6/api/classes/variantInstance.js +0 -106
  285. package/dist/lib-es6/api/classes/variantInstance.js.map +0 -1
  286. package/dist/lib-es6/api/classes/variantParameterizable.js +0 -97
  287. package/dist/lib-es6/api/classes/variantParameterizable.js.map +0 -1
  288. package/dist/lib-es6/api/classes/viewer.js +0 -729
  289. package/dist/lib-es6/api/classes/viewer.js.map +0 -1
  290. package/dist/lib-es6/api/classes/viewerLight.js +0 -390
  291. package/dist/lib-es6/api/classes/viewerLight.js.map +0 -1
  292. package/dist/lib-es6/api/internal/debugViewer.d.ts +0 -13
  293. package/dist/lib-es6/api/internal/debugViewer.js +0 -84
  294. package/dist/lib-es6/api/internal/debugViewer.js.map +0 -1
  295. package/dist/lib-es6/api/internal/lensRendering.js.map +0 -1
  296. package/dist/lib-es6/api/internal/sceneSetup.js +0 -234
  297. package/dist/lib-es6/api/internal/sceneSetup.js.map +0 -1
  298. package/dist/lib-es6/api/manager/animationManager.js +0 -128
  299. package/dist/lib-es6/api/manager/animationManager.js.map +0 -1
  300. package/dist/lib-es6/api/manager/gltfExportManager.js.map +0 -1
  301. package/dist/lib-es6/api/manager/sceneManager.js +0 -150
  302. package/dist/lib-es6/api/manager/sceneManager.js.map +0 -1
  303. package/dist/lib-es6/api/manager/variantInstanceManager.js +0 -333
  304. package/dist/lib-es6/api/manager/variantInstanceManager.js.map +0 -1
  305. package/dist/lib-es6/api/store/specStorage.js.map +0 -1
  306. package/dist/lib-es6/api/util/babylonHelper.js.map +0 -1
  307. package/dist/lib-es6/api/util/globalTypes.js +0 -2
  308. package/dist/lib-es6/api/util/globalTypes.js.map +0 -1
  309. package/dist/lib-es6/api/util/resourceHelper.js +0 -248
  310. package/dist/lib-es6/api/util/resourceHelper.js.map +0 -1
  311. package/dist/lib-es6/api/util/sceneLoaderHelper.js.map +0 -1
  312. package/dist/lib-es6/api/util/stringHelper.js.map +0 -1
  313. package/dist/lib-es6/api/util/structureHelper.js.map +0 -1
  314. package/dist/lib-es6/index.js.map +0 -1
  315. package/dist/webpack-stats.json +0 -0
  316. package/src/buildinfo.json +0 -3
  317. package/src/commonjs.tsconfig.json +0 -10
  318. package/src/declaration.tsconfig.json +0 -8
  319. package/src/es6.tsconfig.json +0 -10
  320. package/src/pagesconfig.json +0 -81
  321. package/src/tsconfig.json +0 -33
  322. package/src/tsconfig.types.json +0 -9
@@ -1,15 +1,15 @@
1
- import { ParameterObservable } from './parameterObservable';
2
- export declare abstract class Parameterizable extends ParameterObservable {
3
- protected parameterDeclaration: ParameterDeclarations;
4
- get visible(): boolean | undefined;
5
- get highlighted(): boolean | undefined;
6
- get material(): string | undefined;
7
- get scaling(): string | undefined;
8
- get position(): string | undefined;
9
- get rotation(): string | undefined;
10
- get castShadow(): boolean | undefined;
11
- show(): Promise<ParameterObservable>;
12
- hide(): Promise<ParameterObservable>;
13
- toggle(): Promise<ParameterObservable>;
14
- toggleHighlight(): Promise<ParameterObservable>;
15
- }
1
+ import { ParameterObservable } from './parameterObservable';
2
+ export declare abstract class Parameterizable extends ParameterObservable {
3
+ protected parameterDeclaration: ParameterDeclarations;
4
+ get visible(): boolean | undefined;
5
+ get highlighted(): boolean | undefined;
6
+ get material(): string | undefined;
7
+ get scaling(): string | undefined;
8
+ get position(): string | undefined;
9
+ get rotation(): string | undefined;
10
+ get castShadow(): boolean | undefined;
11
+ show(): Promise<ParameterObservable>;
12
+ hide(): Promise<ParameterObservable>;
13
+ toggle(): Promise<ParameterObservable>;
14
+ toggleHighlight(): Promise<ParameterObservable>;
15
+ }
@@ -0,0 +1,99 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { Parameter } from './parameter';
11
+ import { ParameterObservable } from './parameterObservable';
12
+ export class Parameterizable extends ParameterObservable {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.parameterDeclaration = Parameter.declarations;
16
+ }
17
+ get visible() {
18
+ if (!(Parameter.VISIBLE in this.parameters)) {
19
+ return undefined;
20
+ }
21
+ try {
22
+ return Parameter.parseBoolean(this.parameters[Parameter.VISIBLE]);
23
+ }
24
+ catch (e) {
25
+ return undefined;
26
+ }
27
+ }
28
+ get highlighted() {
29
+ if (!(Parameter.HIGHLIGHTED in this.parameters)) {
30
+ return undefined;
31
+ }
32
+ try {
33
+ return Parameter.parseBoolean(this.parameters[Parameter.HIGHLIGHTED]);
34
+ }
35
+ catch (e) {
36
+ return undefined;
37
+ }
38
+ }
39
+ get material() {
40
+ if (!(Parameter.MATERIAL in this.parameters)) {
41
+ return undefined;
42
+ }
43
+ return this.parameters[Parameter.MATERIAL].toString();
44
+ }
45
+ get scaling() {
46
+ if (!(Parameter.SCALING in this.parameters)) {
47
+ return undefined;
48
+ }
49
+ return this.parameters[Parameter.SCALING].toString();
50
+ }
51
+ get position() {
52
+ if (!(Parameter.POSITION in this.parameters)) {
53
+ return undefined;
54
+ }
55
+ return this.parameters[Parameter.POSITION].toString();
56
+ }
57
+ get rotation() {
58
+ if (!(Parameter.ROTATION in this.parameters)) {
59
+ return undefined;
60
+ }
61
+ return this.parameters[Parameter.ROTATION].toString();
62
+ }
63
+ get castShadow() {
64
+ if (!(Parameter.CAST_SHADOW in this.parameters)) {
65
+ return undefined;
66
+ }
67
+ try {
68
+ return Parameter.parseBoolean(this.parameters[Parameter.CAST_SHADOW]);
69
+ }
70
+ catch (e) {
71
+ return undefined;
72
+ }
73
+ }
74
+ show() {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ yield this.commitParameter(Parameter.VISIBLE, true);
77
+ return this;
78
+ });
79
+ }
80
+ hide() {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ yield this.commitParameter(Parameter.VISIBLE, false);
83
+ return this;
84
+ });
85
+ }
86
+ toggle() {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ yield this.commitParameter(Parameter.VISIBLE, !this.visible);
89
+ return this;
90
+ });
91
+ }
92
+ toggleHighlight() {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ yield this.commitParameter(Parameter.HIGHLIGHTED, !this.highlighted);
95
+ return this;
96
+ });
97
+ }
98
+ }
99
+ //# sourceMappingURL=parameterizable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameterizable.js","sourceRoot":"","sources":["../../../../../src/api/classes/parameterizable.ts"],"names":[],"mappings":"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"}
@@ -1,44 +1,45 @@
1
- /// <reference types="gsap" />
2
- /**
3
- * An {@link PlacementAnimation} handling `Tweens` of the `GSAP` API using configured {@link PlacementDefinition}s
4
- * and {@link AnimationDefinition}s. It mutates the attributes in the given {@link PlacementDefinition} with the given
5
- * {@link AnimationDefinition}. The latter can be anything the `GSAP` allows in its API. Please consider using the
6
- * API of the {@link AnimationManager} to handle instances of this class in your consuming project.
7
- */
8
- export declare class PlacementAnimation implements AnimationInterface {
9
- readonly mutable: object;
10
- protected _placement: PlacementDefinition | string;
11
- protected _animation?: string | AnimationDefinition | undefined;
12
- protected _placementDefinition: PlacementDefinition;
13
- protected _animationDefinition: AnimationDefinition;
14
- protected _timeline: GSAPTimeline;
15
- /**
16
- * Constructor.
17
- */
18
- constructor(mutable: object, _placement: PlacementDefinition | string, _animation?: string | AnimationDefinition | undefined);
19
- /**
20
- * Plays all `Tweens` of this {@link PlacementAnimation}.
21
- */
22
- play(): Promise<AnimationInterface>;
23
- /**
24
- * Pause all `Tweens` of this {@link PlacementAnimation}.
25
- */
26
- pause(): AnimationInterface;
27
- /**
28
- * Kills all `Tweens` of this {@link PlacementAnimation}.
29
- */
30
- kill(): AnimationInterface;
31
- /**
32
- * Creates a {@link AnimationDefinition} definition if not provided in the constructor and sets some defaults.
33
- * Only custom properties from {@link AnimationDefinition} are adjusted, all {@link GSAPTweenVars} remain untouched.
34
- */
35
- protected prepareAnimationDefinition(): void;
36
- /**
37
- * Prepares different types of {@link PlacementDefinition} and sets some defaults.
38
- */
39
- protected preparePlacementDefinition(): void;
40
- /**
41
- * Creates `Tweens` for the {@link PlacementDefinition} configured for this {@link PlacementAnimation}.
42
- */
43
- protected createTweens(): void;
44
- }
1
+ /// <reference types="gsap" />
2
+ import { AnimationInterface } from './animationInterface';
3
+ /**
4
+ * An {@link PlacementAnimation} handling `Tweens` of the `GSAP` API using configured {@link PlacementDefinition}s
5
+ * and {@link AnimationDefinition}s. It mutates the attributes in the given {@link PlacementDefinition} with the given
6
+ * {@link AnimationDefinition}. The latter can be anything the `GSAP` allows in its API. Please consider using the
7
+ * API of the {@link AnimationManager} to handle instances of this class in your consuming project.
8
+ */
9
+ export declare class PlacementAnimation implements AnimationInterface {
10
+ readonly mutable: object;
11
+ protected _placement: PlacementDefinition | string;
12
+ protected _animation?: string | AnimationDefinition | undefined;
13
+ protected _placementDefinition: PlacementDefinition;
14
+ protected _animationDefinition: AnimationDefinition;
15
+ protected _timeline: GSAPTimeline;
16
+ /**
17
+ * Constructor.
18
+ */
19
+ constructor(mutable: object, _placement: PlacementDefinition | string, _animation?: string | AnimationDefinition | undefined);
20
+ /**
21
+ * Plays all `Tweens` of this {@link PlacementAnimation}.
22
+ */
23
+ play(): Promise<AnimationInterface>;
24
+ /**
25
+ * Pause all `Tweens` of this {@link PlacementAnimation}.
26
+ */
27
+ pause(): AnimationInterface;
28
+ /**
29
+ * Kills all `Tweens` of this {@link PlacementAnimation}.
30
+ */
31
+ kill(): AnimationInterface;
32
+ /**
33
+ * Creates a {@link AnimationDefinition} definition if not provided in the constructor and sets some defaults.
34
+ * Only custom properties from {@link AnimationDefinition} are adjusted, all {@link GSAPTweenVars} remain untouched.
35
+ */
36
+ protected prepareAnimationDefinition(): void;
37
+ /**
38
+ * Prepares different types of {@link PlacementDefinition} and sets some defaults.
39
+ */
40
+ protected preparePlacementDefinition(): void;
41
+ /**
42
+ * Creates `Tweens` for the {@link PlacementDefinition} configured for this {@link PlacementAnimation}.
43
+ */
44
+ protected createTweens(): void;
45
+ }
@@ -1,161 +1,172 @@
1
- import { __awaiter, __generator, __rest } from "tslib";
2
- import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera';
3
- import { Vector3 } from '@babylonjs/core/Maths/math.vector';
4
- import { gsap } from 'gsap';
5
- import { cloneDeep, get, isString, merge, set } from 'lodash-es';
6
- import { Parameter } from '../classes/parameter';
7
- import { SpecStorage } from '../store/specStorage';
8
- /**
9
- * An {@link PlacementAnimation} handling `Tweens` of the `GSAP` API using configured {@link PlacementDefinition}s
10
- * and {@link AnimationDefinition}s. It mutates the attributes in the given {@link PlacementDefinition} with the given
11
- * {@link AnimationDefinition}. The latter can be anything the `GSAP` allows in its API. Please consider using the
12
- * API of the {@link AnimationManager} to handle instances of this class in your consuming project.
13
- */
14
- var PlacementAnimation = /** @class */ (function () {
15
- /**
16
- * Constructor.
17
- */
18
- function PlacementAnimation(mutable, _placement, _animation) {
19
- var _a;
20
- this.mutable = mutable;
21
- this._placement = _placement;
22
- this._animation = _animation;
23
- if (isString(_placement)) {
24
- var placementDefinitions = SpecStorage.get('scene.placements');
25
- if (!placementDefinitions) {
26
- throw new Error("No PlacementDefinitions defined in JSON structure.");
27
- }
28
- var placementDefinition = placementDefinitions[_placement];
29
- if (!placementDefinition) {
30
- throw new Error("PlacementDefinition \"" + _placement + "\" not defined in JSON structure.");
31
- }
32
- this._placementDefinition = cloneDeep(placementDefinition);
33
- }
34
- else {
35
- this._placementDefinition = cloneDeep(_placement);
36
- }
37
- if (isString(_animation)) {
38
- var animationDefinition = (_a = SpecStorage.get('scene.animations')) === null || _a === void 0 ? void 0 : _a[_animation];
39
- if (!animationDefinition) {
40
- throw new Error("AnimationDefinition \"" + _animation + "\" not defined in JSON structure.");
41
- }
42
- this._animationDefinition = cloneDeep(animationDefinition);
43
- }
44
- else {
45
- this._animationDefinition = cloneDeep(_animation);
46
- }
47
- this.prepareAnimationDefinition();
48
- // create (shallow) copy for GSAP which doesn't contain `shortestWay`,
49
- // because that's not part of the original `TweenVars` input typing and therefore leads to warnings
50
- var _b = this._animationDefinition, shortestWay = _b.shortestWay, gsapTweenVars = __rest(_b, ["shortestWay"]);
51
- this._timeline = gsap.timeline({
52
- defaults: gsapTweenVars,
53
- paused: true,
54
- });
55
- this.preparePlacementDefinition();
56
- this.createTweens();
57
- }
58
- /**
59
- * Plays all `Tweens` of this {@link PlacementAnimation}.
60
- */
61
- PlacementAnimation.prototype.play = function () {
62
- return __awaiter(this, void 0, void 0, function () {
63
- return __generator(this, function (_a) {
64
- switch (_a.label) {
65
- case 0: return [4 /*yield*/, this._timeline.play().then()];
66
- case 1:
67
- _a.sent();
68
- return [2 /*return*/, this];
69
- }
70
- });
71
- });
72
- };
73
- /**
74
- * Pause all `Tweens` of this {@link PlacementAnimation}.
75
- */
76
- PlacementAnimation.prototype.pause = function () {
77
- this._timeline.pause();
78
- return this;
79
- };
80
- /**
81
- * Kills all `Tweens` of this {@link PlacementAnimation}.
82
- */
83
- PlacementAnimation.prototype.kill = function () {
84
- this._timeline.kill();
85
- return this;
86
- };
87
- /**
88
- * Creates a {@link AnimationDefinition} definition if not provided in the constructor and sets some defaults.
89
- * Only custom properties from {@link AnimationDefinition} are adjusted, all {@link GSAPTweenVars} remain untouched.
90
- */
91
- PlacementAnimation.prototype.prepareAnimationDefinition = function () {
92
- // create an animation definition if not available yet
93
- this._animationDefinition = this._animationDefinition || {};
94
- // parse shortest way flag or set to `true` if not configured
95
- if (this._animationDefinition.shortestWay !== undefined) {
96
- this._animationDefinition.shortestWay = Parameter.parseBoolean(this._animationDefinition.shortestWay);
97
- }
98
- else {
99
- this._animationDefinition.shortestWay = true;
100
- }
101
- };
102
- /**
103
- * Prepares different types of {@link PlacementDefinition} and sets some defaults.
104
- */
105
- PlacementAnimation.prototype.preparePlacementDefinition = function () {
106
- var position = this._placementDefinition.position;
107
- if (isString(position)) {
108
- position = Parameter.parseVector(position);
109
- this._placementDefinition.position = position;
110
- }
111
- if (this.mutable instanceof ArcRotateCamera) {
112
- // parse the target
113
- if (isString(this._placementDefinition.target)) {
114
- this._placementDefinition.target = Parameter.parseVector(this._placementDefinition.target);
115
- }
116
- if (position) {
117
- // parse the position and calculate alpha, beta and radius with a "ghost camera"
118
- // @see https://www.babylonjs-playground.com/#4IVMG#0
119
- var ghostCam = this.mutable.clone('ghost');
120
- ghostCam.setPosition(position);
121
- merge(this._placementDefinition, {
122
- alpha: ghostCam.alpha,
123
- beta: ghostCam.beta,
124
- radius: ghostCam.radius,
125
- });
126
- delete this._placementDefinition.position;
127
- ghostCam.dispose();
128
- }
129
- else if (this._animationDefinition.shortestWay && this._placementDefinition.alpha !== undefined) {
130
- // transform the target's alpha value into the same turn as the current camera position to avoid movements > 360 degrees
131
- var alphaGap = this.mutable.alpha - this._placementDefinition.alpha;
132
- var cntTurns = Math.round(alphaGap / (2 * Math.PI));
133
- this._placementDefinition.alpha += 2 * Math.PI * cntTurns;
134
- }
135
- }
136
- };
137
- /**
138
- * Creates `Tweens` for the {@link PlacementDefinition} configured for this {@link PlacementAnimation}.
139
- */
140
- PlacementAnimation.prototype.createTweens = function () {
141
- for (var property in this._placementDefinition) {
142
- var propertyValue = get(this._placementDefinition, property);
143
- var tweenVars = {};
144
- var _mutable = this.mutable;
145
- if (propertyValue instanceof Vector3) {
146
- // GSAP does not support mutation of complex objects, so we are forced
147
- // to use the properties on the object as mutable directly and mutate
148
- // the coordinates separately.
149
- _mutable = get(this.mutable, property);
150
- merge(tweenVars, { x: propertyValue.x, y: propertyValue.y, z: propertyValue.z });
151
- }
152
- else {
153
- set(tweenVars, property, propertyValue);
154
- }
155
- this._timeline.to(_mutable, tweenVars, 0); // Note: position 0 does the "parallel" stuff here
156
- }
157
- };
158
- return PlacementAnimation;
159
- }());
160
- export { PlacementAnimation };
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __rest = (this && this.__rest) || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
+ t[p] = s[p];
14
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
+ t[p[i]] = s[p[i]];
18
+ }
19
+ return t;
20
+ };
21
+ import { Parameter } from '../classes/parameter';
22
+ import { SpecStorage } from '../store/specStorage';
23
+ import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera';
24
+ import { Vector3 } from '@babylonjs/core/Maths/math.vector';
25
+ import { gsap } from 'gsap';
26
+ import { cloneDeep, get, isString, merge, set } from 'lodash-es';
27
+ /**
28
+ * An {@link PlacementAnimation} handling `Tweens` of the `GSAP` API using configured {@link PlacementDefinition}s
29
+ * and {@link AnimationDefinition}s. It mutates the attributes in the given {@link PlacementDefinition} with the given
30
+ * {@link AnimationDefinition}. The latter can be anything the `GSAP` allows in its API. Please consider using the
31
+ * API of the {@link AnimationManager} to handle instances of this class in your consuming project.
32
+ */
33
+ export class PlacementAnimation {
34
+ /**
35
+ * Constructor.
36
+ */
37
+ constructor(mutable, _placement, _animation) {
38
+ var _a;
39
+ this.mutable = mutable;
40
+ this._placement = _placement;
41
+ this._animation = _animation;
42
+ if (isString(_placement)) {
43
+ const placementDefinitions = SpecStorage.get('scene.placements');
44
+ if (!placementDefinitions) {
45
+ throw new Error(`No PlacementDefinitions defined in JSON structure.`);
46
+ }
47
+ const placementDefinition = placementDefinitions[_placement];
48
+ if (!placementDefinition) {
49
+ throw new Error(`PlacementDefinition "${_placement}" not defined in JSON structure.`);
50
+ }
51
+ this._placementDefinition = cloneDeep(placementDefinition);
52
+ }
53
+ else {
54
+ this._placementDefinition = cloneDeep(_placement);
55
+ }
56
+ if (isString(_animation)) {
57
+ const animationDefinition = (_a = SpecStorage.get('scene.animations')) === null || _a === void 0 ? void 0 : _a[_animation];
58
+ if (!animationDefinition) {
59
+ throw new Error(`AnimationDefinition "${_animation}" not defined in JSON structure.`);
60
+ }
61
+ this._animationDefinition = cloneDeep(animationDefinition);
62
+ }
63
+ else {
64
+ this._animationDefinition = cloneDeep(_animation);
65
+ }
66
+ this.prepareAnimationDefinition();
67
+ // create (shallow) copy for GSAP which doesn't contain `shortestWay`,
68
+ // because that's not part of the original `TweenVars` input typing and therefore leads to warnings
69
+ const _b = this._animationDefinition, { shortestWay } = _b, gsapTweenVars = __rest(_b, ["shortestWay"]);
70
+ this._timeline = gsap.timeline({
71
+ defaults: gsapTweenVars,
72
+ paused: true,
73
+ });
74
+ this.preparePlacementDefinition();
75
+ this.createTweens();
76
+ }
77
+ /**
78
+ * Plays all `Tweens` of this {@link PlacementAnimation}.
79
+ */
80
+ play() {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ yield this._timeline.play().then();
83
+ return this;
84
+ });
85
+ }
86
+ /**
87
+ * Pause all `Tweens` of this {@link PlacementAnimation}.
88
+ */
89
+ pause() {
90
+ this._timeline.pause();
91
+ return this;
92
+ }
93
+ /**
94
+ * Kills all `Tweens` of this {@link PlacementAnimation}.
95
+ */
96
+ kill() {
97
+ this._timeline.kill();
98
+ return this;
99
+ }
100
+ /**
101
+ * Creates a {@link AnimationDefinition} definition if not provided in the constructor and sets some defaults.
102
+ * Only custom properties from {@link AnimationDefinition} are adjusted, all {@link GSAPTweenVars} remain untouched.
103
+ */
104
+ prepareAnimationDefinition() {
105
+ // create an animation definition if not available yet
106
+ this._animationDefinition = this._animationDefinition || {};
107
+ // parse shortest way flag or set to `true` if not configured
108
+ if (this._animationDefinition.shortestWay !== undefined) {
109
+ this._animationDefinition.shortestWay = Parameter.parseBoolean(this._animationDefinition.shortestWay);
110
+ }
111
+ else {
112
+ this._animationDefinition.shortestWay = true;
113
+ }
114
+ }
115
+ /**
116
+ * Prepares different types of {@link PlacementDefinition} and sets some defaults.
117
+ */
118
+ preparePlacementDefinition() {
119
+ let position = this._placementDefinition.position;
120
+ if (isString(position)) {
121
+ position = Parameter.parseVector(position);
122
+ this._placementDefinition.position = position;
123
+ }
124
+ if (this.mutable instanceof ArcRotateCamera) {
125
+ // parse the target
126
+ if (isString(this._placementDefinition.target)) {
127
+ this._placementDefinition.target = Parameter.parseVector(this._placementDefinition.target);
128
+ }
129
+ if (position) {
130
+ // parse the position and calculate alpha, beta and radius with a "ghost camera"
131
+ // @see https://www.babylonjs-playground.com/#4IVMG#0
132
+ const ghostCam = this.mutable.clone('ghost');
133
+ ghostCam.setPosition(position);
134
+ merge(this._placementDefinition, {
135
+ alpha: ghostCam.alpha,
136
+ beta: ghostCam.beta,
137
+ radius: ghostCam.radius,
138
+ });
139
+ delete this._placementDefinition.position;
140
+ ghostCam.dispose();
141
+ }
142
+ else if (this._animationDefinition.shortestWay && this._placementDefinition.alpha !== undefined) {
143
+ // transform the target's alpha value into the same turn as the current camera position to avoid movements > 360 degrees
144
+ const alphaGap = this.mutable.alpha - this._placementDefinition.alpha;
145
+ const cntTurns = Math.round(alphaGap / (2 * Math.PI));
146
+ this._placementDefinition.alpha += 2 * Math.PI * cntTurns;
147
+ }
148
+ }
149
+ }
150
+ /**
151
+ * Creates `Tweens` for the {@link PlacementDefinition} configured for this {@link PlacementAnimation}.
152
+ */
153
+ createTweens() {
154
+ for (const property in this._placementDefinition) {
155
+ const propertyValue = get(this._placementDefinition, property);
156
+ const tweenVars = {};
157
+ let _mutable = this.mutable;
158
+ if (propertyValue instanceof Vector3) {
159
+ // GSAP does not support mutation of complex objects, so we are forced
160
+ // to use the properties on the object as mutable directly and mutate
161
+ // the coordinates separately.
162
+ _mutable = get(this.mutable, property);
163
+ merge(tweenVars, { x: propertyValue.x, y: propertyValue.y, z: propertyValue.z });
164
+ }
165
+ else {
166
+ set(tweenVars, property, propertyValue);
167
+ }
168
+ this._timeline.to(_mutable, tweenVars, 0); // Note: position 0 does the "parallel" stuff here
169
+ }
170
+ }
171
+ }
161
172
  //# sourceMappingURL=placementAnimation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placementAnimation.js","sourceRoot":"","sources":["../../../../../src/api/classes/placementAnimation.ts"],"names":[],"mappings":"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"}