@vcmap/ui 5.0.0-rc.29 → 5.0.0-rc.31

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 (334) hide show
  1. package/build/buildHelpers.js +4 -3
  2. package/config/base.config.json +5 -4
  3. package/config/dev.config.json +8 -0
  4. package/config/graphFeatureInfo.config.json +1 -1
  5. package/config/projects.config.json +2 -2
  6. package/dist/assets/cesium/ThirdParty/Workers/basis_transcoder.js +1 -1
  7. package/dist/assets/cesium/Workers/chunk-227AJNOA.js +59 -0
  8. package/dist/assets/cesium/Workers/chunk-2R5O53JW.js +157 -0
  9. package/dist/assets/cesium/Workers/chunk-34YUDLRP.js +781 -0
  10. package/dist/assets/cesium/Workers/chunk-3W63OHNJ.js +100 -0
  11. package/dist/assets/cesium/Workers/chunk-4MFFIWUA.js +163 -0
  12. package/dist/assets/cesium/Workers/chunk-66QLLS45.js +218 -0
  13. package/dist/assets/cesium/Workers/chunk-6BTKZDRG.js +77 -0
  14. package/dist/assets/cesium/Workers/chunk-A4JVFBQ3.js +101 -0
  15. package/dist/assets/cesium/Workers/chunk-ABADGKYE.js +58 -0
  16. package/dist/assets/cesium/Workers/chunk-AFFLIKOH.js +353 -0
  17. package/dist/assets/cesium/Workers/chunk-AHKEZ2OE.js +629 -0
  18. package/dist/assets/cesium/Workers/chunk-C3SXRKRW.js +476 -0
  19. package/dist/assets/cesium/Workers/chunk-CCFQRR6D.js +55 -0
  20. package/dist/assets/cesium/Workers/chunk-CHHNOC2C.js +1860 -0
  21. package/dist/assets/cesium/Workers/chunk-CTELOFLA.js +196 -0
  22. package/dist/assets/cesium/Workers/chunk-DUHWWBQQ.js +3273 -0
  23. package/dist/assets/cesium/Workers/chunk-EW2GWJYB.js +44 -0
  24. package/dist/assets/cesium/Workers/chunk-GLZBE3ML.js +421 -0
  25. package/dist/assets/cesium/Workers/chunk-HARLBUOL.js +236 -0
  26. package/dist/assets/cesium/Workers/chunk-HQF437NJ.js +117 -0
  27. package/dist/assets/cesium/Workers/chunk-IPA4EACJ.js +368 -0
  28. package/dist/assets/cesium/Workers/chunk-J3JY6I2C.js +1009 -0
  29. package/dist/assets/cesium/Workers/chunk-JB2LWGH4.js +390 -0
  30. package/dist/assets/cesium/Workers/chunk-JS3AW5BK.js +634 -0
  31. package/dist/assets/cesium/Workers/chunk-K36FEYS7.js +452 -0
  32. package/dist/assets/cesium/Workers/chunk-KD4Y7CZL.js +400 -0
  33. package/dist/assets/cesium/Workers/chunk-KTJSNCK4.js +842 -0
  34. package/dist/assets/cesium/Workers/chunk-LLUNNUJV.js +258 -0
  35. package/dist/assets/cesium/Workers/{package.js → chunk-MPAZH4BF.js} +13 -2
  36. package/dist/assets/cesium/Workers/chunk-MYZB7C4T.js +1258 -0
  37. package/dist/assets/cesium/Workers/chunk-N3JIFFX2.js +501 -0
  38. package/dist/assets/cesium/Workers/chunk-O5AMBQ36.js +430 -0
  39. package/dist/assets/cesium/Workers/chunk-OAVNIRB4.js +124 -0
  40. package/dist/assets/cesium/Workers/chunk-OYFCF4PL.js +171 -0
  41. package/dist/assets/cesium/Workers/chunk-OZJDGN5F.js +1477 -0
  42. package/dist/assets/cesium/Workers/chunk-PCJWUS4M.js +2041 -0
  43. package/dist/assets/cesium/Workers/chunk-PFQBCKBM.js +8644 -0
  44. package/dist/assets/cesium/Workers/chunk-QIKODV5G.js +305 -0
  45. package/dist/assets/cesium/Workers/chunk-QJ3DFBH3.js +73 -0
  46. package/dist/assets/cesium/Workers/chunk-QMEMZIJI.js +138 -0
  47. package/dist/assets/cesium/Workers/chunk-QT3MPEMI.js +102 -0
  48. package/dist/assets/cesium/Workers/chunk-RP2A7BR5.js +289 -0
  49. package/dist/assets/cesium/Workers/chunk-RW6LU2CJ.js +138 -0
  50. package/dist/assets/cesium/Workers/chunk-TFC6TZ3S.js +757 -0
  51. package/dist/assets/cesium/Workers/chunk-V3NGATMV.js +693 -0
  52. package/dist/assets/cesium/Workers/chunk-VLGOATD6.js +1075 -0
  53. package/dist/assets/cesium/Workers/chunk-WXTV4ATB.js +39 -0
  54. package/dist/assets/cesium/Workers/chunk-X4SU25DT.js +302 -0
  55. package/dist/assets/cesium/Workers/chunk-XTY7B2N6.js +2716 -0
  56. package/dist/assets/cesium/Workers/chunk-XY7MGBKC.js +513 -0
  57. package/dist/assets/cesium/Workers/chunk-Z24VKNDO.js +834 -0
  58. package/dist/assets/cesium/Workers/chunk-ZA25DG4Y.js +684 -0
  59. package/dist/assets/cesium/Workers/chunk-ZFOBYDGF.js +73 -0
  60. package/dist/assets/cesium/Workers/combineGeometry.js +65 -15
  61. package/dist/assets/cesium/Workers/createBoxGeometry.js +55 -10
  62. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +231 -310
  63. package/dist/assets/cesium/Workers/createCircleGeometry.js +185 -202
  64. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +141 -155
  65. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +477 -557
  66. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +218 -230
  67. package/dist/assets/cesium/Workers/createCorridorGeometry.js +1162 -1307
  68. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +533 -569
  69. package/dist/assets/cesium/Workers/createCylinderGeometry.js +57 -10
  70. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +224 -258
  71. package/dist/assets/cesium/Workers/createEllipseGeometry.js +68 -12
  72. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +61 -12
  73. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +56 -10
  74. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +58 -13
  75. package/dist/assets/cesium/Workers/createFrustumGeometry.js +55 -10
  76. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +226 -243
  77. package/dist/assets/cesium/Workers/createGeometry.js +143 -48
  78. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +1484 -2011
  79. package/dist/assets/cesium/Workers/createPlaneGeometry.js +216 -243
  80. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +121 -113
  81. package/dist/assets/cesium/Workers/createPolygonGeometry.js +1041 -1327
  82. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +516 -657
  83. package/dist/assets/cesium/Workers/createPolylineGeometry.js +471 -547
  84. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +352 -384
  85. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +271 -295
  86. package/dist/assets/cesium/Workers/createRectangleGeometry.js +1128 -1331
  87. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +445 -500
  88. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +381 -440
  89. package/dist/assets/cesium/Workers/createSphereGeometry.js +112 -118
  90. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +112 -121
  91. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +32 -127
  92. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +462 -505
  93. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +377 -436
  94. package/dist/assets/cesium/Workers/createVectorTilePoints.js +110 -77
  95. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +369 -391
  96. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +252 -244
  97. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +543 -615
  98. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +2244 -2677
  99. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +682 -926
  100. package/dist/assets/cesium/Workers/createWallGeometry.js +459 -593
  101. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +324 -419
  102. package/dist/assets/cesium/Workers/decodeDraco.js +327 -347
  103. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +2530 -3567
  104. package/dist/assets/cesium/Workers/decodeI3S.js +765 -970
  105. package/dist/assets/cesium/Workers/transcodeKTX2.js +3353 -1464
  106. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +3 -4
  107. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +748 -953
  108. package/dist/assets/{cesium.16590b.js → cesium.77d0f7.js} +8915 -13165
  109. package/dist/assets/cesium.js +1 -1
  110. package/dist/assets/{core.74da2a.js → core.720589.js} +3421 -3365
  111. package/dist/assets/core.js +1 -1
  112. package/dist/assets/index-dd539204.js +1 -0
  113. package/dist/assets/{ol.50a512.js → ol.e48649.js} +4 -4
  114. package/dist/assets/ol.js +1 -1
  115. package/dist/assets/{ui.d3054c.css → ui.50452a.css} +2 -2
  116. package/dist/assets/{ui.d3054c.js → ui.50452a.js} +5312 -4776
  117. package/dist/assets/ui.js +1 -1
  118. package/dist/assets/vue.js +2 -2
  119. package/dist/assets/{vuetify.946bd8.js → vuetify.f0a769.js} +1 -1
  120. package/dist/assets/vuetify.js +2 -2
  121. package/dist/index.html +27 -23
  122. package/index.html +23 -22
  123. package/index.js +6 -0
  124. package/package.json +5 -5
  125. package/plugins/@vcmap-show-case/form-inputs-example/FormInputsExample.vue +37 -1
  126. package/plugins/@vcmap-show-case/form-inputs-example/index.js +3 -0
  127. package/plugins/@vcmap-show-case/form-inputs-example/validation.js +11 -0
  128. package/plugins/@vcmap-show-case/plugin-editors/PluginEditors.vue +119 -0
  129. package/plugins/@vcmap-show-case/plugin-editors/index.js +41 -0
  130. package/plugins/@vcmap-show-case/plugin-editors/package.json +5 -0
  131. package/plugins/{@vcmap → @vcmap-show-case}/project-selector/ProjectSelectorComponent.vue +1 -1
  132. package/plugins/{@vcmap → @vcmap-show-case}/project-selector/config.json +2 -2
  133. package/plugins/{@vcmap → @vcmap-show-case}/project-selector/package.json +1 -1
  134. package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/package.json +1 -1
  135. package/plugins/@vcmap-show-case/style-input-example/styleExample.vue +0 -1
  136. package/plugins/@vcmap-show-case/table-example/DataTableExample.vue +1 -1
  137. package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/ThemeChangerComponent.vue +1 -1
  138. package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/config.json +2 -2
  139. package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/package.json +1 -1
  140. package/plugins/@vcmap-show-case/vector-properties-example/index.js +40 -0
  141. package/plugins/@vcmap-show-case/vector-properties-example/package.json +5 -0
  142. package/plugins/@vcmap-show-case/vector-properties-example/vectorPropertiesExample.vue +128 -0
  143. package/plugins/package.json +6 -2
  144. package/src/application/VcsAttributions.vue +27 -20
  145. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +290 -0
  146. package/src/components/form-inputs-controls/VcsSlider.vue +1 -0
  147. package/src/components/form-inputs-controls/VcsTextField.vue +9 -3
  148. package/src/components/icons/2DAreaIcon.vue +2 -17
  149. package/src/components/icons/2DDistanceIcon.vue +0 -3
  150. package/src/components/icons/3DAreaIcon.vue +2 -17
  151. package/src/components/icons/3DDistanceIcon.vue +0 -3
  152. package/src/components/icons/3DHeightIcon.vue +0 -3
  153. package/src/components/icons/AngleIcon.vue +0 -1
  154. package/src/components/icons/AssociationsIcon.vue +1 -3
  155. package/src/components/icons/AxisIcon.vue +0 -4
  156. package/src/components/icons/BoundingBoxIcon.vue +1 -4
  157. package/src/components/icons/CheckboxIcon.vue +0 -2
  158. package/src/components/icons/CheckboxIndeterminateIcon.vue +1 -5
  159. package/src/components/icons/CircleIcon.vue +1 -6
  160. package/src/components/icons/ClippingHorizontalIcon.vue +0 -1
  161. package/src/components/icons/ClippingIcon.vue +0 -1
  162. package/src/components/icons/ClippingVerticalIcon.vue +0 -1
  163. package/src/components/icons/ColorPickerIcon.vue +0 -1
  164. package/src/components/icons/ColorSwatchIcon.vue +0 -2
  165. package/src/components/icons/CommentIcon.vue +0 -1
  166. package/src/components/icons/CompassIcon.vue +0 -2
  167. package/src/components/icons/ComponentsIcon.vue +0 -1
  168. package/src/components/icons/ConeIcon.vue +1 -4
  169. package/src/components/icons/DimensionsHouseIcon.vue +0 -2
  170. package/src/components/icons/EditIcon.vue +0 -1
  171. package/src/components/icons/EditVerticesIcon.vue +0 -4
  172. package/src/components/icons/ElevationProfileIcon.vue +1 -13
  173. package/src/components/icons/ExportAreaIcon.vue +0 -1
  174. package/src/components/icons/ExportFlightIcon.vue +0 -1
  175. package/src/components/icons/ExportIcon.vue +12 -8
  176. package/src/components/icons/ExternalLinkIcon.vue +0 -2
  177. package/src/components/icons/FastForwardIcon.vue +0 -1
  178. package/src/components/icons/FilterIcon.vue +0 -1
  179. package/src/components/icons/GlobeNatureIcon.vue +0 -3
  180. package/src/components/icons/GroundIcon.vue +0 -1
  181. package/src/components/icons/HealthCareIndustriesIcon.vue +1 -11
  182. package/src/components/icons/HideIcon.vue +0 -1
  183. package/src/components/icons/HomePointIcon.vue +0 -1
  184. package/src/components/icons/HospitalsIcon.vue +1 -20
  185. package/src/components/icons/HouseIcon.vue +3 -13
  186. package/src/components/icons/ImportIcon.vue +6 -14
  187. package/src/components/icons/InfoIcon.vue +0 -2
  188. package/src/components/icons/KebabIcon.vue +1 -9
  189. package/src/components/icons/LabelIcon.vue +0 -2
  190. package/src/components/icons/LayersIcon.vue +1 -9
  191. package/src/components/icons/LegendIcon.vue +0 -1
  192. package/src/components/icons/LineIcon.vue +0 -2
  193. package/src/components/icons/LinkIcon.vue +0 -1
  194. package/src/components/icons/LogoutIcon.vue +0 -1
  195. package/src/components/icons/MapIcon.vue +0 -2
  196. package/src/components/icons/MenuIcon.vue +1 -5
  197. package/src/components/icons/MinusIcon.vue +0 -2
  198. package/src/components/icons/ObjectSelectIcon.vue +0 -2
  199. package/src/components/icons/ObliqueViewIcon.vue +0 -1
  200. package/src/components/icons/PdfIcon.vue +0 -1
  201. package/src/components/icons/PedestrianIcon.vue +0 -1
  202. package/src/components/icons/PenIcon.vue +0 -1
  203. package/src/components/icons/PlayCircleIcon.vue +1 -8
  204. package/src/components/icons/PlusIcon.vue +0 -2
  205. package/src/components/icons/PoiIcon.vue +0 -1
  206. package/src/components/icons/PointIcon.vue +2 -6
  207. package/src/components/icons/PointSelectIcon.vue +0 -1
  208. package/src/components/icons/PresentationModeIcon.vue +0 -1
  209. package/src/components/icons/ProgressIcon.vue +1 -1
  210. package/src/components/icons/QueryIcon.vue +0 -1
  211. package/src/components/icons/RectangleIcon.vue +1 -6
  212. package/src/components/icons/ReturnIcon.vue +0 -1
  213. package/src/components/icons/RewindIcon.vue +0 -1
  214. package/src/components/icons/RotateLeftIcon.vue +0 -1
  215. package/src/components/icons/RotateRightIcon.vue +0 -1
  216. package/src/components/icons/ScreenshotIcon.vue +1 -6
  217. package/src/components/icons/SearchIcon.vue +0 -1
  218. package/src/components/icons/ShadowIcon.vue +0 -2
  219. package/src/components/icons/ShapesIcon.vue +1 -4
  220. package/src/components/icons/ShareIcon.vue +0 -1
  221. package/src/components/icons/SimpleCircleFilledIcon.vue +0 -1
  222. package/src/components/icons/SimpleCircleHalfFilledIcon.vue +0 -1
  223. package/src/components/icons/SimpleCircleOutlinedIcon.vue +1 -7
  224. package/src/components/icons/SkipPreviousIcon.vue +1 -6
  225. package/src/components/icons/SplitViewIcon.vue +0 -1
  226. package/src/components/icons/TextStyleIcon.vue +0 -3
  227. package/src/components/icons/ThreeDimensionsIcon.vue +0 -1
  228. package/src/components/icons/ToolsIcon.vue +0 -1
  229. package/src/components/icons/TouchIcon.vue +0 -1
  230. package/src/components/icons/TriangleIcon.vue +0 -3
  231. package/src/components/icons/TwoDimensionsIcon.vue +0 -2
  232. package/src/components/icons/UploadIcon.vue +0 -1
  233. package/src/components/icons/UserProfileIcon.vue +0 -1
  234. package/src/components/icons/UserShareIcon.vue +0 -1
  235. package/src/components/icons/ViewpointFlightIcon.vue +0 -1
  236. package/src/components/icons/ViewpointIcon.vue +0 -1
  237. package/src/components/icons/Viewshed360Icon.vue +0 -1
  238. package/src/components/icons/ViewshedConeIcon.vue +0 -1
  239. package/src/components/icons/ViewshedIcon.vue +0 -1
  240. package/src/components/icons/WalkingIcon.vue +0 -1
  241. package/src/components/icons/WallIcon.vue +1 -4
  242. package/src/components/icons/WandIcon.vue +22 -70
  243. package/src/components/lists/VcsList.vue +18 -12
  244. package/src/components/plugins/AbstractConfigEditor.vue +84 -0
  245. package/src/components/style/VcsImageSelector.vue +6 -5
  246. package/src/components/style/VcsTextSelector.vue +1 -1
  247. package/src/components/tables/VcsDataTable.vue +1 -1
  248. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +780 -0
  249. package/src/components/vector-properties/composables.js +93 -0
  250. package/src/contentTree/contentTreeCollection.js +30 -9
  251. package/src/i18n/de.js +41 -7
  252. package/src/i18n/en.js +39 -5
  253. package/src/i18n/i18nCollection.js +19 -65
  254. package/src/manager/buttonManager.js +4 -0
  255. package/src/manager/collectionManager/collectionComponent.js +1 -1
  256. package/src/manager/contextMenu/contextMenuManager.js +2 -0
  257. package/src/pluginHelper.js +57 -17
  258. package/src/vcsUiApp.js +25 -30
  259. package/src/vuePlugins/i18n.js +0 -8
  260. package/dist/assets/cesium/ThirdParty/Workers/draco_decoder_nodejs.js +0 -117
  261. package/dist/assets/cesium/Workers/ArcType-2d9abbbc.js +0 -37
  262. package/dist/assets/cesium/Workers/AttributeCompression-f9f6c717.js +0 -716
  263. package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-4140c51f.js +0 -258
  264. package/dist/assets/cesium/Workers/BoundingRectangle-c714b156.js +0 -369
  265. package/dist/assets/cesium/Workers/BoxGeometry-6f3da43d.js +0 -884
  266. package/dist/assets/cesium/Workers/Check-6ede7e26.js +0 -290
  267. package/dist/assets/cesium/Workers/Color-8a565ff2.js +0 -2262
  268. package/dist/assets/cesium/Workers/ComponentDatatype-cf1fa08e.js +0 -341
  269. package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-4b4d4096.js +0 -132
  270. package/dist/assets/cesium/Workers/CorridorGeometryLibrary-7b94502b.js +0 -498
  271. package/dist/assets/cesium/Workers/CylinderGeometry-ca070b87.js +0 -467
  272. package/dist/assets/cesium/Workers/CylinderGeometryLibrary-7bf291b4.js +0 -63
  273. package/dist/assets/cesium/Workers/EllipseGeometry-122e51fa.js +0 -1304
  274. package/dist/assets/cesium/Workers/EllipseGeometryLibrary-4d326efc.js +0 -366
  275. package/dist/assets/cesium/Workers/EllipseOutlineGeometry-16cc2bd7.js +0 -443
  276. package/dist/assets/cesium/Workers/EllipsoidGeodesic-5b3623dc.js +0 -520
  277. package/dist/assets/cesium/Workers/EllipsoidGeometry-cb148ca2.js +0 -637
  278. package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-0fa10c79.js +0 -454
  279. package/dist/assets/cesium/Workers/EllipsoidRhumbLine-ef872433.js +0 -741
  280. package/dist/assets/cesium/Workers/EllipsoidTangentPlane-6dd1b7af.js +0 -373
  281. package/dist/assets/cesium/Workers/EncodedCartesian3-57415c8a.js +0 -171
  282. package/dist/assets/cesium/Workers/FrustumGeometry-ee73037c.js +0 -2540
  283. package/dist/assets/cesium/Workers/GeometryAttribute-ff5b4fb1.js +0 -619
  284. package/dist/assets/cesium/Workers/GeometryAttributes-ad136444.js +0 -91
  285. package/dist/assets/cesium/Workers/GeometryInstance-34d9e21e.js +0 -121
  286. package/dist/assets/cesium/Workers/GeometryOffsetAttribute-9ad0019c.js +0 -16
  287. package/dist/assets/cesium/Workers/GeometryPipeline-1f8fbf05.js +0 -3690
  288. package/dist/assets/cesium/Workers/IndexDatatype-2643aa47.js +0 -200
  289. package/dist/assets/cesium/Workers/IntersectionTests-70d39ba9.js +0 -1836
  290. package/dist/assets/cesium/Workers/Math-0a2ac845.js +0 -1340
  291. package/dist/assets/cesium/Workers/Matrix2-e1298525.js +0 -7086
  292. package/dist/assets/cesium/Workers/Matrix3-41c58dde.js +0 -4283
  293. package/dist/assets/cesium/Workers/OrientedBoundingBox-159cf1d6.js +0 -1259
  294. package/dist/assets/cesium/Workers/Plane-4c3d403b.js +0 -309
  295. package/dist/assets/cesium/Workers/PolygonGeometryLibrary-076a5d25.js +0 -1074
  296. package/dist/assets/cesium/Workers/PolygonPipeline-b9f2810a.js +0 -1344
  297. package/dist/assets/cesium/Workers/PolylinePipeline-639192e0.js +0 -573
  298. package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-b73549fb.js +0 -781
  299. package/dist/assets/cesium/Workers/PrimitivePipeline-10ede1b6.js +0 -966
  300. package/dist/assets/cesium/Workers/RectangleGeometryLibrary-c35a7356.js +0 -280
  301. package/dist/assets/cesium/Workers/RuntimeError-ef395448.js +0 -68
  302. package/dist/assets/cesium/Workers/TerrainEncoding-668d242f.js +0 -1227
  303. package/dist/assets/cesium/Workers/Transforms-a2a85221.js +0 -14712
  304. package/dist/assets/cesium/Workers/VertexFormat-030f11ff.js +0 -312
  305. package/dist/assets/cesium/Workers/WallGeometryLibrary-1938bf0d.js +0 -211
  306. package/dist/assets/cesium/Workers/WebGLConstants-0b1ce7ba.js +0 -620
  307. package/dist/assets/cesium/Workers/WebMercatorProjection-13ed1a6e.js +0 -151
  308. package/dist/assets/cesium/Workers/arrayRemoveDuplicates-d2061e85.js +0 -129
  309. package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +0 -1363
  310. package/dist/assets/cesium/Workers/combine-d9581036.js +0 -82
  311. package/dist/assets/cesium/Workers/defaultValue-fe22d8c0.js +0 -51
  312. package/dist/assets/index-cb070eff.js +0 -1
  313. package/plugins/@vcmap/create-link/fallbackCreateLink.vue +0 -76
  314. package/plugins/@vcmap/create-link/index.js +0 -95
  315. package/plugins/@vcmap/create-link/package.json +0 -6
  316. package/plugins/@vcmap/search-nominatim/LICENSE.md +0 -13
  317. package/plugins/@vcmap/search-nominatim/README.md +0 -3
  318. package/plugins/@vcmap/search-nominatim/config.json +0 -3
  319. package/plugins/@vcmap/search-nominatim/index.js +0 -29
  320. package/plugins/@vcmap/search-nominatim/nominatim.js +0 -175
  321. package/plugins/@vcmap/search-nominatim/package.json +0 -9
  322. /package/dist/assets/{vue.30740e.js → vue.5d696e.js} +0 -0
  323. /package/dist/assets/{vuetify.946bd8.css → vuetify.f0a769.css} +0 -0
  324. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/ModulesListComponent.vue +0 -0
  325. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/README.md +0 -0
  326. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/de.json +0 -0
  327. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/en.json +0 -0
  328. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/index.js +0 -0
  329. /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/README.md +0 -0
  330. /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/SimpleGraphComponent.vue +0 -0
  331. /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/index.js +0 -0
  332. /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/simpleGraphView.js +0 -0
  333. /package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/README.md +0 -0
  334. /package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/index.js +0 -0
@@ -1,1040 +1,835 @@
1
- define(['./createTaskProcessorWorker', './defaultValue-fe22d8c0', './WebMercatorProjection-13ed1a6e', './Matrix3-41c58dde', './Math-0a2ac845', './Check-6ede7e26'], (function (createTaskProcessorWorker, defaultValue, WebMercatorProjection, Matrix3, Math$1, Check) { 'use strict';
2
-
3
- /* global require */
4
-
5
- let draco;
6
-
7
- function bilinearInterpolate(tx, ty, h00, h10, h01, h11) {
8
- const a = h00 * (1 - tx) + h10 * tx;
9
- const b = h01 * (1 - tx) + h11 * tx;
10
- return a * (1 - ty) + b * ty;
11
- }
12
-
13
- function sampleMap(u, v, width, data) {
14
- const address = u + v * width;
15
- return data[address];
16
- }
17
-
18
- function sampleGeoid(sampleX, sampleY, geoidData) {
19
- const extent = geoidData.nativeExtent;
20
- let x =
21
- ((sampleX - extent.west) / (extent.east - extent.west)) *
22
- (geoidData.width - 1);
23
- let y =
24
- ((sampleY - extent.south) / (extent.north - extent.south)) *
25
- (geoidData.height - 1);
26
- const xi = Math.floor(x);
27
- let yi = Math.floor(y);
28
-
29
- x -= xi;
30
- y -= yi;
31
-
32
- const xNext = xi < geoidData.width ? xi + 1 : xi;
33
- let yNext = yi < geoidData.height ? yi + 1 : yi;
34
-
35
- yi = geoidData.height - 1 - yi;
36
- yNext = geoidData.height - 1 - yNext;
37
-
38
- const h00 = sampleMap(xi, yi, geoidData.width, geoidData.buffer);
39
- const h10 = sampleMap(xNext, yi, geoidData.width, geoidData.buffer);
40
- const h01 = sampleMap(xi, yNext, geoidData.width, geoidData.buffer);
41
- const h11 = sampleMap(xNext, yNext, geoidData.width, geoidData.buffer);
42
-
43
- let finalHeight = bilinearInterpolate(x, y, h00, h10, h01, h11);
44
- finalHeight = finalHeight * geoidData.scale + geoidData.offset;
45
- return finalHeight;
46
- }
47
-
48
- function sampleGeoidFromList(lon, lat, geoidDataList) {
49
- for (let i = 0; i < geoidDataList.length; i++) {
50
- const localExtent = geoidDataList[i].nativeExtent;
51
-
52
- let localPt = new Matrix3.Cartesian3();
53
- if (geoidDataList[i].projectionType === "WebMercator") {
54
- const radii = geoidDataList[i].projection._ellipsoid._radii;
55
- const webMercatorProj = new WebMercatorProjection.WebMercatorProjection(
56
- new Matrix3.Ellipsoid(radii.x, radii.y, radii.z)
57
- );
58
- localPt = webMercatorProj.project(new Matrix3.Cartographic(lon, lat, 0));
59
- } else {
60
- localPt.x = lon;
61
- localPt.y = lat;
62
- }
63
-
64
- if (
65
- localPt.x > localExtent.west &&
66
- localPt.x < localExtent.east &&
67
- localPt.y > localExtent.south &&
68
- localPt.y < localExtent.north
69
- ) {
70
- return sampleGeoid(localPt.x, localPt.y, geoidDataList[i]);
71
- }
1
+ /**
2
+ * @license
3
+ * Cesium - https://github.com/CesiumGS/cesium
4
+ * Version 1.109.3
5
+ *
6
+ * Copyright 2011-2022 Cesium Contributors
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ *
20
+ * Columbus View (Pat. Pend.)
21
+ *
22
+ * Portions licensed separately.
23
+ * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details.
24
+ */
25
+
26
+ import {
27
+ require_draco_decoder_nodejs
28
+ } from "./chunk-CHHNOC2C.js";
29
+ import {
30
+ createTaskProcessorWorker_default
31
+ } from "./chunk-A4JVFBQ3.js";
32
+ import {
33
+ WebMercatorProjection_default
34
+ } from "./chunk-HQF437NJ.js";
35
+ import {
36
+ Cartesian3_default,
37
+ Cartographic_default,
38
+ Ellipsoid_default,
39
+ Matrix3_default
40
+ } from "./chunk-PCJWUS4M.js";
41
+ import {
42
+ Math_default
43
+ } from "./chunk-N3JIFFX2.js";
44
+ import "./chunk-WXTV4ATB.js";
45
+ import "./chunk-4MFFIWUA.js";
46
+ import {
47
+ __toESM,
48
+ defined_default
49
+ } from "./chunk-6BTKZDRG.js";
50
+
51
+ // packages/engine/Source/Workers/decodeI3S.js
52
+ var import_draco_decoder_nodejs = __toESM(require_draco_decoder_nodejs(), 1);
53
+ var draco;
54
+ function bilinearInterpolate(tx, ty, h00, h10, h01, h11) {
55
+ const a = h00 * (1 - tx) + h10 * tx;
56
+ const b = h01 * (1 - tx) + h11 * tx;
57
+ return a * (1 - ty) + b * ty;
58
+ }
59
+ function sampleMap(u, v, width, data) {
60
+ const address = u + v * width;
61
+ return data[address];
62
+ }
63
+ function sampleGeoid(sampleX, sampleY, geoidData) {
64
+ const extent = geoidData.nativeExtent;
65
+ let x = (sampleX - extent.west) / (extent.east - extent.west) * (geoidData.width - 1);
66
+ let y = (sampleY - extent.south) / (extent.north - extent.south) * (geoidData.height - 1);
67
+ const xi = Math.floor(x);
68
+ let yi = Math.floor(y);
69
+ x -= xi;
70
+ y -= yi;
71
+ const xNext = xi < geoidData.width ? xi + 1 : xi;
72
+ let yNext = yi < geoidData.height ? yi + 1 : yi;
73
+ yi = geoidData.height - 1 - yi;
74
+ yNext = geoidData.height - 1 - yNext;
75
+ const h00 = sampleMap(xi, yi, geoidData.width, geoidData.buffer);
76
+ const h10 = sampleMap(xNext, yi, geoidData.width, geoidData.buffer);
77
+ const h01 = sampleMap(xi, yNext, geoidData.width, geoidData.buffer);
78
+ const h11 = sampleMap(xNext, yNext, geoidData.width, geoidData.buffer);
79
+ let finalHeight = bilinearInterpolate(x, y, h00, h10, h01, h11);
80
+ finalHeight = finalHeight * geoidData.scale + geoidData.offset;
81
+ return finalHeight;
82
+ }
83
+ function sampleGeoidFromList(lon, lat, geoidDataList) {
84
+ for (let i = 0; i < geoidDataList.length; i++) {
85
+ const localExtent = geoidDataList[i].nativeExtent;
86
+ let localPt = new Cartesian3_default();
87
+ if (geoidDataList[i].projectionType === "WebMercator") {
88
+ const radii = geoidDataList[i].projection._ellipsoid._radii;
89
+ const webMercatorProj = new WebMercatorProjection_default(
90
+ new Ellipsoid_default(radii.x, radii.y, radii.z)
91
+ );
92
+ localPt = webMercatorProj.project(new Cartographic_default(lon, lat, 0));
93
+ } else {
94
+ localPt.x = lon;
95
+ localPt.y = lat;
72
96
  }
73
-
74
- return 0;
75
- }
76
-
77
- function orthometricToEllipsoidal(
78
- vertexCount,
79
- position,
80
- scale_x,
81
- scale_y,
82
- center,
83
- geoidDataList,
84
- fast
85
- ) {
86
- if (fast) {
87
- // Geometry is already relative to the tile origin which has already been shifted to account for geoid height
88
- // Nothing to do here
89
- return;
97
+ if (localPt.x > localExtent.west && localPt.x < localExtent.east && localPt.y > localExtent.south && localPt.y < localExtent.north) {
98
+ return sampleGeoid(localPt.x, localPt.y, geoidDataList[i]);
90
99
  }
91
-
92
- // For more precision, sample the geoid height at each vertex and shift by the difference between that value and the height at the center of the tile
93
- const centerHeight = sampleGeoidFromList(
94
- center.longitude,
95
- center.latitude,
100
+ }
101
+ return 0;
102
+ }
103
+ function orthometricToEllipsoidal(vertexCount, position, scale_x, scale_y, center, geoidDataList, fast) {
104
+ if (fast) {
105
+ return;
106
+ }
107
+ const centerHeight = sampleGeoidFromList(
108
+ center.longitude,
109
+ center.latitude,
110
+ geoidDataList
111
+ );
112
+ for (let i = 0; i < vertexCount; ++i) {
113
+ const height = sampleGeoidFromList(
114
+ center.longitude + Math_default.toRadians(scale_x * position[i * 3]),
115
+ center.latitude + Math_default.toRadians(scale_y * position[i * 3 + 1]),
96
116
  geoidDataList
97
117
  );
98
-
99
- for (let i = 0; i < vertexCount; ++i) {
100
- const height = sampleGeoidFromList(
101
- center.longitude + Math$1.CesiumMath.toRadians(scale_x * position[i * 3]),
102
- center.latitude + Math$1.CesiumMath.toRadians(scale_y * position[i * 3 + 1]),
103
- geoidDataList
118
+ position[i * 3 + 2] += height - centerHeight;
119
+ }
120
+ }
121
+ function transformToLocal(vertexCount, positions, normals, cartographicCenter, cartesianCenter, parentRotation, ellipsoidRadiiSquare, scale_x, scale_y) {
122
+ if (vertexCount === 0 || !defined_default(positions) || positions.length === 0) {
123
+ return;
124
+ }
125
+ const ellipsoid = new Ellipsoid_default(
126
+ Math.sqrt(ellipsoidRadiiSquare.x),
127
+ Math.sqrt(ellipsoidRadiiSquare.y),
128
+ Math.sqrt(ellipsoidRadiiSquare.z)
129
+ );
130
+ for (let i = 0; i < vertexCount; ++i) {
131
+ const indexOffset = i * 3;
132
+ const indexOffset1 = indexOffset + 1;
133
+ const indexOffset2 = indexOffset + 2;
134
+ const cartographic = new Cartographic_default();
135
+ cartographic.longitude = cartographicCenter.longitude + Math_default.toRadians(scale_x * positions[indexOffset]);
136
+ cartographic.latitude = cartographicCenter.latitude + Math_default.toRadians(scale_y * positions[indexOffset1]);
137
+ cartographic.height = cartographicCenter.height + positions[indexOffset2];
138
+ const position = {};
139
+ ellipsoid.cartographicToCartesian(cartographic, position);
140
+ position.x -= cartesianCenter.x;
141
+ position.y -= cartesianCenter.y;
142
+ position.z -= cartesianCenter.z;
143
+ const rotatedPosition = {};
144
+ Matrix3_default.multiplyByVector(parentRotation, position, rotatedPosition);
145
+ positions[indexOffset] = rotatedPosition.x;
146
+ positions[indexOffset1] = rotatedPosition.y;
147
+ positions[indexOffset2] = rotatedPosition.z;
148
+ if (defined_default(normals)) {
149
+ const normal = new Cartesian3_default(
150
+ normals[indexOffset],
151
+ normals[indexOffset1],
152
+ normals[indexOffset2]
104
153
  );
105
- position[i * 3 + 2] += height - centerHeight;
154
+ const rotatedNormal = {};
155
+ Matrix3_default.multiplyByVector(parentRotation, normal, rotatedNormal);
156
+ normals[indexOffset] = rotatedNormal.x;
157
+ normals[indexOffset1] = rotatedNormal.y;
158
+ normals[indexOffset2] = rotatedNormal.z;
106
159
  }
107
160
  }
108
-
109
- function transformToLocal(
110
- vertexCount,
111
- positions,
112
- normals,
113
- cartographicCenter,
114
- cartesianCenter,
115
- parentRotation,
116
- ellipsoidRadiiSquare,
117
- scale_x,
118
- scale_y
119
- ) {
120
- if (vertexCount === 0 || !defaultValue.defined(positions) || positions.length === 0) {
121
- return;
122
- }
123
-
124
- const ellipsoid = new Matrix3.Ellipsoid(
125
- Math.sqrt(ellipsoidRadiiSquare.x),
126
- Math.sqrt(ellipsoidRadiiSquare.y),
127
- Math.sqrt(ellipsoidRadiiSquare.z)
128
- );
129
- for (let i = 0; i < vertexCount; ++i) {
130
- const indexOffset = i * 3;
131
- const indexOffset1 = indexOffset + 1;
132
- const indexOffset2 = indexOffset + 2;
133
-
134
- const cartographic = new Matrix3.Cartographic();
135
- cartographic.longitude =
136
- cartographicCenter.longitude +
137
- Math$1.CesiumMath.toRadians(scale_x * positions[indexOffset]);
138
-
139
- cartographic.latitude =
140
- cartographicCenter.latitude +
141
- Math$1.CesiumMath.toRadians(scale_y * positions[indexOffset1]);
142
- cartographic.height = cartographicCenter.height + positions[indexOffset2];
143
-
144
- const position = {};
145
- ellipsoid.cartographicToCartesian(cartographic, position);
146
-
147
- position.x -= cartesianCenter.x;
148
- position.y -= cartesianCenter.y;
149
- position.z -= cartesianCenter.z;
150
-
151
- const rotatedPosition = {};
152
- Matrix3.Matrix3.multiplyByVector(parentRotation, position, rotatedPosition);
153
-
154
- positions[indexOffset] = rotatedPosition.x;
155
- positions[indexOffset1] = rotatedPosition.y;
156
- positions[indexOffset2] = rotatedPosition.z;
157
-
158
- if (defaultValue.defined(normals)) {
159
- const normal = new Matrix3.Cartesian3(
160
- normals[indexOffset],
161
- normals[indexOffset1],
162
- normals[indexOffset2]
163
- );
164
-
165
- const rotatedNormal = {};
166
- Matrix3.Matrix3.multiplyByVector(parentRotation, normal, rotatedNormal);
167
-
168
- // TODO: check if normals are Z-UP or Y-UP and flip y and z
169
- normals[indexOffset] = rotatedNormal.x;
170
- normals[indexOffset1] = rotatedNormal.y;
171
- normals[indexOffset2] = rotatedNormal.z;
172
- }
173
- }
161
+ }
162
+ function cropUVs(vertexCount, uv0s, uvRegions) {
163
+ for (let vertexIndex = 0; vertexIndex < vertexCount; ++vertexIndex) {
164
+ const minU = uvRegions[vertexIndex * 4] / 65535;
165
+ const minV = uvRegions[vertexIndex * 4 + 1] / 65535;
166
+ const scaleU = (uvRegions[vertexIndex * 4 + 2] - uvRegions[vertexIndex * 4]) / 65535;
167
+ const scaleV = (uvRegions[vertexIndex * 4 + 3] - uvRegions[vertexIndex * 4 + 1]) / 65535;
168
+ uv0s[vertexIndex * 2] *= scaleU;
169
+ uv0s[vertexIndex * 2] += minU;
170
+ uv0s[vertexIndex * 2 + 1] *= scaleV;
171
+ uv0s[vertexIndex * 2 + 1] += minV;
174
172
  }
175
-
176
- function cropUVs(vertexCount, uv0s, uvRegions) {
177
- for (let vertexIndex = 0; vertexIndex < vertexCount; ++vertexIndex) {
178
- const minU = uvRegions[vertexIndex * 4] / 65535.0;
179
- const minV = uvRegions[vertexIndex * 4 + 1] / 65535.0;
180
- const scaleU =
181
- (uvRegions[vertexIndex * 4 + 2] - uvRegions[vertexIndex * 4]) / 65535.0;
182
- const scaleV =
183
- (uvRegions[vertexIndex * 4 + 3] - uvRegions[vertexIndex * 4 + 1]) /
184
- 65535.0;
185
-
186
- uv0s[vertexIndex * 2] *= scaleU;
187
- uv0s[vertexIndex * 2] += minU;
188
-
189
- uv0s[vertexIndex * 2 + 1] *= scaleV;
190
- uv0s[vertexIndex * 2 + 1] += minV;
191
- }
173
+ }
174
+ function generateGltfBuffer(vertexCount, indices, positions, normals, uv0s, colors) {
175
+ if (vertexCount === 0 || !defined_default(positions) || positions.length === 0) {
176
+ return {
177
+ buffers: [],
178
+ bufferViews: [],
179
+ accessors: [],
180
+ meshes: [],
181
+ nodes: [],
182
+ nodesInScene: []
183
+ };
192
184
  }
193
-
194
- function generateGltfBuffer(
195
- vertexCount,
196
- indices,
197
- positions,
198
- normals,
199
- uv0s,
200
- colors
201
- ) {
202
- if (vertexCount === 0 || !defaultValue.defined(positions) || positions.length === 0) {
203
- return {
204
- buffers: [],
205
- bufferViews: [],
206
- accessors: [],
207
- meshes: [],
208
- nodes: [],
209
- nodesInScene: [],
210
- };
185
+ const buffers = [];
186
+ const bufferViews = [];
187
+ const accessors = [];
188
+ const meshes = [];
189
+ const nodes = [];
190
+ const nodesInScene = [];
191
+ if (defined_default(indices)) {
192
+ vertexCount = indices.length;
193
+ }
194
+ const indexArray = new Uint32Array(vertexCount);
195
+ if (defined_default(indices)) {
196
+ for (let vertexIndex = 0; vertexIndex < vertexCount; ++vertexIndex) {
197
+ indexArray[vertexIndex] = indices[vertexIndex];
211
198
  }
212
-
213
- const buffers = [];
214
- const bufferViews = [];
215
- const accessors = [];
216
- const meshes = [];
217
- const nodes = [];
218
- const nodesInScene = [];
219
-
220
- // If we provide indices, then the vertex count is the length
221
- // of that array, otherwise we assume non-indexed triangle
222
- if (defaultValue.defined(indices)) {
223
- vertexCount = indices.length;
199
+ } else {
200
+ for (let newVertexIndex = 0; newVertexIndex < vertexCount; ++newVertexIndex) {
201
+ indexArray[newVertexIndex] = newVertexIndex;
224
202
  }
225
-
226
- // Allocate array
227
- const indexArray = new Uint32Array(vertexCount);
228
-
229
- if (defaultValue.defined(indices)) {
230
- // Set the indices
231
- for (let vertexIndex = 0; vertexIndex < vertexCount; ++vertexIndex) {
232
- indexArray[vertexIndex] = indices[vertexIndex];
233
- }
234
- } else {
235
- // Generate indices
236
- for (
237
- let newVertexIndex = 0;
238
- newVertexIndex < vertexCount;
239
- ++newVertexIndex
240
- ) {
241
- indexArray[newVertexIndex] = newVertexIndex;
242
- }
243
- }
244
-
245
- // Push to the buffers, bufferViews and accessors
246
- const indicesBlob = new Blob([indexArray], { type: "application/binary" });
247
- const indicesURL = URL.createObjectURL(indicesBlob);
248
-
249
- const endIndex = vertexCount;
250
-
251
- // POSITIONS
252
- const meshPositions = positions.subarray(0, endIndex * 3);
253
- const positionsBlob = new Blob([meshPositions], {
254
- type: "application/binary",
203
+ }
204
+ const indicesBlob = new Blob([indexArray], { type: "application/binary" });
205
+ const indicesURL = URL.createObjectURL(indicesBlob);
206
+ const endIndex = vertexCount;
207
+ const meshPositions = positions.subarray(0, endIndex * 3);
208
+ const positionsBlob = new Blob([meshPositions], {
209
+ type: "application/binary"
210
+ });
211
+ const positionsURL = URL.createObjectURL(positionsBlob);
212
+ let minX = Number.POSITIVE_INFINITY;
213
+ let maxX = Number.NEGATIVE_INFINITY;
214
+ let minY = Number.POSITIVE_INFINITY;
215
+ let maxY = Number.NEGATIVE_INFINITY;
216
+ let minZ = Number.POSITIVE_INFINITY;
217
+ let maxZ = Number.NEGATIVE_INFINITY;
218
+ for (let i = 0; i < meshPositions.length / 3; i++) {
219
+ minX = Math.min(minX, meshPositions[i * 3 + 0]);
220
+ maxX = Math.max(maxX, meshPositions[i * 3 + 0]);
221
+ minY = Math.min(minY, meshPositions[i * 3 + 1]);
222
+ maxY = Math.max(maxY, meshPositions[i * 3 + 1]);
223
+ minZ = Math.min(minZ, meshPositions[i * 3 + 2]);
224
+ maxZ = Math.max(maxZ, meshPositions[i * 3 + 2]);
225
+ }
226
+ const meshNormals = normals ? normals.subarray(0, endIndex * 3) : void 0;
227
+ let normalsURL;
228
+ if (defined_default(meshNormals)) {
229
+ const normalsBlob = new Blob([meshNormals], {
230
+ type: "application/binary"
255
231
  });
256
- const positionsURL = URL.createObjectURL(positionsBlob);
257
-
258
- let minX = Number.POSITIVE_INFINITY;
259
- let maxX = Number.NEGATIVE_INFINITY;
260
- let minY = Number.POSITIVE_INFINITY;
261
- let maxY = Number.NEGATIVE_INFINITY;
262
- let minZ = Number.POSITIVE_INFINITY;
263
- let maxZ = Number.NEGATIVE_INFINITY;
264
-
265
- for (let i = 0; i < meshPositions.length / 3; i++) {
266
- minX = Math.min(minX, meshPositions[i * 3 + 0]);
267
- maxX = Math.max(maxX, meshPositions[i * 3 + 0]);
268
- minY = Math.min(minY, meshPositions[i * 3 + 1]);
269
- maxY = Math.max(maxY, meshPositions[i * 3 + 1]);
270
- minZ = Math.min(minZ, meshPositions[i * 3 + 2]);
271
- maxZ = Math.max(maxZ, meshPositions[i * 3 + 2]);
272
- }
273
-
274
- // NORMALS
275
- const meshNormals = normals ? normals.subarray(0, endIndex * 3) : undefined;
276
- let normalsURL;
277
- if (defaultValue.defined(meshNormals)) {
278
- const normalsBlob = new Blob([meshNormals], {
279
- type: "application/binary",
280
- });
281
- normalsURL = URL.createObjectURL(normalsBlob);
282
- }
283
-
284
- // UV0s
285
- const meshUv0s = uv0s ? uv0s.subarray(0, endIndex * 2) : undefined;
286
- let uv0URL;
287
- if (defaultValue.defined(meshUv0s)) {
288
- const uv0Blob = new Blob([meshUv0s], { type: "application/binary" });
289
- uv0URL = URL.createObjectURL(uv0Blob);
290
- }
291
-
292
- // COLORS
293
- const meshColorsInBytes = defaultValue.defined(colors)
294
- ? colors.subarray(0, endIndex * 4)
295
- : undefined;
296
- let colorsURL;
297
- if (defaultValue.defined(meshColorsInBytes)) {
298
- const colorsBlob = new Blob([meshColorsInBytes], {
299
- type: "application/binary",
300
- });
301
- colorsURL = URL.createObjectURL(colorsBlob);
302
- }
303
-
304
- const posIndex = 0;
305
- let normalIndex = 0;
306
- let uv0Index = 0;
307
- let colorIndex = 0;
308
- let indicesIndex = 0;
309
-
310
- let currentIndex = posIndex;
311
-
312
- const attributes = {};
313
-
314
- // POSITIONS
315
- attributes.POSITION = posIndex;
232
+ normalsURL = URL.createObjectURL(normalsBlob);
233
+ }
234
+ const meshUv0s = uv0s ? uv0s.subarray(0, endIndex * 2) : void 0;
235
+ let uv0URL;
236
+ if (defined_default(meshUv0s)) {
237
+ const uv0Blob = new Blob([meshUv0s], { type: "application/binary" });
238
+ uv0URL = URL.createObjectURL(uv0Blob);
239
+ }
240
+ const meshColorsInBytes = defined_default(colors) ? colors.subarray(0, endIndex * 4) : void 0;
241
+ let colorsURL;
242
+ if (defined_default(meshColorsInBytes)) {
243
+ const colorsBlob = new Blob([meshColorsInBytes], {
244
+ type: "application/binary"
245
+ });
246
+ colorsURL = URL.createObjectURL(colorsBlob);
247
+ }
248
+ const posIndex = 0;
249
+ let normalIndex = 0;
250
+ let uv0Index = 0;
251
+ let colorIndex = 0;
252
+ let indicesIndex = 0;
253
+ let currentIndex = posIndex;
254
+ const attributes = {};
255
+ attributes.POSITION = posIndex;
256
+ buffers.push({
257
+ uri: positionsURL,
258
+ byteLength: meshPositions.byteLength
259
+ });
260
+ bufferViews.push({
261
+ buffer: posIndex,
262
+ byteOffset: 0,
263
+ byteLength: meshPositions.byteLength,
264
+ target: 34962
265
+ });
266
+ accessors.push({
267
+ bufferView: posIndex,
268
+ byteOffset: 0,
269
+ componentType: 5126,
270
+ count: vertexCount,
271
+ type: "VEC3",
272
+ max: [minX, minY, minZ],
273
+ min: [maxX, maxY, maxZ]
274
+ });
275
+ if (defined_default(normalsURL)) {
276
+ ++currentIndex;
277
+ normalIndex = currentIndex;
278
+ attributes.NORMAL = normalIndex;
316
279
  buffers.push({
317
- uri: positionsURL,
318
- byteLength: meshPositions.byteLength,
280
+ uri: normalsURL,
281
+ byteLength: meshNormals.byteLength
319
282
  });
320
283
  bufferViews.push({
321
- buffer: posIndex,
284
+ buffer: normalIndex,
322
285
  byteOffset: 0,
323
- byteLength: meshPositions.byteLength,
324
- target: 34962,
286
+ byteLength: meshNormals.byteLength,
287
+ target: 34962
325
288
  });
326
289
  accessors.push({
327
- bufferView: posIndex,
290
+ bufferView: normalIndex,
328
291
  byteOffset: 0,
329
292
  componentType: 5126,
330
293
  count: vertexCount,
331
- type: "VEC3",
332
- max: [minX, minY, minZ],
333
- min: [maxX, maxY, maxZ],
294
+ type: "VEC3"
334
295
  });
335
-
336
- // NORMALS
337
- if (defaultValue.defined(normalsURL)) {
338
- ++currentIndex;
339
- normalIndex = currentIndex;
340
- attributes.NORMAL = normalIndex;
341
- buffers.push({
342
- uri: normalsURL,
343
- byteLength: meshNormals.byteLength,
344
- });
345
- bufferViews.push({
346
- buffer: normalIndex,
347
- byteOffset: 0,
348
- byteLength: meshNormals.byteLength,
349
- target: 34962,
350
- });
351
- accessors.push({
352
- bufferView: normalIndex,
353
- byteOffset: 0,
354
- componentType: 5126,
355
- count: vertexCount,
356
- type: "VEC3",
357
- });
358
- }
359
-
360
- // UV0
361
- if (defaultValue.defined(uv0URL)) {
362
- ++currentIndex;
363
- uv0Index = currentIndex;
364
- attributes.TEXCOORD_0 = uv0Index;
365
- buffers.push({
366
- uri: uv0URL,
367
- byteLength: meshUv0s.byteLength,
368
- });
369
- bufferViews.push({
370
- buffer: uv0Index,
371
- byteOffset: 0,
372
- byteLength: meshUv0s.byteLength,
373
- target: 34962,
374
- });
375
- accessors.push({
376
- bufferView: uv0Index,
377
- byteOffset: 0,
378
- componentType: 5126,
379
- count: vertexCount,
380
- type: "VEC2",
381
- });
382
- }
383
-
384
- // COLORS
385
- if (defaultValue.defined(colorsURL)) {
386
- ++currentIndex;
387
- colorIndex = currentIndex;
388
- attributes.COLOR_0 = colorIndex;
389
- buffers.push({
390
- uri: colorsURL,
391
- byteLength: meshColorsInBytes.byteLength,
392
- });
393
- bufferViews.push({
394
- buffer: colorIndex,
395
- byteOffset: 0,
396
- byteLength: meshColorsInBytes.byteLength,
397
- target: 34962,
398
- });
399
- accessors.push({
400
- bufferView: colorIndex,
401
- byteOffset: 0,
402
- componentType: 5121,
403
- normalized: true,
404
- count: vertexCount,
405
- type: "VEC4",
406
- });
407
- }
408
-
409
- // INDICES
296
+ }
297
+ if (defined_default(uv0URL)) {
410
298
  ++currentIndex;
411
- indicesIndex = currentIndex;
299
+ uv0Index = currentIndex;
300
+ attributes.TEXCOORD_0 = uv0Index;
412
301
  buffers.push({
413
- uri: indicesURL,
414
- byteLength: indexArray.byteLength,
302
+ uri: uv0URL,
303
+ byteLength: meshUv0s.byteLength
415
304
  });
416
305
  bufferViews.push({
417
- buffer: indicesIndex,
306
+ buffer: uv0Index,
418
307
  byteOffset: 0,
419
- byteLength: indexArray.byteLength,
420
- target: 34963,
308
+ byteLength: meshUv0s.byteLength,
309
+ target: 34962
421
310
  });
422
311
  accessors.push({
423
- bufferView: indicesIndex,
312
+ bufferView: uv0Index,
424
313
  byteOffset: 0,
425
- componentType: 5125,
314
+ componentType: 5126,
426
315
  count: vertexCount,
427
- type: "SCALAR",
316
+ type: "VEC2"
428
317
  });
429
-
430
- // Create a new mesh for this page
431
- meshes.push({
432
- primitives: [
433
- {
434
- attributes: attributes,
435
- indices: indicesIndex,
436
- material: 0,
437
- },
438
- ],
318
+ }
319
+ if (defined_default(colorsURL)) {
320
+ ++currentIndex;
321
+ colorIndex = currentIndex;
322
+ attributes.COLOR_0 = colorIndex;
323
+ buffers.push({
324
+ uri: colorsURL,
325
+ byteLength: meshColorsInBytes.byteLength
326
+ });
327
+ bufferViews.push({
328
+ buffer: colorIndex,
329
+ byteOffset: 0,
330
+ byteLength: meshColorsInBytes.byteLength,
331
+ target: 34962
332
+ });
333
+ accessors.push({
334
+ bufferView: colorIndex,
335
+ byteOffset: 0,
336
+ componentType: 5121,
337
+ normalized: true,
338
+ count: vertexCount,
339
+ type: "VEC4"
439
340
  });
440
- nodesInScene.push(0);
441
- nodes.push({ mesh: 0 });
442
-
443
- return {
444
- buffers: buffers,
445
- bufferViews: bufferViews,
446
- accessors: accessors,
447
- meshes: meshes,
448
- nodes: nodes,
449
- nodesInScene: nodesInScene,
450
- };
451
341
  }
452
-
453
- function decode(data, schema, bufferInfo, featureData) {
454
- const magicNumber = new Uint8Array(data, 0, 5);
455
- if (
456
- magicNumber[0] === "D".charCodeAt() &&
457
- magicNumber[1] === "R".charCodeAt() &&
458
- magicNumber[2] === "A".charCodeAt() &&
459
- magicNumber[3] === "C".charCodeAt() &&
460
- magicNumber[4] === "O".charCodeAt()
461
- ) {
462
- return decodeDracoEncodedGeometry(data);
463
- }
464
- return decodeBinaryGeometry(data, schema, bufferInfo, featureData);
342
+ ++currentIndex;
343
+ indicesIndex = currentIndex;
344
+ buffers.push({
345
+ uri: indicesURL,
346
+ byteLength: indexArray.byteLength
347
+ });
348
+ bufferViews.push({
349
+ buffer: indicesIndex,
350
+ byteOffset: 0,
351
+ byteLength: indexArray.byteLength,
352
+ target: 34963
353
+ });
354
+ accessors.push({
355
+ bufferView: indicesIndex,
356
+ byteOffset: 0,
357
+ componentType: 5125,
358
+ count: vertexCount,
359
+ type: "SCALAR"
360
+ });
361
+ meshes.push({
362
+ primitives: [
363
+ {
364
+ attributes,
365
+ indices: indicesIndex,
366
+ material: 0
367
+ }
368
+ ]
369
+ });
370
+ nodesInScene.push(0);
371
+ nodes.push({ mesh: 0 });
372
+ return {
373
+ buffers,
374
+ bufferViews,
375
+ accessors,
376
+ meshes,
377
+ nodes,
378
+ nodesInScene
379
+ };
380
+ }
381
+ function decode(data, schema, bufferInfo, featureData) {
382
+ const magicNumber = new Uint8Array(data, 0, 5);
383
+ if (magicNumber[0] === "D".charCodeAt() && magicNumber[1] === "R".charCodeAt() && magicNumber[2] === "A".charCodeAt() && magicNumber[3] === "C".charCodeAt() && magicNumber[4] === "O".charCodeAt()) {
384
+ return decodeDracoEncodedGeometry(data, bufferInfo);
465
385
  }
466
-
467
- function decodeDracoEncodedGeometry(data) {
468
- // Create the Draco decoder.
469
- const dracoDecoderModule = draco;
470
- const buffer = new dracoDecoderModule.DecoderBuffer();
471
-
472
- const byteArray = new Uint8Array(data);
473
- buffer.Init(byteArray, byteArray.length);
474
-
475
- // Create a buffer to hold the encoded data.
476
- const dracoDecoder = new dracoDecoderModule.Decoder();
477
- const geometryType = dracoDecoder.GetEncodedGeometryType(buffer);
478
- const metadataQuerier = new dracoDecoderModule.MetadataQuerier();
479
-
480
- // Decode the encoded geometry.
481
- // See: https://github.com/google/draco/blob/master/src/draco/javascript/emscripten/draco_web_decoder.idl
482
- let dracoGeometry;
483
- let status;
484
- if (geometryType === dracoDecoderModule.TRIANGULAR_MESH) {
485
- dracoGeometry = new dracoDecoderModule.Mesh();
486
- status = dracoDecoder.DecodeBufferToMesh(buffer, dracoGeometry);
386
+ return decodeBinaryGeometry(data, schema, bufferInfo, featureData);
387
+ }
388
+ function decodeDracoEncodedGeometry(data) {
389
+ const dracoDecoderModule = draco;
390
+ const buffer = new dracoDecoderModule.DecoderBuffer();
391
+ const byteArray = new Uint8Array(data);
392
+ buffer.Init(byteArray, byteArray.length);
393
+ const dracoDecoder = new dracoDecoderModule.Decoder();
394
+ const geometryType = dracoDecoder.GetEncodedGeometryType(buffer);
395
+ const metadataQuerier = new dracoDecoderModule.MetadataQuerier();
396
+ let dracoGeometry;
397
+ let status;
398
+ if (geometryType === dracoDecoderModule.TRIANGULAR_MESH) {
399
+ dracoGeometry = new dracoDecoderModule.Mesh();
400
+ status = dracoDecoder.DecodeBufferToMesh(buffer, dracoGeometry);
401
+ }
402
+ const decodedGeometry = {
403
+ vertexCount: [0],
404
+ featureCount: 0
405
+ };
406
+ if (defined_default(status) && status.ok() && dracoGeometry.ptr !== 0) {
407
+ const faceCount = dracoGeometry.num_faces();
408
+ const attributesCount = dracoGeometry.num_attributes();
409
+ const vertexCount = dracoGeometry.num_points();
410
+ decodedGeometry.indices = new Uint32Array(faceCount * 3);
411
+ const faces = decodedGeometry.indices;
412
+ decodedGeometry.vertexCount[0] = vertexCount;
413
+ decodedGeometry.scale_x = 1;
414
+ decodedGeometry.scale_y = 1;
415
+ const face = new dracoDecoderModule.DracoInt32Array(3);
416
+ for (let faceIndex = 0; faceIndex < faceCount; ++faceIndex) {
417
+ dracoDecoder.GetFaceFromMesh(dracoGeometry, faceIndex, face);
418
+ faces[faceIndex * 3] = face.GetValue(0);
419
+ faces[faceIndex * 3 + 1] = face.GetValue(1);
420
+ faces[faceIndex * 3 + 2] = face.GetValue(2);
487
421
  }
488
-
489
- const decodedGeometry = {
490
- vertexCount: [0],
491
- featureCount: 0,
492
- };
493
-
494
- // if all is OK
495
- if (defaultValue.defined(status) && status.ok() && dracoGeometry.ptr !== 0) {
496
- const faceCount = dracoGeometry.num_faces();
497
- const attributesCount = dracoGeometry.num_attributes();
498
- const vertexCount = dracoGeometry.num_points();
499
- decodedGeometry.indices = new Uint32Array(faceCount * 3);
500
- const faces = decodedGeometry.indices;
501
-
502
- decodedGeometry.vertexCount[0] = vertexCount;
503
- decodedGeometry.scale_x = 1;
504
- decodedGeometry.scale_y = 1;
505
-
506
- // Decode faces
507
- // @TODO: Replace that code with GetTrianglesUInt32Array for better efficiency
508
- const face = new dracoDecoderModule.DracoInt32Array(3);
509
- for (let faceIndex = 0; faceIndex < faceCount; ++faceIndex) {
510
- dracoDecoder.GetFaceFromMesh(dracoGeometry, faceIndex, face);
511
- faces[faceIndex * 3] = face.GetValue(0);
512
- faces[faceIndex * 3 + 1] = face.GetValue(1);
513
- faces[faceIndex * 3 + 2] = face.GetValue(2);
422
+ dracoDecoderModule.destroy(face);
423
+ for (let attrIndex = 0; attrIndex < attributesCount; ++attrIndex) {
424
+ const dracoAttribute = dracoDecoder.GetAttribute(
425
+ dracoGeometry,
426
+ attrIndex
427
+ );
428
+ const attributeData = decodeDracoAttribute(
429
+ dracoDecoderModule,
430
+ dracoDecoder,
431
+ dracoGeometry,
432
+ dracoAttribute,
433
+ vertexCount
434
+ );
435
+ const dracoAttributeType = dracoAttribute.attribute_type();
436
+ let attributei3sName = "unknown";
437
+ if (dracoAttributeType === dracoDecoderModule.POSITION) {
438
+ attributei3sName = "positions";
439
+ } else if (dracoAttributeType === dracoDecoderModule.NORMAL) {
440
+ attributei3sName = "normals";
441
+ } else if (dracoAttributeType === dracoDecoderModule.COLOR) {
442
+ attributei3sName = "colors";
443
+ } else if (dracoAttributeType === dracoDecoderModule.TEX_COORD) {
444
+ attributei3sName = "uv0s";
514
445
  }
515
-
516
- dracoDecoderModule.destroy(face);
517
-
518
- for (let attrIndex = 0; attrIndex < attributesCount; ++attrIndex) {
519
- const dracoAttribute = dracoDecoder.GetAttribute(
520
- dracoGeometry,
521
- attrIndex
522
- );
523
-
524
- const attributeData = decodeDracoAttribute(
525
- dracoDecoderModule,
526
- dracoDecoder,
527
- dracoGeometry,
528
- dracoAttribute,
529
- vertexCount
530
- );
531
-
532
- // initial mapping
533
- const dracoAttributeType = dracoAttribute.attribute_type();
534
- let attributei3sName = "unknown";
535
-
536
- if (dracoAttributeType === dracoDecoderModule.POSITION) {
537
- attributei3sName = "positions";
538
- } else if (dracoAttributeType === dracoDecoderModule.NORMAL) {
539
- attributei3sName = "normals";
540
- } else if (dracoAttributeType === dracoDecoderModule.COLOR) {
541
- attributei3sName = "colors";
542
- } else if (dracoAttributeType === dracoDecoderModule.TEX_COORD) {
543
- attributei3sName = "uv0s";
544
- }
545
-
546
- // get the metadata
547
- const metadata = dracoDecoder.GetAttributeMetadata(
548
- dracoGeometry,
549
- attrIndex
550
- );
551
-
552
- if (metadata.ptr !== 0) {
553
- const numEntries = metadataQuerier.NumEntries(metadata);
554
- for (let entry = 0; entry < numEntries; ++entry) {
555
- const entryName = metadataQuerier.GetEntryName(metadata, entry);
556
- if (entryName === "i3s-scale_x") {
557
- decodedGeometry.scale_x = metadataQuerier.GetDoubleEntry(
558
- metadata,
559
- "i3s-scale_x"
560
- );
561
- } else if (entryName === "i3s-scale_y") {
562
- decodedGeometry.scale_y = metadataQuerier.GetDoubleEntry(
563
- metadata,
564
- "i3s-scale_y"
565
- );
566
- } else if (entryName === "i3s-attribute-type") {
567
- attributei3sName = metadataQuerier.GetStringEntry(
568
- metadata,
569
- "i3s-attribute-type"
570
- );
571
- }
446
+ const metadata = dracoDecoder.GetAttributeMetadata(
447
+ dracoGeometry,
448
+ attrIndex
449
+ );
450
+ if (metadata.ptr !== 0) {
451
+ const numEntries = metadataQuerier.NumEntries(metadata);
452
+ for (let entry = 0; entry < numEntries; ++entry) {
453
+ const entryName = metadataQuerier.GetEntryName(metadata, entry);
454
+ if (entryName === "i3s-scale_x") {
455
+ decodedGeometry.scale_x = metadataQuerier.GetDoubleEntry(
456
+ metadata,
457
+ "i3s-scale_x"
458
+ );
459
+ } else if (entryName === "i3s-scale_y") {
460
+ decodedGeometry.scale_y = metadataQuerier.GetDoubleEntry(
461
+ metadata,
462
+ "i3s-scale_y"
463
+ );
464
+ } else if (entryName === "i3s-attribute-type") {
465
+ attributei3sName = metadataQuerier.GetStringEntry(
466
+ metadata,
467
+ "i3s-attribute-type"
468
+ );
572
469
  }
573
470
  }
574
-
575
- if (defaultValue.defined(decodedGeometry[attributei3sName])) {
576
- console.log("Attribute already exists", attributei3sName);
577
- }
578
-
579
- decodedGeometry[attributei3sName] = attributeData;
580
-
581
- if (attributei3sName === "feature-index") {
582
- decodedGeometry.featureCount++;
583
- }
584
471
  }
585
-
586
- dracoDecoderModule.destroy(dracoGeometry);
587
- }
588
-
589
- dracoDecoderModule.destroy(metadataQuerier);
590
- dracoDecoderModule.destroy(dracoDecoder);
591
-
592
- return decodedGeometry;
593
- }
594
-
595
- function decodeDracoAttribute(
596
- dracoDecoderModule,
597
- dracoDecoder,
598
- dracoGeometry,
599
- dracoAttribute,
600
- vertexCount
601
- ) {
602
- const bufferSize = dracoAttribute.num_components() * vertexCount;
603
- let dracoAttributeData;
604
-
605
- const handlers = [
606
- function () {}, // DT_INVALID - 0
607
- function () {
608
- // DT_INT8 - 1
609
- dracoAttributeData = new dracoDecoderModule.DracoInt8Array(bufferSize);
610
- const success = dracoDecoder.GetAttributeInt8ForAllPoints(
611
- dracoGeometry,
612
- dracoAttribute,
613
- dracoAttributeData
614
- );
615
-
616
- if (!success) {
617
- console.error("Bad stream");
618
- }
619
- const attributeData = new Int8Array(bufferSize);
620
- for (let i = 0; i < bufferSize; ++i) {
621
- attributeData[i] = dracoAttributeData.GetValue(i);
622
- }
623
- return attributeData;
624
- },
625
- function () {
626
- // DT_UINT8 - 2
627
- dracoAttributeData = new dracoDecoderModule.DracoInt8Array(bufferSize);
628
- const success = dracoDecoder.GetAttributeUInt8ForAllPoints(
629
- dracoGeometry,
630
- dracoAttribute,
631
- dracoAttributeData
632
- );
633
-
634
- if (!success) {
635
- console.error("Bad stream");
636
- }
637
- const attributeData = new Uint8Array(bufferSize);
638
- for (let i = 0; i < bufferSize; ++i) {
639
- attributeData[i] = dracoAttributeData.GetValue(i);
640
- }
641
- return attributeData;
642
- },
643
- function () {
644
- // DT_INT16 - 3
645
- dracoAttributeData = new dracoDecoderModule.DracoInt16Array(bufferSize);
646
- const success = dracoDecoder.GetAttributeInt16ForAllPoints(
647
- dracoGeometry,
648
- dracoAttribute,
649
- dracoAttributeData
650
- );
651
-
652
- if (!success) {
653
- console.error("Bad stream");
654
- }
655
- const attributeData = new Int16Array(bufferSize);
656
- for (let i = 0; i < bufferSize; ++i) {
657
- attributeData[i] = dracoAttributeData.GetValue(i);
658
- }
659
- return attributeData;
660
- },
661
- function () {
662
- // DT_UINT16 - 4
663
- dracoAttributeData = new dracoDecoderModule.DracoInt16Array(bufferSize);
664
- const success = dracoDecoder.GetAttributeUInt16ForAllPoints(
665
- dracoGeometry,
666
- dracoAttribute,
667
- dracoAttributeData
668
- );
669
-
670
- if (!success) {
671
- console.error("Bad stream");
672
- }
673
- const attributeData = new Uint16Array(bufferSize);
674
- for (let i = 0; i < bufferSize; ++i) {
675
- attributeData[i] = dracoAttributeData.GetValue(i);
676
- }
677
- return attributeData;
678
- },
679
- function () {
680
- // DT_INT32 - 5
681
- dracoAttributeData = new dracoDecoderModule.DracoInt32Array(bufferSize);
682
- const success = dracoDecoder.GetAttributeInt32ForAllPoints(
683
- dracoGeometry,
684
- dracoAttribute,
685
- dracoAttributeData
686
- );
687
-
688
- if (!success) {
689
- console.error("Bad stream");
690
- }
691
- const attributeData = new Int32Array(bufferSize);
692
- for (let i = 0; i < bufferSize; ++i) {
693
- attributeData[i] = dracoAttributeData.GetValue(i);
694
- }
695
- return attributeData;
696
- },
697
- function () {
698
- // DT_UINT32 - 6
699
- dracoAttributeData = new dracoDecoderModule.DracoInt32Array(bufferSize);
700
- const success = dracoDecoder.GetAttributeUInt32ForAllPoints(
701
- dracoGeometry,
702
- dracoAttribute,
703
- dracoAttributeData
704
- );
705
-
706
- if (!success) {
707
- console.error("Bad stream");
708
- }
709
- const attributeData = new Uint32Array(bufferSize);
710
- for (let i = 0; i < bufferSize; ++i) {
711
- attributeData[i] = dracoAttributeData.GetValue(i);
712
- }
713
- return attributeData;
714
- },
715
- function () {
716
- // DT_INT64 - 7
717
- },
718
- function () {
719
- // DT_UINT64 - 8
720
- },
721
- function () {
722
- // DT_FLOAT32 - 9
723
- dracoAttributeData = new dracoDecoderModule.DracoFloat32Array(bufferSize);
724
- const success = dracoDecoder.GetAttributeFloatForAllPoints(
725
- dracoGeometry,
726
- dracoAttribute,
727
- dracoAttributeData
728
- );
729
-
730
- if (!success) {
731
- console.error("Bad stream");
732
- }
733
- const attributeData = new Float32Array(bufferSize);
734
- for (let i = 0; i < bufferSize; ++i) {
735
- attributeData[i] = dracoAttributeData.GetValue(i);
736
- }
737
- return attributeData;
738
- },
739
- function () {
740
- // DT_FLOAT64 - 10
741
- },
742
- function () {
743
- // DT_FLOAT32 - 11
744
- dracoAttributeData = new dracoDecoderModule.DracoUInt8Array(bufferSize);
745
- const success = dracoDecoder.GetAttributeUInt8ForAllPoints(
746
- dracoGeometry,
747
- dracoAttribute,
748
- dracoAttributeData
749
- );
750
-
751
- if (!success) {
752
- console.error("Bad stream");
753
- }
754
- const attributeData = new Uint8Array(bufferSize);
755
- for (let i = 0; i < bufferSize; ++i) {
756
- attributeData[i] = dracoAttributeData.GetValue(i);
757
- }
758
- return attributeData;
759
- },
760
- ];
761
-
762
- const attributeData = handlers[dracoAttribute.data_type()]();
763
-
764
- if (defaultValue.defined(dracoAttributeData)) {
765
- dracoDecoderModule.destroy(dracoAttributeData);
472
+ if (defined_default(decodedGeometry[attributei3sName])) {
473
+ console.log("Attribute already exists", attributei3sName);
474
+ }
475
+ decodedGeometry[attributei3sName] = attributeData;
476
+ if (attributei3sName === "feature-index") {
477
+ decodedGeometry.featureCount++;
478
+ }
766
479
  }
767
-
768
- return attributeData;
480
+ dracoDecoderModule.destroy(dracoGeometry);
769
481
  }
770
-
771
- const binaryAttributeDecoders = {
772
- position: function (decodedGeometry, data, offset) {
773
- const count = decodedGeometry.vertexCount * 3;
774
- decodedGeometry.positions = new Float32Array(data, offset, count);
775
- offset += count * 4;
776
- return offset;
482
+ dracoDecoderModule.destroy(metadataQuerier);
483
+ dracoDecoderModule.destroy(dracoDecoder);
484
+ return decodedGeometry;
485
+ }
486
+ function decodeDracoAttribute(dracoDecoderModule, dracoDecoder, dracoGeometry, dracoAttribute, vertexCount) {
487
+ const bufferSize = dracoAttribute.num_components() * vertexCount;
488
+ let dracoAttributeData;
489
+ const handlers = [
490
+ function() {
777
491
  },
778
- normal: function (decodedGeometry, data, offset) {
779
- const count = decodedGeometry.vertexCount * 3;
780
- decodedGeometry.normals = new Float32Array(data, offset, count);
781
- offset += count * 4;
782
- return offset;
492
+ // DT_INVALID - 0
493
+ function() {
494
+ dracoAttributeData = new dracoDecoderModule.DracoInt8Array(bufferSize);
495
+ const success = dracoDecoder.GetAttributeInt8ForAllPoints(
496
+ dracoGeometry,
497
+ dracoAttribute,
498
+ dracoAttributeData
499
+ );
500
+ if (!success) {
501
+ console.error("Bad stream");
502
+ }
503
+ const attributeData2 = new Int8Array(bufferSize);
504
+ for (let i = 0; i < bufferSize; ++i) {
505
+ attributeData2[i] = dracoAttributeData.GetValue(i);
506
+ }
507
+ return attributeData2;
783
508
  },
784
- uv0: function (decodedGeometry, data, offset) {
785
- const count = decodedGeometry.vertexCount * 2;
786
- decodedGeometry.uv0s = new Float32Array(data, offset, count);
787
- offset += count * 4;
788
- return offset;
509
+ function() {
510
+ dracoAttributeData = new dracoDecoderModule.DracoInt8Array(bufferSize);
511
+ const success = dracoDecoder.GetAttributeUInt8ForAllPoints(
512
+ dracoGeometry,
513
+ dracoAttribute,
514
+ dracoAttributeData
515
+ );
516
+ if (!success) {
517
+ console.error("Bad stream");
518
+ }
519
+ const attributeData2 = new Uint8Array(bufferSize);
520
+ for (let i = 0; i < bufferSize; ++i) {
521
+ attributeData2[i] = dracoAttributeData.GetValue(i);
522
+ }
523
+ return attributeData2;
789
524
  },
790
- color: function (decodedGeometry, data, offset) {
791
- const count = decodedGeometry.vertexCount * 4;
792
- decodedGeometry.colors = new Uint8Array(data, offset, count);
793
- offset += count;
794
- return offset;
525
+ function() {
526
+ dracoAttributeData = new dracoDecoderModule.DracoInt16Array(bufferSize);
527
+ const success = dracoDecoder.GetAttributeInt16ForAllPoints(
528
+ dracoGeometry,
529
+ dracoAttribute,
530
+ dracoAttributeData
531
+ );
532
+ if (!success) {
533
+ console.error("Bad stream");
534
+ }
535
+ const attributeData2 = new Int16Array(bufferSize);
536
+ for (let i = 0; i < bufferSize; ++i) {
537
+ attributeData2[i] = dracoAttributeData.GetValue(i);
538
+ }
539
+ return attributeData2;
795
540
  },
796
- featureId: function (decodedGeometry, data, offset) {
797
- // We don't need to use this for anything so just increment the offset
798
- const count = decodedGeometry.featureCount;
799
- offset += count * 8;
800
- return offset;
541
+ function() {
542
+ dracoAttributeData = new dracoDecoderModule.DracoInt16Array(bufferSize);
543
+ const success = dracoDecoder.GetAttributeUInt16ForAllPoints(
544
+ dracoGeometry,
545
+ dracoAttribute,
546
+ dracoAttributeData
547
+ );
548
+ if (!success) {
549
+ console.error("Bad stream");
550
+ }
551
+ const attributeData2 = new Uint16Array(bufferSize);
552
+ for (let i = 0; i < bufferSize; ++i) {
553
+ attributeData2[i] = dracoAttributeData.GetValue(i);
554
+ }
555
+ return attributeData2;
556
+ },
557
+ function() {
558
+ dracoAttributeData = new dracoDecoderModule.DracoInt32Array(bufferSize);
559
+ const success = dracoDecoder.GetAttributeInt32ForAllPoints(
560
+ dracoGeometry,
561
+ dracoAttribute,
562
+ dracoAttributeData
563
+ );
564
+ if (!success) {
565
+ console.error("Bad stream");
566
+ }
567
+ const attributeData2 = new Int32Array(bufferSize);
568
+ for (let i = 0; i < bufferSize; ++i) {
569
+ attributeData2[i] = dracoAttributeData.GetValue(i);
570
+ }
571
+ return attributeData2;
572
+ },
573
+ function() {
574
+ dracoAttributeData = new dracoDecoderModule.DracoInt32Array(bufferSize);
575
+ const success = dracoDecoder.GetAttributeUInt32ForAllPoints(
576
+ dracoGeometry,
577
+ dracoAttribute,
578
+ dracoAttributeData
579
+ );
580
+ if (!success) {
581
+ console.error("Bad stream");
582
+ }
583
+ const attributeData2 = new Uint32Array(bufferSize);
584
+ for (let i = 0; i < bufferSize; ++i) {
585
+ attributeData2[i] = dracoAttributeData.GetValue(i);
586
+ }
587
+ return attributeData2;
801
588
  },
802
- id: function (decodedGeometry, data, offset) {
803
- // We don't need to use this for anything so just increment the offset
804
- const count = decodedGeometry.featureCount;
805
- offset += count * 8;
806
- return offset;
589
+ function() {
807
590
  },
808
- faceRange: function (decodedGeometry, data, offset) {
809
- const count = decodedGeometry.featureCount * 2;
810
- decodedGeometry.faceRange = new Uint32Array(data, offset, count);
811
- offset += count * 4;
812
- return offset;
591
+ function() {
813
592
  },
814
- uvRegion: function (decodedGeometry, data, offset) {
815
- const count = decodedGeometry.vertexCount * 4;
816
- decodedGeometry["uv-region"] = new Uint16Array(data, offset, count);
817
- offset += count * 2;
818
- return offset;
593
+ function() {
594
+ dracoAttributeData = new dracoDecoderModule.DracoFloat32Array(bufferSize);
595
+ const success = dracoDecoder.GetAttributeFloatForAllPoints(
596
+ dracoGeometry,
597
+ dracoAttribute,
598
+ dracoAttributeData
599
+ );
600
+ if (!success) {
601
+ console.error("Bad stream");
602
+ }
603
+ const attributeData2 = new Float32Array(bufferSize);
604
+ for (let i = 0; i < bufferSize; ++i) {
605
+ attributeData2[i] = dracoAttributeData.GetValue(i);
606
+ }
607
+ return attributeData2;
819
608
  },
820
- region: function (decodedGeometry, data, offset) {
821
- const count = decodedGeometry.vertexCount * 4;
822
- decodedGeometry["uv-region"] = new Uint16Array(data, offset, count);
823
- offset += count * 2;
824
- return offset;
609
+ function() {
825
610
  },
611
+ function() {
612
+ dracoAttributeData = new dracoDecoderModule.DracoUInt8Array(bufferSize);
613
+ const success = dracoDecoder.GetAttributeUInt8ForAllPoints(
614
+ dracoGeometry,
615
+ dracoAttribute,
616
+ dracoAttributeData
617
+ );
618
+ if (!success) {
619
+ console.error("Bad stream");
620
+ }
621
+ const attributeData2 = new Uint8Array(bufferSize);
622
+ for (let i = 0; i < bufferSize; ++i) {
623
+ attributeData2[i] = dracoAttributeData.GetValue(i);
624
+ }
625
+ return attributeData2;
626
+ }
627
+ ];
628
+ const attributeData = handlers[dracoAttribute.data_type()]();
629
+ if (defined_default(dracoAttributeData)) {
630
+ dracoDecoderModule.destroy(dracoAttributeData);
631
+ }
632
+ return attributeData;
633
+ }
634
+ var binaryAttributeDecoders = {
635
+ position: function(decodedGeometry, data, offset) {
636
+ const count = decodedGeometry.vertexCount * 3;
637
+ decodedGeometry.positions = new Float32Array(data, offset, count);
638
+ offset += count * 4;
639
+ return offset;
640
+ },
641
+ normal: function(decodedGeometry, data, offset) {
642
+ const count = decodedGeometry.vertexCount * 3;
643
+ decodedGeometry.normals = new Float32Array(data, offset, count);
644
+ offset += count * 4;
645
+ return offset;
646
+ },
647
+ uv0: function(decodedGeometry, data, offset) {
648
+ const count = decodedGeometry.vertexCount * 2;
649
+ decodedGeometry.uv0s = new Float32Array(data, offset, count);
650
+ offset += count * 4;
651
+ return offset;
652
+ },
653
+ color: function(decodedGeometry, data, offset) {
654
+ const count = decodedGeometry.vertexCount * 4;
655
+ decodedGeometry.colors = new Uint8Array(data, offset, count);
656
+ offset += count;
657
+ return offset;
658
+ },
659
+ featureId: function(decodedGeometry, data, offset) {
660
+ const count = decodedGeometry.featureCount;
661
+ offset += count * 8;
662
+ return offset;
663
+ },
664
+ id: function(decodedGeometry, data, offset) {
665
+ const count = decodedGeometry.featureCount;
666
+ offset += count * 8;
667
+ return offset;
668
+ },
669
+ faceRange: function(decodedGeometry, data, offset) {
670
+ const count = decodedGeometry.featureCount * 2;
671
+ decodedGeometry.faceRange = new Uint32Array(data, offset, count);
672
+ offset += count * 4;
673
+ return offset;
674
+ },
675
+ uvRegion: function(decodedGeometry, data, offset) {
676
+ const count = decodedGeometry.vertexCount * 4;
677
+ decodedGeometry["uv-region"] = new Uint16Array(data, offset, count);
678
+ offset += count * 2;
679
+ return offset;
680
+ },
681
+ region: function(decodedGeometry, data, offset) {
682
+ const count = decodedGeometry.vertexCount * 4;
683
+ decodedGeometry["uv-region"] = new Uint16Array(data, offset, count);
684
+ offset += count * 2;
685
+ return offset;
686
+ }
687
+ };
688
+ function decodeBinaryGeometry(data, schema, bufferInfo, featureData) {
689
+ const decodedGeometry = {
690
+ vertexCount: 0
826
691
  };
827
-
828
- function decodeBinaryGeometry(data, schema, bufferInfo, featureData) {
829
- // From this spec:
830
- // https://github.com/Esri/i3s-spec/blob/master/docs/1.7/defaultGeometrySchema.cmn.md
831
- const decodedGeometry = {
832
- vertexCount: 0,
833
- };
834
-
835
- const dataView = new DataView(data);
836
-
837
- try {
838
- let offset = 0;
839
- decodedGeometry.vertexCount = dataView.getUint32(offset, 1);
840
- offset += 4;
841
-
842
- decodedGeometry.featureCount = dataView.getUint32(offset, 1);
843
- offset += 4;
844
-
845
- if (defaultValue.defined(bufferInfo)) {
846
- for (
847
- let attrIndex = 0;
848
- attrIndex < bufferInfo.attributes.length;
849
- attrIndex++
850
- ) {
851
- if (
852
- defaultValue.defined(binaryAttributeDecoders[bufferInfo.attributes[attrIndex]])
853
- ) {
854
- offset = binaryAttributeDecoders[bufferInfo.attributes[attrIndex]](
855
- decodedGeometry,
856
- data,
857
- offset
858
- );
859
- } else {
860
- console.error(
861
- "Unknown decoder for",
862
- bufferInfo.attributes[attrIndex]
863
- );
864
- }
865
- }
866
- } else {
867
- let ordering = schema.ordering;
868
- let featureAttributeOrder = schema.featureAttributeOrder;
869
-
870
- if (
871
- defaultValue.defined(featureData) &&
872
- defaultValue.defined(featureData.geometryData) &&
873
- defaultValue.defined(featureData.geometryData[0]) &&
874
- defaultValue.defined(featureData.geometryData[0].params)
875
- ) {
876
- ordering = Object.keys(
877
- featureData.geometryData[0].params.vertexAttributes
692
+ const dataView = new DataView(data);
693
+ try {
694
+ let offset = 0;
695
+ decodedGeometry.vertexCount = dataView.getUint32(offset, 1);
696
+ offset += 4;
697
+ decodedGeometry.featureCount = dataView.getUint32(offset, 1);
698
+ offset += 4;
699
+ if (defined_default(bufferInfo)) {
700
+ for (let attrIndex = 0; attrIndex < bufferInfo.attributes.length; attrIndex++) {
701
+ if (defined_default(binaryAttributeDecoders[bufferInfo.attributes[attrIndex]])) {
702
+ offset = binaryAttributeDecoders[bufferInfo.attributes[attrIndex]](
703
+ decodedGeometry,
704
+ data,
705
+ offset
878
706
  );
879
- featureAttributeOrder = Object.keys(
880
- featureData.geometryData[0].params.featureAttributes
707
+ } else {
708
+ console.error(
709
+ "Unknown decoder for",
710
+ bufferInfo.attributes[attrIndex]
881
711
  );
882
712
  }
883
-
884
- // Use default geometry schema
885
- for (let i = 0; i < ordering.length; i++) {
886
- const decoder = binaryAttributeDecoders[ordering[i]];
887
- if (!defaultValue.defined(decoder)) {
888
- console.log(ordering[i]);
889
- }
890
- offset = decoder(decodedGeometry, data, offset);
891
- }
892
-
893
- for (let j = 0; j < featureAttributeOrder.length; j++) {
894
- const curDecoder = binaryAttributeDecoders[featureAttributeOrder[j]];
895
- if (!defaultValue.defined(curDecoder)) {
896
- console.log(featureAttributeOrder[j]);
897
- }
898
- offset = curDecoder(decodedGeometry, data, offset);
899
- }
900
713
  }
901
- } catch (e) {
902
- console.error(e);
714
+ } else {
715
+ let ordering = schema.ordering;
716
+ let featureAttributeOrder = schema.featureAttributeOrder;
717
+ if (defined_default(featureData) && defined_default(featureData.geometryData) && defined_default(featureData.geometryData[0]) && defined_default(featureData.geometryData[0].params)) {
718
+ ordering = Object.keys(
719
+ featureData.geometryData[0].params.vertexAttributes
720
+ );
721
+ featureAttributeOrder = Object.keys(
722
+ featureData.geometryData[0].params.featureAttributes
723
+ );
724
+ }
725
+ for (let i = 0; i < ordering.length; i++) {
726
+ const decoder = binaryAttributeDecoders[ordering[i]];
727
+ offset = decoder(decodedGeometry, data, offset);
728
+ }
729
+ for (let j = 0; j < featureAttributeOrder.length; j++) {
730
+ const curDecoder = binaryAttributeDecoders[featureAttributeOrder[j]];
731
+ offset = curDecoder(decodedGeometry, data, offset);
732
+ }
903
733
  }
904
-
905
- decodedGeometry.scale_x = 1;
906
- decodedGeometry.scale_y = 1;
907
-
908
- return decodedGeometry;
734
+ } catch (e) {
735
+ console.error(e);
909
736
  }
910
-
911
- function decodeI3S(parameters) {
912
- // Decode the data into geometry
913
- const geometryData = decode(
914
- parameters.binaryData,
915
- parameters.schema,
916
- parameters.bufferInfo,
917
- parameters.featureData
918
- );
919
-
920
- // Adjust height from orthometric to ellipsoidal
921
- if (
922
- defaultValue.defined(parameters.geoidDataList) &&
923
- parameters.geoidDataList.length > 0
924
- ) {
925
- orthometricToEllipsoidal(
926
- geometryData.vertexCount,
927
- geometryData.positions,
928
- geometryData.scale_x,
929
- geometryData.scale_y,
930
- parameters.cartographicCenter,
931
- parameters.geoidDataList,
932
- false
933
- );
934
- }
935
-
936
- // Transform vertices to local
937
- transformToLocal(
737
+ decodedGeometry.scale_x = 1;
738
+ decodedGeometry.scale_y = 1;
739
+ return decodedGeometry;
740
+ }
741
+ function decodeAndCreateGltf(parameters) {
742
+ const geometryData = decode(
743
+ parameters.binaryData,
744
+ parameters.schema,
745
+ parameters.bufferInfo,
746
+ parameters.featureData
747
+ );
748
+ if (defined_default(parameters.geoidDataList) && parameters.geoidDataList.length > 0) {
749
+ orthometricToEllipsoidal(
938
750
  geometryData.vertexCount,
939
751
  geometryData.positions,
940
- geometryData.normals,
941
- parameters.cartographicCenter,
942
- parameters.cartesianCenter,
943
- parameters.parentRotation,
944
- parameters.ellipsoidRadiiSquare,
945
752
  geometryData.scale_x,
946
- geometryData.scale_y
753
+ geometryData.scale_y,
754
+ parameters.cartographicCenter,
755
+ parameters.geoidDataList,
756
+ false
947
757
  );
948
-
949
- // Adjust UVs if there is a UV region
950
- if (defaultValue.defined(geometryData.uv0s) && defaultValue.defined(geometryData["uv-region"])) {
951
- cropUVs(
952
- geometryData.vertexCount,
953
- geometryData.uv0s,
954
- geometryData["uv-region"]
955
- );
956
- }
957
-
958
- // Create the final buffer
959
- const meshData = generateGltfBuffer(
758
+ }
759
+ transformToLocal(
760
+ geometryData.vertexCount,
761
+ geometryData.positions,
762
+ geometryData.normals,
763
+ parameters.cartographicCenter,
764
+ parameters.cartesianCenter,
765
+ parameters.parentRotation,
766
+ parameters.ellipsoidRadiiSquare,
767
+ geometryData.scale_x,
768
+ geometryData.scale_y
769
+ );
770
+ if (defined_default(geometryData.uv0s) && defined_default(geometryData["uv-region"])) {
771
+ cropUVs(
960
772
  geometryData.vertexCount,
961
- geometryData.indices,
962
- geometryData.positions,
963
- geometryData.normals,
964
773
  geometryData.uv0s,
965
- geometryData.colors
774
+ geometryData["uv-region"]
966
775
  );
967
-
968
- const customAttributes = {};
969
- if (defaultValue.defined(geometryData["feature-index"])) {
970
- customAttributes.positions = geometryData.positions;
971
- customAttributes.indices = geometryData.indices;
972
- customAttributes.featureIndex = geometryData["feature-index"];
973
- customAttributes.cartesianCenter = parameters.cartesianCenter;
974
- customAttributes.parentRotation = parameters.parentRotation;
975
- } else if (defaultValue.defined(geometryData["faceRange"])) {
976
- customAttributes.positions = geometryData.positions;
977
- customAttributes.indices = geometryData.indices;
978
- customAttributes.sourceURL = parameters.url;
979
- customAttributes.cartesianCenter = parameters.cartesianCenter;
980
- customAttributes.parentRotation = parameters.parentRotation;
981
-
982
- // Build the feature index array from the faceRange.
983
- customAttributes.featureIndex = new Array(geometryData.positions.length);
984
- for (
985
- let range = 0;
986
- range < geometryData["faceRange"].length - 1;
987
- range += 2
988
- ) {
989
- const curIndex = range / 2;
990
- const rangeStart = geometryData["faceRange"][range];
991
- const rangeEnd = geometryData["faceRange"][range + 1];
992
- for (let i = rangeStart; i <= rangeEnd; i++) {
993
- customAttributes.featureIndex[i * 3] = curIndex;
994
- customAttributes.featureIndex[i * 3 + 1] = curIndex;
995
- customAttributes.featureIndex[i * 3 + 2] = curIndex;
996
- }
776
+ }
777
+ const meshData = generateGltfBuffer(
778
+ geometryData.vertexCount,
779
+ geometryData.indices,
780
+ geometryData.positions,
781
+ geometryData.normals,
782
+ geometryData.uv0s,
783
+ geometryData.colors
784
+ );
785
+ const customAttributes = {};
786
+ if (defined_default(geometryData["feature-index"])) {
787
+ customAttributes.positions = geometryData.positions;
788
+ customAttributes.indices = geometryData.indices;
789
+ customAttributes.featureIndex = geometryData["feature-index"];
790
+ customAttributes.cartesianCenter = parameters.cartesianCenter;
791
+ customAttributes.parentRotation = parameters.parentRotation;
792
+ } else if (defined_default(geometryData["faceRange"])) {
793
+ customAttributes.positions = geometryData.positions;
794
+ customAttributes.indices = geometryData.indices;
795
+ customAttributes.sourceURL = parameters.url;
796
+ customAttributes.cartesianCenter = parameters.cartesianCenter;
797
+ customAttributes.parentRotation = parameters.parentRotation;
798
+ customAttributes.featureIndex = new Array(geometryData.positions.length);
799
+ for (let range = 0; range < geometryData["faceRange"].length - 1; range += 2) {
800
+ const curIndex = range / 2;
801
+ const rangeStart = geometryData["faceRange"][range];
802
+ const rangeEnd = geometryData["faceRange"][range + 1];
803
+ for (let i = rangeStart; i <= rangeEnd; i++) {
804
+ customAttributes.featureIndex[i * 3] = curIndex;
805
+ customAttributes.featureIndex[i * 3 + 1] = curIndex;
806
+ customAttributes.featureIndex[i * 3 + 2] = curIndex;
997
807
  }
998
808
  }
999
-
1000
- meshData._customAttributes = customAttributes;
1001
-
1002
- const results = {
1003
- meshData: meshData,
1004
- };
1005
-
1006
- return results;
1007
809
  }
1008
-
1009
- function initWorker(dracoModule) {
1010
- draco = dracoModule;
1011
- self.onmessage = createTaskProcessorWorker(decodeI3S);
1012
- self.postMessage(true);
810
+ meshData._customAttributes = customAttributes;
811
+ const results = {
812
+ meshData
813
+ };
814
+ return results;
815
+ }
816
+ async function initWorker(parameters, transferableObjects) {
817
+ const wasmConfig = parameters.webAssemblyConfig;
818
+ if (defined_default(wasmConfig) && defined_default(wasmConfig.wasmBinaryFile)) {
819
+ draco = await (0, import_draco_decoder_nodejs.default)(wasmConfig);
820
+ } else {
821
+ draco = await (0, import_draco_decoder_nodejs.default)();
1013
822
  }
1014
-
1015
- function decodeI3SStart(event) {
1016
- const data = event.data;
1017
-
1018
- // Expect the first message to be to load a web assembly module
1019
- const wasmConfig = data.webAssemblyConfig;
1020
- if (defaultValue.defined(wasmConfig)) {
1021
- // Require and compile WebAssembly module, or use fallback if not supported
1022
- return require([wasmConfig.modulePath], function (dracoModule) {
1023
- if (defaultValue.defined(wasmConfig.wasmBinaryFile)) {
1024
- if (!defaultValue.defined(dracoModule)) {
1025
- dracoModule = self.DracoDecoderModule;
1026
- }
1027
-
1028
- dracoModule(wasmConfig).then(function (compiledModule) {
1029
- initWorker(compiledModule);
1030
- });
1031
- } else {
1032
- initWorker(dracoModule());
1033
- }
1034
- });
1035
- }
823
+ return true;
824
+ }
825
+ function decodeI3S(parameters, transferableObjects) {
826
+ const wasmConfig = parameters.webAssemblyConfig;
827
+ if (defined_default(wasmConfig)) {
828
+ return initWorker(parameters, transferableObjects);
1036
829
  }
1037
-
1038
- return decodeI3SStart;
1039
-
1040
- }));
830
+ return decodeAndCreateGltf(parameters, transferableObjects);
831
+ }
832
+ var decodeI3S_default = createTaskProcessorWorker_default(decodeI3S);
833
+ export {
834
+ decodeI3S_default as default
835
+ };