@vcmap/ui 5.0.0-rc.18 → 5.0.0-rc.20

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 (379) hide show
  1. package/README.md +6 -6
  2. package/build/build.js +2 -2
  3. package/build/buildCesium.js +3 -3
  4. package/build/buildHelpers.js +2 -1
  5. package/config/base.config.json +0 -4
  6. package/config/dev.config.json +35 -14
  7. package/config/www.config.json +4 -0
  8. package/dist/assets/cesium/Workers/ArcType-ce2e50ab.js +37 -0
  9. package/dist/assets/cesium/Workers/AttributeCompression-b646d393.js +716 -0
  10. package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-ff186ccc.js +258 -0
  11. package/dist/assets/cesium/Workers/BoundingRectangle-be5924f4.js +369 -0
  12. package/dist/assets/cesium/Workers/BoxGeometry-12eeccaf.js +884 -0
  13. package/dist/assets/cesium/Workers/Check-666ab1a0.js +290 -0
  14. package/dist/assets/cesium/Workers/Color-a84038cb.js +2262 -0
  15. package/dist/assets/cesium/Workers/ComponentDatatype-f7b11d02.js +341 -0
  16. package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-3272c1b3.js +132 -0
  17. package/dist/assets/cesium/Workers/CorridorGeometryLibrary-0170e093.js +498 -0
  18. package/dist/assets/cesium/Workers/CylinderGeometry-7c5da648.js +467 -0
  19. package/dist/assets/cesium/Workers/CylinderGeometryLibrary-372c07d8.js +63 -0
  20. package/dist/assets/cesium/Workers/EllipseGeometry-797d580e.js +1304 -0
  21. package/dist/assets/cesium/Workers/EllipseGeometryLibrary-2939e1dc.js +366 -0
  22. package/dist/assets/cesium/Workers/EllipseOutlineGeometry-8b50870f.js +443 -0
  23. package/dist/assets/cesium/Workers/EllipsoidGeodesic-98c62a56.js +520 -0
  24. package/dist/assets/cesium/Workers/EllipsoidGeometry-21c0e3a5.js +637 -0
  25. package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-eff247c8.js +454 -0
  26. package/dist/assets/cesium/Workers/EllipsoidRhumbLine-19756602.js +741 -0
  27. package/dist/assets/cesium/Workers/EllipsoidTangentPlane-214683dc.js +373 -0
  28. package/dist/assets/cesium/Workers/EncodedCartesian3-81f70735.js +171 -0
  29. package/dist/assets/cesium/Workers/FrustumGeometry-ac42a6d9.js +2512 -0
  30. package/dist/assets/cesium/Workers/GeometryAttribute-7d6f1732.js +619 -0
  31. package/dist/assets/cesium/Workers/GeometryAttributes-f06a2792.js +91 -0
  32. package/dist/assets/cesium/Workers/GeometryInstance-451dc1cd.js +121 -0
  33. package/dist/assets/cesium/Workers/GeometryOffsetAttribute-04332ce7.js +16 -0
  34. package/dist/assets/cesium/Workers/GeometryPipeline-ce4339ed.js +3690 -0
  35. package/dist/assets/cesium/Workers/IndexDatatype-a55ceaa1.js +200 -0
  36. package/dist/assets/cesium/Workers/IntersectionTests-f6e6bd8a.js +1836 -0
  37. package/dist/assets/cesium/Workers/Math-2dbd6b93.js +1330 -0
  38. package/dist/assets/cesium/Workers/Matrix2-13178034.js +7086 -0
  39. package/dist/assets/cesium/Workers/Matrix3-315394f6.js +4283 -0
  40. package/dist/assets/cesium/Workers/OrientedBoundingBox-04920dc7.js +1257 -0
  41. package/dist/assets/cesium/Workers/Plane-900aa728.js +309 -0
  42. package/dist/assets/cesium/Workers/PolygonGeometryLibrary-a8680d96.js +1074 -0
  43. package/dist/assets/cesium/Workers/PolygonPipeline-844aab0a.js +1345 -0
  44. package/dist/assets/cesium/Workers/PolylinePipeline-32f36d2a.js +573 -0
  45. package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-a510d657.js +781 -0
  46. package/dist/assets/cesium/Workers/PrimitivePipeline-ba38434a.js +966 -0
  47. package/dist/assets/cesium/Workers/RectangleGeometryLibrary-bdba697e.js +280 -0
  48. package/dist/assets/cesium/Workers/RuntimeError-06c93819.js +68 -0
  49. package/dist/assets/cesium/Workers/TerrainEncoding-833187da.js +1227 -0
  50. package/dist/assets/cesium/Workers/Transforms-40229881.js +14696 -0
  51. package/dist/assets/cesium/Workers/VertexFormat-6b480673.js +312 -0
  52. package/dist/assets/cesium/Workers/WallGeometryLibrary-919eed92.js +211 -0
  53. package/dist/assets/cesium/Workers/WebGLConstants-a8cc3e8c.js +620 -0
  54. package/dist/assets/cesium/Workers/WebMercatorProjection-13a90d41.js +151 -0
  55. package/dist/assets/cesium/Workers/arrayRemoveDuplicates-c2038105.js +129 -0
  56. package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +1336 -4
  57. package/dist/assets/cesium/Workers/combine-ca22a614.js +82 -0
  58. package/dist/assets/cesium/Workers/combineGeometry.js +17 -25
  59. package/dist/assets/cesium/Workers/createBoxGeometry.js +12 -25
  60. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +313 -25
  61. package/dist/assets/cesium/Workers/createCircleGeometry.js +213 -25
  62. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +160 -25
  63. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +586 -25
  64. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +236 -25
  65. package/dist/assets/cesium/Workers/createCorridorGeometry.js +1407 -25
  66. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +603 -25
  67. package/dist/assets/cesium/Workers/createCylinderGeometry.js +12 -25
  68. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +265 -25
  69. package/dist/assets/cesium/Workers/createEllipseGeometry.js +14 -25
  70. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +14 -25
  71. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +12 -25
  72. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +15 -25
  73. package/dist/assets/cesium/Workers/createFrustumGeometry.js +12 -25
  74. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +251 -25
  75. package/dist/assets/cesium/Workers/createGeometry.js +55 -25
  76. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +2134 -25
  77. package/dist/assets/cesium/Workers/createPlaneGeometry.js +250 -25
  78. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +115 -25
  79. package/dist/assets/cesium/Workers/createPolygonGeometry.js +1420 -25
  80. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +683 -25
  81. package/dist/assets/cesium/Workers/createPolylineGeometry.js +571 -25
  82. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +411 -25
  83. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +301 -25
  84. package/dist/assets/cesium/Workers/createRectangleGeometry.js +1476 -25
  85. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +535 -25
  86. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +458 -25
  87. package/dist/assets/cesium/Workers/createSphereGeometry.js +123 -25
  88. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +126 -25
  89. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +127 -25
  90. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +535 -25
  91. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +445 -25
  92. package/dist/assets/cesium/Workers/createVectorTilePoints.js +79 -25
  93. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +406 -25
  94. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +254 -25
  95. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +640 -25
  96. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +2711 -27
  97. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +994 -25
  98. package/dist/assets/cesium/Workers/createWallGeometry.js +623 -25
  99. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +432 -25
  100. package/dist/assets/cesium/Workers/decodeDraco.js +381 -25
  101. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +3687 -25
  102. package/dist/assets/cesium/Workers/decodeI3S.js +1040 -0
  103. package/dist/assets/cesium/Workers/defaultValue-0a909f67.js +51 -0
  104. package/dist/assets/cesium/Workers/package.js +2 -2
  105. package/dist/assets/cesium/Workers/transcodeKTX2.js +1516 -25
  106. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +18 -2
  107. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +1023 -25
  108. package/dist/assets/{cesium.2f992f.js → cesium.adbd45.js} +112161 -108735
  109. package/dist/assets/cesium.js +1 -1
  110. package/dist/assets/{core.cb0408.js → core.60e74d.js} +1616 -1629
  111. package/dist/assets/core.f198cf.js +15993 -0
  112. package/dist/assets/core.js +1 -1
  113. package/dist/assets/{index.bccdf969.js → index.884a53ef.js} +1 -1
  114. package/dist/assets/{ol.5e3fd0.js → ol.c6ff35.js} +6992 -6972
  115. package/dist/assets/ol.dbd604.js +44299 -0
  116. package/dist/assets/ol.js +1 -1
  117. package/dist/assets/ui.bf504d.css +1 -0
  118. package/dist/assets/{ui.08c48f.js → ui.bf504d.js} +6121 -6785
  119. package/dist/assets/ui.js +1 -1
  120. package/dist/assets/{vue.228ead.js → vue.75b819.js} +0 -0
  121. package/dist/assets/vue.a831f1.js +4675 -0
  122. package/dist/assets/vue.js +2 -2
  123. package/dist/assets/{vuetify.0b5039.css → vuetify.0d7360.css} +0 -0
  124. package/dist/assets/{vuetify.0b5039.js → vuetify.0d7360.js} +1 -1
  125. package/dist/assets/vuetify.js +2 -2
  126. package/dist/index.html +1 -1
  127. package/index.js +2 -1
  128. package/lib/cesium.js +1 -1
  129. package/package.json +3 -4
  130. package/plugins/{simple-graph → @vcmap/simple-graph}/README.md +1 -1
  131. package/plugins/{simple-graph → @vcmap/simple-graph}/SimpleGraphComponent.vue +0 -0
  132. package/plugins/{simple-graph → @vcmap/simple-graph}/index.js +0 -0
  133. package/plugins/{simple-graph → @vcmap/simple-graph}/package.json +0 -0
  134. package/plugins/{simple-graph → @vcmap/simple-graph}/simpleGraphView.js +0 -0
  135. package/plugins/@vcmap-show-case/README.md +20 -0
  136. package/plugins/{buttonExamples/ButtonExamples.vue → @vcmap-show-case/buttons-example/ButtonsExample.vue} +1 -1
  137. package/plugins/@vcmap-show-case/buttons-example/README.md +4 -0
  138. package/plugins/{buttonExamples → @vcmap-show-case/buttons-example}/index.js +16 -8
  139. package/plugins/@vcmap-show-case/buttons-example/package.json +5 -0
  140. package/plugins/{categoryTest → @vcmap-show-case/category-tester}/Categories.vue +7 -6
  141. package/plugins/{categoryTest → @vcmap-show-case/category-tester}/Category.vue +4 -3
  142. package/plugins/@vcmap-show-case/category-tester/README.md +3 -0
  143. package/plugins/{categoryTest → @vcmap-show-case/category-tester}/index.js +12 -4
  144. package/plugins/@vcmap-show-case/category-tester/package.json +5 -0
  145. package/plugins/@vcmap-show-case/config-editor/README.md +3 -0
  146. package/plugins/{test → @vcmap-show-case/config-editor}/editor.vue +0 -0
  147. package/plugins/@vcmap-show-case/config-editor/index.js +47 -0
  148. package/plugins/@vcmap-show-case/config-editor/package.json +5 -0
  149. package/plugins/@vcmap-show-case/context-menu-tester/README.md +3 -0
  150. package/plugins/@vcmap-show-case/context-menu-tester/index.js +33 -0
  151. package/plugins/@vcmap-show-case/context-menu-tester/package.json +5 -0
  152. package/plugins/{@vcmap/pluginExample/pluginExampleComponent.vue → @vcmap-show-case/form-inputs-example/FormInputsExample.vue} +14 -13
  153. package/plugins/@vcmap-show-case/form-inputs-example/README.md +4 -0
  154. package/plugins/@vcmap-show-case/form-inputs-example/config.json +5 -0
  155. package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/exampleActions.js +1 -1
  156. package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/index.js +23 -22
  157. package/plugins/@vcmap-show-case/form-inputs-example/package.json +5 -0
  158. package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/validation.js +0 -0
  159. package/plugins/@vcmap-show-case/icons-example/README.md +5 -0
  160. package/plugins/@vcmap-show-case/icons-example/allIconsComponent.vue +51 -0
  161. package/plugins/@vcmap-show-case/icons-example/index.js +44 -0
  162. package/plugins/@vcmap-show-case/icons-example/package.json +5 -0
  163. package/plugins/{test/testList.vue → @vcmap-show-case/list-example/ListExample.vue} +1 -1
  164. package/plugins/@vcmap-show-case/list-example/README.md +3 -0
  165. package/plugins/@vcmap-show-case/list-example/index.js +44 -0
  166. package/plugins/@vcmap-show-case/list-example/package.json +5 -0
  167. package/plugins/@vcmap-show-case/notifier-tester/README.md +3 -0
  168. package/plugins/{notifier → @vcmap-show-case/notifier-tester}/index.js +11 -6
  169. package/plugins/{notifier → @vcmap-show-case/notifier-tester}/notifierTester.vue +0 -0
  170. package/plugins/@vcmap-show-case/notifier-tester/package.json +5 -0
  171. package/plugins/@vcmap-show-case/textfields-example/README.md +3 -0
  172. package/plugins/{example/mySuperComponent.vue → @vcmap-show-case/textfields-example/TextfieldsExample.vue} +1 -7
  173. package/plugins/{example → @vcmap-show-case/textfields-example}/index.js +58 -62
  174. package/plugins/@vcmap-show-case/textfields-example/package.json +5 -0
  175. package/plugins/@vcmap-show-case/window-tester/README.md +3 -0
  176. package/plugins/{test/windowManagerExample.vue → @vcmap-show-case/window-tester/WindowExample.vue} +36 -20
  177. package/plugins/{test → @vcmap-show-case/window-tester}/emptyComponent.vue +8 -3
  178. package/plugins/@vcmap-show-case/window-tester/index.js +62 -0
  179. package/plugins/{test → @vcmap-show-case/window-tester}/myCustomHeader.vue +0 -0
  180. package/plugins/@vcmap-show-case/window-tester/package.json +5 -0
  181. package/plugins/{test → @vcmap-show-case/window-tester}/toolbox-data.js +9 -9
  182. package/plugins/{test/vcsContent.vue → @vcmap-show-case/window-tester/windowExampleContent.vue} +1 -5
  183. package/plugins/@vcmap-show-case/wizard-example/README.md +3 -0
  184. package/plugins/{wizardExample → @vcmap-show-case/wizard-example}/index.js +12 -6
  185. package/plugins/@vcmap-show-case/wizard-example/package.json +5 -0
  186. package/plugins/@vcmap-show-case/wizard-example/wizardExample.vue +95 -0
  187. package/plugins/package.json +2 -1
  188. package/src/actions/actionHelper.js +1 -3
  189. package/src/actions/stateRefAction.js +0 -10
  190. package/src/application/VcsApp.vue +42 -23
  191. package/src/application/VcsMap.vue +9 -0
  192. package/src/components/buttons/VcsActionButtonList.vue +1 -0
  193. package/src/components/form-inputs-controls/VcsCheckbox.vue +3 -1
  194. package/src/components/form-inputs-controls/VcsWizard.vue +17 -20
  195. package/src/components/form-inputs-controls/VcsWizardStep.vue +160 -0
  196. package/src/{icons → components/icons}/+all.js +0 -0
  197. package/src/{icons → components/icons}/2DAreaIcon.vue +0 -0
  198. package/src/{icons → components/icons}/2DDistanceIcon.vue +0 -0
  199. package/src/{icons → components/icons}/3DAreaIcon.vue +0 -0
  200. package/src/{icons → components/icons}/3DDistanceIcon.vue +0 -0
  201. package/src/{icons → components/icons}/3DHeightIcon.vue +0 -0
  202. package/src/{icons → components/icons}/AngleIcon.vue +0 -0
  203. package/src/{icons → components/icons}/AssociationsIcon.vue +0 -0
  204. package/src/{icons → components/icons}/AxisIcon.vue +0 -0
  205. package/src/{icons → components/icons}/BoundingBoxIcon.vue +0 -0
  206. package/src/{icons → components/icons}/CheckboxCheckedIcon.vue +0 -0
  207. package/src/{icons → components/icons}/CheckboxIcon.vue +0 -0
  208. package/src/{icons → components/icons}/CheckboxIndeterminateIcon.vue +0 -0
  209. package/src/{icons → components/icons}/CircleIcon.vue +0 -0
  210. package/src/{icons → components/icons}/ClippingHorizontalIcon.vue +0 -0
  211. package/src/{icons → components/icons}/ClippingIcon.vue +0 -0
  212. package/src/{icons → components/icons}/ClippingVerticalIcon.vue +0 -0
  213. package/src/{icons → components/icons}/ColorPickerIcon.vue +0 -0
  214. package/src/{icons → components/icons}/ColorSwatchIcon.vue +0 -0
  215. package/src/{icons → components/icons}/CommentIcon.vue +0 -0
  216. package/src/{icons → components/icons}/CompassIcon.vue +0 -0
  217. package/src/{icons → components/icons}/ComponentsIcon.vue +0 -0
  218. package/src/{icons → components/icons}/ConeIcon.vue +0 -0
  219. package/src/{icons → components/icons}/DimensionsHouseIcon.vue +0 -0
  220. package/src/{icons → components/icons}/EditIcon.vue +0 -0
  221. package/src/{icons → components/icons}/ElevationProfileIcon.vue +0 -0
  222. package/src/{icons → components/icons}/ExportAreaIcon.vue +0 -0
  223. package/src/{icons → components/icons}/ExportFlightIcon.vue +0 -0
  224. package/src/{icons → components/icons}/ExportIcon.vue +0 -0
  225. package/src/{icons → components/icons}/ExternalLinkIcon.vue +0 -0
  226. package/src/{icons → components/icons}/EyeIcon.vue +0 -0
  227. package/src/{icons → components/icons}/FastForwardIcon.vue +0 -0
  228. package/src/{icons → components/icons}/FilterIcon.vue +0 -0
  229. package/src/{icons → components/icons}/GlobalTerrainIcon.vue +0 -0
  230. package/src/{icons → components/icons}/GlobeNatureIcon.vue +0 -0
  231. package/src/{icons → components/icons}/GroundIcon.vue +0 -0
  232. package/src/{icons → components/icons}/HealthCareIndustriesIcon.vue +0 -0
  233. package/src/{icons → components/icons}/HelpIcon.vue +0 -0
  234. package/src/{icons → components/icons}/HideIcon.vue +0 -0
  235. package/src/{icons → components/icons}/HomePointIcon.vue +0 -0
  236. package/src/{icons → components/icons}/HospitalsIcon.vue +0 -0
  237. package/src/{icons → components/icons}/HouseIcon.vue +0 -0
  238. package/src/{icons → components/icons}/ImportIcon.vue +0 -0
  239. package/src/{icons → components/icons}/InfoIcon.vue +0 -0
  240. package/src/{icons → components/icons}/KebabIcon.vue +0 -0
  241. package/src/{icons → components/icons}/LabelIcon.vue +0 -0
  242. package/src/{icons → components/icons}/LayersIcon.vue +0 -0
  243. package/src/{icons → components/icons}/LegendIcon.vue +0 -0
  244. package/src/{icons → components/icons}/LineIcon.vue +0 -0
  245. package/src/{icons → components/icons}/LinkIcon.vue +0 -0
  246. package/src/{icons → components/icons}/LogoutIcon.vue +0 -0
  247. package/src/{icons → components/icons}/MapIcon.vue +0 -0
  248. package/src/{icons → components/icons}/MenuIcon.vue +0 -0
  249. package/src/{icons → components/icons}/MinusIcon.vue +0 -0
  250. package/src/{icons → components/icons}/ObjectAttributeIcon.vue +0 -0
  251. package/src/{icons → components/icons}/ObjectSelectIcon.vue +0 -0
  252. package/src/{icons → components/icons}/ObliqueViewIcon.vue +0 -0
  253. package/src/{icons → components/icons}/PdfIcon.vue +0 -0
  254. package/src/{icons → components/icons}/PedestrianIcon.vue +0 -0
  255. package/src/{icons → components/icons}/PenIcon.vue +0 -0
  256. package/src/{icons → components/icons}/PlayCircleIcon.vue +0 -0
  257. package/src/{icons → components/icons}/PlusIcon.vue +0 -0
  258. package/src/{icons → components/icons}/PoiIcon.vue +0 -0
  259. package/src/{icons → components/icons}/PointSelectIcon.vue +0 -0
  260. package/src/{icons → components/icons}/PolygonIcon.vue +0 -0
  261. package/src/{icons → components/icons}/PresentationModeIcon.vue +0 -0
  262. package/src/{icons → components/icons}/ProgressIcon.vue +0 -0
  263. package/src/{icons → components/icons}/QueryIcon.vue +0 -0
  264. package/src/{icons → components/icons}/RectangleIcon.vue +0 -0
  265. package/src/{icons → components/icons}/ReturnIcon.vue +0 -0
  266. package/src/{icons → components/icons}/RewindIcon.vue +0 -0
  267. package/src/{icons → components/icons}/RotateLeftIcon.vue +0 -0
  268. package/src/{icons → components/icons}/RotateRightIcon.vue +0 -0
  269. package/src/{icons → components/icons}/ScreenshotIcon.vue +0 -0
  270. package/src/{icons → components/icons}/SearchIcon.vue +0 -0
  271. package/src/{icons → components/icons}/ShadowIcon.vue +0 -0
  272. package/src/{icons → components/icons}/ShapesIcon.vue +0 -0
  273. package/src/{icons → components/icons}/ShareIcon.vue +0 -0
  274. package/src/{icons → components/icons}/SimpleCircleFilledIcon.vue +0 -0
  275. package/src/{icons → components/icons}/SimpleCircleHalfFilledIcon.vue +0 -0
  276. package/src/{icons → components/icons}/SimpleCircleOutlinedIcon.vue +0 -0
  277. package/src/{icons → components/icons}/SkipNextIcon.vue +0 -0
  278. package/src/{icons → components/icons}/SkipPreviousIcon.vue +0 -0
  279. package/src/{icons → components/icons}/SplitViewIcon.vue +0 -0
  280. package/src/{icons → components/icons}/TerrainBoxIcon.vue +0 -0
  281. package/src/{icons → components/icons}/TextStyleIcon.vue +0 -0
  282. package/src/{icons → components/icons}/ThreeDimensionsIcon.vue +0 -0
  283. package/src/{icons → components/icons}/ToolsIcon.vue +0 -0
  284. package/src/{icons → components/icons}/TouchIcon.vue +0 -0
  285. package/src/{icons → components/icons}/TrashCanIcon.vue +0 -0
  286. package/src/{icons → components/icons}/TriangleIcon.vue +0 -0
  287. package/src/{icons → components/icons}/TwoDimensionsIcon.vue +0 -0
  288. package/src/{icons → components/icons}/UploadIcon.vue +0 -0
  289. package/src/{icons → components/icons}/UserProfileIcon.vue +0 -0
  290. package/src/{icons → components/icons}/UserShareIcon.vue +0 -0
  291. package/src/{icons → components/icons}/VideoRecorderIcon.vue +0 -0
  292. package/src/{icons → components/icons}/ViewpointFlightIcon.vue +0 -0
  293. package/src/{icons → components/icons}/ViewpointIcon.vue +0 -0
  294. package/src/{icons → components/icons}/Viewshed360Icon.vue +0 -0
  295. package/src/{icons → components/icons}/ViewshedConeIcon.vue +0 -0
  296. package/src/{icons → components/icons}/ViewshedIcon.vue +0 -0
  297. package/src/{icons → components/icons}/WalkingIcon.vue +0 -0
  298. package/src/{icons → components/icons}/WallIcon.vue +0 -0
  299. package/src/{icons → components/icons}/WandIcon.vue +0 -0
  300. package/src/components/lists/VcsList.vue +21 -12
  301. package/src/components/lists/VcsTreeviewLeaf.vue +14 -2
  302. package/src/components/notification/VcsTooltip.vue +1 -1
  303. package/src/featureInfo/abstractFeatureInfoView.js +1 -1
  304. package/src/featureInfo/addressBalloonFeatureInfoView.js +1 -1
  305. package/src/featureInfo/balloonFeatureInfoView.js +1 -1
  306. package/src/featureInfo/balloonHelper.js +6 -6
  307. package/src/featureInfo/featureInfo.js +2 -2
  308. package/src/i18n/de.js +2 -6
  309. package/src/i18n/en.js +2 -6
  310. package/src/legend/legendHelper.js +4 -3
  311. package/src/legend/vcsLegend.vue +21 -2
  312. package/src/manager/window/WindowComponent.vue +42 -4
  313. package/src/manager/window/WindowComponentHeader.vue +1 -1
  314. package/src/manager/window/windowHelper.js +7 -11
  315. package/src/manager/window/windowManager.js +15 -11
  316. package/src/navigation/mapNavCompass.vue +13 -7
  317. package/src/navigation/mapNavigation.vue +66 -4
  318. package/src/navigation/orientationToolsButton.vue +1 -1
  319. package/src/navigation/overviewMap.js +26 -10
  320. package/src/navigation/vcsCompass.vue +4 -73
  321. package/src/setup.js +1 -1
  322. package/src/vuePlugins/vuetify.js +1 -1
  323. package/dist/assets/cesium/Workers/ArcType-c9b2b290.js +0 -25
  324. package/dist/assets/cesium/Workers/AttributeCompression-7b0f288d.js +0 -25
  325. package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-d0c22774.js +0 -25
  326. package/dist/assets/cesium/Workers/BoundingRectangle-201b1a81.js +0 -25
  327. package/dist/assets/cesium/Workers/BoxGeometry-4985457c.js +0 -25
  328. package/dist/assets/cesium/Workers/Color-cc8c18b3.js +0 -25
  329. package/dist/assets/cesium/Workers/ComponentDatatype-0200bf8c.js +0 -25
  330. package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-4345acdf.js +0 -25
  331. package/dist/assets/cesium/Workers/CorridorGeometryLibrary-850a6c35.js +0 -25
  332. package/dist/assets/cesium/Workers/CylinderGeometry-57a1051a.js +0 -25
  333. package/dist/assets/cesium/Workers/CylinderGeometryLibrary-62ce5a1f.js +0 -25
  334. package/dist/assets/cesium/Workers/EllipseGeometry-8627398f.js +0 -25
  335. package/dist/assets/cesium/Workers/EllipseGeometryLibrary-e5919563.js +0 -25
  336. package/dist/assets/cesium/Workers/EllipseOutlineGeometry-96fd4ae1.js +0 -25
  337. package/dist/assets/cesium/Workers/EllipsoidGeodesic-8bfefbff.js +0 -25
  338. package/dist/assets/cesium/Workers/EllipsoidGeometry-377329b9.js +0 -25
  339. package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-e6e16e49.js +0 -25
  340. package/dist/assets/cesium/Workers/EllipsoidRhumbLine-03528f73.js +0 -25
  341. package/dist/assets/cesium/Workers/EllipsoidTangentPlane-c080fd1b.js +0 -25
  342. package/dist/assets/cesium/Workers/EncodedCartesian3-ea0e408f.js +0 -25
  343. package/dist/assets/cesium/Workers/FrustumGeometry-a8b5d817.js +0 -25
  344. package/dist/assets/cesium/Workers/GeometryAttribute-8458a8fd.js +0 -25
  345. package/dist/assets/cesium/Workers/GeometryAttributes-ac0f8485.js +0 -25
  346. package/dist/assets/cesium/Workers/GeometryInstance-ee3aa3ba.js +0 -25
  347. package/dist/assets/cesium/Workers/GeometryOffsetAttribute-08ae0c50.js +0 -25
  348. package/dist/assets/cesium/Workers/GeometryPipeline-33ca229c.js +0 -25
  349. package/dist/assets/cesium/Workers/IndexDatatype-e713bfd2.js +0 -25
  350. package/dist/assets/cesium/Workers/IntersectionTests-eb4db8e0.js +0 -25
  351. package/dist/assets/cesium/Workers/Matrix2-eefef8eb.js +0 -25
  352. package/dist/assets/cesium/Workers/OrientedBoundingBox-5193f9a2.js +0 -25
  353. package/dist/assets/cesium/Workers/Plane-b0299683.js +0 -25
  354. package/dist/assets/cesium/Workers/PolygonGeometryLibrary-b61295f3.js +0 -25
  355. package/dist/assets/cesium/Workers/PolygonPipeline-eb527514.js +0 -25
  356. package/dist/assets/cesium/Workers/PolylinePipeline-0f23dd84.js +0 -25
  357. package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-2d903430.js +0 -25
  358. package/dist/assets/cesium/Workers/PrimitivePipeline-e2640413.js +0 -25
  359. package/dist/assets/cesium/Workers/RectangleGeometryLibrary-ae8bf8a5.js +0 -25
  360. package/dist/assets/cesium/Workers/RuntimeError-5baf5c66.js +0 -25
  361. package/dist/assets/cesium/Workers/TerrainEncoding-bc10ab54.js +0 -25
  362. package/dist/assets/cesium/Workers/Transforms-d2e5867e.js +0 -63
  363. package/dist/assets/cesium/Workers/VertexFormat-5ec0d9ff.js +0 -25
  364. package/dist/assets/cesium/Workers/WallGeometryLibrary-1a33e416.js +0 -25
  365. package/dist/assets/cesium/Workers/WebGLConstants-5b50ced1.js +0 -25
  366. package/dist/assets/cesium/Workers/WebMercatorProjection-cd2f30c2.js +0 -25
  367. package/dist/assets/cesium/Workers/_commonjsHelpers-bc29abbc.js +0 -25
  368. package/dist/assets/cesium/Workers/arrayRemoveDuplicates-f13aceb1.js +0 -25
  369. package/dist/assets/cesium/Workers/combine-7533016d.js +0 -25
  370. package/dist/assets/cesium/Workers/defaultValue-0c475b81.js +0 -25
  371. package/dist/assets/cesium/Workers/package.json +0 -1
  372. package/dist/assets/ui.08c48f.css +0 -1
  373. package/plugins/@vcmap/pluginExample/config.json +0 -6
  374. package/plugins/@vcmap/pluginExample/package.json +0 -7
  375. package/plugins/categoryTest/ItemEditor.vue +0 -13
  376. package/plugins/test/allIconsComponent.vue +0 -50
  377. package/plugins/test/index.js +0 -209
  378. package/plugins/wizardExample/wizardExample.vue +0 -77
  379. package/src/components/form-inputs-controls/VcsColorPicker.vue +0 -85
@@ -0,0 +1,1040 @@
1
+ define(['./createTaskProcessorWorker', './defaultValue-0a909f67', './WebMercatorProjection-13a90d41', './Matrix3-315394f6', './Math-2dbd6b93', './Check-666ab1a0'], (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
+ }
72
+ }
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;
90
+ }
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,
96
+ geoidDataList
97
+ );
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
104
+ );
105
+ position[i * 3 + 2] += height - centerHeight;
106
+ }
107
+ }
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
+ }
174
+ }
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
+ }
192
+ }
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
+ };
211
+ }
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;
224
+ }
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",
255
+ });
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;
316
+ buffers.push({
317
+ uri: positionsURL,
318
+ byteLength: meshPositions.byteLength,
319
+ });
320
+ bufferViews.push({
321
+ buffer: posIndex,
322
+ byteOffset: 0,
323
+ byteLength: meshPositions.byteLength,
324
+ target: 34962,
325
+ });
326
+ accessors.push({
327
+ bufferView: posIndex,
328
+ byteOffset: 0,
329
+ componentType: 5126,
330
+ count: vertexCount,
331
+ type: "VEC3",
332
+ max: [minX, minY, minZ],
333
+ min: [maxX, maxY, maxZ],
334
+ });
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
410
+ ++currentIndex;
411
+ indicesIndex = currentIndex;
412
+ buffers.push({
413
+ uri: indicesURL,
414
+ byteLength: indexArray.byteLength,
415
+ });
416
+ bufferViews.push({
417
+ buffer: indicesIndex,
418
+ byteOffset: 0,
419
+ byteLength: indexArray.byteLength,
420
+ target: 34963,
421
+ });
422
+ accessors.push({
423
+ bufferView: indicesIndex,
424
+ byteOffset: 0,
425
+ componentType: 5125,
426
+ count: vertexCount,
427
+ type: "SCALAR",
428
+ });
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
+ ],
439
+ });
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
+ }
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);
465
+ }
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);
487
+ }
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);
514
+ }
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
+ }
572
+ }
573
+ }
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
+ }
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);
766
+ }
767
+
768
+ return attributeData;
769
+ }
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;
777
+ },
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;
783
+ },
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;
789
+ },
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;
795
+ },
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;
801
+ },
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;
807
+ },
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;
813
+ },
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;
819
+ },
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;
825
+ },
826
+ };
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
878
+ );
879
+ featureAttributeOrder = Object.keys(
880
+ featureData.geometryData[0].params.featureAttributes
881
+ );
882
+ }
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
+ }
901
+ } catch (e) {
902
+ console.error(e);
903
+ }
904
+
905
+ decodedGeometry.scale_x = 1;
906
+ decodedGeometry.scale_y = 1;
907
+
908
+ return decodedGeometry;
909
+ }
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(
938
+ geometryData.vertexCount,
939
+ geometryData.positions,
940
+ geometryData.normals,
941
+ parameters.cartographicCenter,
942
+ parameters.cartesianCenter,
943
+ parameters.parentRotation,
944
+ parameters.ellipsoidRadiiSquare,
945
+ geometryData.scale_x,
946
+ geometryData.scale_y
947
+ );
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(
960
+ geometryData.vertexCount,
961
+ geometryData.indices,
962
+ geometryData.positions,
963
+ geometryData.normals,
964
+ geometryData.uv0s,
965
+ geometryData.colors
966
+ );
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
+ }
997
+ }
998
+ }
999
+
1000
+ meshData._customAttributes = customAttributes;
1001
+
1002
+ const results = {
1003
+ meshData: meshData,
1004
+ };
1005
+
1006
+ return results;
1007
+ }
1008
+
1009
+ function initWorker(dracoModule) {
1010
+ draco = dracoModule;
1011
+ self.onmessage = createTaskProcessorWorker(decodeI3S);
1012
+ self.postMessage(true);
1013
+ }
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
+ }
1036
+ }
1037
+
1038
+ return decodeI3SStart;
1039
+
1040
+ }));