file-viewer3 1.0.8 → 1.0.26

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 (370) hide show
  1. package/LICENSE +160 -0
  2. package/README.en.md +390 -0
  3. package/README.md +306 -89
  4. package/dist/components/3MFLoader.js +527 -0
  5. package/dist/components/AMFLoader.js +188 -0
  6. package/dist/components/ArchiveViewer.js +526 -0
  7. package/dist/components/AudioViewer.js +66 -0
  8. package/dist/components/CadViewer.js +9040 -0
  9. package/dist/components/CodeViewer.js +151 -0
  10. package/dist/components/ColladaLoader.js +2282 -0
  11. package/dist/components/DrawingViewer.js +295 -0
  12. package/dist/components/EdaViewer.js +630 -0
  13. package/dist/components/EmailViewer.js +276 -0
  14. package/dist/components/EpubViewer.js +172 -0
  15. package/dist/components/FBXLoader.js +1574 -0
  16. package/dist/components/GLTFLoader.js +1383 -0
  17. package/dist/components/ImageViewer.js +1516 -1895
  18. package/dist/components/KMZLoader.js +45 -0
  19. package/dist/components/MarkdownViewer.js +1456 -1557
  20. package/dist/components/ModelViewer.js +797 -0
  21. package/dist/components/OBJLoader.js +287 -0
  22. package/dist/components/OfdViewer.js +133 -0
  23. package/dist/components/PCDLoader.js +141 -0
  24. package/dist/components/PLYLoader.js +305 -0
  25. package/dist/components/PdfView.js +27662 -21655
  26. package/dist/components/PptxRender.js +11170 -21118
  27. package/dist/components/STLLoader.js +83 -0
  28. package/dist/components/TDSLoader.js +228 -0
  29. package/dist/components/TypstViewer.js +1697 -0
  30. package/dist/components/USDLoader.js +2526 -0
  31. package/dist/components/UmdViewer.js +1873 -0
  32. package/dist/components/VRMLLoader.js +6422 -0
  33. package/dist/components/VTKLoader.js +337 -0
  34. package/dist/components/XYZLoader.js +30 -0
  35. package/dist/components/XlsxTable.js +7871 -69873
  36. package/dist/components/__vite-browser-external.js +7 -0
  37. package/dist/components/_plugin-vue_export-helper.js +8 -0
  38. package/dist/components/ar-SA-G6X2FPQ2.js +523 -0
  39. package/dist/components/arc.js +79 -0
  40. package/dist/components/architecture-7EHR7CIX.js +3 -0
  41. package/dist/components/architectureDiagram-3BPJPVTR.js +4096 -0
  42. package/dist/components/archive.js +24 -0
  43. package/dist/components/asyncToGenerator.js +29 -0
  44. package/dist/components/audio.js +19 -0
  45. package/dist/components/az-AZ-76LH7QW2.js +523 -0
  46. package/dist/components/bash.js +169 -0
  47. package/dist/components/bg-BG-XCXSNQG7.js +523 -0
  48. package/dist/components/blockDiagram-GPEHLZMM.js +3357 -0
  49. package/dist/components/bn-BD-2XOGV67Q.js +523 -0
  50. package/dist/components/c4Diagram-AAUBKEIU.js +2957 -0
  51. package/dist/components/ca-ES-6MX7JW3Y.js +523 -0
  52. package/dist/components/cad.js +23 -0
  53. package/dist/components/cfb.js +1174 -0
  54. package/dist/components/channel.js +5 -0
  55. package/dist/components/chunk-2J33WTMH.js +26 -0
  56. package/dist/components/chunk-3OPIFGDE.js +4167 -0
  57. package/dist/components/chunk-4BX2VUAB.js +19 -0
  58. package/dist/components/chunk-55IACEB6.js +9 -0
  59. package/dist/components/chunk-5ZQYHXKU.js +669 -0
  60. package/dist/components/chunk-6U3AYISY.js +624 -0
  61. package/dist/components/chunk-727SXJPM.js +3356 -0
  62. package/dist/components/chunk-AGHRB4JF.js +324 -0
  63. package/dist/components/chunk-AQP2D5EJ.js +2055 -0
  64. package/dist/components/chunk-BSJP7CBP.js +83 -0
  65. package/dist/components/chunk-CSCIHK7Q.js +3500 -0
  66. package/dist/components/chunk-EIO257PC.js +1836 -0
  67. package/dist/components/chunk-FMBD7UC4.js +5 -0
  68. package/dist/components/chunk-K2UTITRG.js +17627 -0
  69. package/dist/components/chunk-KSCS5N6A.js +572 -0
  70. package/dist/components/chunk-L5ZTLDWV.js +40 -0
  71. package/dist/components/chunk-LZXEDZCA.js +60 -0
  72. package/dist/components/chunk-ND2GUHAM.js +61 -0
  73. package/dist/components/chunk-NNHCCRGN.js +20425 -0
  74. package/dist/components/chunk-NZK2D7GU.js +68 -0
  75. package/dist/components/chunk-O5CBEL6O.js +1894 -0
  76. package/dist/components/chunk-QZHKN3VN.js +12 -0
  77. package/dist/components/chunk-SRAX5OIU.js +22 -0
  78. package/dist/components/chunk-WU5MYG2G.js +14 -0
  79. package/dist/components/chunk-XPW4576I.js +1146 -0
  80. package/dist/components/chunk-Z3N5DIM6.js +59 -0
  81. package/dist/components/chunk-ZUYEQ4TG.js +22 -0
  82. package/dist/components/chunk.js +23 -0
  83. package/dist/components/classDiagram-4FO5ZUOK.js +29 -0
  84. package/dist/components/classDiagram-v2-Q7XG4LA2.js +29 -0
  85. package/dist/components/compiler.js +2 -0
  86. package/dist/components/core.js +845 -0
  87. package/dist/components/cose-bilkent-S5V4N54A.js +2268 -0
  88. package/dist/components/cpp.js +225 -0
  89. package/dist/components/cs-CZ-2BRQDIVT.js +523 -0
  90. package/dist/components/csharp.js +260 -0
  91. package/dist/components/css.js +140 -0
  92. package/dist/components/cytoscape.esm.js +18114 -0
  93. package/dist/components/da-DK-5WZEPLOC.js +523 -0
  94. package/dist/components/dagre-BM42HDAG.js +325 -0
  95. package/dist/components/dagre.js +1936 -0
  96. package/dist/components/de-DE-XR44H4JA.js +523 -0
  97. package/dist/components/defaultLocale.js +201 -0
  98. package/dist/components/defineProperty.js +50 -0
  99. package/dist/components/diagram-2AECGRRQ.js +229 -0
  100. package/dist/components/diagram-5GNKFQAL.js +108 -0
  101. package/dist/components/diagram-KO2AKTUF.js +443 -0
  102. package/dist/components/diagram-LMA3HP47.js +139 -0
  103. package/dist/components/diagram-OG6HWLK6.js +541 -0
  104. package/dist/components/diff.js +39 -0
  105. package/dist/components/directory-open-01563666.js +26 -0
  106. package/dist/components/directory-open-4ed118d0.js +83 -0
  107. package/dist/components/dist.js +50 -0
  108. package/dist/components/dist2.js +3291 -0
  109. package/dist/components/dist3.js +1593 -0
  110. package/dist/components/documentSearch.js +378 -0
  111. package/dist/components/docx-preview.js +3113 -0
  112. package/dist/components/drawing.js +19 -0
  113. package/dist/components/ebook.js +16 -0
  114. package/dist/components/eda.js +20 -0
  115. package/dist/components/el-GR-BZB4AONW.js +523 -0
  116. package/dist/components/email.js +21 -0
  117. package/dist/components/en-B4ZKOASM.js +3 -0
  118. package/dist/components/erDiagram-TEJ5UH35.js +1719 -0
  119. package/dist/components/es-ES-U4NZUMDT.js +523 -0
  120. package/dist/components/eu-ES-A7QVB2H4.js +523 -0
  121. package/dist/components/eventmodeling-FCH6USID.js +3 -0
  122. package/dist/components/fa-IR-HGAKTJCU.js +523 -0
  123. package/dist/components/fflate.module.js +323 -0
  124. package/dist/components/fi-FI-Z5N7JZ37.js +523 -0
  125. package/dist/components/file-open-002ab408.js +38 -0
  126. package/dist/components/file-open-7c801643.js +24 -0
  127. package/dist/components/file-save-3189631c.js +40 -0
  128. package/dist/components/file-save-745eba88.js +36 -0
  129. package/dist/components/flowDiagram-I6XJVG4X.js +4181 -0
  130. package/dist/components/fr-FR-RHASNOE6.js +523 -0
  131. package/dist/components/ganttDiagram-6RSMTGT7.js +2182 -0
  132. package/dist/components/gitGraph-WXDBUCRP.js +3 -0
  133. package/dist/components/gitGraphDiagram-PVQCEYII.js +788 -0
  134. package/dist/components/gl-ES-HMX3MZ6V.js +523 -0
  135. package/dist/components/global-compiler.js +23 -0
  136. package/dist/components/global-renderer.js +23 -0
  137. package/dist/components/go.js +140 -0
  138. package/dist/components/graphlib.js +1267 -0
  139. package/dist/components/he-IL-6SHJWFNN.js +523 -0
  140. package/dist/components/hi-IN-IWLTKZ5I.js +523 -0
  141. package/dist/components/hu-HU-A5ZG7DT2.js +523 -0
  142. package/dist/components/id-ID-SAP4L64H.js +523 -0
  143. package/dist/components/image-GAAHSSAO.js +3 -0
  144. package/dist/components/image-blob-reduce.esm.js +1429 -0
  145. package/dist/components/image.js +17 -0
  146. package/dist/components/info-J43DQDTF.js +3 -0
  147. package/dist/components/infoDiagram-5YYISTIA.js +26 -0
  148. package/dist/components/ini.js +88 -0
  149. package/dist/components/init.js +15 -0
  150. package/dist/components/ishikawaDiagram-YF4QCWOH.js +718 -0
  151. package/dist/components/it-IT-JPQ66NNP.js +523 -0
  152. package/dist/components/ja-JP-DBVTYXUO.js +523 -0
  153. package/dist/components/java.js +169 -0
  154. package/dist/components/javascript.js +436 -0
  155. package/dist/components/journeyDiagram-JHISSGLW.js +885 -0
  156. package/dist/components/json.js +36 -0
  157. package/dist/components/jszip.min.js +3033 -0
  158. package/dist/components/kaa-6HZHGXH3.js +523 -0
  159. package/dist/components/kab-KAB-ZGHBKWFO.js +523 -0
  160. package/dist/components/kanban-definition-UN3LZRKU.js +986 -0
  161. package/dist/components/katex.js +21979 -0
  162. package/dist/components/kk-KZ-P5N5QNE5.js +523 -0
  163. package/dist/components/km-KH-HSX4SM5Z.js +523 -0
  164. package/dist/components/ko-KR-MTYHY66A.js +523 -0
  165. package/dist/components/ku-TR-6OUDTVRD.js +523 -0
  166. package/dist/components/lib.js +4877 -0
  167. package/dist/components/libarchive.js +360 -0
  168. package/dist/components/linear.js +289 -0
  169. package/dist/components/lt-LT-XHIRWOB4.js +523 -0
  170. package/dist/components/lv-LV-5QDEKY6T.js +523 -0
  171. package/dist/components/markdown.js +181 -0
  172. package/dist/components/md.js +17 -0
  173. package/dist/components/mermaid-parser.core.js +328 -0
  174. package/dist/components/mindmap-definition-RKZ34NQL.js +1016 -0
  175. package/dist/components/model.js +21 -0
  176. package/dist/components/mp4.js +12 -0
  177. package/dist/components/mr-IN-CRQNXWMA.js +523 -0
  178. package/dist/components/my-MM-5M5IBNSE.js +523 -0
  179. package/dist/components/nb-NO-T6EIAALU.js +523 -0
  180. package/dist/components/nestedRender.js +158 -0
  181. package/dist/components/nl-NL-IS3SIHDZ.js +523 -0
  182. package/dist/components/nn-NO-6E72VCQL.js +523 -0
  183. package/dist/components/objectSpread2.js +29 -0
  184. package/dist/components/objectWithoutProperties.js +28 -0
  185. package/dist/components/oc-FR-POXYY2M6.js +523 -0
  186. package/dist/components/ofd.js +5261 -0
  187. package/dist/components/ofd2.js +16 -0
  188. package/dist/components/ordinal.js +65 -0
  189. package/dist/components/pa-IN-N4M65BXN.js +523 -0
  190. package/dist/components/packet-YPE3B663.js +3 -0
  191. package/dist/components/pdf.js +24 -0
  192. package/dist/components/percentages-BXMCSKIN.js +3 -0
  193. package/dist/components/php.js +294 -0
  194. package/dist/components/pica.js +1009 -0
  195. package/dist/components/pie-LRSECV5Y.js +3 -0
  196. package/dist/components/pie.js +47 -0
  197. package/dist/components/pieDiagram-4H26LBE5.js +130 -0
  198. package/dist/components/pl-PL-T2D74RX3.js +523 -0
  199. package/dist/components/postal-mime.js +3146 -0
  200. package/dist/components/pptx.js +15 -0
  201. package/dist/components/printLayout.js +42 -0
  202. package/dist/components/prod.js +21770 -0
  203. package/dist/components/pt-BR-5N22H2LF.js +523 -0
  204. package/dist/components/pt-PT-UZXXM6DQ.js +523 -0
  205. package/dist/components/python.js +238 -0
  206. package/dist/components/quadrantDiagram-W4KKPZXB.js +1988 -0
  207. package/dist/components/radar-GUYGQ44K.js +3 -0
  208. package/dist/components/renderer.js +2 -0
  209. package/dist/components/requirementDiagram-4Y6WPE33.js +2230 -0
  210. package/dist/components/ro-RO-JPDTUUEW.js +523 -0
  211. package/dist/components/rough.esm.js +1355 -0
  212. package/dist/components/roundRect.js +90 -0
  213. package/dist/components/ru-RU-B4JR7IUQ.js +523 -0
  214. package/dist/components/rust.js +169 -0
  215. package/dist/components/sankeyDiagram-5OEKKPKP.js +972 -0
  216. package/dist/components/sequenceDiagram-3UESZ5HK.js +4255 -0
  217. package/dist/components/shared.js +175 -0
  218. package/dist/components/shared2.js +4 -0
  219. package/dist/components/si-LK-N5RQ5JYF.js +523 -0
  220. package/dist/components/sk-SK-C5VTKIMK.js +523 -0
  221. package/dist/components/sl-SI-NN7IZMDC.js +523 -0
  222. package/dist/components/sourceLoading.js +134 -0
  223. package/dist/components/sql.js +118 -0
  224. package/dist/components/src.js +2664 -0
  225. package/dist/components/src2.js +10722 -0
  226. package/dist/components/stateDiagram-AJRCARHV.js +217 -0
  227. package/dist/components/stateDiagram-v2-BHNVJYJU.js +27 -0
  228. package/dist/components/subset-shared.chunk.js +3 -0
  229. package/dist/components/subset-worker.chunk.js +21 -0
  230. package/dist/components/sv-SE-XGPEYMSR.js +523 -0
  231. package/dist/components/ta-IN-2NMHFXQM.js +523 -0
  232. package/dist/components/text.js +20 -0
  233. package/dist/components/th-TH-HPSO5L25.js +523 -0
  234. package/dist/components/three.module.js +13134 -0
  235. package/dist/components/time.js +910 -0
  236. package/dist/components/timeline-definition-PNZ67QCA.js +1084 -0
  237. package/dist/components/tr-TR-DEFEU3FU.js +523 -0
  238. package/dist/components/treeView-BLDUP644.js +3 -0
  239. package/dist/components/treemap-LRROVOQU.js +3 -0
  240. package/dist/components/typescript.js +521 -0
  241. package/dist/components/typst.js +25 -0
  242. package/dist/components/uk-UA-QMV73CPH.js +523 -0
  243. package/dist/components/umd.js +16 -0
  244. package/dist/components/use.js +422 -0
  245. package/dist/components/util.js +49 -0
  246. package/dist/components/vennDiagram-CIIHVFJN.js +1880 -0
  247. package/dist/components/vi-VN-M7AON7JQ.js +523 -0
  248. package/dist/components/viewerZoom.js +92 -0
  249. package/dist/components/wardley-L42UT6IY.js +3 -0
  250. package/dist/components/wardleyDiagram-YWT4CUSO.js +656 -0
  251. package/dist/components/wasm-pack-shim.js +1711 -0
  252. package/dist/components/wasm-pack-shim2.js +934 -0
  253. package/dist/components/wasm.js +97 -0
  254. package/dist/components/word.js +3055 -0
  255. package/dist/components/worker-ref.js +15 -20
  256. package/dist/components/xlsx.js +21 -0
  257. package/dist/components/xml.js +166 -0
  258. package/dist/components/xychartDiagram-2RQKCTM6.js +2015 -0
  259. package/dist/components/yaml.js +144 -0
  260. package/dist/components/zh-CN-LNUGB5OW.js +523 -0
  261. package/dist/components/zh-HK-E62DVLB3.js +523 -0
  262. package/dist/components/zh-TW-RAJ6MFWO.js +523 -0
  263. package/dist/file-viewer3.css +2 -0
  264. package/dist/index.mjs +3292 -5
  265. package/dist/src/App.vue.d.ts +3 -0
  266. package/dist/src/compare/CompareApp.vue.d.ts +3 -0
  267. package/dist/src/compare/main.d.ts +0 -0
  268. package/dist/src/compare/useSynchronizedScroll.d.ts +7 -0
  269. package/dist/src/components/HelloWorld.vue.d.ts +3 -0
  270. package/dist/src/components/utils.d.ts +4 -0
  271. package/dist/src/main.d.ts +0 -0
  272. package/dist/src/package/common/printCapability.d.ts +27 -0
  273. package/dist/src/package/common/printLayout.d.ts +16 -0
  274. package/dist/src/package/common/sourceLoading.d.ts +10 -0
  275. package/dist/src/package/common/type.d.ts +522 -8
  276. package/dist/src/package/common/worker-ref.d.ts +1 -1
  277. package/dist/src/package/components/FileViewer/FileViewer.vue.d.ts +74 -24
  278. package/dist/src/package/components/FileViewer/exportDocumentTemplate.d.ts +9 -0
  279. package/dist/src/package/components/FileViewer/hooks/useViewerDocumentFeatures.d.ts +29 -0
  280. package/dist/src/package/components/FileViewer/hooks/useViewerExport.d.ts +21 -0
  281. package/dist/src/package/components/FileViewer/hooks/useViewerWatermark.d.ts +8 -0
  282. package/dist/src/package/components/FileViewer/hooks/useViewerZoom.d.ts +34 -0
  283. package/dist/src/package/components/FileViewer/index.d.ts +1 -1
  284. package/dist/src/package/components/FileViewer/util.d.ts +2 -1
  285. package/dist/src/package/index.d.ts +14 -4
  286. package/dist/src/package/use/documentLocation.d.ts +15 -0
  287. package/dist/src/package/use/documentSearch.d.ts +234 -0
  288. package/dist/src/package/use/index.d.ts +4 -0
  289. package/dist/src/package/use/loading.d.ts +33 -0
  290. package/dist/src/package/use/viewerZoom.d.ts +42 -0
  291. package/dist/src/package/use/worker.d.ts +2 -2
  292. package/dist/src/package/vendors/archive/ArchiveViewer.vue.d.ts +9 -0
  293. package/dist/src/package/vendors/archive/cache.d.ts +10 -0
  294. package/dist/src/package/vendors/archive/fallback.d.ts +9 -0
  295. package/dist/src/package/vendors/archive/index.d.ts +3 -0
  296. package/dist/src/package/vendors/archive/shared.d.ts +24 -0
  297. package/dist/src/package/vendors/audio/AudioViewer.vue.d.ts +7 -0
  298. package/dist/src/package/vendors/audio/index.d.ts +7 -0
  299. package/dist/src/package/vendors/cad/CadViewer.vue.d.ts +9 -0
  300. package/dist/src/package/vendors/cad/index.d.ts +8 -0
  301. package/dist/src/package/vendors/drawing/DrawingViewer.vue.d.ts +15 -0
  302. package/dist/src/package/vendors/drawing/index.d.ts +7 -0
  303. package/dist/src/package/vendors/ebook/EpubViewer.vue.d.ts +6 -0
  304. package/dist/src/package/vendors/ebook/index.d.ts +7 -0
  305. package/dist/src/package/vendors/eda/EdaViewer.vue.d.ts +8 -0
  306. package/dist/src/package/vendors/eda/index.d.ts +2 -0
  307. package/dist/src/package/vendors/eda/parser.d.ts +77 -0
  308. package/dist/src/package/vendors/email/EmailViewer.vue.d.ts +10 -0
  309. package/dist/src/package/vendors/email/index.d.ts +2 -0
  310. package/dist/src/package/vendors/image/ImageViewer.vue.d.ts +6 -13
  311. package/dist/src/package/vendors/image/index.d.ts +1 -1
  312. package/dist/src/package/vendors/md/MarkdownViewer.vue.d.ts +6 -13
  313. package/dist/src/package/vendors/md/index.d.ts +1 -1
  314. package/dist/src/package/vendors/model/ModelViewer.vue.d.ts +8 -0
  315. package/dist/src/package/vendors/model/index.d.ts +3 -0
  316. package/dist/src/package/vendors/model/shared.d.ts +1 -0
  317. package/dist/src/package/vendors/nestedRender.d.ts +10 -0
  318. package/dist/src/package/vendors/ofd/OfdViewer.vue.d.ts +6 -0
  319. package/dist/src/package/vendors/ofd/index.d.ts +7 -0
  320. package/dist/src/package/vendors/pdf/PdfView.vue.d.ts +10 -13
  321. package/dist/src/package/vendors/pdf/index.d.ts +2 -1
  322. package/dist/src/package/vendors/pdf/worker/pdf.worker.d.ts +0 -0
  323. package/dist/src/package/vendors/pptx/PptxRender.vue.d.ts +9 -81
  324. package/dist/src/package/vendors/pptx/index.d.ts +1 -1
  325. package/dist/src/package/vendors/renders.d.ts +1 -1
  326. package/dist/src/package/vendors/text/CodeViewer.vue.d.ts +7 -13
  327. package/dist/src/package/vendors/text/index.d.ts +6 -2
  328. package/dist/src/package/vendors/typst/TypstViewer.vue.d.ts +15 -0
  329. package/dist/src/package/vendors/typst/index.d.ts +8 -0
  330. package/dist/src/package/vendors/umd/UmdViewer.vue.d.ts +6 -0
  331. package/dist/src/package/vendors/umd/index.d.ts +7 -0
  332. package/dist/src/package/vendors/umd/parser.d.ts +30 -0
  333. package/dist/src/package/vendors/word/doc.d.ts +5 -0
  334. package/dist/src/package/vendors/word/docx.d.ts +5 -0
  335. package/dist/src/package/vendors/word/docx.worker.d.ts +1 -0
  336. package/dist/src/package/vendors/word/index.d.ts +3 -0
  337. package/dist/src/package/vendors/xlsx/XlsxTable.state.d.ts +80 -0
  338. package/dist/src/package/vendors/xlsx/XlsxTable.view.d.ts +25 -0
  339. package/dist/src/package/vendors/xlsx/XlsxTable.vue.d.ts +6 -21
  340. package/dist/src/package/vendors/xlsx/index.d.ts +3 -2
  341. package/dist/src/package/vendors/xlsx/util.d.ts +0 -5
  342. package/dist/src/package/vendors/xlsx/worker/index.d.ts +4 -6
  343. package/dist/src/package/vendors/xlsx/worker/sheetjs/SheetJsModel.d.ts +73 -0
  344. package/dist/src/package/vendors/xlsx/worker/sheetjs/sheet.worker.d.ts +1 -0
  345. package/dist/style.css +1 -57
  346. package/dist/wasm/cad/dwfv-render.wasm +0 -0
  347. package/dist/wasm/cad/dwg-worker.js +24 -0
  348. package/dist/wasm/cad/libredwg-web.js +15 -0
  349. package/dist/wasm/cad/libredwg-web.wasm +0 -0
  350. package/package.json +118 -42
  351. package/.vscode/extensions.json +0 -3
  352. package/dist/components/_commonjs-dynamic-modules.js +0 -6
  353. package/dist/components/_commonjsHelpers.js +0 -36
  354. package/dist/components/docx-preview.min.js +0 -5287
  355. package/dist/components/index.js +0 -1717
  356. package/dist/favicon.ico +0 -0
  357. package/dist/index.umd.js +0 -436
  358. package/dist/src/package/vendors/docx/index.d.ts +0 -4
  359. package/dist/src/package/vendors/xlsx/render.d.ts +0 -6
  360. package/dist/src/package/vendors/xlsx/worker/xls/SheetJsModel.d.ts +0 -36
  361. package/dist/src/package/vendors/xlsx/worker/xlsx/ExcelJsModel.d.ts +0 -39
  362. package/dist/src/package/vendors/xlsx/worker/xlsx/context.d.ts +0 -7
  363. package/dist/src/package/vendors/xlsx/worker/xlsx/index.d.ts +0 -4
  364. package/dist/src/package/vendors/xlsx/worker/xlsx/util.d.ts +0 -10
  365. package/dist/worker/pdf.worker.js +0 -66
  366. package/dist/worker/pptx.worker.js +0 -21
  367. package/dist/worker/sheet.worker.js +0 -38
  368. package/dist/worker/xlsx.worker.js +0 -65
  369. /package/dist/src/package/vendors/xlsx/worker/{xlsx → sheetjs}/color.d.ts +0 -0
  370. /package/dist/src/package/vendors/xlsx/worker/{xls → sheetjs}/index.d.ts +0 -0
@@ -0,0 +1,2282 @@
1
+ import { $ as e, Bt as t, C as n, Ct as r, Dt as i, E as a, Et as o, F as s, Ft as c, Ht as l, I as u, K as d, Lt as f, Mt as p, Ot as m, R as h, Tt as g, U as _, V as v, Z as y, b, bt as x, et as S, f as C, ft as w, ht as T, m as E, n as D, nt as O, o as k, p as A, pt as j, q as M, r as N, rt as P, tt as F, u as I, w as L, wt as R, x as z, yt as B, z as V, zt as H } from "./three.module.js";
2
+ //#region node_modules/.pnpm/three@0.184.0/node_modules/three/examples/jsm/loaders/TGALoader.js
3
+ var U = class extends b {
4
+ constructor(e) {
5
+ super(e);
6
+ }
7
+ parse(e) {
8
+ function t(e) {
9
+ switch (e.image_type) {
10
+ case d:
11
+ case m:
12
+ if (e.colormap_length > 256 || e.colormap_size !== 24 || e.colormap_type !== 1) throw Error("THREE.TGALoader: Invalid type colormap data for indexed type.");
13
+ break;
14
+ case f:
15
+ case p:
16
+ case h:
17
+ case g:
18
+ if (e.colormap_type) throw Error("THREE.TGALoader: Invalid type colormap data for colormap type.");
19
+ break;
20
+ case u: throw Error("THREE.TGALoader: No data.");
21
+ default: throw Error("THREE.TGALoader: Invalid type " + e.image_type);
22
+ }
23
+ if (e.width <= 0 || e.height <= 0) throw Error("THREE.TGALoader: Invalid image size.");
24
+ if (e.pixel_size !== 8 && e.pixel_size !== 16 && e.pixel_size !== 24 && e.pixel_size !== 32) throw Error("THREE.TGALoader: Invalid pixel size " + e.pixel_size);
25
+ }
26
+ function n(e, t, n, r, i) {
27
+ let a, o, s = n.pixel_size >> 3, c = n.width * n.height * s;
28
+ if (t && (o = i.subarray(r, r += n.colormap_length * (n.colormap_size >> 3))), e) {
29
+ a = new Uint8Array(c);
30
+ let e, t, n, o = 0, l = new Uint8Array(s);
31
+ for (; o < c;) if (e = i[r++], t = (e & 127) + 1, e & 128) {
32
+ for (n = 0; n < s; ++n) l[n] = i[r++];
33
+ for (n = 0; n < t; ++n) a.set(l, o + n * s);
34
+ o += s * t;
35
+ } else {
36
+ for (t *= s, n = 0; n < t; ++n) a[o + n] = i[r++];
37
+ o += t;
38
+ }
39
+ } else a = i.subarray(r, r += t ? n.width * n.height : c);
40
+ return {
41
+ pixel_data: a,
42
+ palettes: o
43
+ };
44
+ }
45
+ function r(e, t, n, r, i, a, o, s, c) {
46
+ let l = c, u, d = 0, f, p, m = E.width;
47
+ for (p = t; p !== r; p += n) for (f = i; f !== o; f += a, d++) u = s[d], e[(f + m * p) * 4 + 3] = 255, e[(f + m * p) * 4 + 2] = l[u * 3 + 0], e[(f + m * p) * 4 + 1] = l[u * 3 + 1], e[(f + m * p) * 4 + 0] = l[u * 3 + 2];
48
+ return e;
49
+ }
50
+ function i(e, t, n, r, i, a, o, s) {
51
+ let c, l = 0, u, d, f = E.width;
52
+ for (d = t; d !== r; d += n) for (u = i; u !== o; u += a, l += 2) c = s[l + 0] + (s[l + 1] << 8), e[(u + f * d) * 4 + 0] = (c & 31744) >> 7, e[(u + f * d) * 4 + 1] = (c & 992) >> 2, e[(u + f * d) * 4 + 2] = (c & 31) << 3, e[(u + f * d) * 4 + 3] = c & 32768 ? 0 : 255;
53
+ return e;
54
+ }
55
+ function a(e, t, n, r, i, a, o, s) {
56
+ let c = 0, l, u, d = E.width;
57
+ for (u = t; u !== r; u += n) for (l = i; l !== o; l += a, c += 3) e[(l + d * u) * 4 + 3] = 255, e[(l + d * u) * 4 + 2] = s[c + 0], e[(l + d * u) * 4 + 1] = s[c + 1], e[(l + d * u) * 4 + 0] = s[c + 2];
58
+ return e;
59
+ }
60
+ function o(e, t, n, r, i, a, o, s) {
61
+ let c = 0, l, u, d = E.width;
62
+ for (u = t; u !== r; u += n) for (l = i; l !== o; l += a, c += 4) e[(l + d * u) * 4 + 2] = s[c + 0], e[(l + d * u) * 4 + 1] = s[c + 1], e[(l + d * u) * 4 + 0] = s[c + 2], e[(l + d * u) * 4 + 3] = s[c + 3];
63
+ return e;
64
+ }
65
+ function s(e, t, n, r, i, a, o, s) {
66
+ let c, l = 0, u, d, f = E.width;
67
+ for (d = t; d !== r; d += n) for (u = i; u !== o; u += a, l++) c = s[l], e[(u + f * d) * 4 + 0] = c, e[(u + f * d) * 4 + 1] = c, e[(u + f * d) * 4 + 2] = c, e[(u + f * d) * 4 + 3] = 255;
68
+ return e;
69
+ }
70
+ function c(e, t, n, r, i, a, o, s) {
71
+ let c = 0, l, u, d = E.width;
72
+ for (u = t; u !== r; u += n) for (l = i; l !== o; l += a, c += 2) e[(l + d * u) * 4 + 0] = s[c + 0], e[(l + d * u) * 4 + 1] = s[c + 0], e[(l + d * u) * 4 + 2] = s[c + 0], e[(l + d * u) * 4 + 3] = s[c + 1];
73
+ return e;
74
+ }
75
+ function l(e, t, n, l, u) {
76
+ let d, f, p, m, h, g;
77
+ switch ((E.flags & v) >> y) {
78
+ default:
79
+ case S:
80
+ d = 0, p = 1, h = t, f = 0, m = 1, g = n;
81
+ break;
82
+ case b:
83
+ d = 0, p = 1, h = t, f = n - 1, m = -1, g = -1;
84
+ break;
85
+ case C:
86
+ d = t - 1, p = -1, h = -1, f = 0, m = 1, g = n;
87
+ break;
88
+ case x:
89
+ d = t - 1, p = -1, h = -1, f = n - 1, m = -1, g = -1;
90
+ break;
91
+ }
92
+ if (k) switch (E.pixel_size) {
93
+ case 8:
94
+ s(e, f, m, g, d, p, h, l);
95
+ break;
96
+ case 16:
97
+ c(e, f, m, g, d, p, h, l);
98
+ break;
99
+ default: throw Error("THREE.TGALoader: Format not supported.");
100
+ }
101
+ else switch (E.pixel_size) {
102
+ case 8:
103
+ r(e, f, m, g, d, p, h, l, u);
104
+ break;
105
+ case 16:
106
+ i(e, f, m, g, d, p, h, l);
107
+ break;
108
+ case 24:
109
+ a(e, f, m, g, d, p, h, l);
110
+ break;
111
+ case 32:
112
+ o(e, f, m, g, d, p, h, l);
113
+ break;
114
+ default: throw Error("THREE.TGALoader: Format not supported.");
115
+ }
116
+ return e;
117
+ }
118
+ let u = 0, d = 1, f = 2, p = 3, m = 9, h = 10, g = 11, v = 48, y = 4, b = 0, x = 1, S = 2, C = 3;
119
+ if (e.length < 19) throw Error("THREE.TGALoader: Not enough data to contain header.");
120
+ let w = 0, T = new Uint8Array(e), E = {
121
+ id_length: T[w++],
122
+ colormap_type: T[w++],
123
+ image_type: T[w++],
124
+ colormap_index: T[w++] | T[w++] << 8,
125
+ colormap_length: T[w++] | T[w++] << 8,
126
+ colormap_size: T[w++],
127
+ origin: [T[w++] | T[w++] << 8, T[w++] | T[w++] << 8],
128
+ width: T[w++] | T[w++] << 8,
129
+ height: T[w++] | T[w++] << 8,
130
+ pixel_size: T[w++],
131
+ flags: T[w++]
132
+ };
133
+ if (t(E), E.id_length + w > e.length) throw Error("THREE.TGALoader: No data.");
134
+ w += E.id_length;
135
+ let D = !1, O = !1, k = !1;
136
+ switch (E.image_type) {
137
+ case 9:
138
+ D = !0, O = !0;
139
+ break;
140
+ case 1:
141
+ O = !0;
142
+ break;
143
+ case 10:
144
+ D = !0;
145
+ break;
146
+ case 2: break;
147
+ case 11:
148
+ D = !0, k = !0;
149
+ break;
150
+ case 3:
151
+ k = !0;
152
+ break;
153
+ }
154
+ let A = new Uint8Array(E.width * E.height * 4), j = n(D, O, E, w, T);
155
+ return l(A, E.width, E.height, j.pixel_data, j.palettes), {
156
+ data: A,
157
+ width: E.width,
158
+ height: E.height,
159
+ flipY: !0,
160
+ generateMipmaps: !0,
161
+ minFilter: _
162
+ };
163
+ }
164
+ };
165
+ //#endregion
166
+ //#region node_modules/.pnpm/three@0.184.0/node_modules/three/examples/jsm/loaders/collada/ColladaParser.js
167
+ function W(e, t) {
168
+ let n = [], r = e.childNodes;
169
+ for (let e = 0, i = r.length; e < i; e++) {
170
+ let i = r[e];
171
+ i.nodeName === t && n.push(i);
172
+ }
173
+ return n;
174
+ }
175
+ function G(e) {
176
+ return e.length === 0 ? [] : e.trim().split(/\s+/);
177
+ }
178
+ function K(e) {
179
+ return e.length === 0 ? [] : e.trim().split(/\s+/).map(parseFloat);
180
+ }
181
+ function q(e) {
182
+ return e.length === 0 ? [] : e.trim().split(/\s+/).map((e) => parseInt(e));
183
+ }
184
+ function J(e) {
185
+ return e.substring(1);
186
+ }
187
+ var Y = class {
188
+ constructor() {
189
+ this.count = 0;
190
+ }
191
+ generateId() {
192
+ return "three_default_" + this.count++;
193
+ }
194
+ parse(e) {
195
+ if (e.length === 0) return null;
196
+ let t = new DOMParser().parseFromString(e, "application/xml"), n = W(t, "COLLADA")[0], r = t.getElementsByTagName("parsererror")[0];
197
+ if (r !== void 0) {
198
+ let e = W(r, "div")[0], t;
199
+ return t = e ? e.textContent : this.parserErrorToText(r), console.error("THREE.ColladaLoader: Failed to parse collada file.\n", t), null;
200
+ }
201
+ let i = n.getAttribute("version");
202
+ console.debug("THREE.ColladaLoader: File version", i);
203
+ let a = this.parseAsset(W(n, "asset")[0]), o = {
204
+ animations: {},
205
+ clips: {},
206
+ controllers: {},
207
+ images: {},
208
+ effects: {},
209
+ materials: {},
210
+ cameras: {},
211
+ lights: {},
212
+ geometries: {},
213
+ nodes: {},
214
+ visualScenes: {},
215
+ kinematicsModels: {},
216
+ physicsModels: {},
217
+ kinematicsScenes: {},
218
+ joints: {}
219
+ };
220
+ return this.library = o, this.collada = n, this.parseLibrary(n, "library_animations", "animation", this.parseAnimation.bind(this)), this.parseLibrary(n, "library_animation_clips", "animation_clip", this.parseAnimationClip.bind(this)), this.parseLibrary(n, "library_controllers", "controller", this.parseController.bind(this)), this.parseLibrary(n, "library_images", "image", this.parseImage.bind(this)), this.parseLibrary(n, "library_effects", "effect", this.parseEffect.bind(this)), this.parseLibrary(n, "library_materials", "material", this.parseMaterial.bind(this)), this.parseLibrary(n, "library_cameras", "camera", this.parseCamera.bind(this)), this.parseLibrary(n, "library_lights", "light", this.parseLight.bind(this)), this.parseLibrary(n, "library_geometries", "geometry", this.parseGeometry.bind(this)), this.parseLibrary(n, "library_nodes", "node", this.parseNode.bind(this)), this.parseLibrary(n, "library_visual_scenes", "visual_scene", this.parseVisualScene.bind(this)), this.parseLibrary(n, "library_joints", "joint", this.parseLibraryJoint.bind(this)), this.parseLibrary(n, "library_kinematics_models", "kinematics_model", this.parseKinematicsModel.bind(this)), this.parseLibrary(n, "library_physics_models", "physics_model", this.parsePhysicsModel.bind(this)), this.parseLibrary(n, "scene", "instance_kinematics_scene", this.parseKinematicsScene.bind(this)), {
221
+ library: o,
222
+ asset: a,
223
+ collada: n
224
+ };
225
+ }
226
+ parserErrorToText(e) {
227
+ let t = [], n = [e];
228
+ for (; n.length;) {
229
+ let e = n.shift();
230
+ e.nodeType === Node.TEXT_NODE ? t.push(e.textContent) : (t.push("\n"), n.push(...e.childNodes));
231
+ }
232
+ return t.join("").trim();
233
+ }
234
+ parseAsset(e) {
235
+ return {
236
+ unit: this.parseAssetUnit(W(e, "unit")[0]),
237
+ upAxis: this.parseAssetUpAxis(W(e, "up_axis")[0])
238
+ };
239
+ }
240
+ parseAssetUnit(e) {
241
+ return e !== void 0 && e.hasAttribute("meter") === !0 ? parseFloat(e.getAttribute("meter")) : 1;
242
+ }
243
+ parseAssetUpAxis(e) {
244
+ return e === void 0 ? "Y_UP" : e.textContent;
245
+ }
246
+ parseLibrary(e, t, n, r) {
247
+ let i = W(e, t)[0];
248
+ if (i !== void 0) {
249
+ let e = W(i, n);
250
+ for (let t = 0; t < e.length; t++) r(e[t]);
251
+ }
252
+ }
253
+ parseAnimation(e) {
254
+ let t = {
255
+ sources: {},
256
+ samplers: {},
257
+ channels: {}
258
+ }, n = !1;
259
+ for (let r = 0, i = e.childNodes.length; r < i; r++) {
260
+ let i = e.childNodes[r];
261
+ if (i.nodeType !== 1) continue;
262
+ let a;
263
+ switch (i.nodeName) {
264
+ case "source":
265
+ a = i.getAttribute("id"), t.sources[a] = this.parseSource(i);
266
+ break;
267
+ case "sampler":
268
+ a = i.getAttribute("id"), t.samplers[a] = this.parseAnimationSampler(i);
269
+ break;
270
+ case "channel":
271
+ a = i.getAttribute("target"), t.channels[a] = this.parseAnimationChannel(i);
272
+ break;
273
+ case "animation":
274
+ this.parseAnimation(i), n = !0;
275
+ break;
276
+ default:
277
+ }
278
+ }
279
+ n === !1 && (this.library.animations[e.getAttribute("id") || y.generateUUID()] = t);
280
+ }
281
+ parseAnimationSampler(e) {
282
+ let t = { inputs: {} };
283
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
284
+ let r = e.childNodes[n];
285
+ if (r.nodeType === 1) switch (r.nodeName) {
286
+ case "input":
287
+ let e = J(r.getAttribute("source")), n = r.getAttribute("semantic");
288
+ t.inputs[n] = e;
289
+ break;
290
+ }
291
+ }
292
+ return t;
293
+ }
294
+ parseAnimationChannel(e) {
295
+ let t = {}, n = e.getAttribute("target").split("/"), r = n.shift(), i = n.shift(), a = i.indexOf("(") !== -1, o = i.indexOf(".") !== -1;
296
+ if (o) n = i.split("."), i = n.shift(), t.member = n.shift();
297
+ else if (a) {
298
+ let e = i.split("(");
299
+ i = e.shift();
300
+ for (let t = 0; t < e.length; t++) e[t] = parseInt(e[t].replace(/\)/, ""));
301
+ t.indices = e;
302
+ }
303
+ return t.id = r, t.sid = i, t.arraySyntax = a, t.memberSyntax = o, t.sampler = J(e.getAttribute("source")), t;
304
+ }
305
+ parseAnimationClip(e) {
306
+ let t = {
307
+ name: e.getAttribute("id") || "default",
308
+ start: parseFloat(e.getAttribute("start") || 0),
309
+ end: parseFloat(e.getAttribute("end") || 0),
310
+ animations: []
311
+ };
312
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
313
+ let r = e.childNodes[n];
314
+ if (r.nodeType === 1) switch (r.nodeName) {
315
+ case "instance_animation":
316
+ t.animations.push(J(r.getAttribute("url")));
317
+ break;
318
+ }
319
+ }
320
+ this.library.clips[e.getAttribute("id")] = t;
321
+ }
322
+ parseController(e) {
323
+ let t = {};
324
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
325
+ let r = e.childNodes[n];
326
+ if (r.nodeType === 1) switch (r.nodeName) {
327
+ case "skin":
328
+ t.id = J(r.getAttribute("source")), t.skin = this.parseSkin(r);
329
+ break;
330
+ case "morph":
331
+ t.id = J(r.getAttribute("source")), console.warn("THREE.ColladaLoader: Morph target animation not supported yet.");
332
+ break;
333
+ }
334
+ }
335
+ this.library.controllers[e.getAttribute("id")] = t;
336
+ }
337
+ parseSkin(e) {
338
+ let t = { sources: {} };
339
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
340
+ let r = e.childNodes[n];
341
+ if (r.nodeType === 1) switch (r.nodeName) {
342
+ case "bind_shape_matrix":
343
+ t.bindShapeMatrix = K(r.textContent);
344
+ break;
345
+ case "source":
346
+ let e = r.getAttribute("id");
347
+ t.sources[e] = this.parseSource(r);
348
+ break;
349
+ case "joints":
350
+ t.joints = this.parseJoints(r);
351
+ break;
352
+ case "vertex_weights":
353
+ t.vertexWeights = this.parseVertexWeights(r);
354
+ break;
355
+ }
356
+ }
357
+ return t;
358
+ }
359
+ parseJoints(e) {
360
+ let t = { inputs: {} };
361
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
362
+ let r = e.childNodes[n];
363
+ if (r.nodeType === 1) switch (r.nodeName) {
364
+ case "input":
365
+ let e = r.getAttribute("semantic"), n = J(r.getAttribute("source"));
366
+ t.inputs[e] = n;
367
+ break;
368
+ }
369
+ }
370
+ return t;
371
+ }
372
+ parseVertexWeights(e) {
373
+ let t = { inputs: {} };
374
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
375
+ let r = e.childNodes[n];
376
+ if (r.nodeType === 1) switch (r.nodeName) {
377
+ case "input":
378
+ let e = r.getAttribute("semantic"), n = J(r.getAttribute("source")), i = parseInt(r.getAttribute("offset"));
379
+ t.inputs[e] = {
380
+ id: n,
381
+ offset: i
382
+ };
383
+ break;
384
+ case "vcount":
385
+ t.vcount = q(r.textContent);
386
+ break;
387
+ case "v":
388
+ t.v = q(r.textContent);
389
+ break;
390
+ }
391
+ }
392
+ return t;
393
+ }
394
+ parseImage(e) {
395
+ let t = { init_from: W(e, "init_from")[0].textContent };
396
+ this.library.images[e.getAttribute("id")] = t;
397
+ }
398
+ parseEffect(e) {
399
+ let t = {};
400
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
401
+ let r = e.childNodes[n];
402
+ if (r.nodeType === 1) switch (r.nodeName) {
403
+ case "profile_COMMON":
404
+ t.profile = this.parseEffectProfileCOMMON(r);
405
+ break;
406
+ }
407
+ }
408
+ this.library.effects[e.getAttribute("id")] = t;
409
+ }
410
+ parseEffectProfileCOMMON(e) {
411
+ let t = {
412
+ surfaces: {},
413
+ samplers: {}
414
+ };
415
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
416
+ let r = e.childNodes[n];
417
+ if (r.nodeType === 1) switch (r.nodeName) {
418
+ case "newparam":
419
+ this.parseEffectNewparam(r, t);
420
+ break;
421
+ case "technique":
422
+ t.technique = this.parseEffectTechnique(r);
423
+ break;
424
+ case "extra":
425
+ t.extra = this.parseEffectExtra(r);
426
+ break;
427
+ }
428
+ }
429
+ return t;
430
+ }
431
+ parseEffectNewparam(e, t) {
432
+ let n = e.getAttribute("sid");
433
+ for (let r = 0, i = e.childNodes.length; r < i; r++) {
434
+ let i = e.childNodes[r];
435
+ if (i.nodeType === 1) switch (i.nodeName) {
436
+ case "surface":
437
+ t.surfaces[n] = this.parseEffectSurface(i);
438
+ break;
439
+ case "sampler2D":
440
+ t.samplers[n] = this.parseEffectSampler(i);
441
+ break;
442
+ }
443
+ }
444
+ }
445
+ parseEffectSurface(e) {
446
+ let t = {};
447
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
448
+ let r = e.childNodes[n];
449
+ if (r.nodeType === 1) switch (r.nodeName) {
450
+ case "init_from":
451
+ t.init_from = r.textContent;
452
+ break;
453
+ }
454
+ }
455
+ return t;
456
+ }
457
+ parseEffectSampler(e) {
458
+ let t = {};
459
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
460
+ let r = e.childNodes[n];
461
+ if (r.nodeType === 1) switch (r.nodeName) {
462
+ case "source":
463
+ t.source = r.textContent;
464
+ break;
465
+ }
466
+ }
467
+ return t;
468
+ }
469
+ parseEffectTechnique(e) {
470
+ let t = {};
471
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
472
+ let r = e.childNodes[n];
473
+ if (r.nodeType === 1) switch (r.nodeName) {
474
+ case "constant":
475
+ case "lambert":
476
+ case "blinn":
477
+ case "phong":
478
+ t.type = r.nodeName, t.parameters = this.parseEffectParameters(r);
479
+ break;
480
+ case "extra":
481
+ t.extra = this.parseEffectExtra(r);
482
+ break;
483
+ }
484
+ }
485
+ return t;
486
+ }
487
+ parseEffectParameters(e) {
488
+ let t = {};
489
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
490
+ let r = e.childNodes[n];
491
+ if (r.nodeType === 1) switch (r.nodeName) {
492
+ case "emission":
493
+ case "diffuse":
494
+ case "specular":
495
+ case "bump":
496
+ case "ambient":
497
+ case "shininess":
498
+ case "transparency":
499
+ t[r.nodeName] = this.parseEffectParameter(r);
500
+ break;
501
+ case "transparent":
502
+ t[r.nodeName] = {
503
+ opaque: r.hasAttribute("opaque") ? r.getAttribute("opaque") : "A_ONE",
504
+ data: this.parseEffectParameter(r)
505
+ };
506
+ break;
507
+ }
508
+ }
509
+ return t;
510
+ }
511
+ parseEffectParameter(e) {
512
+ let t = {};
513
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
514
+ let r = e.childNodes[n];
515
+ if (r.nodeType === 1) switch (r.nodeName) {
516
+ case "color":
517
+ t[r.nodeName] = K(r.textContent);
518
+ break;
519
+ case "float":
520
+ t[r.nodeName] = parseFloat(r.textContent);
521
+ break;
522
+ case "texture":
523
+ t[r.nodeName] = {
524
+ id: r.getAttribute("texture"),
525
+ extra: this.parseEffectParameterTexture(r)
526
+ };
527
+ break;
528
+ }
529
+ }
530
+ return t;
531
+ }
532
+ parseEffectParameterTexture(e) {
533
+ let t = { technique: {} };
534
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
535
+ let r = e.childNodes[n];
536
+ if (r.nodeType === 1) switch (r.nodeName) {
537
+ case "extra":
538
+ this.parseEffectParameterTextureExtra(r, t);
539
+ break;
540
+ }
541
+ }
542
+ return t;
543
+ }
544
+ parseEffectParameterTextureExtra(e, t) {
545
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
546
+ let r = e.childNodes[n];
547
+ if (r.nodeType === 1) switch (r.nodeName) {
548
+ case "technique":
549
+ this.parseEffectParameterTextureExtraTechnique(r, t);
550
+ break;
551
+ }
552
+ }
553
+ }
554
+ parseEffectParameterTextureExtraTechnique(e, t) {
555
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
556
+ let r = e.childNodes[n];
557
+ if (r.nodeType === 1) switch (r.nodeName) {
558
+ case "repeatU":
559
+ case "repeatV":
560
+ case "offsetU":
561
+ case "offsetV":
562
+ t.technique[r.nodeName] = parseFloat(r.textContent);
563
+ break;
564
+ case "wrapU":
565
+ case "wrapV":
566
+ r.textContent.toUpperCase() === "TRUE" ? t.technique[r.nodeName] = 1 : r.textContent.toUpperCase() === "FALSE" ? t.technique[r.nodeName] = 0 : t.technique[r.nodeName] = parseInt(r.textContent);
567
+ break;
568
+ case "bump":
569
+ t[r.nodeName] = this.parseEffectExtraTechniqueBump(r);
570
+ break;
571
+ }
572
+ }
573
+ }
574
+ parseEffectExtra(e) {
575
+ let t = {};
576
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
577
+ let r = e.childNodes[n];
578
+ if (r.nodeType === 1) switch (r.nodeName) {
579
+ case "technique":
580
+ t.technique = this.parseEffectExtraTechnique(r);
581
+ break;
582
+ }
583
+ }
584
+ return t;
585
+ }
586
+ parseEffectExtraTechnique(e) {
587
+ let t = {};
588
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
589
+ let r = e.childNodes[n];
590
+ if (r.nodeType === 1) switch (r.nodeName) {
591
+ case "double_sided":
592
+ t[r.nodeName] = parseInt(r.textContent);
593
+ break;
594
+ case "bump":
595
+ t[r.nodeName] = this.parseEffectExtraTechniqueBump(r);
596
+ break;
597
+ }
598
+ }
599
+ return t;
600
+ }
601
+ parseEffectExtraTechniqueBump(e) {
602
+ let t = {};
603
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
604
+ let r = e.childNodes[n];
605
+ if (r.nodeType === 1) switch (r.nodeName) {
606
+ case "texture":
607
+ t[r.nodeName] = {
608
+ id: r.getAttribute("texture"),
609
+ texcoord: r.getAttribute("texcoord"),
610
+ extra: this.parseEffectParameterTexture(r)
611
+ };
612
+ break;
613
+ }
614
+ }
615
+ return t;
616
+ }
617
+ parseMaterial(e) {
618
+ let t = { name: e.getAttribute("name") };
619
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
620
+ let r = e.childNodes[n];
621
+ if (r.nodeType === 1) switch (r.nodeName) {
622
+ case "instance_effect":
623
+ t.url = J(r.getAttribute("url"));
624
+ break;
625
+ }
626
+ }
627
+ this.library.materials[e.getAttribute("id")] = t;
628
+ }
629
+ parseCamera(e) {
630
+ let t = { name: e.getAttribute("name") };
631
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
632
+ let r = e.childNodes[n];
633
+ if (r.nodeType === 1) switch (r.nodeName) {
634
+ case "optics":
635
+ t.optics = this.parseCameraOptics(r);
636
+ break;
637
+ }
638
+ }
639
+ this.library.cameras[e.getAttribute("id")] = t;
640
+ }
641
+ parseCameraOptics(e) {
642
+ for (let t = 0; t < e.childNodes.length; t++) {
643
+ let n = e.childNodes[t];
644
+ switch (n.nodeName) {
645
+ case "technique_common": return this.parseCameraTechnique(n);
646
+ }
647
+ }
648
+ return {};
649
+ }
650
+ parseCameraTechnique(e) {
651
+ let t = {};
652
+ for (let n = 0; n < e.childNodes.length; n++) {
653
+ let r = e.childNodes[n];
654
+ switch (r.nodeName) {
655
+ case "perspective":
656
+ case "orthographic":
657
+ t.technique = r.nodeName, t.parameters = this.parseCameraParameters(r);
658
+ break;
659
+ }
660
+ }
661
+ return t;
662
+ }
663
+ parseCameraParameters(e) {
664
+ let t = {};
665
+ for (let n = 0; n < e.childNodes.length; n++) {
666
+ let r = e.childNodes[n];
667
+ switch (r.nodeName) {
668
+ case "xfov":
669
+ case "yfov":
670
+ case "xmag":
671
+ case "ymag":
672
+ case "znear":
673
+ case "zfar":
674
+ case "aspect_ratio":
675
+ t[r.nodeName] = parseFloat(r.textContent);
676
+ break;
677
+ }
678
+ }
679
+ return t;
680
+ }
681
+ parseLight(e) {
682
+ let t = {};
683
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
684
+ let r = e.childNodes[n];
685
+ if (r.nodeType === 1) switch (r.nodeName) {
686
+ case "technique_common":
687
+ t = this.parseLightTechnique(r);
688
+ break;
689
+ }
690
+ }
691
+ this.library.lights[e.getAttribute("id")] = t;
692
+ }
693
+ parseLightTechnique(e) {
694
+ let t = {};
695
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
696
+ let r = e.childNodes[n];
697
+ if (r.nodeType === 1) switch (r.nodeName) {
698
+ case "directional":
699
+ case "point":
700
+ case "spot":
701
+ case "ambient":
702
+ t.technique = r.nodeName, t.parameters = this.parseLightParameters(r);
703
+ break;
704
+ }
705
+ }
706
+ return t;
707
+ }
708
+ parseLightParameters(e) {
709
+ let t = {};
710
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
711
+ let r = e.childNodes[n];
712
+ if (r.nodeType === 1) switch (r.nodeName) {
713
+ case "color":
714
+ let e = K(r.textContent);
715
+ t.color = new A().fromArray(e), E.colorSpaceToWorking(t.color, R);
716
+ break;
717
+ case "falloff_angle":
718
+ t.falloffAngle = parseFloat(r.textContent);
719
+ break;
720
+ case "quadratic_attenuation":
721
+ let n = parseFloat(r.textContent);
722
+ t.distance = n ? Math.sqrt(1 / n) : 0;
723
+ break;
724
+ }
725
+ }
726
+ return t;
727
+ }
728
+ parseGeometry(e) {
729
+ let t = {
730
+ name: e.getAttribute("name"),
731
+ sources: {},
732
+ vertices: {},
733
+ primitives: []
734
+ }, n = W(e, "mesh")[0];
735
+ if (n !== void 0) {
736
+ for (let e = 0; e < n.childNodes.length; e++) {
737
+ let r = n.childNodes[e];
738
+ if (r.nodeType !== 1) continue;
739
+ let i = r.getAttribute("id");
740
+ switch (r.nodeName) {
741
+ case "source":
742
+ t.sources[i] = this.parseSource(r);
743
+ break;
744
+ case "vertices":
745
+ t.vertices = this.parseGeometryVertices(r);
746
+ break;
747
+ case "polygons":
748
+ case "lines":
749
+ case "linestrips":
750
+ case "polylist":
751
+ case "triangles":
752
+ t.primitives.push(this.parseGeometryPrimitive(r));
753
+ break;
754
+ default:
755
+ }
756
+ }
757
+ this.library.geometries[e.getAttribute("id")] = t;
758
+ }
759
+ }
760
+ parseSource(e) {
761
+ let t = {
762
+ array: [],
763
+ stride: 3
764
+ };
765
+ for (let n = 0; n < e.childNodes.length; n++) {
766
+ let r = e.childNodes[n];
767
+ if (r.nodeType === 1) switch (r.nodeName) {
768
+ case "float_array":
769
+ t.array = K(r.textContent);
770
+ break;
771
+ case "Name_array":
772
+ t.array = G(r.textContent);
773
+ break;
774
+ case "technique_common":
775
+ let e = W(r, "accessor")[0];
776
+ e !== void 0 && (t.stride = parseInt(e.getAttribute("stride")));
777
+ break;
778
+ }
779
+ }
780
+ return t;
781
+ }
782
+ parseGeometryVertices(e) {
783
+ let t = {};
784
+ for (let n = 0; n < e.childNodes.length; n++) {
785
+ let r = e.childNodes[n];
786
+ r.nodeType === 1 && (t[r.getAttribute("semantic")] = J(r.getAttribute("source")));
787
+ }
788
+ return t;
789
+ }
790
+ parseGeometryPrimitive(e) {
791
+ let t = {
792
+ type: e.nodeName,
793
+ material: e.getAttribute("material"),
794
+ count: parseInt(e.getAttribute("count")),
795
+ inputs: {},
796
+ stride: 0,
797
+ hasUV: !1
798
+ };
799
+ for (let n = 0, r = e.childNodes.length; n < r; n++) {
800
+ let r = e.childNodes[n];
801
+ if (r.nodeType === 1) switch (r.nodeName) {
802
+ case "input":
803
+ let e = J(r.getAttribute("source")), n = r.getAttribute("semantic"), i = parseInt(r.getAttribute("offset")), a = parseInt(r.getAttribute("set")), o = a > 0 ? n + a : n;
804
+ t.inputs[o] = {
805
+ id: e,
806
+ offset: i
807
+ }, t.stride = Math.max(t.stride, i + 1), n === "TEXCOORD" && (t.hasUV = !0);
808
+ break;
809
+ case "vcount":
810
+ t.vcount = q(r.textContent);
811
+ break;
812
+ case "p":
813
+ t.p = q(r.textContent);
814
+ break;
815
+ }
816
+ }
817
+ return t.type === "polygons" && (t.vcount = [t.p.length / t.stride]), t;
818
+ }
819
+ parseLibraryJoint(e) {
820
+ this.library.joints[e.getAttribute("id")] = this.parseKinematicsJoint(e);
821
+ }
822
+ parseKinematicsModel(e) {
823
+ let t = {
824
+ name: e.getAttribute("name") || "",
825
+ joints: {},
826
+ links: []
827
+ };
828
+ for (let n = 0; n < e.childNodes.length; n++) {
829
+ let r = e.childNodes[n];
830
+ if (r.nodeType === 1) switch (r.nodeName) {
831
+ case "technique_common":
832
+ this.parseKinematicsTechniqueCommon(r, t);
833
+ break;
834
+ }
835
+ }
836
+ this.library.kinematicsModels[e.getAttribute("id")] = t;
837
+ }
838
+ parseKinematicsTechniqueCommon(e, t) {
839
+ for (let n = 0; n < e.childNodes.length; n++) {
840
+ let r = e.childNodes[n];
841
+ if (r.nodeType === 1) switch (r.nodeName) {
842
+ case "joint":
843
+ t.joints[r.getAttribute("sid")] = this.parseKinematicsJoint(r);
844
+ break;
845
+ case "instance_joint":
846
+ t.joints[r.getAttribute("sid")] = this.library.joints[J(r.getAttribute("url"))];
847
+ break;
848
+ case "link":
849
+ t.links.push(this.parseKinematicsLink(r));
850
+ break;
851
+ }
852
+ }
853
+ }
854
+ parseKinematicsJoint(e) {
855
+ let t;
856
+ for (let n = 0; n < e.childNodes.length; n++) {
857
+ let r = e.childNodes[n];
858
+ if (r.nodeType === 1) switch (r.nodeName) {
859
+ case "prismatic":
860
+ case "revolute":
861
+ t = this.parseKinematicsJointParameter(r);
862
+ break;
863
+ }
864
+ }
865
+ return t;
866
+ }
867
+ parseKinematicsJointParameter(e) {
868
+ let n = {
869
+ sid: e.getAttribute("sid"),
870
+ name: e.getAttribute("name") || "",
871
+ axis: new t(),
872
+ limits: {
873
+ min: 0,
874
+ max: 0
875
+ },
876
+ type: e.nodeName,
877
+ static: !1,
878
+ zeroPosition: 0,
879
+ middlePosition: 0
880
+ };
881
+ for (let t = 0; t < e.childNodes.length; t++) {
882
+ let r = e.childNodes[t];
883
+ if (r.nodeType === 1) switch (r.nodeName) {
884
+ case "axis":
885
+ let e = K(r.textContent);
886
+ n.axis.fromArray(e);
887
+ break;
888
+ case "limits":
889
+ let t = r.getElementsByTagName("max")[0], i = r.getElementsByTagName("min")[0];
890
+ n.limits.max = parseFloat(t.textContent), n.limits.min = parseFloat(i.textContent);
891
+ break;
892
+ }
893
+ }
894
+ return n.limits.min >= n.limits.max && (n.static = !0), n.middlePosition = (n.limits.min + n.limits.max) / 2, n;
895
+ }
896
+ parseKinematicsLink(e) {
897
+ let t = {
898
+ sid: e.getAttribute("sid"),
899
+ name: e.getAttribute("name") || "",
900
+ attachments: [],
901
+ transforms: []
902
+ };
903
+ for (let n = 0; n < e.childNodes.length; n++) {
904
+ let r = e.childNodes[n];
905
+ if (r.nodeType === 1) switch (r.nodeName) {
906
+ case "attachment_full":
907
+ t.attachments.push(this.parseKinematicsAttachment(r));
908
+ break;
909
+ case "matrix":
910
+ case "translate":
911
+ case "rotate":
912
+ t.transforms.push(this.parseKinematicsTransform(r));
913
+ break;
914
+ }
915
+ }
916
+ return t;
917
+ }
918
+ parseKinematicsAttachment(e) {
919
+ let t = {
920
+ joint: e.getAttribute("joint").split("/").pop(),
921
+ transforms: [],
922
+ links: []
923
+ };
924
+ for (let n = 0; n < e.childNodes.length; n++) {
925
+ let r = e.childNodes[n];
926
+ if (r.nodeType === 1) switch (r.nodeName) {
927
+ case "link":
928
+ t.links.push(this.parseKinematicsLink(r));
929
+ break;
930
+ case "matrix":
931
+ case "translate":
932
+ case "rotate":
933
+ t.transforms.push(this.parseKinematicsTransform(r));
934
+ break;
935
+ }
936
+ }
937
+ return t;
938
+ }
939
+ parseKinematicsTransform(n) {
940
+ let r = { type: n.nodeName }, i = K(n.textContent);
941
+ switch (r.type) {
942
+ case "matrix":
943
+ r.obj = new e(), r.obj.fromArray(i).transpose();
944
+ break;
945
+ case "translate":
946
+ r.obj = new t(), r.obj.fromArray(i);
947
+ break;
948
+ case "rotate":
949
+ r.obj = new t(), r.obj.fromArray(i), r.angle = y.degToRad(i[3]);
950
+ break;
951
+ }
952
+ return r;
953
+ }
954
+ parsePhysicsModel(e) {
955
+ let t = {
956
+ name: e.getAttribute("name") || "",
957
+ rigidBodies: {}
958
+ };
959
+ for (let n = 0; n < e.childNodes.length; n++) {
960
+ let r = e.childNodes[n];
961
+ if (r.nodeType === 1) switch (r.nodeName) {
962
+ case "rigid_body":
963
+ t.rigidBodies[r.getAttribute("name")] = {}, this.parsePhysicsRigidBody(r, t.rigidBodies[r.getAttribute("name")]);
964
+ break;
965
+ }
966
+ }
967
+ this.library.physicsModels[e.getAttribute("id")] = t;
968
+ }
969
+ parsePhysicsRigidBody(e, t) {
970
+ for (let n = 0; n < e.childNodes.length; n++) {
971
+ let r = e.childNodes[n];
972
+ if (r.nodeType === 1) switch (r.nodeName) {
973
+ case "technique_common":
974
+ this.parsePhysicsTechniqueCommon(r, t);
975
+ break;
976
+ }
977
+ }
978
+ }
979
+ parsePhysicsTechniqueCommon(e, t) {
980
+ for (let n = 0; n < e.childNodes.length; n++) {
981
+ let r = e.childNodes[n];
982
+ if (r.nodeType === 1) switch (r.nodeName) {
983
+ case "inertia":
984
+ t.inertia = K(r.textContent);
985
+ break;
986
+ case "mass":
987
+ t.mass = K(r.textContent)[0];
988
+ break;
989
+ }
990
+ }
991
+ }
992
+ parseKinematicsScene(e) {
993
+ let t = { bindJointAxis: [] };
994
+ for (let n = 0; n < e.childNodes.length; n++) {
995
+ let r = e.childNodes[n];
996
+ if (r.nodeType === 1) switch (r.nodeName) {
997
+ case "bind_joint_axis":
998
+ t.bindJointAxis.push(this.parseKinematicsBindJointAxis(r));
999
+ break;
1000
+ }
1001
+ }
1002
+ this.library.kinematicsScenes[J(e.getAttribute("url"))] = t;
1003
+ }
1004
+ parseKinematicsBindJointAxis(e) {
1005
+ let t = { target: e.getAttribute("target").split("/").pop() };
1006
+ for (let n = 0; n < e.childNodes.length; n++) {
1007
+ let r = e.childNodes[n];
1008
+ if (r.nodeType === 1) switch (r.nodeName) {
1009
+ case "axis":
1010
+ t.axis = r.getElementsByTagName("param")[0].textContent;
1011
+ let e = t.axis.split("inst_").pop().split("axis")[0];
1012
+ t.jointIndex = e.substring(0, e.length - 1);
1013
+ break;
1014
+ }
1015
+ }
1016
+ return t;
1017
+ }
1018
+ prepareNodes(e) {
1019
+ let t = e.getElementsByTagName("node");
1020
+ for (let e = 0; e < t.length; e++) {
1021
+ let n = t[e];
1022
+ n.hasAttribute("id") === !1 && n.setAttribute("id", this.generateId());
1023
+ }
1024
+ }
1025
+ parseNode(n) {
1026
+ let r = new e(), i = new t(), a = {
1027
+ name: n.getAttribute("name") || "",
1028
+ type: n.getAttribute("type"),
1029
+ id: n.getAttribute("id"),
1030
+ sid: n.getAttribute("sid"),
1031
+ matrix: new e(),
1032
+ nodes: [],
1033
+ instanceCameras: [],
1034
+ instanceControllers: [],
1035
+ instanceLights: [],
1036
+ instanceGeometries: [],
1037
+ instanceNodes: [],
1038
+ transforms: {},
1039
+ transformData: {},
1040
+ transformOrder: []
1041
+ };
1042
+ for (let e = 0; e < n.childNodes.length; e++) {
1043
+ let t = n.childNodes[e];
1044
+ if (t.nodeType !== 1) continue;
1045
+ let o;
1046
+ switch (t.nodeName) {
1047
+ case "node":
1048
+ a.nodes.push(t.getAttribute("id")), this.parseNode(t);
1049
+ break;
1050
+ case "instance_camera":
1051
+ a.instanceCameras.push(J(t.getAttribute("url")));
1052
+ break;
1053
+ case "instance_controller":
1054
+ a.instanceControllers.push(this.parseNodeInstance(t));
1055
+ break;
1056
+ case "instance_light":
1057
+ a.instanceLights.push(J(t.getAttribute("url")));
1058
+ break;
1059
+ case "instance_geometry":
1060
+ a.instanceGeometries.push(this.parseNodeInstance(t));
1061
+ break;
1062
+ case "instance_node":
1063
+ a.instanceNodes.push(J(t.getAttribute("url")));
1064
+ break;
1065
+ case "matrix":
1066
+ o = K(t.textContent), a.matrix.multiply(r.fromArray(o).transpose());
1067
+ {
1068
+ let e = t.getAttribute("sid");
1069
+ a.transforms[e] = t.nodeName, a.transformData[e] = {
1070
+ type: "matrix",
1071
+ array: o
1072
+ }, a.transformOrder.push(e);
1073
+ }
1074
+ break;
1075
+ case "translate":
1076
+ o = K(t.textContent), i.fromArray(o), a.matrix.multiply(r.makeTranslation(i.x, i.y, i.z));
1077
+ {
1078
+ let e = t.getAttribute("sid");
1079
+ a.transforms[e] = t.nodeName, a.transformData[e] = {
1080
+ type: "translate",
1081
+ x: o[0],
1082
+ y: o[1],
1083
+ z: o[2]
1084
+ }, a.transformOrder.push(e);
1085
+ }
1086
+ break;
1087
+ case "rotate":
1088
+ o = K(t.textContent);
1089
+ {
1090
+ let e = y.degToRad(o[3]);
1091
+ a.matrix.multiply(r.makeRotationAxis(i.fromArray(o), e));
1092
+ let n = t.getAttribute("sid");
1093
+ a.transforms[n] = t.nodeName, a.transformData[n] = {
1094
+ type: "rotate",
1095
+ axis: [
1096
+ o[0],
1097
+ o[1],
1098
+ o[2]
1099
+ ],
1100
+ angle: o[3]
1101
+ }, a.transformOrder.push(n);
1102
+ }
1103
+ break;
1104
+ case "scale":
1105
+ o = K(t.textContent), a.matrix.scale(i.fromArray(o));
1106
+ {
1107
+ let e = t.getAttribute("sid");
1108
+ a.transforms[e] = t.nodeName, a.transformData[e] = {
1109
+ type: "scale",
1110
+ x: o[0],
1111
+ y: o[1],
1112
+ z: o[2]
1113
+ }, a.transformOrder.push(e);
1114
+ }
1115
+ break;
1116
+ case "extra": break;
1117
+ default:
1118
+ }
1119
+ }
1120
+ return this.hasNode(a.id) ? console.warn("THREE.ColladaLoader: There is already a node with ID %s. Exclude current node from further processing.", a.id) : this.library.nodes[a.id] = a, a;
1121
+ }
1122
+ parseNodeInstance(e) {
1123
+ let t = {
1124
+ id: J(e.getAttribute("url")),
1125
+ materials: {},
1126
+ skeletons: []
1127
+ };
1128
+ for (let n = 0; n < e.childNodes.length; n++) {
1129
+ let r = e.childNodes[n];
1130
+ switch (r.nodeName) {
1131
+ case "bind_material":
1132
+ let e = r.getElementsByTagName("instance_material");
1133
+ for (let n = 0; n < e.length; n++) {
1134
+ let r = e[n], i = r.getAttribute("symbol"), a = r.getAttribute("target");
1135
+ t.materials[i] = J(a);
1136
+ }
1137
+ break;
1138
+ case "skeleton":
1139
+ t.skeletons.push(J(r.textContent));
1140
+ break;
1141
+ default: break;
1142
+ }
1143
+ }
1144
+ return t;
1145
+ }
1146
+ parseVisualScene(e) {
1147
+ let t = {
1148
+ name: e.getAttribute("name"),
1149
+ children: []
1150
+ };
1151
+ this.prepareNodes(e);
1152
+ let n = W(e, "node");
1153
+ for (let e = 0; e < n.length; e++) t.children.push(this.parseNode(n[e]));
1154
+ this.library.visualScenes[e.getAttribute("id")] = t;
1155
+ }
1156
+ hasNode(e) {
1157
+ return this.library.nodes[e] !== void 0;
1158
+ }
1159
+ }, X = class {
1160
+ constructor(n, r, i, a) {
1161
+ this.library = n, this.collada = r, this.textureLoader = i, this.tgaLoader = a, this.tempColor = new A(), this.animations = [], this.kinematics = {}, this.position = new t(), this.scale = new t(), this.quaternion = new B(), this.matrix = new e(), this.deferredPivotAnimations = {}, this.transformNodes = {};
1162
+ }
1163
+ compose() {
1164
+ let e = this.library;
1165
+ this.buildLibrary(e.animations, this.buildAnimation.bind(this)), this.buildLibrary(e.clips, this.buildAnimationClip.bind(this)), this.buildLibrary(e.controllers, this.buildController.bind(this)), this.buildLibrary(e.images, this.buildImage.bind(this)), this.buildLibrary(e.effects, this.buildEffect.bind(this)), this.buildLibrary(e.materials, this.buildMaterial.bind(this)), this.buildLibrary(e.cameras, this.buildCamera.bind(this)), this.buildLibrary(e.lights, this.buildLight.bind(this)), this.buildLibrary(e.geometries, this.buildGeometry.bind(this)), this.buildLibrary(e.visualScenes, this.buildVisualScene.bind(this)), this.setupAnimations(), this.setupKinematics();
1166
+ let t = this.parseScene(W(this.collada, "scene")[0]);
1167
+ return t.animations = this.animations, {
1168
+ scene: t,
1169
+ animations: this.animations,
1170
+ kinematics: this.kinematics
1171
+ };
1172
+ }
1173
+ buildLibrary(e, t) {
1174
+ for (let n in e) {
1175
+ let r = e[n];
1176
+ r.build = t(e[n]);
1177
+ }
1178
+ }
1179
+ getBuild(e, t) {
1180
+ return e.build === void 0 && (e.build = t(e)), e.build;
1181
+ }
1182
+ isEmpty(e) {
1183
+ return Object.keys(e).length === 0;
1184
+ }
1185
+ buildAnimation(e) {
1186
+ let t = [], n = e.channels, r = e.samplers, i = e.sources, a = this.aggregateAnimationChannels(n, r, i);
1187
+ for (let e in a) {
1188
+ let n = this.library.nodes[e];
1189
+ if (!n) continue;
1190
+ let r = a[e];
1191
+ if (this.hasPivotTransforms(n)) this.collectDeferredPivotAnimation(e, r);
1192
+ else {
1193
+ let i = this.getNode(e), a = !1;
1194
+ for (let e in r) {
1195
+ let o = n.transforms[e], s = n.transformData[e], c = r[e];
1196
+ switch (o) {
1197
+ case "matrix":
1198
+ this.buildMatrixTracks(i, c, n, t);
1199
+ break;
1200
+ case "translate":
1201
+ this.buildTranslateTrack(i, c, s, t);
1202
+ break;
1203
+ case "rotate":
1204
+ a || (this.buildRotateTrack(i, e, c, s, n, t), a = !0);
1205
+ break;
1206
+ case "scale":
1207
+ this.buildScaleTrack(i, c, s, t);
1208
+ break;
1209
+ }
1210
+ }
1211
+ }
1212
+ }
1213
+ return t;
1214
+ }
1215
+ collectDeferredPivotAnimation(e, t) {
1216
+ this.deferredPivotAnimations[e] || (this.deferredPivotAnimations[e] = {});
1217
+ let n = this.deferredPivotAnimations[e];
1218
+ for (let e in t) {
1219
+ n[e] || (n[e] = {});
1220
+ for (let r in t[e]) n[e][r] = t[e][r];
1221
+ }
1222
+ }
1223
+ hasPivotTransforms(e) {
1224
+ for (let t of [
1225
+ "rotatePivot",
1226
+ "rotatePivotInverse",
1227
+ "rotatePivotTranslation",
1228
+ "scalePivot",
1229
+ "scalePivotInverse",
1230
+ "scalePivotTranslation"
1231
+ ]) if (e.transforms[t] !== void 0) return !0;
1232
+ return !1;
1233
+ }
1234
+ getAnimation(e) {
1235
+ return this.getBuild(this.library.animations[e], this.buildAnimation.bind(this));
1236
+ }
1237
+ aggregateAnimationChannels(e, t, n) {
1238
+ let r = {};
1239
+ for (let i in e) {
1240
+ if (!e.hasOwnProperty(i)) continue;
1241
+ let a = e[i], o = t[a.sampler], s = o.inputs.INPUT, c = o.inputs.OUTPUT, l = n[s], u = n[c], d = o.inputs.INTERPOLATION, f = o.inputs.IN_TANGENT, p = o.inputs.OUT_TANGENT, m = d ? n[d] : null, h = f ? n[f] : null, g = p ? n[p] : null, _ = a.id, v = a.sid, y = a.member || "default";
1242
+ r[_] || (r[_] = {}), r[_][v] || (r[_][v] = {}), r[_][v][y] = {
1243
+ times: l.array,
1244
+ values: u.array,
1245
+ stride: u.stride,
1246
+ arraySyntax: a.arraySyntax,
1247
+ indices: a.indices,
1248
+ interpolation: m ? m.array : null,
1249
+ inTangent: h ? h.array : null,
1250
+ outTangent: g ? g.array : null,
1251
+ inTangentStride: h ? h.stride : 0,
1252
+ outTangentStride: g ? g.stride : 0
1253
+ };
1254
+ }
1255
+ return r;
1256
+ }
1257
+ buildMatrixTracks(e, t, n, r) {
1258
+ let i = n.matrix.clone().transpose(), a = {};
1259
+ for (let e in t) {
1260
+ let n = t[e], r = n.times, i = n.values, o = n.stride;
1261
+ for (let e = 0, t = r.length; e < t; e++) {
1262
+ let t = r[e], s = e * o;
1263
+ if (a[t] === void 0 && (a[t] = {}), n.arraySyntax === !0) {
1264
+ let e = i[s], r = n.indices[0] + 4 * n.indices[1];
1265
+ a[t][r] = e;
1266
+ } else for (let e = 0; e < o; e++) a[t][e] = i[s + e];
1267
+ }
1268
+ }
1269
+ let o = this.prepareAnimationData(a, i), s = {
1270
+ name: e.uuid,
1271
+ keyframes: o
1272
+ };
1273
+ this.createKeyframeTracks(s, r);
1274
+ }
1275
+ buildTranslateTrack(e, t, n, r) {
1276
+ if (t.default && t.default.stride === 3) {
1277
+ let n = t.default, i = Array.from(n.times), a = Array.from(n.values), o = new l(e.uuid + ".position", i, a), s = this.getInterpolationInfo(t);
1278
+ this.applyInterpolation(o, s, t), r.push(o);
1279
+ return;
1280
+ }
1281
+ let i = this.getTimesForAllAxes(t);
1282
+ if (i.length === 0) return;
1283
+ let a = [], o = this.getInterpolationInfo(t);
1284
+ for (let e = 0; e < i.length; e++) {
1285
+ let r = i[e], o = this.getValueAtTime(t.X, r, n.x), s = this.getValueAtTime(t.Y, r, n.y), c = this.getValueAtTime(t.Z, r, n.z);
1286
+ a.push(o, s, c);
1287
+ }
1288
+ let s = new l(e.uuid + ".position", i, a);
1289
+ this.applyInterpolation(s, o), r.push(s);
1290
+ }
1291
+ buildRotateTrack(e, n, r, i, a, o) {
1292
+ let s = r.ANGLE || r.default;
1293
+ if (!s) return;
1294
+ let c = Array.from(s.times);
1295
+ if (c.length === 0) return;
1296
+ let l = [];
1297
+ for (let e of a.transformOrder) if (a.transforms[e] === "rotate") {
1298
+ let n = a.transformData[e];
1299
+ l.push({
1300
+ sid: e,
1301
+ axis: new t(n.axis[0], n.axis[1], n.axis[2]),
1302
+ defaultAngle: n.angle
1303
+ });
1304
+ }
1305
+ let u = new B(), d = new B(), f = new B(), p = [], m = this.getInterpolationInfo(r);
1306
+ for (let e = 0; e < c.length; e++) {
1307
+ let t = c[e];
1308
+ u.identity();
1309
+ for (let e of l) {
1310
+ let r;
1311
+ r = e.sid === n ? this.getValueAtTime(s, t, e.defaultAngle) : e.defaultAngle;
1312
+ let i = y.degToRad(r);
1313
+ f.setFromAxisAngle(e.axis, i), u.multiply(f);
1314
+ }
1315
+ e > 0 && d.dot(u) < 0 && (u.x = -u.x, u.y = -u.y, u.z = -u.z, u.w = -u.w), d.copy(u), p.push(u.x, u.y, u.z, u.w);
1316
+ }
1317
+ let h = new x(e.uuid + ".quaternion", c, p);
1318
+ this.applyInterpolation(h, m), o.push(h);
1319
+ }
1320
+ buildScaleTrack(e, t, n, r) {
1321
+ if (t.default && t.default.stride === 3) {
1322
+ let n = t.default, i = Array.from(n.times), a = Array.from(n.values), o = new l(e.uuid + ".scale", i, a), s = this.getInterpolationInfo(t);
1323
+ this.applyInterpolation(o, s, t), r.push(o);
1324
+ return;
1325
+ }
1326
+ let i = this.getTimesForAllAxes(t);
1327
+ if (i.length === 0) return;
1328
+ let a = [], o = this.getInterpolationInfo(t);
1329
+ for (let e = 0; e < i.length; e++) {
1330
+ let r = i[e], o = this.getValueAtTime(t.X, r, n.x), s = this.getValueAtTime(t.Y, r, n.y), c = this.getValueAtTime(t.Z, r, n.z);
1331
+ a.push(o, s, c);
1332
+ }
1333
+ let s = new l(e.uuid + ".scale", i, a);
1334
+ this.applyInterpolation(s, o), r.push(s);
1335
+ }
1336
+ getTimesForAllAxes(e) {
1337
+ let t = [];
1338
+ return e.X && (t = t.concat(Array.from(e.X.times))), e.Y && (t = t.concat(Array.from(e.Y.times))), e.Z && (t = t.concat(Array.from(e.Z.times))), e.ANGLE && (t = t.concat(Array.from(e.ANGLE.times))), e.default && (t = t.concat(Array.from(e.default.times))), t = [...new Set(t)].sort((e, t) => e - t), t;
1339
+ }
1340
+ getValueAtTime(e, t, n) {
1341
+ if (!e) return n;
1342
+ let r = e.times, i = e.values, a = e.interpolation;
1343
+ for (let n = 0; n < r.length; n++) {
1344
+ if (r[n] === t) return i[n];
1345
+ if (r[n] > t) {
1346
+ if (n === 0) return i[0];
1347
+ let o = n - 1, s = n, c = r[o], l = r[s], u = i[o], d = i[s], f = a ? a[o] : "LINEAR";
1348
+ return f === "STEP" ? u : f === "BEZIER" && e.inTangent && e.outTangent ? this.evaluateBezierComponent(e, o, s, c, l, t) : u + (t - c) / (l - c) * (d - u);
1349
+ }
1350
+ }
1351
+ return i[i.length - 1];
1352
+ }
1353
+ evaluateBezierComponent(e, t, n, r, i, a) {
1354
+ let o = e.values, s = e.inTangent, c = e.outTangent, l = e.inTangentStride || 1, u = o[t], d = o[n], f, p, m, h;
1355
+ l === 2 ? (f = c[t * 2], p = c[t * 2 + 1], m = s[n * 2], h = s[n * 2 + 1]) : (f = r + (i - r) / 3, p = c[t], m = i - (i - r) / 3, h = s[n]);
1356
+ let g = (a - r) / (i - r);
1357
+ for (let e = 0; e < 8; e++) {
1358
+ let e = g * g, t = e * g, n = 1 - g, o = n * n, s = o * n * r + 3 * o * g * f + 3 * n * e * m + t * i, c = 3 * o * (f - r) + 6 * n * g * (m - f) + 3 * e * (i - m);
1359
+ if (Math.abs(c) < 1e-10) break;
1360
+ let l = s - a;
1361
+ if (Math.abs(l) < 1e-10) break;
1362
+ g -= l / c, g = Math.max(0, Math.min(1, g));
1363
+ }
1364
+ let _ = g * g, v = _ * g, y = 1 - g, b = y * y;
1365
+ return b * y * u + 3 * b * g * p + 3 * y * _ * h + v * d;
1366
+ }
1367
+ getInterpolationInfo(e) {
1368
+ let t = [
1369
+ "X",
1370
+ "Y",
1371
+ "Z",
1372
+ "ANGLE",
1373
+ "default"
1374
+ ], n = null, r = !0;
1375
+ for (let i of t) {
1376
+ let t = e[i];
1377
+ if (!t || !t.interpolation) continue;
1378
+ let a = t.interpolation;
1379
+ for (let e = 0; e < a.length; e++) {
1380
+ let t = a[e];
1381
+ n === null ? n = t : t !== n && (r = !1);
1382
+ }
1383
+ }
1384
+ return {
1385
+ type: n || "LINEAR",
1386
+ uniform: r
1387
+ };
1388
+ }
1389
+ applyInterpolation(e, t, n = null) {
1390
+ if (t.type === "STEP" && t.uniform) e.setInterpolation(u);
1391
+ else if (t.type === "BEZIER" && t.uniform && n) {
1392
+ let t = n.default;
1393
+ t && t.inTangent && t.outTangent && (e.setInterpolation(s), e.settings = {
1394
+ inTangents: new Float32Array(t.inTangent),
1395
+ outTangents: new Float32Array(t.outTangent)
1396
+ });
1397
+ }
1398
+ }
1399
+ prepareAnimationData(e, t) {
1400
+ let n = [];
1401
+ for (let t in e) n.push({
1402
+ time: parseFloat(t),
1403
+ value: e[t]
1404
+ });
1405
+ n.sort((e, t) => e.time - t.time);
1406
+ for (let e = 0; e < 16; e++) this.transformAnimationData(n, e, t.elements[e]);
1407
+ return n;
1408
+ }
1409
+ createKeyframeTracks(e, t) {
1410
+ let n = e.keyframes, r = e.name, i = [], a = [], o = [], s = [], c = this.position, u = this.quaternion, d = this.scale, f = this.matrix;
1411
+ for (let e = 0, t = n.length; e < t; e++) {
1412
+ let t = n[e], r = t.time, l = t.value;
1413
+ f.fromArray(l).transpose(), f.decompose(c, u, d), i.push(r), a.push(c.x, c.y, c.z), o.push(u.x, u.y, u.z, u.w), s.push(d.x, d.y, d.z);
1414
+ }
1415
+ return a.length > 0 && t.push(new l(r + ".position", i, a)), o.length > 0 && t.push(new x(r + ".quaternion", i, o)), s.length > 0 && t.push(new l(r + ".scale", i, s)), t;
1416
+ }
1417
+ transformAnimationData(e, t, n) {
1418
+ let r, i = !0, a, o;
1419
+ for (a = 0, o = e.length; a < o; a++) r = e[a], r.value[t] === void 0 ? r.value[t] = null : i = !1;
1420
+ if (i === !0) for (a = 0, o = e.length; a < o; a++) r = e[a], r.value[t] = n;
1421
+ else this.createMissingKeyframes(e, t);
1422
+ }
1423
+ createMissingKeyframes(e, t) {
1424
+ let n, r;
1425
+ for (let i = 0, a = e.length; i < a; i++) {
1426
+ let a = e[i];
1427
+ if (a.value[t] === null) {
1428
+ if (n = this.getPrev(e, i, t), r = this.getNext(e, i, t), n === null) {
1429
+ a.value[t] = r.value[t];
1430
+ continue;
1431
+ }
1432
+ if (r === null) {
1433
+ a.value[t] = n.value[t];
1434
+ continue;
1435
+ }
1436
+ this.interpolate(a, n, r, t);
1437
+ }
1438
+ }
1439
+ }
1440
+ getPrev(e, t, n) {
1441
+ for (; t >= 0;) {
1442
+ let r = e[t];
1443
+ if (r.value[n] !== null) return r;
1444
+ t--;
1445
+ }
1446
+ return null;
1447
+ }
1448
+ getNext(e, t, n) {
1449
+ for (; t < e.length;) {
1450
+ let r = e[t];
1451
+ if (r.value[n] !== null) return r;
1452
+ t++;
1453
+ }
1454
+ return null;
1455
+ }
1456
+ interpolate(e, t, n, r) {
1457
+ if (n.time - t.time === 0) {
1458
+ e.value[r] = t.value[r];
1459
+ return;
1460
+ }
1461
+ e.value[r] = (e.time - t.time) * (n.value[r] - t.value[r]) / (n.time - t.time) + t.value[r];
1462
+ }
1463
+ buildAnimationClip(e) {
1464
+ let t = [], n = e.name, r = e.end - e.start || -1, i = e.animations;
1465
+ for (let e = 0, n = i.length; e < n; e++) {
1466
+ let n = this.getAnimation(i[e]);
1467
+ for (let e = 0, r = n.length; e < r; e++) t.push(n[e]);
1468
+ }
1469
+ return new N(n, r, t);
1470
+ }
1471
+ getAnimationClip(e) {
1472
+ return this.getBuild(this.library.clips[e], this.buildAnimationClip.bind(this));
1473
+ }
1474
+ buildController(e) {
1475
+ let t = { id: e.id }, n = this.library.geometries[t.id];
1476
+ return e.skin !== void 0 && (t.skin = this.buildSkin(e.skin), n.sources.skinIndices = t.skin.indices, n.sources.skinWeights = t.skin.weights), t;
1477
+ }
1478
+ buildSkin(t) {
1479
+ let n = {
1480
+ joints: [],
1481
+ indices: {
1482
+ array: [],
1483
+ stride: 4
1484
+ },
1485
+ weights: {
1486
+ array: [],
1487
+ stride: 4
1488
+ }
1489
+ }, r = t.sources, i = t.vertexWeights, a = i.vcount, o = i.v, s = i.inputs.JOINT.offset, c = i.inputs.WEIGHT.offset, l = t.sources[t.joints.inputs.JOINT], u = t.sources[t.joints.inputs.INV_BIND_MATRIX], d = r[i.inputs.WEIGHT.id].array, f = 0, p, m, h;
1490
+ for (p = 0, h = a.length; p < h; p++) {
1491
+ let e = a[p], t = [];
1492
+ for (m = 0; m < e; m++) {
1493
+ let e = o[f + s], n = d[o[f + c]];
1494
+ t.push({
1495
+ index: e,
1496
+ weight: n
1497
+ }), f += 2;
1498
+ }
1499
+ for (t.sort(g), m = 0; m < 4; m++) {
1500
+ let e = t[m];
1501
+ e === void 0 ? (n.indices.array.push(0), n.weights.array.push(0)) : (n.indices.array.push(e.index), n.weights.array.push(e.weight));
1502
+ }
1503
+ }
1504
+ for (t.bindShapeMatrix ? n.bindMatrix = new e().fromArray(t.bindShapeMatrix).transpose() : n.bindMatrix = new e().identity(), p = 0, h = l.array.length; p < h; p++) {
1505
+ let t = l.array[p], r = new e().fromArray(u.array, p * u.stride).transpose();
1506
+ n.joints.push({
1507
+ name: t,
1508
+ boneInverse: r
1509
+ });
1510
+ }
1511
+ return n;
1512
+ function g(e, t) {
1513
+ return t.weight - e.weight;
1514
+ }
1515
+ }
1516
+ getController(e) {
1517
+ return this.getBuild(this.library.controllers[e], this.buildController.bind(this));
1518
+ }
1519
+ buildImage(e) {
1520
+ return e.build === void 0 ? e.init_from : e.build;
1521
+ }
1522
+ getImage(e) {
1523
+ let t = this.library.images[e];
1524
+ return t === void 0 ? (console.warn("THREE.ColladaLoader: Couldn't find image with ID:", e), null) : this.getBuild(t, this.buildImage.bind(this));
1525
+ }
1526
+ buildEffect(e) {
1527
+ return e;
1528
+ }
1529
+ getEffect(e) {
1530
+ return this.getBuild(this.library.effects[e], this.buildEffect.bind(this));
1531
+ }
1532
+ getTextureLoader(e) {
1533
+ let t, n = e.slice((e.lastIndexOf(".") - 1 >>> 0) + 2);
1534
+ switch (n = n.toLowerCase(), n) {
1535
+ case "tga":
1536
+ t = this.tgaLoader;
1537
+ break;
1538
+ default: t = this.textureLoader;
1539
+ }
1540
+ return t;
1541
+ }
1542
+ buildMaterial(e) {
1543
+ let t = this.getEffect(e.url), n = t.profile.technique, i;
1544
+ switch (n.type) {
1545
+ case "phong":
1546
+ case "blinn":
1547
+ i = new P();
1548
+ break;
1549
+ case "lambert":
1550
+ i = new O();
1551
+ break;
1552
+ default:
1553
+ i = new F();
1554
+ break;
1555
+ }
1556
+ i.name = e.name || "";
1557
+ let a = this;
1558
+ function o(e, n = null) {
1559
+ let i = t.profile.samplers[e.id], o = null;
1560
+ if (i !== void 0) {
1561
+ let e = t.profile.surfaces[i.source];
1562
+ o = a.getImage(e.init_from);
1563
+ } else console.warn("THREE.ColladaLoader: Undefined sampler. Access image directly (see #12530)."), o = a.getImage(e.id);
1564
+ if (o !== null) {
1565
+ let t = a.getTextureLoader(o);
1566
+ if (t !== void 0) {
1567
+ let i = t.load(o), s = e.extra;
1568
+ if (s !== void 0 && s.technique !== void 0 && a.isEmpty(s.technique) === !1) {
1569
+ let e = s.technique;
1570
+ i.wrapS = e.wrapU ? r : C, i.wrapT = e.wrapV ? r : C, i.offset.set(e.offsetU || 0, e.offsetV || 0), i.repeat.set(e.repeatU || 1, e.repeatV || 1);
1571
+ } else i.wrapS = r, i.wrapT = r;
1572
+ return n !== null && (i.colorSpace = n), i;
1573
+ } else return console.warn("THREE.ColladaLoader: Loader for texture %s not found.", o), null;
1574
+ } else return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:", e.id), null;
1575
+ }
1576
+ let s = n.parameters;
1577
+ for (let e in s) {
1578
+ let t = s[e];
1579
+ switch (e) {
1580
+ case "diffuse":
1581
+ t.color && i.color.fromArray(t.color), t.texture && (i.map = o(t.texture, R));
1582
+ break;
1583
+ case "specular":
1584
+ t.color && i.specular && i.specular.fromArray(t.color), t.texture && (i.specularMap = o(t.texture));
1585
+ break;
1586
+ case "bump":
1587
+ t.texture && (i.normalMap = o(t.texture));
1588
+ break;
1589
+ case "ambient":
1590
+ t.texture && (i.lightMap = o(t.texture, R));
1591
+ break;
1592
+ case "shininess":
1593
+ t.float && i.shininess && (i.shininess = t.float);
1594
+ break;
1595
+ case "emission":
1596
+ t.color && i.emissive && i.emissive.fromArray(t.color), t.texture && (i.emissiveMap = o(t.texture, R));
1597
+ break;
1598
+ }
1599
+ }
1600
+ E.colorSpaceToWorking(i.color, R), i.specular && E.colorSpaceToWorking(i.specular, R), i.emissive && E.colorSpaceToWorking(i.emissive, R);
1601
+ let c = s.transparent, l = s.transparency;
1602
+ if (l === void 0 && c && (l = { float: 1 }), c === void 0 && l && (c = {
1603
+ opaque: "A_ONE",
1604
+ data: { color: [
1605
+ 1,
1606
+ 1,
1607
+ 1,
1608
+ 1
1609
+ ] }
1610
+ }), c && l) if (c.data.texture) i.transparent = !0;
1611
+ else {
1612
+ let e = c.data.color;
1613
+ switch (c.opaque) {
1614
+ case "A_ONE":
1615
+ i.opacity = e[3] * l.float;
1616
+ break;
1617
+ case "RGB_ZERO":
1618
+ i.opacity = 1 - e[0] * l.float;
1619
+ break;
1620
+ case "A_ZERO":
1621
+ i.opacity = 1 - e[3] * l.float;
1622
+ break;
1623
+ case "RGB_ONE":
1624
+ i.opacity = e[0] * l.float;
1625
+ break;
1626
+ default: console.warn("THREE.ColladaLoader: Invalid opaque type \"%s\" of transparent tag.", c.opaque);
1627
+ }
1628
+ i.opacity < 1 && (i.transparent = !0);
1629
+ }
1630
+ if (n.extra !== void 0 && n.extra.technique !== void 0) {
1631
+ let e = n.extra.technique;
1632
+ for (let t in e) {
1633
+ let n = e[t];
1634
+ switch (t) {
1635
+ case "double_sided":
1636
+ i.side = n === 1 ? 2 : 0;
1637
+ break;
1638
+ case "bump":
1639
+ i.normalMap = o(n.texture), i.normalScale = new H(1, 1);
1640
+ break;
1641
+ }
1642
+ }
1643
+ }
1644
+ return i;
1645
+ }
1646
+ getMaterial(e) {
1647
+ return this.getBuild(this.library.materials[e], this.buildMaterial.bind(this));
1648
+ }
1649
+ buildCamera(e) {
1650
+ let t;
1651
+ switch (e.optics.technique) {
1652
+ case "perspective":
1653
+ t = new j(e.optics.parameters.yfov, e.optics.parameters.aspect_ratio, e.optics.parameters.znear, e.optics.parameters.zfar);
1654
+ break;
1655
+ case "orthographic":
1656
+ let n = e.optics.parameters.ymag, r = e.optics.parameters.xmag, i = e.optics.parameters.aspect_ratio;
1657
+ r = r === void 0 ? n * i : r, n = n === void 0 ? r / i : n, r *= .5, n *= .5, t = new w(-r, r, n, -n, e.optics.parameters.znear, e.optics.parameters.zfar);
1658
+ break;
1659
+ default:
1660
+ t = new j();
1661
+ break;
1662
+ }
1663
+ return t.name = e.name || "", t;
1664
+ }
1665
+ getCamera(e) {
1666
+ let t = this.library.cameras[e];
1667
+ return t === void 0 ? (console.warn("THREE.ColladaLoader: Couldn't find camera with ID:", e), null) : this.getBuild(t, this.buildCamera.bind(this));
1668
+ }
1669
+ buildLight(e) {
1670
+ let t;
1671
+ switch (e.technique) {
1672
+ case "directional":
1673
+ t = new z();
1674
+ break;
1675
+ case "point":
1676
+ t = new T();
1677
+ break;
1678
+ case "spot":
1679
+ t = new p();
1680
+ break;
1681
+ case "ambient":
1682
+ t = new D();
1683
+ break;
1684
+ }
1685
+ return e.parameters.color && t.color.copy(e.parameters.color), e.parameters.distance && (t.distance = e.parameters.distance), e.parameters.falloffAngle && (t.angle = y.degToRad(e.parameters.falloffAngle)), t;
1686
+ }
1687
+ getLight(e) {
1688
+ let t = this.library.lights[e];
1689
+ return t === void 0 ? (console.warn("THREE.ColladaLoader: Couldn't find light with ID:", e), null) : this.getBuild(t, this.buildLight.bind(this));
1690
+ }
1691
+ groupPrimitives(e) {
1692
+ let t = {};
1693
+ for (let n = 0; n < e.length; n++) {
1694
+ let r = e[n];
1695
+ t[r.type] === void 0 && (t[r.type] = []), t[r.type].push(r);
1696
+ }
1697
+ return t;
1698
+ }
1699
+ checkUVCoordinates(e) {
1700
+ let t = 0;
1701
+ for (let n = 0, r = e.length; n < r; n++) e[n].hasUV === !0 && t++;
1702
+ t > 0 && t < e.length && (e.uvsNeedsFix = !0);
1703
+ }
1704
+ buildGeometry(e) {
1705
+ let t = {}, n = e.sources, r = e.vertices, i = e.primitives;
1706
+ if (i.length === 0) return {};
1707
+ let a = this.groupPrimitives(i);
1708
+ for (let e in a) {
1709
+ let i = a[e];
1710
+ this.checkUVCoordinates(i), t[e] = this.buildGeometryType(i, n, r);
1711
+ }
1712
+ return t;
1713
+ }
1714
+ buildGeometryType(e, t, n) {
1715
+ let r = {}, i = {
1716
+ array: [],
1717
+ stride: 0
1718
+ }, a = {
1719
+ array: [],
1720
+ stride: 0
1721
+ }, o = {
1722
+ array: [],
1723
+ stride: 0
1724
+ }, s = {
1725
+ array: [],
1726
+ stride: 0
1727
+ }, c = {
1728
+ array: [],
1729
+ stride: 0
1730
+ }, l = {
1731
+ array: [],
1732
+ stride: 4
1733
+ }, u = {
1734
+ array: [],
1735
+ stride: 4
1736
+ }, d = new I(), f = [], p = 0;
1737
+ for (let r = 0; r < e.length; r++) {
1738
+ let m = e[r], h = m.inputs, g = 0;
1739
+ switch (m.type) {
1740
+ case "lines":
1741
+ case "linestrips":
1742
+ g = m.count * 2;
1743
+ break;
1744
+ case "triangles":
1745
+ g = m.count * 3;
1746
+ break;
1747
+ case "polygons":
1748
+ case "polylist":
1749
+ for (let e = 0; e < m.count; e++) {
1750
+ let t = m.vcount[e];
1751
+ switch (t) {
1752
+ case 3:
1753
+ g += 3;
1754
+ break;
1755
+ case 4:
1756
+ g += 6;
1757
+ break;
1758
+ default:
1759
+ g += (t - 2) * 3;
1760
+ break;
1761
+ }
1762
+ }
1763
+ break;
1764
+ default: console.warn("THREE.ColladaLoader: Unknown primitive type:", m.type);
1765
+ }
1766
+ d.addGroup(p, g, r), p += g, m.material && f.push(m.material);
1767
+ for (let r in h) {
1768
+ let d = h[r];
1769
+ switch (r) {
1770
+ case "VERTEX":
1771
+ for (let r in n) {
1772
+ let f = n[r];
1773
+ switch (r) {
1774
+ case "POSITION":
1775
+ let n = i.array.length;
1776
+ if (this.buildGeometryData(m, t[f], d.offset, i.array), i.stride = t[f].stride, t.skinWeights && t.skinIndices && (this.buildGeometryData(m, t.skinIndices, d.offset, l.array), this.buildGeometryData(m, t.skinWeights, d.offset, u.array)), m.hasUV === !1 && e.uvsNeedsFix === !0) {
1777
+ let e = (i.array.length - n) / i.stride;
1778
+ for (let t = 0; t < e; t++) o.array.push(0, 0);
1779
+ }
1780
+ break;
1781
+ case "NORMAL":
1782
+ this.buildGeometryData(m, t[f], d.offset, a.array), a.stride = t[f].stride;
1783
+ break;
1784
+ case "COLOR":
1785
+ this.buildGeometryData(m, t[f], d.offset, c.array), c.stride = t[f].stride;
1786
+ break;
1787
+ case "TEXCOORD":
1788
+ this.buildGeometryData(m, t[f], d.offset, o.array), o.stride = t[f].stride;
1789
+ break;
1790
+ case "TEXCOORD1":
1791
+ this.buildGeometryData(m, t[f], d.offset, s.array), o.stride = t[f].stride;
1792
+ break;
1793
+ default: console.warn("THREE.ColladaLoader: Semantic \"%s\" not handled in geometry build process.", r);
1794
+ }
1795
+ }
1796
+ break;
1797
+ case "NORMAL":
1798
+ this.buildGeometryData(m, t[d.id], d.offset, a.array), a.stride = t[d.id].stride;
1799
+ break;
1800
+ case "COLOR":
1801
+ this.buildGeometryData(m, t[d.id], d.offset, c.array, !0), c.stride = t[d.id].stride;
1802
+ break;
1803
+ case "TEXCOORD":
1804
+ this.buildGeometryData(m, t[d.id], d.offset, o.array), o.stride = t[d.id].stride;
1805
+ break;
1806
+ case "TEXCOORD1":
1807
+ this.buildGeometryData(m, t[d.id], d.offset, s.array), s.stride = t[d.id].stride;
1808
+ break;
1809
+ }
1810
+ }
1811
+ }
1812
+ return i.array.length > 0 && d.setAttribute("position", new L(i.array, i.stride)), a.array.length > 0 && d.setAttribute("normal", new L(a.array, a.stride)), c.array.length > 0 && d.setAttribute("color", new L(c.array, c.stride)), o.array.length > 0 && d.setAttribute("uv", new L(o.array, o.stride)), s.array.length > 0 && d.setAttribute("uv1", new L(s.array, s.stride)), l.array.length > 0 && d.setAttribute("skinIndex", new L(l.array, l.stride)), u.array.length > 0 && d.setAttribute("skinWeight", new L(u.array, u.stride)), r.data = d, r.type = e[0].type, r.materialKeys = f, r;
1813
+ }
1814
+ buildGeometryData(e, n, r, i, a = !1) {
1815
+ let s = e.p, c = e.stride, l = e.vcount, u = this.tempColor;
1816
+ function d(e) {
1817
+ let t = s[e + r] * m, n = t + m;
1818
+ for (; t < n; t++) i.push(p[t]);
1819
+ if (a) {
1820
+ let e = i.length - m - 1;
1821
+ u.setRGB(i[e + 0], i[e + 1], i[e + 2], R), i[e + 0] = u.r, i[e + 1] = u.g, i[e + 2] = u.b;
1822
+ }
1823
+ }
1824
+ let p = n.array, m = n.stride;
1825
+ if (e.vcount !== void 0) {
1826
+ let e = 0;
1827
+ for (let n = 0, r = l.length; n < r; n++) {
1828
+ let r = l[n];
1829
+ if (r === 4) {
1830
+ let t = e + c * 0, n = e + c * 1, r = e + c * 2, i = e + c * 3;
1831
+ d(t), d(n), d(i), d(n), d(r), d(i);
1832
+ } else if (r === 3) {
1833
+ let t = e + c * 0, n = e + c * 1, r = e + c * 2;
1834
+ d(t), d(n), d(r);
1835
+ } else if (r > 4) {
1836
+ let n = [];
1837
+ for (let i = 0; i < r; i++) {
1838
+ let r = s[e + c * i] * m, a = p[r], o = p[r + 1], l = p[r + 2];
1839
+ n.push(new t(a, o, l));
1840
+ }
1841
+ let i = new t(), a = new f();
1842
+ a.a = n[0], a.b = n[1], a.c = n[2], a.getNormal(i);
1843
+ let l = [];
1844
+ if (Math.abs(i.x) > Math.abs(i.y) && Math.abs(i.x) > Math.abs(i.z)) for (let e = 0; e < r; e++) l.push(new H(n[e].y, n[e].z));
1845
+ else if (Math.abs(i.y) > Math.abs(i.z)) for (let e = 0; e < r; e++) l.push(new H(n[e].x, n[e].z));
1846
+ else for (let e = 0; e < r; e++) l.push(new H(n[e].x, n[e].y));
1847
+ let u = o.isClockWise(l);
1848
+ u === !0 && l.reverse();
1849
+ let h = o.triangulateShape(l, []);
1850
+ for (let t = 0; t < h.length; t++) {
1851
+ let n = h[t], i, a, o;
1852
+ u === !1 ? (i = n[0], a = n[1], o = n[2]) : (i = r - 1 - n[0], a = r - 1 - n[2], o = r - 1 - n[1]);
1853
+ let s = e + c * i, l = e + c * a, f = e + c * o;
1854
+ d(s), d(l), d(f);
1855
+ }
1856
+ }
1857
+ e += c * r;
1858
+ }
1859
+ } else for (let e = 0, t = s.length; e < t; e += c) d(e);
1860
+ }
1861
+ getGeometry(e) {
1862
+ return this.getBuild(this.library.geometries[e], this.buildGeometry.bind(this));
1863
+ }
1864
+ buildKinematicsModel(e) {
1865
+ return e.build === void 0 ? e : e.build;
1866
+ }
1867
+ getKinematicsModel(e) {
1868
+ return this.getBuild(this.library.kinematicsModels[e], this.buildKinematicsModel.bind(this));
1869
+ }
1870
+ buildKinematicsScene(e) {
1871
+ return e.build === void 0 ? e : e.build;
1872
+ }
1873
+ getKinematicsScene(e) {
1874
+ return this.getBuild(this.library.kinematicsScenes[e], this.buildKinematicsScene.bind(this));
1875
+ }
1876
+ setupKinematics() {
1877
+ let t = Object.keys(this.library.kinematicsModels)[0], n = Object.keys(this.library.kinematicsScenes)[0], r = Object.keys(this.library.visualScenes)[0];
1878
+ if (t === void 0 || n === void 0) return;
1879
+ let i = this.getKinematicsModel(t), a = this.getKinematicsScene(n), o = this.getVisualScene(r), s = a.bindJointAxis, c = {}, l = this.collada, u = this;
1880
+ for (let e = 0, t = s.length; e < t; e++) {
1881
+ let t = s[e], n = l.querySelector("[sid=\"" + t.target + "\"]");
1882
+ if (n) {
1883
+ let e = n.parentElement;
1884
+ d(t.jointIndex, e);
1885
+ }
1886
+ }
1887
+ function d(e, t) {
1888
+ let n = t.getAttribute("name"), r = i.joints[e], a = u.buildTransformList(t);
1889
+ o.traverse(function(t) {
1890
+ t.name === n && (c[e] = {
1891
+ object: t,
1892
+ transforms: a,
1893
+ joint: r,
1894
+ position: r.zeroPosition
1895
+ });
1896
+ });
1897
+ }
1898
+ let f = new e(), p = this.matrix;
1899
+ this.kinematics = {
1900
+ joints: i && i.joints,
1901
+ getJointValue: function(e) {
1902
+ let t = c[e];
1903
+ if (t) return t.position;
1904
+ console.warn("THREE.ColladaLoader: Joint " + e + " doesn't exist.");
1905
+ },
1906
+ setJointValue: function(e, t) {
1907
+ let n = c[e];
1908
+ if (n) {
1909
+ let r = n.joint;
1910
+ if (t > r.limits.max || t < r.limits.min) console.warn("THREE.ColladaLoader: Joint " + e + " value " + t + " outside of limits (min: " + r.limits.min + ", max: " + r.limits.max + ").");
1911
+ else if (r.static) console.warn("THREE.ColladaLoader: Joint " + e + " is static.");
1912
+ else {
1913
+ let i = n.object, a = r.axis, o = n.transforms;
1914
+ p.identity();
1915
+ for (let n = 0; n < o.length; n++) {
1916
+ let i = o[n];
1917
+ if (i.sid && i.sid.indexOf(e) !== -1) switch (r.type) {
1918
+ case "revolute":
1919
+ p.multiply(f.makeRotationAxis(a, y.degToRad(t)));
1920
+ break;
1921
+ case "prismatic":
1922
+ p.multiply(f.makeTranslation(a.x * t, a.y * t, a.z * t));
1923
+ break;
1924
+ default:
1925
+ console.warn("THREE.ColladaLoader: Unknown joint type: " + r.type);
1926
+ break;
1927
+ }
1928
+ else switch (i.type) {
1929
+ case "matrix":
1930
+ p.multiply(i.obj);
1931
+ break;
1932
+ case "translate":
1933
+ p.multiply(f.makeTranslation(i.obj.x, i.obj.y, i.obj.z));
1934
+ break;
1935
+ case "scale":
1936
+ p.scale(i.obj);
1937
+ break;
1938
+ case "rotate":
1939
+ p.multiply(f.makeRotationAxis(i.obj, i.angle));
1940
+ break;
1941
+ }
1942
+ }
1943
+ i.matrix.copy(p), i.matrix.decompose(i.position, i.quaternion, i.scale), c[e].position = t;
1944
+ }
1945
+ } else console.warn("THREE.ColladaLoader: Joint " + e + " does not exist.");
1946
+ }
1947
+ };
1948
+ }
1949
+ buildTransformList(n) {
1950
+ let r = [], i = this.collada.querySelector("[id=\"" + n.id + "\"]");
1951
+ for (let n = 0; n < i.childNodes.length; n++) {
1952
+ let a = i.childNodes[n];
1953
+ if (a.nodeType !== 1) continue;
1954
+ let o, s;
1955
+ switch (a.nodeName) {
1956
+ case "matrix":
1957
+ o = K(a.textContent);
1958
+ let n = new e().fromArray(o).transpose();
1959
+ r.push({
1960
+ sid: a.getAttribute("sid"),
1961
+ type: a.nodeName,
1962
+ obj: n
1963
+ });
1964
+ break;
1965
+ case "translate":
1966
+ case "scale":
1967
+ o = K(a.textContent), s = new t().fromArray(o), r.push({
1968
+ sid: a.getAttribute("sid"),
1969
+ type: a.nodeName,
1970
+ obj: s
1971
+ });
1972
+ break;
1973
+ case "rotate":
1974
+ o = K(a.textContent), s = new t().fromArray(o);
1975
+ let i = y.degToRad(o[3]);
1976
+ r.push({
1977
+ sid: a.getAttribute("sid"),
1978
+ type: a.nodeName,
1979
+ obj: s,
1980
+ angle: i
1981
+ });
1982
+ break;
1983
+ }
1984
+ }
1985
+ return r;
1986
+ }
1987
+ buildSkeleton(e, t) {
1988
+ let n = [], r = [], a, o, s;
1989
+ for (a = 0; a < e.length; a++) {
1990
+ let r = e[a], i;
1991
+ if (this.hasNode(r)) i = this.getNode(r), this.buildBoneHierarchy(i, t, n);
1992
+ else if (this.hasVisualScene(r)) {
1993
+ let e = this.library.visualScenes[r].children;
1994
+ for (let r = 0; r < e.length; r++) {
1995
+ let i = e[r];
1996
+ if (i.type === "JOINT") {
1997
+ let e = this.getNode(i.id);
1998
+ this.buildBoneHierarchy(e, t, n);
1999
+ }
2000
+ }
2001
+ } else console.error("THREE.ColladaLoader: Unable to find root bone of skeleton with ID:", r);
2002
+ }
2003
+ for (a = 0; a < t.length; a++) for (o = 0; o < n.length; o++) if (s = n[o], s.bone.name === t[a].name) {
2004
+ r[a] = s, s.processed = !0;
2005
+ break;
2006
+ }
2007
+ for (a = 0; a < n.length; a++) s = n[a], s.processed === !1 && (r.push(s), s.processed = !0);
2008
+ let c = [], l = [];
2009
+ for (a = 0; a < r.length; a++) s = r[a], c.push(s.bone), l.push(s.boneInverse);
2010
+ return new i(c, l);
2011
+ }
2012
+ buildBoneHierarchy(t, n, r) {
2013
+ t.traverse(function(t) {
2014
+ if (t.isBone === !0) {
2015
+ let i;
2016
+ for (let e = 0; e < n.length; e++) {
2017
+ let r = n[e];
2018
+ if (r.name === t.name) {
2019
+ i = r.boneInverse;
2020
+ break;
2021
+ }
2022
+ }
2023
+ i === void 0 && (i = new e()), r.push({
2024
+ bone: t,
2025
+ boneInverse: i,
2026
+ processed: !1
2027
+ });
2028
+ }
2029
+ });
2030
+ }
2031
+ buildNode(e) {
2032
+ let t = [], n = e.matrix, r = e.nodes, i = e.type, o = e.instanceCameras, s = e.instanceControllers, c = e.instanceLights, l = e.instanceGeometries, u = e.instanceNodes;
2033
+ for (let e = 0, n = r.length; e < n; e++) t.push(this.getNode(r[e]));
2034
+ for (let e = 0, n = o.length; e < n; e++) {
2035
+ let n = this.getCamera(o[e]);
2036
+ n !== null && t.push(n.clone());
2037
+ }
2038
+ for (let e = 0, n = s.length; e < n; e++) {
2039
+ let n = s[e], r = this.getController(n.id), i = this.getGeometry(r.id), a = this.buildObjects(i, n.materials), o = n.skeletons, c = r.skin.joints, l = this.buildSkeleton(o, c);
2040
+ for (let e = 0, n = a.length; e < n; e++) {
2041
+ let n = a[e];
2042
+ n.isSkinnedMesh && (n.bind(l, r.skin.bindMatrix), n.normalizeSkinWeights()), t.push(n);
2043
+ }
2044
+ }
2045
+ for (let e = 0, n = c.length; e < n; e++) {
2046
+ let n = this.getLight(c[e]);
2047
+ n !== null && t.push(n.clone());
2048
+ }
2049
+ for (let e = 0, n = l.length; e < n; e++) {
2050
+ let n = l[e], r = this.getGeometry(n.id), i = this.buildObjects(r, n.materials);
2051
+ for (let e = 0, n = i.length; e < n; e++) t.push(i[e]);
2052
+ }
2053
+ for (let e = 0, n = u.length; e < n; e++) t.push(this.getNode(u[e]).clone());
2054
+ let d;
2055
+ if (r.length === 0 && t.length === 1) d = t[0];
2056
+ else {
2057
+ d = i === "JOINT" ? new k() : new a();
2058
+ for (let e = 0; e < t.length; e++) d.add(t[e]);
2059
+ }
2060
+ return d.name = i === "JOINT" ? e.sid : e.name, i !== "JOINT" && this.hasPivotTransforms(e) ? this.wrapWithTransformHierarchy(d, e) : (d.matrix.copy(n), d.matrix.decompose(d.position, d.quaternion, d.scale), d);
2061
+ }
2062
+ wrapWithTransformHierarchy(n, r) {
2063
+ let i = r.id;
2064
+ this.transformNodes[i] = {};
2065
+ let o = r.transformOrder, s = r.transformData, c = new a();
2066
+ c.name = r.name;
2067
+ let l = c;
2068
+ for (let n = 0; n < o.length; n++) {
2069
+ let c = o[n], u = s[c], d = new a();
2070
+ switch (d.name = r.name + "_" + c, u.type) {
2071
+ case "translate":
2072
+ d.position.set(u.x, u.y, u.z);
2073
+ break;
2074
+ case "rotate": {
2075
+ let e = new t(u.axis[0], u.axis[1], u.axis[2]), n = y.degToRad(u.angle);
2076
+ d.quaternion.setFromAxisAngle(e, n), d.userData.rotationAxis = e;
2077
+ break;
2078
+ }
2079
+ case "scale":
2080
+ d.scale.set(u.x, u.y, u.z);
2081
+ break;
2082
+ case "matrix":
2083
+ new e().fromArray(u.array).transpose().decompose(d.position, d.quaternion, d.scale);
2084
+ break;
2085
+ }
2086
+ this.transformNodes[i][c] = d, l.add(d), l = d;
2087
+ }
2088
+ return l.add(n), c;
2089
+ }
2090
+ resolveMaterialBinding(e, t) {
2091
+ let n = [];
2092
+ for (let r = 0, i = e.length; r < i; r++) {
2093
+ let i = t[e[r]];
2094
+ i === void 0 ? (console.warn("THREE.ColladaLoader: Material with key %s not found. Apply fallback material.", e[r]), n.push(this.fallbackMaterial)) : n.push(this.getMaterial(i));
2095
+ }
2096
+ return n;
2097
+ }
2098
+ get fallbackMaterial() {
2099
+ return this._fallbackMaterial === void 0 && (this._fallbackMaterial = new F({
2100
+ name: d.DEFAULT_MATERIAL_NAME,
2101
+ color: 16711935
2102
+ })), this._fallbackMaterial;
2103
+ }
2104
+ buildObjects(e, t) {
2105
+ let n = [];
2106
+ for (let r in e) {
2107
+ let i = e[r], a = this.resolveMaterialBinding(i.materialKeys, t);
2108
+ if (a.length === 0 && (r === "lines" || r === "linestrips" ? a.push(new V()) : a.push(new P())), r === "lines" || r === "linestrips") for (let e = 0, t = a.length; e < t; e++) {
2109
+ let t = a[e];
2110
+ if (t.isMeshPhongMaterial === !0 || t.isMeshLambertMaterial === !0) {
2111
+ let n = new V();
2112
+ n.color.copy(t.color), n.opacity = t.opacity, n.transparent = t.transparent, a[e] = n;
2113
+ }
2114
+ }
2115
+ let o = i.data.attributes.skinIndex !== void 0, s = a.length === 1 ? a[0] : a, c;
2116
+ switch (r) {
2117
+ case "lines":
2118
+ c = new v(i.data, s);
2119
+ break;
2120
+ case "linestrips":
2121
+ c = new h(i.data, s);
2122
+ break;
2123
+ case "triangles":
2124
+ case "polygons":
2125
+ case "polylist":
2126
+ c = o ? new m(i.data, s) : new S(i.data, s);
2127
+ break;
2128
+ }
2129
+ n.push(c);
2130
+ }
2131
+ return n;
2132
+ }
2133
+ hasNode(e) {
2134
+ return this.library.nodes[e] !== void 0;
2135
+ }
2136
+ getNode(e) {
2137
+ return this.getBuild(this.library.nodes[e], this.buildNode.bind(this));
2138
+ }
2139
+ buildVisualScene(e) {
2140
+ let t = new a();
2141
+ t.name = e.name;
2142
+ let n = e.children;
2143
+ for (let e = 0; e < n.length; e++) {
2144
+ let r = n[e];
2145
+ t.add(this.getNode(r.id));
2146
+ }
2147
+ return t;
2148
+ }
2149
+ hasVisualScene(e) {
2150
+ return this.library.visualScenes[e] !== void 0;
2151
+ }
2152
+ getVisualScene(e) {
2153
+ return this.getBuild(this.library.visualScenes[e], this.buildVisualScene.bind(this));
2154
+ }
2155
+ parseScene(e) {
2156
+ let t = W(e, "instance_visual_scene")[0];
2157
+ return this.getVisualScene(this.parseId(t.getAttribute("url")));
2158
+ }
2159
+ parseId(e) {
2160
+ return e.substring(1);
2161
+ }
2162
+ setupAnimations() {
2163
+ let e = this.library.clips;
2164
+ if (this.isEmpty(e) === !0) {
2165
+ if (this.isEmpty(this.library.animations) === !1) {
2166
+ let e = [];
2167
+ for (let t in this.library.animations) {
2168
+ let n = this.getAnimation(t);
2169
+ for (let t = 0, r = n.length; t < r; t++) e.push(n[t]);
2170
+ }
2171
+ this.buildDeferredPivotAnimationTracks(e), this.animations.push(new N("default", -1, e));
2172
+ }
2173
+ } else for (let t in e) this.animations.push(this.getAnimationClip(t));
2174
+ }
2175
+ buildDeferredPivotAnimationTracks(e) {
2176
+ for (let t in this.deferredPivotAnimations) {
2177
+ let n = this.library.nodes[t];
2178
+ if (!n) continue;
2179
+ let r = this.deferredPivotAnimations[t];
2180
+ this.buildTransformHierarchyTracks(t, r, n, e);
2181
+ }
2182
+ }
2183
+ buildTransformHierarchyTracks(e, t, n, r) {
2184
+ let i = this.transformNodes[e];
2185
+ if (!i) {
2186
+ console.warn("THREE.ColladaLoader: Transform hierarchy not found for node:", e);
2187
+ return;
2188
+ }
2189
+ for (let e in t) {
2190
+ let a = i[e];
2191
+ if (!a) continue;
2192
+ let o = n.transforms[e], s = n.transformData[e], c = t[e];
2193
+ switch (o) {
2194
+ case "translate":
2195
+ this.buildHierarchyTranslateTrack(a, c, s, r);
2196
+ break;
2197
+ case "rotate":
2198
+ this.buildHierarchyRotateTrack(a, c, s, r);
2199
+ break;
2200
+ case "scale":
2201
+ this.buildHierarchyScaleTrack(a, c, s, r);
2202
+ break;
2203
+ }
2204
+ }
2205
+ }
2206
+ buildHierarchyTranslateTrack(e, t, n, r) {
2207
+ if (t.default && t.default.stride === 3) {
2208
+ let n = t.default, i = new l(e.uuid + ".position", Array.from(n.times), Array.from(n.values)), a = this.getInterpolationInfo(t);
2209
+ this.applyInterpolation(i, a, t), r.push(i);
2210
+ return;
2211
+ }
2212
+ let i = this.getTimesForAllAxes(t);
2213
+ if (i.length === 0) return;
2214
+ let a = [], o = this.getInterpolationInfo(t);
2215
+ for (let e = 0; e < i.length; e++) {
2216
+ let r = i[e], o = this.getValueAtTime(t.X, r, n.x), s = this.getValueAtTime(t.Y, r, n.y), c = this.getValueAtTime(t.Z, r, n.z);
2217
+ a.push(o, s, c);
2218
+ }
2219
+ let s = new l(e.uuid + ".position", i, a);
2220
+ this.applyInterpolation(s, o), r.push(s);
2221
+ }
2222
+ buildHierarchyRotateTrack(e, n, r, i) {
2223
+ let a = n.ANGLE || n.default;
2224
+ if (!a) return;
2225
+ let o = Array.from(a.times);
2226
+ if (o.length === 0) return;
2227
+ let s = e.userData.rotationAxis || new t(r.axis[0], r.axis[1], r.axis[2]), c = new B(), l = new B(), u = [], d = this.getInterpolationInfo(n);
2228
+ for (let e = 0; e < o.length; e++) {
2229
+ let t = o[e], n = this.getValueAtTime(a, t, r.angle), i = y.degToRad(n);
2230
+ c.setFromAxisAngle(s, i), e > 0 && l.dot(c) < 0 && (c.x = -c.x, c.y = -c.y, c.z = -c.z, c.w = -c.w), l.copy(c), u.push(c.x, c.y, c.z, c.w);
2231
+ }
2232
+ let f = new x(e.uuid + ".quaternion", o, u);
2233
+ this.applyInterpolation(f, d), i.push(f);
2234
+ }
2235
+ buildHierarchyScaleTrack(e, t, n, r) {
2236
+ if (t.default && t.default.stride === 3) {
2237
+ let n = t.default, i = new l(e.uuid + ".scale", Array.from(n.times), Array.from(n.values)), a = this.getInterpolationInfo(t);
2238
+ this.applyInterpolation(i, a, t), r.push(i);
2239
+ return;
2240
+ }
2241
+ let i = this.getTimesForAllAxes(t);
2242
+ if (i.length === 0) return;
2243
+ let a = [], o = this.getInterpolationInfo(t);
2244
+ for (let e = 0; e < i.length; e++) {
2245
+ let r = i[e], o = this.getValueAtTime(t.X, r, n.x), s = this.getValueAtTime(t.Y, r, n.y), c = this.getValueAtTime(t.Z, r, n.z);
2246
+ a.push(o, s, c);
2247
+ }
2248
+ let s = new l(e.uuid + ".scale", i, a);
2249
+ this.applyInterpolation(s, o), r.push(s);
2250
+ }
2251
+ }, Z = class extends d {
2252
+ load(e, t, r, i) {
2253
+ let a = this, o = a.path === "" ? M.extractUrlBase(e) : a.path, s = new n(a.manager);
2254
+ s.setPath(a.path), s.setRequestHeader(a.requestHeader), s.setWithCredentials(a.withCredentials), s.load(e, function(n) {
2255
+ try {
2256
+ t(a.parse(n, o));
2257
+ } catch (t) {
2258
+ i ? i(t) : console.error(t), a.manager.itemError(e);
2259
+ }
2260
+ }, r, i);
2261
+ }
2262
+ parse(e, t) {
2263
+ if (e.length === 0) return { scene: new g() };
2264
+ let n = new Y().parse(e);
2265
+ if (n === null) return null;
2266
+ let { library: r, asset: i, collada: a } = n, o = new c(this.manager);
2267
+ o.setPath(this.resourcePath || t).setCrossOrigin(this.crossOrigin);
2268
+ let s;
2269
+ U && (s = new U(this.manager), s.setPath(this.resourcePath || t));
2270
+ let { scene: l, animations: u, kinematics: d } = new X(r, a, o, s).compose();
2271
+ return l.animations = u, i.upAxis === "Z_UP" && (console.warn("THREE.ColladaLoader: You are loading an asset with a Z-UP coordinate system. The loader just rotates the asset to transform it into Y-UP. The vertex data are not converted, see #24289."), l.rotation.set(-Math.PI / 2, 0, 0)), l.scale.multiplyScalar(i.unit), {
2272
+ get animations() {
2273
+ return console.warn("THREE.ColladaLoader: Please access animations over scene.animations now."), u;
2274
+ },
2275
+ kinematics: d,
2276
+ library: r,
2277
+ scene: l
2278
+ };
2279
+ }
2280
+ };
2281
+ //#endregion
2282
+ export { Z as ColladaLoader };