@vcmap/core 6.1.11 → 6.2.0-rc.2

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 (821) hide show
  1. package/README.md +8 -6
  2. package/build/buildShader.js +61 -0
  3. package/build/postinstall.js +6 -3
  4. package/dist/cesium.d.ts +57 -18
  5. package/dist/geojson.d.ts +3 -2
  6. package/dist/index.d.ts +244 -109
  7. package/dist/index.js +82 -63
  8. package/dist/index.js.map +1 -1
  9. package/dist/ol.d.ts +27 -29
  10. package/dist/src/category/category.d.ts +3 -2
  11. package/dist/src/category/category.js +2 -2
  12. package/dist/src/category/category.js.map +1 -1
  13. package/dist/src/category/categoryCollection.d.ts +3 -2
  14. package/dist/src/category/categoryCollection.js.map +1 -1
  15. package/dist/src/cesium/cesium3DTileFeature.d.ts +2 -1
  16. package/dist/src/cesium/cesium3DTileFeature.js +2 -3
  17. package/dist/src/cesium/cesium3DTileFeature.js.map +1 -1
  18. package/dist/src/cesium/cesiumVcsCameraPrimitive.js +6 -5
  19. package/dist/src/cesium/cesiumVcsCameraPrimitive.js.map +1 -1
  20. package/dist/src/cesium/entity.js +1 -1
  21. package/dist/src/cesium/entity.js.map +1 -1
  22. package/dist/src/classRegistry.d.ts +4 -4
  23. package/dist/src/classRegistry.js +2 -0
  24. package/dist/src/classRegistry.js.map +1 -1
  25. package/dist/src/featureProvider/abstractFeatureProvider.d.ts +2 -1
  26. package/dist/src/featureProvider/abstractFeatureProvider.js +8 -2
  27. package/dist/src/featureProvider/abstractFeatureProvider.js.map +1 -1
  28. package/dist/src/featureProvider/wmsFeatureProvider.d.ts +38 -10
  29. package/dist/src/featureProvider/wmsFeatureProvider.js +69 -15
  30. package/dist/src/featureProvider/wmsFeatureProvider.js.map +1 -1
  31. package/dist/src/interaction/abstractInteraction.d.ts +5 -4
  32. package/dist/src/interaction/abstractInteraction.js +1 -1
  33. package/dist/src/interaction/abstractInteraction.js.map +1 -1
  34. package/dist/src/interaction/coordinateAtPixel.js +23 -0
  35. package/dist/src/interaction/coordinateAtPixel.js.map +1 -1
  36. package/dist/src/interaction/eventHandler.d.ts +4 -3
  37. package/dist/src/interaction/eventHandler.js +1 -1
  38. package/dist/src/interaction/eventHandler.js.map +1 -1
  39. package/dist/src/interaction/featureAtPixelInteraction.d.ts +5 -0
  40. package/dist/src/interaction/featureAtPixelInteraction.js +7 -4
  41. package/dist/src/interaction/featureAtPixelInteraction.js.map +1 -1
  42. package/dist/src/interaction/featureProviderInteraction.js.map +1 -1
  43. package/dist/src/interaction/interactionType.js +1 -0
  44. package/dist/src/interaction/interactionType.js.map +1 -1
  45. package/dist/src/interaction/panoramaFeatureHighlight.d.ts +29 -0
  46. package/dist/src/interaction/panoramaFeatureHighlight.js +88 -0
  47. package/dist/src/interaction/panoramaFeatureHighlight.js.map +1 -0
  48. package/dist/src/interaction/panoramaImageSelection.d.ts +8 -0
  49. package/dist/src/interaction/panoramaImageSelection.js +29 -0
  50. package/dist/src/interaction/panoramaImageSelection.js.map +1 -0
  51. package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.d.ts +6 -5
  52. package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.js +2 -2
  53. package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.js.map +1 -1
  54. package/dist/src/layer/cesium/cogCesiumImpl.d.ts +14 -0
  55. package/dist/src/layer/cesium/cogCesiumImpl.js +28 -0
  56. package/dist/src/layer/cesium/cogCesiumImpl.js.map +1 -0
  57. package/dist/src/layer/cesium/cogImageryProvider.d.ts +31 -0
  58. package/dist/src/layer/cesium/cogImageryProvider.js +258 -0
  59. package/dist/src/layer/cesium/cogImageryProvider.js.map +1 -0
  60. package/dist/src/layer/cesium/dataSourceCesiumImpl.d.ts +3 -2
  61. package/dist/src/layer/cesium/dataSourceCesiumImpl.js.map +1 -1
  62. package/dist/src/layer/cesium/resourceHelper.js +0 -1
  63. package/dist/src/layer/cesium/resourceHelper.js.map +1 -1
  64. package/dist/src/layer/cesium/sourceVectorContextSync.d.ts +2 -2
  65. package/dist/src/layer/cesium/sourceVectorContextSync.js +1 -1
  66. package/dist/src/layer/cesium/sourceVectorContextSync.js.map +1 -1
  67. package/dist/src/layer/cesium/terrainCesiumImpl.d.ts +1 -1
  68. package/dist/src/layer/cesium/vcsTile/vcsChildTile.d.ts +3 -2
  69. package/dist/src/layer/cesium/vcsTile/vcsChildTile.js +1 -1
  70. package/dist/src/layer/cesium/vcsTile/vcsChildTile.js.map +1 -1
  71. package/dist/src/layer/cesium/vcsTile/vcsDebugTile.d.ts +3 -2
  72. package/dist/src/layer/cesium/vcsTile/vcsDebugTile.js +1 -1
  73. package/dist/src/layer/cesium/vcsTile/vcsDebugTile.js.map +1 -1
  74. package/dist/src/layer/cesium/vcsTile/vcsNoDataTile.d.ts +3 -2
  75. package/dist/src/layer/cesium/vcsTile/vcsNoDataTile.js +1 -1
  76. package/dist/src/layer/cesium/vcsTile/vcsNoDataTile.js.map +1 -1
  77. package/dist/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.d.ts +6 -5
  78. package/dist/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.js +4 -4
  79. package/dist/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.js.map +1 -1
  80. package/dist/src/layer/cesium/vcsTile/vcsTileHelpers.d.ts +6 -5
  81. package/dist/src/layer/cesium/vcsTile/vcsTileHelpers.js.map +1 -1
  82. package/dist/src/layer/cesium/vcsTile/vcsVectorTile.d.ts +3 -2
  83. package/dist/src/layer/cesium/vcsTile/vcsVectorTile.js +1 -1
  84. package/dist/src/layer/cesium/vcsTile/vcsVectorTile.js.map +1 -1
  85. package/dist/src/layer/cesium/vectorCesiumImpl.js +1 -1
  86. package/dist/src/layer/cesium/vectorCesiumImpl.js.map +1 -1
  87. package/dist/src/layer/cesium/vectorContext.d.ts +9 -8
  88. package/dist/src/layer/cesium/vectorContext.js +6 -5
  89. package/dist/src/layer/cesium/vectorContext.js.map +1 -1
  90. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.d.ts +1 -1
  91. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js +1 -1
  92. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js.map +1 -1
  93. package/dist/src/layer/cesium/vectorTileCesiumImpl.d.ts +3 -3
  94. package/dist/src/layer/cesium/vectorTileCesiumImpl.js +2 -1
  95. package/dist/src/layer/cesium/vectorTileCesiumImpl.js.map +1 -1
  96. package/dist/src/layer/cesium/vectorTileImageryProvider.d.ts +1 -1
  97. package/dist/src/layer/cesium/vectorTileImageryProvider.js +3 -2
  98. package/dist/src/layer/cesium/vectorTileImageryProvider.js.map +1 -1
  99. package/dist/src/layer/cesium/wmsCesiumImpl.js +3 -2
  100. package/dist/src/layer/cesium/wmsCesiumImpl.js.map +1 -1
  101. package/dist/src/layer/cesiumTilesetLayer.d.ts +6 -4
  102. package/dist/src/layer/cesiumTilesetLayer.js.map +1 -1
  103. package/dist/src/layer/cogLayer.d.ts +37 -0
  104. package/dist/src/layer/cogLayer.js +119 -0
  105. package/dist/src/layer/cogLayer.js.map +1 -0
  106. package/dist/src/layer/czmlLayer.js.map +1 -1
  107. package/dist/src/layer/dataSourceLayer.d.ts +4 -2
  108. package/dist/src/layer/dataSourceLayer.js +1 -1
  109. package/dist/src/layer/dataSourceLayer.js.map +1 -1
  110. package/dist/src/layer/featureLayer.d.ts +4 -2
  111. package/dist/src/layer/featureLayer.js.map +1 -1
  112. package/dist/src/layer/featureStoreFeatureVisibility.d.ts +2 -1
  113. package/dist/src/layer/featureStoreFeatureVisibility.js.map +1 -1
  114. package/dist/src/layer/featureStoreLayer.d.ts +8 -6
  115. package/dist/src/layer/featureStoreLayer.js +2 -2
  116. package/dist/src/layer/featureStoreLayer.js.map +1 -1
  117. package/dist/src/layer/featureStoreLayerChanges.d.ts +1 -1
  118. package/dist/src/layer/featureStoreLayerChanges.js.map +1 -1
  119. package/dist/src/layer/featureVisibility.d.ts +2 -1
  120. package/dist/src/layer/featureVisibility.js.map +1 -1
  121. package/dist/src/layer/flatGeobufHelpers.d.ts +18 -3
  122. package/dist/src/layer/flatGeobufHelpers.js +21 -1
  123. package/dist/src/layer/flatGeobufHelpers.js.map +1 -1
  124. package/dist/src/layer/flatGeobufLayer.d.ts +2 -1
  125. package/dist/src/layer/flatGeobufLayer.js.map +1 -1
  126. package/dist/src/layer/geojsonHelpers.d.ts +1 -1
  127. package/dist/src/layer/geojsonHelpers.js +8 -6
  128. package/dist/src/layer/geojsonHelpers.js.map +1 -1
  129. package/dist/src/layer/geojsonLayer.d.ts +2 -1
  130. package/dist/src/layer/geojsonLayer.js +3 -1
  131. package/dist/src/layer/geojsonLayer.js.map +1 -1
  132. package/dist/src/layer/globalHider.d.ts +1 -1
  133. package/dist/src/layer/globalHider.js.map +1 -1
  134. package/dist/src/layer/layer.d.ts +9 -7
  135. package/dist/src/layer/layer.js +1 -1
  136. package/dist/src/layer/layer.js.map +1 -1
  137. package/dist/src/layer/oblique/obliqueHelpers.js +2 -0
  138. package/dist/src/layer/oblique/obliqueHelpers.js.map +1 -1
  139. package/dist/src/layer/oblique/sourceObliqueSync.d.ts +1 -1
  140. package/dist/src/layer/oblique/sourceObliqueSync.js +7 -7
  141. package/dist/src/layer/oblique/sourceObliqueSync.js.map +1 -1
  142. package/dist/src/layer/oblique/vectorObliqueImpl.d.ts +2 -2
  143. package/dist/src/layer/oblique/vectorObliqueImpl.js +3 -3
  144. package/dist/src/layer/oblique/vectorObliqueImpl.js.map +1 -1
  145. package/dist/src/layer/openStreetMapLayer.d.ts +5 -4
  146. package/dist/src/layer/openStreetMapLayer.js +1 -1
  147. package/dist/src/layer/openStreetMapLayer.js.map +1 -1
  148. package/dist/src/layer/openlayers/cogOpenlayersImpl.d.ts +23 -0
  149. package/dist/src/layer/openlayers/cogOpenlayersImpl.js +54 -0
  150. package/dist/src/layer/openlayers/cogOpenlayersImpl.js.map +1 -0
  151. package/dist/src/layer/openlayers/layerOpenlayersImpl.d.ts +4 -2
  152. package/dist/src/layer/openlayers/layerOpenlayersImpl.js +5 -4
  153. package/dist/src/layer/openlayers/layerOpenlayersImpl.js.map +1 -1
  154. package/dist/src/layer/openlayers/loadFunctionHelpers.js +0 -1
  155. package/dist/src/layer/openlayers/loadFunctionHelpers.js.map +1 -1
  156. package/dist/src/layer/openlayers/tileDebugOpenlayersImpl.d.ts +1 -1
  157. package/dist/src/layer/openlayers/tileDebugOpenlayersImpl.js +2 -2
  158. package/dist/src/layer/openlayers/tileDebugOpenlayersImpl.js.map +1 -1
  159. package/dist/src/layer/openlayers/vectorOpenlayersImpl.js +1 -1
  160. package/dist/src/layer/openlayers/vectorOpenlayersImpl.js.map +1 -1
  161. package/dist/src/layer/openlayers/vectorTileOpenlayersImpl.js +1 -1
  162. package/dist/src/layer/openlayers/vectorTileOpenlayersImpl.js.map +1 -1
  163. package/dist/src/layer/openlayers/wmsOpenlayersImpl.d.ts +1 -1
  164. package/dist/src/layer/panorama/panoramaDatasetPanoramaImpl.d.ts +13 -0
  165. package/dist/src/layer/panorama/panoramaDatasetPanoramaImpl.js +34 -0
  166. package/dist/src/layer/panorama/panoramaDatasetPanoramaImpl.js.map +1 -0
  167. package/dist/src/layer/panorama/vectorTilePanoramaImpl.d.ts +28 -0
  168. package/dist/src/layer/panorama/vectorTilePanoramaImpl.js +114 -0
  169. package/dist/src/layer/panorama/vectorTilePanoramaImpl.js.map +1 -0
  170. package/dist/src/layer/panoramaDatasetLayer.d.ts +53 -0
  171. package/dist/src/layer/panoramaDatasetLayer.js +192 -0
  172. package/dist/src/layer/panoramaDatasetLayer.js.map +1 -0
  173. package/dist/src/layer/pointCloudLayer.d.ts +8 -5
  174. package/dist/src/layer/pointCloudLayer.js +1 -1
  175. package/dist/src/layer/pointCloudLayer.js.map +1 -1
  176. package/dist/src/layer/rasterLayer.d.ts +6 -4
  177. package/dist/src/layer/rasterLayer.js.map +1 -1
  178. package/dist/src/layer/singleImageLayer.d.ts +3 -2
  179. package/dist/src/layer/singleImageLayer.js.map +1 -1
  180. package/dist/src/layer/terrainHelpers.d.ts +1 -1
  181. package/dist/src/layer/terrainHelpers.js.map +1 -1
  182. package/dist/src/layer/terrainLayer.d.ts +3 -2
  183. package/dist/src/layer/terrainLayer.js.map +1 -1
  184. package/dist/src/layer/tileLoadedHelper.d.ts +2 -2
  185. package/dist/src/layer/tileProvider/flatGeobufTileProvider.d.ts +7 -4
  186. package/dist/src/layer/tileProvider/flatGeobufTileProvider.js +10 -2
  187. package/dist/src/layer/tileProvider/flatGeobufTileProvider.js.map +1 -1
  188. package/dist/src/layer/tileProvider/mvtTileProvider.d.ts +3 -2
  189. package/dist/src/layer/tileProvider/mvtTileProvider.js +3 -3
  190. package/dist/src/layer/tileProvider/mvtTileProvider.js.map +1 -1
  191. package/dist/src/layer/tileProvider/staticFeatureTileProvider.d.ts +3 -2
  192. package/dist/src/layer/tileProvider/staticFeatureTileProvider.js +0 -1
  193. package/dist/src/layer/tileProvider/staticFeatureTileProvider.js.map +1 -1
  194. package/dist/src/layer/tileProvider/staticGeojsonTileProvider.d.ts +2 -1
  195. package/dist/src/layer/tileProvider/staticGeojsonTileProvider.js +0 -1
  196. package/dist/src/layer/tileProvider/staticGeojsonTileProvider.js.map +1 -1
  197. package/dist/src/layer/tileProvider/tileProvider.d.ts +3 -2
  198. package/dist/src/layer/tileProvider/tileProvider.js +10 -3
  199. package/dist/src/layer/tileProvider/tileProvider.js.map +1 -1
  200. package/dist/src/layer/tileProvider/urlTemplateTileProvider.d.ts +2 -1
  201. package/dist/src/layer/tileProvider/urlTemplateTileProvider.js.map +1 -1
  202. package/dist/src/layer/tmsLayer.d.ts +3 -2
  203. package/dist/src/layer/tmsLayer.js +1 -1
  204. package/dist/src/layer/tmsLayer.js.map +1 -1
  205. package/dist/src/layer/vectorHelpers.d.ts +2 -2
  206. package/dist/src/layer/vectorHelpers.js +1 -1
  207. package/dist/src/layer/vectorHelpers.js.map +1 -1
  208. package/dist/src/layer/vectorLayer.d.ts +12 -8
  209. package/dist/src/layer/vectorLayer.js +1 -1
  210. package/dist/src/layer/vectorLayer.js.map +1 -1
  211. package/dist/src/layer/vectorProperties.d.ts +3 -3
  212. package/dist/src/layer/vectorProperties.js +4 -0
  213. package/dist/src/layer/vectorProperties.js.map +1 -1
  214. package/dist/src/layer/vectorSymbols.d.ts +8 -0
  215. package/dist/src/layer/vectorSymbols.js +8 -0
  216. package/dist/src/layer/vectorSymbols.js.map +1 -1
  217. package/dist/src/layer/vectorTileLayer.d.ts +17 -10
  218. package/dist/src/layer/vectorTileLayer.js +8 -1
  219. package/dist/src/layer/vectorTileLayer.js.map +1 -1
  220. package/dist/src/layer/wfsLayer.d.ts +2 -1
  221. package/dist/src/layer/wfsLayer.js +6 -4
  222. package/dist/src/layer/wfsLayer.js.map +1 -1
  223. package/dist/src/layer/wmsHelpers.js +2 -2
  224. package/dist/src/layer/wmsHelpers.js.map +1 -1
  225. package/dist/src/layer/wmsLayer.d.ts +4 -3
  226. package/dist/src/layer/wmsLayer.js.map +1 -1
  227. package/dist/src/layer/wmtsLayer.d.ts +3 -2
  228. package/dist/src/layer/wmtsLayer.js +1 -1
  229. package/dist/src/layer/wmtsLayer.js.map +1 -1
  230. package/dist/src/map/baseOLMap.d.ts +1 -1
  231. package/dist/src/map/baseOLMap.js +17 -8
  232. package/dist/src/map/baseOLMap.js.map +1 -1
  233. package/dist/src/map/cameraLimiter.d.ts +2 -1
  234. package/dist/src/map/cameraLimiter.js.map +1 -1
  235. package/dist/src/map/cesiumMap.d.ts +5 -7
  236. package/dist/src/map/cesiumMap.js +27 -186
  237. package/dist/src/map/cesiumMap.js.map +1 -1
  238. package/dist/src/map/cesiumMapHelpers.d.ts +7 -0
  239. package/dist/src/map/cesiumMapHelpers.js +144 -0
  240. package/dist/src/map/cesiumMapHelpers.js.map +1 -0
  241. package/dist/src/map/navigation/cameraHelper.d.ts +3 -2
  242. package/dist/src/map/navigation/cameraHelper.js.map +1 -1
  243. package/dist/src/map/navigation/cesiumNavigation.d.ts +4 -3
  244. package/dist/src/map/navigation/cesiumNavigation.js.map +1 -1
  245. package/dist/src/map/navigation/controller/controller.d.ts +1 -1
  246. package/dist/src/map/navigation/controller/controller.js +2 -2
  247. package/dist/src/map/navigation/controller/controller.js.map +1 -1
  248. package/dist/src/map/navigation/controller/keyboardController.d.ts +3 -2
  249. package/dist/src/map/navigation/controller/keyboardController.js +4 -2
  250. package/dist/src/map/navigation/controller/keyboardController.js.map +1 -1
  251. package/dist/src/map/navigation/easingHelper.d.ts +1 -1
  252. package/dist/src/map/navigation/easingHelper.js +1 -1
  253. package/dist/src/map/navigation/easingHelper.js.map +1 -1
  254. package/dist/src/map/navigation/navigation.d.ts +6 -6
  255. package/dist/src/map/navigation/navigation.js +6 -2
  256. package/dist/src/map/navigation/navigation.js.map +1 -1
  257. package/dist/src/map/navigation/navigationImpl.d.ts +2 -2
  258. package/dist/src/map/navigation/obliqueNavigation.d.ts +4 -3
  259. package/dist/src/map/navigation/obliqueNavigation.js +3 -1
  260. package/dist/src/map/navigation/obliqueNavigation.js.map +1 -1
  261. package/dist/src/map/navigation/openlayersNavigation.d.ts +4 -3
  262. package/dist/src/map/navigation/openlayersNavigation.js.map +1 -1
  263. package/dist/src/map/navigation/viewHelper.d.ts +2 -2
  264. package/dist/src/map/navigation/viewHelper.js +0 -1
  265. package/dist/src/map/navigation/viewHelper.js.map +1 -1
  266. package/dist/src/map/obliqueMap.d.ts +3 -3
  267. package/dist/src/map/obliqueMap.js +1 -1
  268. package/dist/src/map/obliqueMap.js.map +1 -1
  269. package/dist/src/map/panoramaMap.d.ts +98 -0
  270. package/dist/src/map/panoramaMap.js +298 -0
  271. package/dist/src/map/panoramaMap.js.map +1 -0
  272. package/dist/src/map/vcsMap.d.ts +3 -3
  273. package/dist/src/map/vcsMap.js +17 -11
  274. package/dist/src/map/vcsMap.js.map +1 -1
  275. package/dist/src/moduleIdSymbol.js +0 -1
  276. package/dist/src/moduleIdSymbol.js.map +1 -1
  277. package/dist/src/oblique/defaultObliqueCollection.js +3 -1
  278. package/dist/src/oblique/defaultObliqueCollection.js.map +1 -1
  279. package/dist/src/oblique/helpers.d.ts +1 -1
  280. package/dist/src/oblique/helpers.js +1 -1
  281. package/dist/src/oblique/helpers.js.map +1 -1
  282. package/dist/src/oblique/obliqueCollection.d.ts +3 -2
  283. package/dist/src/oblique/obliqueCollection.js.map +1 -1
  284. package/dist/src/oblique/obliqueDataSet.d.ts +2 -1
  285. package/dist/src/oblique/obliqueDataSet.js.map +1 -1
  286. package/dist/src/oblique/obliqueImage.d.ts +1 -1
  287. package/dist/src/oblique/obliqueProvider.d.ts +1 -1
  288. package/dist/src/oblique/obliqueProvider.js.map +1 -1
  289. package/dist/src/oblique/obliqueView.js +1 -0
  290. package/dist/src/oblique/obliqueView.js.map +1 -1
  291. package/dist/src/oblique/parseImageJson.js +2 -3
  292. package/dist/src/oblique/parseImageJson.js.map +1 -1
  293. package/dist/src/ol/feature.js.map +1 -1
  294. package/dist/src/ol/geom/circle.js.map +1 -1
  295. package/dist/src/ol/render/canvas/canvasTileRenderer.js +0 -1
  296. package/dist/src/ol/render/canvas/canvasTileRenderer.js.map +1 -1
  297. package/dist/src/ol/source/ClusterEnhancedVectorSource.d.ts +1 -1
  298. package/dist/src/ol/source/VcsCluster.d.ts +3 -3
  299. package/dist/src/ol/source/VcsCluster.js.map +1 -1
  300. package/dist/src/overrideClassRegistry.d.ts +3 -3
  301. package/dist/src/overrideClassRegistry.js +1 -0
  302. package/dist/src/overrideClassRegistry.js.map +1 -1
  303. package/dist/src/panorama/fieldOfView.d.ts +57 -0
  304. package/dist/src/panorama/fieldOfView.js +135 -0
  305. package/dist/src/panorama/fieldOfView.js.map +1 -0
  306. package/dist/src/panorama/panoramaCameraController.d.ts +35 -0
  307. package/dist/src/panorama/panoramaCameraController.js +146 -0
  308. package/dist/src/panorama/panoramaCameraController.js.map +1 -0
  309. package/dist/src/panorama/panoramaImage.d.ts +135 -0
  310. package/dist/src/panorama/panoramaImage.js +269 -0
  311. package/dist/src/panorama/panoramaImage.js.map +1 -0
  312. package/dist/src/panorama/panoramaImageView.d.ts +25 -0
  313. package/dist/src/panorama/panoramaImageView.js +328 -0
  314. package/dist/src/panorama/panoramaImageView.js.map +1 -0
  315. package/dist/src/panorama/panoramaTile.d.ts +23 -0
  316. package/dist/src/panorama/panoramaTile.js +101 -0
  317. package/dist/src/panorama/panoramaTile.js.map +1 -0
  318. package/dist/src/panorama/panoramaTileCache.d.ts +16 -0
  319. package/dist/src/panorama/panoramaTileCache.js +34 -0
  320. package/dist/src/panorama/panoramaTileCache.js.map +1 -0
  321. package/dist/src/panorama/panoramaTileCoordinate.d.ts +56 -0
  322. package/dist/src/panorama/panoramaTileCoordinate.js +110 -0
  323. package/dist/src/panorama/panoramaTileCoordinate.js.map +1 -0
  324. package/dist/src/panorama/panoramaTileMaterial.d.ts +96 -0
  325. package/dist/src/panorama/panoramaTileMaterial.js +213 -0
  326. package/dist/src/panorama/panoramaTileMaterial.js.map +1 -0
  327. package/dist/src/panorama/panoramaTileMaterialFS.shader.d.ts +2 -0
  328. package/dist/src/panorama/panoramaTileMaterialFS.shader.js +170 -0
  329. package/dist/src/panorama/panoramaTileMaterialFS.shader.js.map +1 -0
  330. package/dist/src/panorama/panoramaTilePrimitiveCollection.d.ts +31 -0
  331. package/dist/src/panorama/panoramaTilePrimitiveCollection.js +113 -0
  332. package/dist/src/panorama/panoramaTilePrimitiveCollection.js.map +1 -0
  333. package/dist/src/panorama/panoramaTileProvider.d.ts +67 -0
  334. package/dist/src/panorama/panoramaTileProvider.js +312 -0
  335. package/dist/src/panorama/panoramaTileProvider.js.map +1 -0
  336. package/dist/src/panorama/sphericalCoordinates.d.ts +20 -0
  337. package/dist/src/panorama/sphericalCoordinates.js +78 -0
  338. package/dist/src/panorama/sphericalCoordinates.js.map +1 -0
  339. package/dist/src/style/arrowStyle.d.ts +1 -1
  340. package/dist/src/style/arrowStyle.js.map +1 -1
  341. package/dist/src/style/declarativeStyleItem.d.ts +1 -1
  342. package/dist/src/style/declarativeStyleItem.js +12 -14
  343. package/dist/src/style/declarativeStyleItem.js.map +1 -1
  344. package/dist/src/style/styleFactory.d.ts +2 -2
  345. package/dist/src/style/styleFactory.js +1 -2
  346. package/dist/src/style/styleFactory.js.map +1 -1
  347. package/dist/src/style/styleHelpers.d.ts +2 -2
  348. package/dist/src/style/styleHelpers.js +6 -6
  349. package/dist/src/style/styleHelpers.js.map +1 -1
  350. package/dist/src/style/styleItem.d.ts +4 -2
  351. package/dist/src/style/styleItem.js +3 -1
  352. package/dist/src/style/styleItem.js.map +1 -1
  353. package/dist/src/style/vectorStyleItem.d.ts +7 -5
  354. package/dist/src/style/vectorStyleItem.js +9 -19
  355. package/dist/src/style/vectorStyleItem.js.map +1 -1
  356. package/dist/src/style/writeStyle.d.ts +2 -2
  357. package/dist/src/style/writeStyle.js.map +1 -1
  358. package/dist/src/util/clipping/clippingObject.js.map +1 -1
  359. package/dist/src/util/clipping/clippingObjectManager.js.map +1 -1
  360. package/dist/src/util/clipping/clippingPolygonHelper.d.ts +2 -1
  361. package/dist/src/util/clipping/clippingPolygonHelper.js.map +1 -1
  362. package/dist/src/util/clipping/clippingPolygonObject.d.ts +4 -3
  363. package/dist/src/util/clipping/clippingPolygonObject.js.map +1 -1
  364. package/dist/src/util/clipping/clippingPolygonObjectCollection.d.ts +3 -4
  365. package/dist/src/util/clipping/clippingPolygonObjectCollection.js +37 -11
  366. package/dist/src/util/clipping/clippingPolygonObjectCollection.js.map +1 -1
  367. package/dist/src/util/collection.js.map +1 -1
  368. package/dist/src/util/createAbsoluteFeature.d.ts +4 -0
  369. package/dist/src/util/createAbsoluteFeature.js +98 -0
  370. package/dist/src/util/createAbsoluteFeature.js.map +1 -0
  371. package/dist/src/util/displayQuality/displayQuality.d.ts +3 -5
  372. package/dist/src/util/displayQuality/displayQuality.js +4 -5
  373. package/dist/src/util/displayQuality/displayQuality.js.map +1 -1
  374. package/dist/src/util/editor/createFeatureSession.d.ts +4 -3
  375. package/dist/src/util/editor/createFeatureSession.js.map +1 -1
  376. package/dist/src/util/editor/editFeaturesSession.d.ts +2 -1
  377. package/dist/src/util/editor/editFeaturesSession.js +3 -1
  378. package/dist/src/util/editor/editFeaturesSession.js.map +1 -1
  379. package/dist/src/util/editor/editGeometrySession.d.ts +3 -2
  380. package/dist/src/util/editor/editGeometrySession.js.map +1 -1
  381. package/dist/src/util/editor/editorHelpers.d.ts +5 -4
  382. package/dist/src/util/editor/editorHelpers.js +4 -0
  383. package/dist/src/util/editor/editorHelpers.js.map +1 -1
  384. package/dist/src/util/editor/editorSessionHelpers.d.ts +3 -3
  385. package/dist/src/util/editor/editorSessionHelpers.js.map +1 -1
  386. package/dist/src/util/editor/interactions/createCircleInteraction.d.ts +2 -1
  387. package/dist/src/util/editor/interactions/createCircleInteraction.js.map +1 -1
  388. package/dist/src/util/editor/interactions/createLineStringInteraction.d.ts +3 -2
  389. package/dist/src/util/editor/interactions/createLineStringInteraction.js.map +1 -1
  390. package/dist/src/util/editor/interactions/createPointInteraction.d.ts +3 -2
  391. package/dist/src/util/editor/interactions/createPointInteraction.js.map +1 -1
  392. package/dist/src/util/editor/interactions/createPolygonInteraction.d.ts +3 -2
  393. package/dist/src/util/editor/interactions/createPolygonInteraction.js.map +1 -1
  394. package/dist/src/util/editor/interactions/creationSnapping.d.ts +2 -2
  395. package/dist/src/util/editor/interactions/creationSnapping.js +1 -1
  396. package/dist/src/util/editor/interactions/creationSnapping.js.map +1 -1
  397. package/dist/src/util/editor/interactions/editFeaturesMouseOverInteraction.d.ts +2 -1
  398. package/dist/src/util/editor/interactions/editFeaturesMouseOverInteraction.js.map +1 -1
  399. package/dist/src/util/editor/interactions/editGeometryMouseOverInteraction.d.ts +2 -1
  400. package/dist/src/util/editor/interactions/editGeometryMouseOverInteraction.js.map +1 -1
  401. package/dist/src/util/editor/interactions/ensureHandlerSelectionInteraction.d.ts +2 -1
  402. package/dist/src/util/editor/interactions/ensureHandlerSelectionInteraction.js.map +1 -1
  403. package/dist/src/util/editor/interactions/insertVertexInteraction.d.ts +3 -2
  404. package/dist/src/util/editor/interactions/insertVertexInteraction.js.map +1 -1
  405. package/dist/src/util/editor/interactions/layerSnapping.d.ts +4 -4
  406. package/dist/src/util/editor/interactions/layerSnapping.js +1 -1
  407. package/dist/src/util/editor/interactions/layerSnapping.js.map +1 -1
  408. package/dist/src/util/editor/interactions/mapInteractionController.d.ts +2 -1
  409. package/dist/src/util/editor/interactions/mapInteractionController.js +1 -0
  410. package/dist/src/util/editor/interactions/mapInteractionController.js.map +1 -1
  411. package/dist/src/util/editor/interactions/removeVertexInteraction.d.ts +3 -2
  412. package/dist/src/util/editor/interactions/removeVertexInteraction.js.map +1 -1
  413. package/dist/src/util/editor/interactions/rightClickInteraction.d.ts +2 -1
  414. package/dist/src/util/editor/interactions/rightClickInteraction.js.map +1 -1
  415. package/dist/src/util/editor/interactions/segmentLengthInteraction.d.ts +2 -1
  416. package/dist/src/util/editor/interactions/segmentLengthInteraction.js.map +1 -1
  417. package/dist/src/util/editor/interactions/selectFeatureMouseOverInteraction.d.ts +3 -2
  418. package/dist/src/util/editor/interactions/selectFeatureMouseOverInteraction.js +13 -13
  419. package/dist/src/util/editor/interactions/selectFeatureMouseOverInteraction.js.map +1 -1
  420. package/dist/src/util/editor/interactions/selectMultiFeatureInteraction.d.ts +3 -3
  421. package/dist/src/util/editor/interactions/selectMultiFeatureInteraction.js +1 -1
  422. package/dist/src/util/editor/interactions/selectMultiFeatureInteraction.js.map +1 -1
  423. package/dist/src/util/editor/interactions/selectSingleFeatureInteraction.d.ts +2 -1
  424. package/dist/src/util/editor/interactions/selectSingleFeatureInteraction.js +1 -1
  425. package/dist/src/util/editor/interactions/selectSingleFeatureInteraction.js.map +1 -1
  426. package/dist/src/util/editor/interactions/translateVertexInteraction.d.ts +3 -2
  427. package/dist/src/util/editor/interactions/translateVertexInteraction.js.map +1 -1
  428. package/dist/src/util/editor/interactions/translationSnapping.d.ts +2 -2
  429. package/dist/src/util/editor/interactions/translationSnapping.js +1 -1
  430. package/dist/src/util/editor/interactions/translationSnapping.js.map +1 -1
  431. package/dist/src/util/editor/selectFeaturesSession.d.ts +3 -2
  432. package/dist/src/util/editor/selectFeaturesSession.js +1 -1
  433. package/dist/src/util/editor/selectFeaturesSession.js.map +1 -1
  434. package/dist/src/util/editor/snappingHelpers.d.ts +3 -3
  435. package/dist/src/util/editor/snappingHelpers.js.map +1 -1
  436. package/dist/src/util/editor/transformation/create2DHandlers.d.ts +2 -1
  437. package/dist/src/util/editor/transformation/create2DHandlers.js.map +1 -1
  438. package/dist/src/util/editor/transformation/create3DHandlers.d.ts +3 -2
  439. package/dist/src/util/editor/transformation/create3DHandlers.js.map +1 -1
  440. package/dist/src/util/editor/transformation/extrudeInteraction.d.ts +3 -2
  441. package/dist/src/util/editor/transformation/extrudeInteraction.js +1 -1
  442. package/dist/src/util/editor/transformation/extrudeInteraction.js.map +1 -1
  443. package/dist/src/util/editor/transformation/rotateInteraction.d.ts +4 -2
  444. package/dist/src/util/editor/transformation/rotateInteraction.js +1 -1
  445. package/dist/src/util/editor/transformation/rotateInteraction.js.map +1 -1
  446. package/dist/src/util/editor/transformation/scaleInteraction.d.ts +3 -2
  447. package/dist/src/util/editor/transformation/scaleInteraction.js +1 -1
  448. package/dist/src/util/editor/transformation/scaleInteraction.js.map +1 -1
  449. package/dist/src/util/editor/transformation/transformationHandler.d.ts +2 -1
  450. package/dist/src/util/editor/transformation/transformationHandler.js +1 -1
  451. package/dist/src/util/editor/transformation/transformationHandler.js.map +1 -1
  452. package/dist/src/util/editor/transformation/translateInteraction.d.ts +3 -2
  453. package/dist/src/util/editor/transformation/translateInteraction.js +2 -2
  454. package/dist/src/util/editor/transformation/translateInteraction.js.map +1 -1
  455. package/dist/src/util/exclusiveManager.d.ts +1 -1
  456. package/dist/src/util/exclusiveManager.js.map +1 -1
  457. package/dist/src/util/featureconverter/arcToCesium.d.ts +1 -1
  458. package/dist/src/util/featureconverter/arcToCesium.js +1 -2
  459. package/dist/src/util/featureconverter/arcToCesium.js.map +1 -1
  460. package/dist/src/util/featureconverter/circleToCesium.d.ts +1 -1
  461. package/dist/src/util/featureconverter/circleToCesium.js +1 -1
  462. package/dist/src/util/featureconverter/circleToCesium.js.map +1 -1
  463. package/dist/src/util/featureconverter/clampedPrimitive.d.ts +2 -1
  464. package/dist/src/util/featureconverter/clampedPrimitive.js +0 -1
  465. package/dist/src/util/featureconverter/clampedPrimitive.js.map +1 -1
  466. package/dist/src/util/featureconverter/convert.d.ts +4 -3
  467. package/dist/src/util/featureconverter/convert.js +1 -1
  468. package/dist/src/util/featureconverter/convert.js.map +1 -1
  469. package/dist/src/util/featureconverter/extent3D.d.ts +2 -2
  470. package/dist/src/util/featureconverter/extent3D.js.map +1 -1
  471. package/dist/src/util/featureconverter/lineStringToCesium.d.ts +5 -5
  472. package/dist/src/util/featureconverter/lineStringToCesium.js +1 -2
  473. package/dist/src/util/featureconverter/lineStringToCesium.js.map +1 -1
  474. package/dist/src/util/featureconverter/pointHelpers.d.ts +6 -5
  475. package/dist/src/util/featureconverter/pointHelpers.js +2 -3
  476. package/dist/src/util/featureconverter/pointHelpers.js.map +1 -1
  477. package/dist/src/util/featureconverter/pointToCesium.d.ts +6 -11
  478. package/dist/src/util/featureconverter/pointToCesium.js +3 -20
  479. package/dist/src/util/featureconverter/pointToCesium.js.map +1 -1
  480. package/dist/src/util/featureconverter/polygonToCesium.d.ts +1 -1
  481. package/dist/src/util/featureconverter/polygonToCesium.js +1 -1
  482. package/dist/src/util/featureconverter/polygonToCesium.js.map +1 -1
  483. package/dist/src/util/featureconverter/storeyHelpers.d.ts +2 -2
  484. package/dist/src/util/featureconverter/vectorGeometryFactory.d.ts +2 -2
  485. package/dist/src/util/featureconverter/vectorGeometryFactory.js.map +1 -1
  486. package/dist/src/util/featureconverter/vectorHeightInfo.d.ts +8 -2
  487. package/dist/src/util/featureconverter/vectorHeightInfo.js +17 -0
  488. package/dist/src/util/featureconverter/vectorHeightInfo.js.map +1 -1
  489. package/dist/src/util/flight/flightAnchor.js +4 -3
  490. package/dist/src/util/flight/flightAnchor.js.map +1 -1
  491. package/dist/src/util/flight/flightCollection.d.ts +2 -2
  492. package/dist/src/util/flight/flightCollection.js.map +1 -1
  493. package/dist/src/util/flight/flightHelpers.d.ts +1 -1
  494. package/dist/src/util/flight/flightInstance.d.ts +3 -2
  495. package/dist/src/util/flight/flightInstance.js.map +1 -1
  496. package/dist/src/util/flight/flightPlayer.js +1 -1
  497. package/dist/src/util/flight/flightPlayer.js.map +1 -1
  498. package/dist/src/util/flight/flightRecorder.d.ts +10 -0
  499. package/dist/src/util/flight/flightRecorder.js +172 -0
  500. package/dist/src/util/flight/flightRecorder.js.map +1 -0
  501. package/dist/src/util/flight/flightVisualizer.d.ts +1 -1
  502. package/dist/src/util/flight/flightVisualizer.js.map +1 -1
  503. package/dist/src/util/geometryHelpers.d.ts +3 -5
  504. package/dist/src/util/geometryHelpers.js +0 -91
  505. package/dist/src/util/geometryHelpers.js.map +1 -1
  506. package/dist/src/util/hiddenObjects.d.ts +2 -2
  507. package/dist/src/util/hiddenObjects.js +0 -1
  508. package/dist/src/util/hiddenObjects.js.map +1 -1
  509. package/dist/src/util/indexedCollection.js.map +1 -1
  510. package/dist/src/util/isMobile.js +3 -2
  511. package/dist/src/util/isMobile.js.map +1 -1
  512. package/dist/src/util/layerCollection.d.ts +6 -1
  513. package/dist/src/util/layerCollection.js +5 -1
  514. package/dist/src/util/layerCollection.js.map +1 -1
  515. package/dist/src/util/locale.js +0 -1
  516. package/dist/src/util/locale.js.map +1 -1
  517. package/dist/src/util/mapCollection.d.ts +9 -4
  518. package/dist/src/util/mapCollection.js +67 -34
  519. package/dist/src/util/mapCollection.js.map +1 -1
  520. package/dist/src/util/math.d.ts +4 -1
  521. package/dist/src/util/math.js +20 -1
  522. package/dist/src/util/math.js.map +1 -1
  523. package/dist/src/util/overrideCollection.d.ts +1 -1
  524. package/dist/src/util/overrideCollection.js +3 -1
  525. package/dist/src/util/overrideCollection.js.map +1 -1
  526. package/dist/src/util/projection.d.ts +1 -1
  527. package/dist/src/util/projection.js +2 -2
  528. package/dist/src/util/projection.js.map +1 -1
  529. package/dist/src/util/renderScreenshot.d.ts +1 -1
  530. package/dist/src/util/rotation.d.ts +4 -3
  531. package/dist/src/util/rotation.js +1 -1
  532. package/dist/src/util/rotation.js.map +1 -1
  533. package/dist/src/util/urlHelpers.js +0 -1
  534. package/dist/src/util/urlHelpers.js.map +1 -1
  535. package/dist/src/util/vcsTemplate.js +2 -4
  536. package/dist/src/util/vcsTemplate.js.map +1 -1
  537. package/dist/src/util/viewpoint.d.ts +6 -2
  538. package/dist/src/util/viewpoint.js +11 -1
  539. package/dist/src/util/viewpoint.js.map +1 -1
  540. package/dist/src/vcsApp.d.ts +7 -6
  541. package/dist/src/vcsApp.js +20 -14
  542. package/dist/src/vcsApp.js.map +1 -1
  543. package/dist/src/vcsEvent.js.map +1 -1
  544. package/dist/src/vcsModuleHelpers.js +3 -3
  545. package/dist/src/vcsModuleHelpers.js.map +1 -1
  546. package/dist/src/vectorCluster/vectorClusterCesiumContext.d.ts +4 -4
  547. package/dist/src/vectorCluster/vectorClusterCesiumContext.js +1 -1
  548. package/dist/src/vectorCluster/vectorClusterCesiumContext.js.map +1 -1
  549. package/dist/src/vectorCluster/vectorClusterGroup.d.ts +9 -6
  550. package/dist/src/vectorCluster/vectorClusterGroup.js +17 -5
  551. package/dist/src/vectorCluster/vectorClusterGroup.js.map +1 -1
  552. package/dist/src/vectorCluster/vectorClusterGroupCesiumImpl.d.ts +2 -2
  553. package/dist/src/vectorCluster/vectorClusterGroupCesiumImpl.js +1 -1
  554. package/dist/src/vectorCluster/vectorClusterGroupCesiumImpl.js.map +1 -1
  555. package/dist/src/vectorCluster/vectorClusterGroupCollection.d.ts +1 -1
  556. package/dist/src/vectorCluster/vectorClusterGroupImpl.d.ts +5 -5
  557. package/dist/src/vectorCluster/vectorClusterGroupObliqueImpl.d.ts +2 -2
  558. package/dist/src/vectorCluster/vectorClusterGroupObliqueImpl.js +1 -1
  559. package/dist/src/vectorCluster/vectorClusterGroupObliqueImpl.js.map +1 -1
  560. package/dist/src/vectorCluster/vectorClusterGroupOpenlayersImpl.d.ts +2 -2
  561. package/dist/src/vectorCluster/vectorClusterStyleItem.d.ts +4 -3
  562. package/dist/src/vectorCluster/vectorClusterStyleItem.js.map +1 -1
  563. package/dist/src/vectorCluster/vectorClusterSymbols.js +0 -1
  564. package/dist/src/vectorCluster/vectorClusterSymbols.js.map +1 -1
  565. package/dist/src/workers/panoramaImageWorker.d.ts +1 -0
  566. package/dist/src/workers/panoramaImageWorker.js +34 -0
  567. package/dist/src/workers/panoramaImageWorker.js.map +1 -0
  568. package/dist/tests/data/cog/test_grey_world.tif +0 -0
  569. package/dist/tests/data/cog/test_rgb.tif +0 -0
  570. package/dist/tests/data/cog/test_rgb_world.tif +0 -0
  571. package/dist/tests/data/panorama/badOrientation.tif +0 -0
  572. package/dist/tests/data/panorama/badPosition.tif +0 -0
  573. package/dist/tests/data/panorama/lowOverview.tif +0 -0
  574. package/dist/tests/data/panorama/noVersionDepth.tif +0 -0
  575. package/dist/tests/data/panorama/noVersionRgb.tif +0 -0
  576. package/dist/tests/data/panorama/testDepthGeotiff.tif +0 -0
  577. package/dist/tests/data/panorama/testRgbGeotiff.tif +0 -0
  578. package/dist/tests/unit/helpers/cesiumHelpers.d.ts +6 -2
  579. package/dist/tests/unit/helpers/cesiumHelpers.js +15 -6
  580. package/dist/tests/unit/helpers/cesiumHelpers.js.map +1 -1
  581. package/dist/tests/unit/helpers/flatGeobufHelpers.d.ts +2 -0
  582. package/dist/tests/unit/helpers/flatGeobufHelpers.js +13 -0
  583. package/dist/tests/unit/helpers/flatGeobufHelpers.js.map +1 -0
  584. package/dist/tests/unit/helpers/helpers.d.ts +4 -0
  585. package/dist/tests/unit/helpers/helpers.js +26 -1
  586. package/dist/tests/unit/helpers/helpers.js.map +1 -1
  587. package/dist/tests/unit/helpers/panoramaHelpers.d.ts +30 -0
  588. package/dist/tests/unit/helpers/panoramaHelpers.js +76 -0
  589. package/dist/tests/unit/helpers/panoramaHelpers.js.map +1 -0
  590. package/index.ts +325 -279
  591. package/package.json +17 -49
  592. package/src/category/category.ts +9 -6
  593. package/src/category/categoryCollection.ts +4 -3
  594. package/src/cesium/cesium.d.ts +57 -18
  595. package/src/cesium/cesium3DTileFeature.ts +6 -7
  596. package/src/cesium/cesiumVcsCameraPrimitive.ts +6 -5
  597. package/src/cesium/entity.ts +1 -1
  598. package/src/classRegistry.ts +19 -18
  599. package/src/featureProvider/abstractFeatureProvider.ts +8 -4
  600. package/src/featureProvider/wmsFeatureProvider.ts +97 -23
  601. package/src/global.d.ts +6 -1
  602. package/src/interaction/abstractInteraction.ts +5 -5
  603. package/src/interaction/coordinateAtPixel.ts +37 -0
  604. package/src/interaction/eventHandler.ts +6 -8
  605. package/src/interaction/featureAtPixelInteraction.ts +24 -13
  606. package/src/interaction/featureProviderInteraction.ts +6 -7
  607. package/src/interaction/interactionType.ts +1 -0
  608. package/src/interaction/panoramaFeatureHighlight.ts +109 -0
  609. package/src/interaction/panoramaImageSelection.ts +37 -0
  610. package/src/layer/cesium/cesiumTilesetCesiumImpl.ts +14 -10
  611. package/src/layer/cesium/cogCesiumImpl.ts +36 -0
  612. package/src/layer/cesium/cogImageryProvider.ts +389 -0
  613. package/src/layer/cesium/dataSourceCesiumImpl.ts +8 -6
  614. package/src/layer/cesium/resourceHelper.ts +0 -1
  615. package/src/layer/cesium/sourceVectorContextSync.ts +4 -4
  616. package/src/layer/cesium/terrainCesiumImpl.ts +1 -1
  617. package/src/layer/cesium/vcsTile/vcsChildTile.ts +3 -3
  618. package/src/layer/cesium/vcsTile/vcsDebugTile.ts +5 -10
  619. package/src/layer/cesium/vcsTile/vcsNoDataTile.ts +3 -3
  620. package/src/layer/cesium/vcsTile/vcsQuadtreeTileProvider.ts +19 -17
  621. package/src/layer/cesium/vcsTile/vcsTileHelpers.ts +10 -8
  622. package/src/layer/cesium/vcsTile/vcsVectorTile.ts +7 -11
  623. package/src/layer/cesium/vectorCesiumImpl.ts +2 -4
  624. package/src/layer/cesium/vectorContext.ts +32 -25
  625. package/src/layer/cesium/vectorRasterTileCesiumImpl.ts +2 -2
  626. package/src/layer/cesium/vectorTileCesiumImpl.ts +5 -7
  627. package/src/layer/cesium/vectorTileImageryProvider.ts +4 -4
  628. package/src/layer/cesium/wmsCesiumImpl.ts +3 -2
  629. package/src/layer/cesiumTilesetLayer.ts +6 -8
  630. package/src/layer/cogLayer.ts +162 -0
  631. package/src/layer/czmlLayer.ts +2 -2
  632. package/src/layer/dataSourceLayer.ts +4 -6
  633. package/src/layer/featureLayer.ts +6 -4
  634. package/src/layer/featureStoreFeatureVisibility.ts +2 -1
  635. package/src/layer/featureStoreLayer.ts +18 -14
  636. package/src/layer/featureStoreLayerChanges.ts +7 -7
  637. package/src/layer/featureVisibility.ts +3 -2
  638. package/src/layer/flatGeobufHelpers.ts +46 -6
  639. package/src/layer/flatGeobufLayer.ts +2 -1
  640. package/src/layer/geojsonHelpers.ts +11 -8
  641. package/src/layer/geojsonLayer.ts +8 -5
  642. package/src/layer/globalHider.ts +5 -3
  643. package/src/layer/layer.ts +14 -14
  644. package/src/layer/oblique/obliqueHelpers.ts +2 -0
  645. package/src/layer/oblique/sourceObliqueSync.ts +9 -9
  646. package/src/layer/oblique/vectorObliqueImpl.ts +6 -8
  647. package/src/layer/openStreetMapLayer.ts +7 -8
  648. package/src/layer/openlayers/cogOpenlayersImpl.ts +75 -0
  649. package/src/layer/openlayers/layerOpenlayersImpl.ts +9 -7
  650. package/src/layer/openlayers/loadFunctionHelpers.ts +0 -1
  651. package/src/layer/openlayers/tileDebugOpenlayersImpl.ts +3 -3
  652. package/src/layer/openlayers/vectorOpenlayersImpl.ts +1 -1
  653. package/src/layer/openlayers/vectorTileOpenlayersImpl.ts +3 -3
  654. package/src/layer/openlayers/wmsOpenlayersImpl.ts +1 -1
  655. package/src/layer/panorama/panoramaDatasetPanoramaImpl.ts +49 -0
  656. package/src/layer/panorama/vectorTilePanoramaImpl.ts +163 -0
  657. package/src/layer/panoramaDatasetLayer.ts +272 -0
  658. package/src/layer/pointCloudLayer.ts +9 -12
  659. package/src/layer/rasterLayer.ts +6 -5
  660. package/src/layer/singleImageLayer.ts +3 -2
  661. package/src/layer/terrainHelpers.ts +2 -1
  662. package/src/layer/terrainLayer.ts +3 -2
  663. package/src/layer/tileLoadedHelper.ts +2 -2
  664. package/src/layer/tileProvider/flatGeobufTileProvider.ts +22 -10
  665. package/src/layer/tileProvider/mvtTileProvider.ts +4 -6
  666. package/src/layer/tileProvider/staticFeatureTileProvider.ts +3 -3
  667. package/src/layer/tileProvider/staticGeojsonTileProvider.ts +2 -2
  668. package/src/layer/tileProvider/tileProvider.ts +15 -10
  669. package/src/layer/tileProvider/urlTemplateTileProvider.ts +2 -1
  670. package/src/layer/tmsLayer.ts +3 -3
  671. package/src/layer/vectorHelpers.ts +3 -4
  672. package/src/layer/vectorLayer.ts +14 -15
  673. package/src/layer/vectorProperties.ts +27 -16
  674. package/src/layer/vectorSymbols.ts +10 -0
  675. package/src/layer/vectorTileLayer.ts +39 -29
  676. package/src/layer/wfsLayer.ts +10 -7
  677. package/src/layer/wmsHelpers.ts +2 -2
  678. package/src/layer/wmsLayer.ts +5 -5
  679. package/src/layer/wmtsLayer.ts +3 -3
  680. package/src/map/baseOLMap.ts +18 -9
  681. package/src/map/cameraLimiter.ts +1 -1
  682. package/src/map/cesiumMap.ts +49 -265
  683. package/src/map/cesiumMapHelpers.ts +219 -0
  684. package/src/map/navigation/cameraHelper.ts +2 -3
  685. package/src/map/navigation/cesiumNavigation.ts +5 -4
  686. package/src/map/navigation/controller/controller.ts +3 -6
  687. package/src/map/navigation/controller/keyboardController.ts +7 -7
  688. package/src/map/navigation/easingHelper.ts +2 -5
  689. package/src/map/navigation/navigation.ts +18 -14
  690. package/src/map/navigation/navigationImpl.ts +2 -2
  691. package/src/map/navigation/obliqueNavigation.ts +7 -6
  692. package/src/map/navigation/openlayersNavigation.ts +4 -3
  693. package/src/map/navigation/viewHelper.ts +2 -3
  694. package/src/map/obliqueMap.ts +7 -9
  695. package/src/map/panoramaMap.ts +415 -0
  696. package/src/map/vcsMap.ts +19 -16
  697. package/src/moduleIdSymbol.ts +0 -1
  698. package/src/oblique/defaultObliqueCollection.ts +1 -0
  699. package/src/oblique/helpers.ts +2 -4
  700. package/src/oblique/obliqueCollection.ts +7 -7
  701. package/src/oblique/obliqueDataSet.ts +7 -6
  702. package/src/oblique/obliqueImage.ts +1 -1
  703. package/src/oblique/obliqueProvider.ts +3 -3
  704. package/src/oblique/obliqueView.ts +1 -0
  705. package/src/oblique/parseImageJson.ts +11 -12
  706. package/src/ol/feature.ts +1 -0
  707. package/src/ol/geojson.d.ts +3 -2
  708. package/src/ol/geom/circle.ts +1 -1
  709. package/src/ol/ol.d.ts +27 -29
  710. package/src/ol/render/canvas/canvasTileRenderer.js +0 -1
  711. package/src/ol/source/ClusterEnhancedVectorSource.ts +1 -1
  712. package/src/ol/source/VcsCluster.ts +4 -4
  713. package/src/overrideClassRegistry.ts +14 -10
  714. package/src/panorama/fieldOfView.ts +254 -0
  715. package/src/panorama/panoramaCameraController.ts +206 -0
  716. package/src/panorama/panoramaImage.ts +531 -0
  717. package/src/panorama/panoramaImageView.ts +445 -0
  718. package/src/panorama/panoramaTile.ts +154 -0
  719. package/src/panorama/panoramaTileCache.ts +40 -0
  720. package/src/panorama/panoramaTileCoordinate.ts +166 -0
  721. package/src/panorama/panoramaTileMaterial.ts +309 -0
  722. package/src/panorama/panoramaTileMaterialFS.glsl +165 -0
  723. package/src/panorama/panoramaTilePrimitiveCollection.ts +158 -0
  724. package/src/panorama/panoramaTileProvider.ts +533 -0
  725. package/src/panorama/sphericalCoordinates.ts +96 -0
  726. package/src/style/arrowStyle.ts +1 -1
  727. package/src/style/declarativeStyleItem.ts +19 -19
  728. package/src/style/styleFactory.ts +6 -7
  729. package/src/style/styleHelpers.ts +9 -9
  730. package/src/style/styleItem.ts +8 -3
  731. package/src/style/vectorStyleItem.ts +24 -30
  732. package/src/style/writeStyle.ts +3 -2
  733. package/src/util/clipping/clippingObject.ts +2 -3
  734. package/src/util/clipping/clippingObjectManager.ts +3 -3
  735. package/src/util/clipping/clippingPolygonHelper.ts +1 -2
  736. package/src/util/clipping/clippingPolygonObject.ts +4 -3
  737. package/src/util/clipping/clippingPolygonObjectCollection.ts +43 -27
  738. package/src/util/collection.ts +1 -1
  739. package/src/util/createAbsoluteFeature.ts +155 -0
  740. package/src/util/displayQuality/displayQuality.ts +7 -8
  741. package/src/util/editor/createFeatureSession.ts +12 -12
  742. package/src/util/editor/editFeaturesSession.ts +6 -4
  743. package/src/util/editor/editGeometrySession.ts +4 -3
  744. package/src/util/editor/editorHelpers.ts +14 -12
  745. package/src/util/editor/editorSessionHelpers.ts +13 -12
  746. package/src/util/editor/interactions/createCircleInteraction.ts +2 -3
  747. package/src/util/editor/interactions/createLineStringInteraction.ts +3 -4
  748. package/src/util/editor/interactions/createPointInteraction.ts +3 -4
  749. package/src/util/editor/interactions/createPolygonInteraction.ts +3 -4
  750. package/src/util/editor/interactions/creationSnapping.ts +4 -7
  751. package/src/util/editor/interactions/editFeaturesMouseOverInteraction.ts +2 -3
  752. package/src/util/editor/interactions/editGeometryMouseOverInteraction.ts +4 -4
  753. package/src/util/editor/interactions/ensureHandlerSelectionInteraction.ts +2 -3
  754. package/src/util/editor/interactions/insertVertexInteraction.ts +3 -4
  755. package/src/util/editor/interactions/layerSnapping.ts +6 -8
  756. package/src/util/editor/interactions/mapInteractionController.ts +5 -3
  757. package/src/util/editor/interactions/removeVertexInteraction.ts +4 -4
  758. package/src/util/editor/interactions/rightClickInteraction.ts +2 -3
  759. package/src/util/editor/interactions/segmentLengthInteraction.ts +2 -3
  760. package/src/util/editor/interactions/selectFeatureMouseOverInteraction.ts +15 -14
  761. package/src/util/editor/interactions/selectMultiFeatureInteraction.ts +9 -9
  762. package/src/util/editor/interactions/selectSingleFeatureInteraction.ts +5 -7
  763. package/src/util/editor/interactions/translateVertexInteraction.ts +4 -4
  764. package/src/util/editor/interactions/translationSnapping.ts +4 -7
  765. package/src/util/editor/selectFeaturesSession.ts +5 -8
  766. package/src/util/editor/snappingHelpers.ts +21 -20
  767. package/src/util/editor/transformation/create2DHandlers.ts +1 -1
  768. package/src/util/editor/transformation/create3DHandlers.ts +3 -3
  769. package/src/util/editor/transformation/extrudeInteraction.ts +5 -5
  770. package/src/util/editor/transformation/rotateInteraction.ts +7 -6
  771. package/src/util/editor/transformation/scaleInteraction.ts +7 -6
  772. package/src/util/editor/transformation/transformationHandler.ts +3 -3
  773. package/src/util/editor/transformation/translateInteraction.ts +7 -11
  774. package/src/util/exclusiveManager.ts +1 -1
  775. package/src/util/featureconverter/arcToCesium.ts +4 -6
  776. package/src/util/featureconverter/circleToCesium.ts +3 -5
  777. package/src/util/featureconverter/clampedPrimitive.ts +6 -5
  778. package/src/util/featureconverter/convert.ts +22 -24
  779. package/src/util/featureconverter/extent3D.ts +3 -3
  780. package/src/util/featureconverter/lineStringToCesium.ts +7 -7
  781. package/src/util/featureconverter/pointHelpers.ts +10 -11
  782. package/src/util/featureconverter/pointToCesium.ts +18 -44
  783. package/src/util/featureconverter/polygonToCesium.ts +3 -5
  784. package/src/util/featureconverter/storeyHelpers.ts +2 -2
  785. package/src/util/featureconverter/vectorGeometryFactory.ts +41 -39
  786. package/src/util/featureconverter/vectorHeightInfo.ts +60 -30
  787. package/src/util/flight/flightAnchor.ts +4 -3
  788. package/src/util/flight/flightCollection.ts +3 -2
  789. package/src/util/flight/flightHelpers.ts +1 -1
  790. package/src/util/flight/flightInstance.ts +7 -4
  791. package/src/util/flight/flightPlayer.ts +2 -2
  792. package/src/util/flight/flightRecorder.ts +234 -0
  793. package/src/util/flight/flightVisualizer.ts +2 -2
  794. package/src/util/geometryHelpers.ts +3 -135
  795. package/src/util/hiddenObjects.ts +3 -4
  796. package/src/util/indexedCollection.ts +1 -1
  797. package/src/util/isMobile.ts +2 -1
  798. package/src/util/layerCollection.ts +7 -2
  799. package/src/util/locale.ts +0 -1
  800. package/src/util/mapCollection.ts +104 -47
  801. package/src/util/math.ts +34 -0
  802. package/src/util/overrideCollection.ts +4 -5
  803. package/src/util/projection.ts +3 -7
  804. package/src/util/renderScreenshot.ts +2 -2
  805. package/src/util/rotation.ts +3 -4
  806. package/src/util/urlHelpers.ts +0 -1
  807. package/src/util/vcsTemplate.ts +6 -5
  808. package/src/util/viewpoint.ts +20 -3
  809. package/src/vcsApp.ts +42 -42
  810. package/src/vcsEvent.ts +1 -1
  811. package/src/vcsModuleHelpers.ts +4 -3
  812. package/src/vectorCluster/vectorClusterCesiumContext.ts +8 -9
  813. package/src/vectorCluster/vectorClusterGroup.ts +26 -16
  814. package/src/vectorCluster/vectorClusterGroupCesiumImpl.ts +10 -10
  815. package/src/vectorCluster/vectorClusterGroupCollection.ts +1 -1
  816. package/src/vectorCluster/vectorClusterGroupImpl.ts +5 -5
  817. package/src/vectorCluster/vectorClusterGroupObliqueImpl.ts +4 -6
  818. package/src/vectorCluster/vectorClusterGroupOpenlayersImpl.ts +2 -2
  819. package/src/vectorCluster/vectorClusterStyleItem.ts +5 -3
  820. package/src/vectorCluster/vectorClusterSymbols.ts +0 -1
  821. package/src/workers/panoramaImageWorker.ts +50 -0
@@ -1,5 +1,5 @@
1
1
  import VcsEvent from './vcsEvent.js';
2
- import { default as ClassRegistry, Ctor, AbstractCtor } from './classRegistry.js';
2
+ import type { default as ClassRegistry, CtorType, AbstractCtor } from './classRegistry.js';
3
3
  declare class OverrideClassRegistry<T extends AbstractCtor> {
4
4
  private _coreClassRegistry;
5
5
  private _classMap;
@@ -17,7 +17,7 @@ declare class OverrideClassRegistry<T extends AbstractCtor> {
17
17
  /**
18
18
  * Register a class for a given module by name. If the class already exists, it will be replaced and replaced called with the classeName.
19
19
  */
20
- registerClass(moduleId: string, className: string, ctor: Ctor<T>): void;
20
+ registerClass(moduleId: string, className: string, ctor: CtorType<T>): void;
21
21
  /**
22
22
  * Unregister a previously registered class. You can only unregister classes added to this registry, not the underlying core registry.
23
23
  * If when registering this class you have replaced class, it will be re-instated and replaced called.
@@ -27,7 +27,7 @@ declare class OverrideClassRegistry<T extends AbstractCtor> {
27
27
  /**
28
28
  * Gets the constructor for a registered class or undefined, if no such class was registerd
29
29
  */
30
- getClass(className: string): Ctor<T> | undefined;
30
+ getClass(className: string): CtorType<T> | undefined;
31
31
  hasClass(className: string): boolean;
32
32
  /**
33
33
  * Create an object of the given className. The constructor is passed args.
@@ -108,6 +108,7 @@ class OverrideClassRegistry {
108
108
  */
109
109
  create(className, ...args) {
110
110
  check(className, String);
111
+ // eslint-disable-next-line @typescript-eslint/naming-convention
111
112
  const Constructor = this.getClass(className);
112
113
  if (!Constructor) {
113
114
  logger().error(`could not find constructor ${className}`);
@@ -1 +1 @@
1
- {"version":3,"file":"overrideClassRegistry.js","sourceRoot":"","sources":["../../src/overrideClassRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overrideClassRegistry.js","sourceRoot":"","sources":["../../src/overrideClassRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type { Extent } from 'ol/extent.js';
2
+ import type { Camera, Cartesian2, Matrix4 } from '@vcmap-cesium/engine';
3
+ import { Cartesian3 } from '@vcmap-cesium/engine';
4
+ /**
5
+ * The field of view of a camera in global cartesian coordinates
6
+ */
7
+ export type Fov = {
8
+ top: Cartesian3;
9
+ right: Cartesian3;
10
+ bottom: Cartesian3;
11
+ left: Cartesian3;
12
+ topLeft: Cartesian3;
13
+ topRight: Cartesian3;
14
+ bottomLeft: Cartesian3;
15
+ bottomRight: Cartesian3;
16
+ center: Cartesian3;
17
+ };
18
+ /**
19
+ * The field of view of a camera in image spherical coordinates ordered ([phi, theta]).
20
+ * See the sphericalCoordinates module for more information on how for more information.
21
+ */
22
+ export type ProjectedFov = Record<keyof Fov, [number, number]>;
23
+ export declare function createEmptyFov(): Fov;
24
+ export declare function createEmptyProjectedFov(): ProjectedFov;
25
+ /**
26
+ * Returns the field of view of a camera in global cartesian coordinates assuming a perspective frustum & a distance of 1.
27
+ * an interpretation of https://gamedev.stackexchange.com/a/55248
28
+ * technically only used for debugging outside of this module.
29
+ */
30
+ export declare function getFov(camera: Camera, result?: Fov): Fov;
31
+ /**
32
+ * Returns the field of view of a camera projected into the image spherical coordinates
33
+ * technically only used for debugging outside of this module.
34
+ * @param camera
35
+ * @param invModelMatrix - the inverse model matrix of the image.
36
+ * @returns The projected fov in image spherical coordinates.
37
+ */
38
+ export declare function getProjectedFov(camera: Camera, invModelMatrix: Matrix4): ProjectedFov;
39
+ /**
40
+ * Returns the extent of the fov in image spherical coordinates. May return two extents, if the FOV wraps around along the longitude.
41
+ * it DOES NOT handle the case where the fov wraps around the poles (the pole is in the fov).
42
+ * Furthermore, the camera has to be aligned with the up axis of the sphere. it is not allowed to be rolled.
43
+ * @param camera
44
+ * @param invModelMatrix - the inverse model matrix of the panorama image to create the projected fov for
45
+ * @returns The extent of the fov in image spherical coordinates and the center. if providing more than on extent, the first will be up until 2 * PI and the second starting at 0.
46
+ */
47
+ export declare function getFovImageSphericalExtent(camera: Camera, invModelMatrix: Matrix4): {
48
+ extents: [Extent] | [Extent, Extent];
49
+ center: [number, number];
50
+ };
51
+ /**
52
+ * creates a ray from the camera to the window position and try to intersect it with the unit sphere.
53
+ * @param windowPosition
54
+ * @param camera
55
+ * @param invModelMatrix
56
+ */
57
+ export declare function windowPositionToImageSpherical(windowPosition: Cartesian2, camera: Camera, invModelMatrix: Matrix4): [number, number] | undefined;
@@ -0,0 +1,135 @@
1
+ import { Cartesian3, Math as CesiumMath } from '@vcmap-cesium/engine';
2
+ import { globalCartesianToImageSpherical } from './sphericalCoordinates.js';
3
+ export function createEmptyFov() {
4
+ return {
5
+ top: new Cartesian3(),
6
+ right: new Cartesian3(),
7
+ bottom: new Cartesian3(),
8
+ left: new Cartesian3(),
9
+ topLeft: new Cartesian3(),
10
+ topRight: new Cartesian3(),
11
+ bottomLeft: new Cartesian3(),
12
+ bottomRight: new Cartesian3(),
13
+ center: new Cartesian3(),
14
+ };
15
+ }
16
+ export function createEmptyProjectedFov() {
17
+ return {
18
+ top: [0, 0],
19
+ right: [0, 0],
20
+ bottom: [0, 0],
21
+ left: [0, 0],
22
+ topLeft: [0, 0],
23
+ topRight: [0, 0],
24
+ bottomLeft: [0, 0],
25
+ bottomRight: [0, 0],
26
+ center: [0, 0],
27
+ };
28
+ }
29
+ const scratchUpHalfHeight = new Cartesian3();
30
+ const scratchRightHalfWidth = new Cartesian3();
31
+ /**
32
+ * Returns the field of view of a camera in global cartesian coordinates assuming a perspective frustum & a distance of 1.
33
+ * an interpretation of https://gamedev.stackexchange.com/a/55248
34
+ * technically only used for debugging outside of this module.
35
+ */
36
+ export function getFov(camera, result) {
37
+ const frustum = camera.frustum;
38
+ const hNear = 2 * Math.tan(frustum.fov / 2) * frustum.near;
39
+ const wNear = hNear * frustum.aspectRatio;
40
+ const hNearHalf = hNear / 2;
41
+ const wNearHalf = wNear / 2;
42
+ const output = result ?? createEmptyFov();
43
+ const cNear = Cartesian3.add(camera.position, Cartesian3.multiplyByScalar(camera.direction, frustum.near, output.center), output.center);
44
+ const upHalf = Cartesian3.multiplyByScalar(camera.up, hNearHalf, scratchUpHalfHeight);
45
+ const rightHalf = Cartesian3.multiplyByScalar(camera.right, wNearHalf, scratchRightHalfWidth);
46
+ output.top = Cartesian3.add(cNear, upHalf, output.top);
47
+ output.right = Cartesian3.add(cNear, rightHalf, output.right);
48
+ output.bottom = Cartesian3.subtract(cNear, upHalf, output.bottom);
49
+ output.left = Cartesian3.subtract(cNear, rightHalf, output.left);
50
+ output.topLeft = Cartesian3.subtract(Cartesian3.add(cNear, upHalf, output.topLeft), rightHalf, output.topLeft);
51
+ output.topRight = Cartesian3.add(Cartesian3.add(cNear, upHalf, output.topRight), rightHalf, output.topRight);
52
+ output.bottomLeft = Cartesian3.subtract(Cartesian3.subtract(cNear, upHalf, output.bottomLeft), rightHalf, output.bottomLeft);
53
+ output.bottomRight = Cartesian3.add(Cartesian3.subtract(cNear, upHalf, output.bottomRight), rightHalf, output.bottomRight);
54
+ output.center = cNear;
55
+ return output;
56
+ }
57
+ function projectFov(fov, invModelMatrix, result) {
58
+ const projected = result ?? createEmptyProjectedFov();
59
+ for (const [key, corner] of Object.entries(fov)) {
60
+ projected[key] = globalCartesianToImageSpherical(corner, invModelMatrix);
61
+ }
62
+ return projected;
63
+ }
64
+ /**
65
+ * Returns the field of view of a camera projected into the image spherical coordinates
66
+ * technically only used for debugging outside of this module.
67
+ * @param camera
68
+ * @param invModelMatrix - the inverse model matrix of the image.
69
+ * @returns The projected fov in image spherical coordinates.
70
+ */
71
+ export function getProjectedFov(camera, invModelMatrix) {
72
+ const fov = getFov(camera);
73
+ return projectFov(fov, invModelMatrix);
74
+ }
75
+ const scratchExtentFov = createEmptyFov();
76
+ const scratchExtentProjectedFov = createEmptyProjectedFov();
77
+ function getRightBound(projectedFov) {
78
+ return Math.max(projectedFov.right[0], projectedFov.topRight[0], projectedFov.bottomRight[0]);
79
+ }
80
+ function getLeftBound(projectedFov) {
81
+ return Math.min(projectedFov.left[0], projectedFov.topLeft[0], projectedFov.bottomLeft[0]);
82
+ }
83
+ function getTopBound(projectedFov) {
84
+ return Math.min(projectedFov.top[1], projectedFov.topLeft[1], projectedFov.topRight[1]);
85
+ }
86
+ function getBottomBound(projectedFov) {
87
+ return Math.max(projectedFov.bottom[1], projectedFov.bottomLeft[1], projectedFov.bottomRight[1]);
88
+ }
89
+ /**
90
+ * Returns the extent of the fov in image spherical coordinates. May return two extents, if the FOV wraps around along the longitude.
91
+ * it DOES NOT handle the case where the fov wraps around the poles (the pole is in the fov).
92
+ * Furthermore, the camera has to be aligned with the up axis of the sphere. it is not allowed to be rolled.
93
+ * @param camera
94
+ * @param invModelMatrix - the inverse model matrix of the panorama image to create the projected fov for
95
+ * @returns The extent of the fov in image spherical coordinates and the center. if providing more than on extent, the first will be up until 2 * PI and the second starting at 0.
96
+ */
97
+ export function getFovImageSphericalExtent(camera, invModelMatrix) {
98
+ const fov = getFov(camera, scratchExtentFov);
99
+ const projectedFov = projectFov(fov, invModelMatrix, scratchExtentProjectedFov);
100
+ const simpleExtent = [
101
+ getLeftBound(projectedFov),
102
+ getTopBound(projectedFov),
103
+ getRightBound(projectedFov),
104
+ getBottomBound(projectedFov),
105
+ ];
106
+ let extents;
107
+ if (simpleExtent[0] > simpleExtent[2]) {
108
+ extents = [
109
+ [simpleExtent[0], simpleExtent[1], CesiumMath.TWO_PI, simpleExtent[3]],
110
+ [0, simpleExtent[1], simpleExtent[2], simpleExtent[3]],
111
+ ];
112
+ }
113
+ else {
114
+ extents = [simpleExtent];
115
+ }
116
+ return {
117
+ extents,
118
+ center: projectedFov.center,
119
+ };
120
+ }
121
+ /**
122
+ * creates a ray from the camera to the window position and try to intersect it with the unit sphere.
123
+ * @param windowPosition
124
+ * @param camera
125
+ * @param invModelMatrix
126
+ */
127
+ export function windowPositionToImageSpherical(windowPosition, camera, invModelMatrix) {
128
+ const ray = camera.getPickRay(windowPosition);
129
+ if (!ray) {
130
+ return undefined;
131
+ }
132
+ const intersectionPoint = Cartesian3.add(ray.origin, ray.direction, new Cartesian3());
133
+ return globalCartesianToImageSpherical(intersectionPoint, invModelMatrix);
134
+ }
135
+ //# sourceMappingURL=fieldOfView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldOfView.js","sourceRoot":"","sources":["../../../src/panorama/fieldOfView.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type PanoramaMap from '../map/panoramaMap.js';
2
+ /**
3
+ * maximum pitch allowed for the camera in radians
4
+ */
5
+ export declare const MAX_PITCH: number;
6
+ /**
7
+ * minimum pitch allowed for the camera in radians
8
+ */
9
+ export declare const MIN_PITCH: number;
10
+ /**
11
+ * maximum field of view allowed for the camera in radians
12
+ */
13
+ export declare const MAX_FOV: number;
14
+ /**
15
+ * minimum field of view allowed for the camera in radians
16
+ */
17
+ export declare const MIN_FOV: number;
18
+ /**
19
+ * The panorama camera controller allows to control the camera of a panorama map
20
+ * by dragging the mouse and zooming in and out with the mouse wheel.
21
+ */
22
+ export type PanoramaCameraController = {
23
+ /**
24
+ * Zooms in, until MIN_FOV of 10 degrees is reached
25
+ * @param [step=0.1] - optional step in radians
26
+ */
27
+ zoomIn: (step?: number) => void;
28
+ /**
29
+ * Zooms out, until MAX_FOV of 120 degrees is reached
30
+ * @param [step=0.1] - optional step in radians
31
+ */
32
+ zoomOut: (step?: number) => void;
33
+ destroy: () => void;
34
+ };
35
+ export declare function createPanoramaCameraController(map: PanoramaMap): PanoramaCameraController;
@@ -0,0 +1,146 @@
1
+ import { Cartesian2, Math as CesiumMath, ScreenSpaceEventType, } from '@vcmap-cesium/engine';
2
+ import { windowPositionToImageSpherical } from './fieldOfView.js';
3
+ import { PointerEventType, PointerKeyType, } from '../interaction/interactionType.js';
4
+ /**
5
+ * maximum pitch allowed for the camera in radians
6
+ */
7
+ export const MAX_PITCH = CesiumMath.toRadians(85);
8
+ /**
9
+ * minimum pitch allowed for the camera in radians
10
+ */
11
+ export const MIN_PITCH = -MAX_PITCH;
12
+ /**
13
+ * maximum field of view allowed for the camera in radians
14
+ */
15
+ export const MAX_FOV = CesiumMath.toRadians(120);
16
+ /**
17
+ * minimum field of view allowed for the camera in radians
18
+ */
19
+ export const MIN_FOV = CesiumMath.toRadians(10);
20
+ /**
21
+ * decay factor for the inertia delay
22
+ */
23
+ const INERTIA_DECAY = 0.8;
24
+ /**
25
+ * number of frames to decay the inertia
26
+ */
27
+ const DECAY_FRAMES = 60;
28
+ export function createPanoramaCameraController(map) {
29
+ const widget = map.getCesiumWidget();
30
+ const { camera } = widget;
31
+ const frustum = camera.frustum;
32
+ const pointerInput = {
33
+ startPosition: new Cartesian2(),
34
+ position: new Cartesian2(),
35
+ leftDown: false,
36
+ };
37
+ map.pointerInteractionEvent.addEventListener((event) => {
38
+ if (event.pointer === PointerKeyType.LEFT) {
39
+ if (event.pointerEvent === PointerEventType.DOWN) {
40
+ pointerInput.leftDown = true;
41
+ // set the spherical position of the pointer on the sphere here.
42
+ pointerInput.position = event.windowPosition.clone(pointerInput.position);
43
+ pointerInput.startPosition = event.windowPosition.clone(pointerInput.startPosition);
44
+ }
45
+ else {
46
+ pointerInput.leftDown = false;
47
+ }
48
+ }
49
+ else if (event.pointerEvent === PointerEventType.MOVE &&
50
+ pointerInput.leftDown) {
51
+ pointerInput.position = event.windowPosition.clone(pointerInput.position);
52
+ }
53
+ });
54
+ function panoZoom(event, step = 0.1) {
55
+ if (event > 0 && frustum.fov > MIN_FOV) {
56
+ frustum.fov -= step;
57
+ if (frustum.fov < MIN_FOV) {
58
+ frustum.fov = MIN_FOV;
59
+ }
60
+ map.panoramaView.render();
61
+ }
62
+ else if (event < 0 && frustum.fov < MAX_FOV) {
63
+ frustum.fov += step;
64
+ if (frustum.fov > MAX_FOV) {
65
+ frustum.fov = MAX_FOV;
66
+ }
67
+ map.panoramaView.render();
68
+ }
69
+ }
70
+ map.screenSpaceEventHandler.setInputAction((event) => {
71
+ if (!map.movementPointerEventsDisabled) {
72
+ panoZoom(event);
73
+ }
74
+ }, ScreenSpaceEventType.WHEEL);
75
+ let yInertia = 0;
76
+ let xInertia = 0;
77
+ let decay = 0;
78
+ function ensurePitch() {
79
+ if (camera.pitch > MAX_PITCH) {
80
+ camera.look(camera.right, camera.pitch - MAX_PITCH);
81
+ }
82
+ else if (camera.pitch < MIN_PITCH) {
83
+ camera.look(camera.right, camera.pitch - MIN_PITCH);
84
+ }
85
+ }
86
+ let currentImage = map.currentPanoramaImage;
87
+ const imageListener = map.currentImageChanged.addEventListener((image) => {
88
+ currentImage = image;
89
+ });
90
+ let animationFrameHandle;
91
+ const loop = () => {
92
+ if (currentImage &&
93
+ !widget.scene.screenSpaceCameraController.enableInputs &&
94
+ !map.movementPointerEventsDisabled) {
95
+ if (pointerInput.leftDown) {
96
+ const { position, startPosition } = pointerInput;
97
+ const startImagePosition = windowPositionToImageSpherical(startPosition, camera, currentImage.invModelMatrix);
98
+ const newImagePosition = windowPositionToImageSpherical(position, camera, currentImage.invModelMatrix);
99
+ if (startImagePosition && newImagePosition) {
100
+ let diffX = startImagePosition[0] - newImagePosition[0];
101
+ if (diffX > CesiumMath.PI) {
102
+ diffX -= CesiumMath.TWO_PI;
103
+ }
104
+ else if (diffX < -CesiumMath.PI) {
105
+ diffX += CesiumMath.TWO_PI;
106
+ }
107
+ const diffY = startImagePosition[1] - newImagePosition[1];
108
+ widget.camera.look(currentImage.up, diffX);
109
+ widget.camera.look(camera.right, diffY);
110
+ yInertia = diffY;
111
+ xInertia = diffX;
112
+ decay = 0;
113
+ ensurePitch();
114
+ pointerInput.startPosition = position.clone(startPosition);
115
+ }
116
+ }
117
+ else if (decay < DECAY_FRAMES) {
118
+ decay += 1;
119
+ xInertia *= INERTIA_DECAY;
120
+ widget.camera.look(currentImage.up, xInertia);
121
+ yInertia *= INERTIA_DECAY;
122
+ widget.camera.look(camera.right, yInertia);
123
+ ensurePitch();
124
+ }
125
+ }
126
+ animationFrameHandle = requestAnimationFrame(loop);
127
+ };
128
+ loop();
129
+ return {
130
+ zoomIn(step = 0.1) {
131
+ if (!map.movementApiCallsDisabled) {
132
+ panoZoom(1, step);
133
+ }
134
+ },
135
+ zoomOut(step = 0.1) {
136
+ if (!map.movementApiCallsDisabled) {
137
+ panoZoom(-1, step);
138
+ }
139
+ },
140
+ destroy() {
141
+ cancelAnimationFrame(animationFrameHandle);
142
+ imageListener();
143
+ },
144
+ };
145
+ }
146
+ //# sourceMappingURL=panoramaCameraController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panoramaCameraController.js","sourceRoot":"","sources":["../../../src/panorama/panoramaCameraController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ import { Cartesian3, HeadingPitchRoll, Matrix4 } from '@vcmap-cesium/engine';
2
+ import type { Pool, GeoTIFF } from 'geotiff';
3
+ import type { Size } from 'ol/size.js';
4
+ import type { PanoramaImageDecoder, PanoramaTileProvider } from './panoramaTileProvider.js';
5
+ import type PanoramaDatasetLayer from '../layer/panoramaDatasetLayer.js';
6
+ type PanoramaGDALMetadata = {
7
+ /**
8
+ * The metadata version
9
+ */
10
+ version: string;
11
+ /**
12
+ * position ECEF
13
+ */
14
+ position: Cartesian3;
15
+ /**
16
+ * HeadingPitchRoll in radians
17
+ */
18
+ orientation: HeadingPitchRoll;
19
+ /**
20
+ * This image has depth information available
21
+ */
22
+ hasDepth: boolean;
23
+ /**
24
+ * This image has intensity information available
25
+ */
26
+ hasIntensity: boolean;
27
+ };
28
+ type PanoramaImageMetadata = {
29
+ tileSize: Size;
30
+ minLevel: number;
31
+ maxLevel: number;
32
+ };
33
+ export type DepthGDALMetadata = {
34
+ version: string;
35
+ min: number;
36
+ max: number;
37
+ };
38
+ export type PanoramaFileDirectoryMetadata = {
39
+ type: 'image' | 'depth';
40
+ };
41
+ /**
42
+ * The panorama image represents all resources associated with a panorama image.
43
+ * When created, it extracts all available metadata from the base geotiff resource
44
+ * and loads associated structures, such as the tile provider for RGB and intensity images (if available & on demand)
45
+ * and the panorama depth of the image (if available).
46
+ */
47
+ export type PanoramaImage = Readonly<PanoramaImageMetadata & Omit<PanoramaGDALMetadata, 'version'>> & {
48
+ /**
49
+ * The image name
50
+ */
51
+ readonly name: string;
52
+ readonly up: Cartesian3;
53
+ readonly modelMatrix: Matrix4;
54
+ readonly invModelMatrix: Matrix4;
55
+ readonly image: GeoTIFF;
56
+ /**
57
+ * The tile provider for the RGB images
58
+ */
59
+ readonly tileProvider: PanoramaTileProvider;
60
+ /**
61
+ * The maximum depth of the image. Either taken from the depth image header or the default
62
+ */
63
+ readonly maxDepth: number;
64
+ /**
65
+ * The parent dataset, if available
66
+ */
67
+ readonly dataset?: PanoramaDatasetLayer;
68
+ /**
69
+ * Tries to determine the global position at the given image spherical coordinate. Will return undefined, if the image has no depth.
70
+ * Uses the current level on the tile provider
71
+ * @param coordinate
72
+ * @param result
73
+ */
74
+ getPositionAtImageCoordinate(coordinate: [number, number], result?: Cartesian3): Promise<Cartesian3 | undefined>;
75
+ /**
76
+ * Tries to determine the global position at the given image spherical coordinate. Will return undefined, if the image has no depth
77
+ * Uses the heighest available depth data, but is more resource intense
78
+ * @param coordinate
79
+ * @param result
80
+ */
81
+ getPositionAtImageCoordinateMostDetailed(coordinate: [number, number], result?: Cartesian3): Promise<Cartesian3 | undefined>;
82
+ destroy(): void;
83
+ };
84
+ /**
85
+ * additional image creating options, mainly used for testing.
86
+ */
87
+ export type CreatePanoramaImageOptions = {
88
+ /**
89
+ * The dataset an image may belong to
90
+ */
91
+ dataset?: PanoramaDatasetLayer;
92
+ /**
93
+ * The root URL for the image. This is used to load the intensity and depth images.
94
+ */
95
+ absoluteRootUrl?: string;
96
+ /**
97
+ * a preloaded depth image for this RGB image.
98
+ */
99
+ depthImage?: GeoTIFF;
100
+ /**
101
+ * a preloaded intensity image for this RGB image.
102
+ */
103
+ intensityImage?: GeoTIFF;
104
+ /**
105
+ * the name of the image. This is used to load intensity and depth images. if not provided, a uuid is used.
106
+ */
107
+ name?: string;
108
+ /**
109
+ * an optional pool or decoder to be passed to the tile provider. mainly used in testing
110
+ */
111
+ poolOrDecoder?: Pool | PanoramaImageDecoder;
112
+ /**
113
+ * The size of the tile cache. If not provided, the default is used.
114
+ */
115
+ tileCacheSize?: number;
116
+ /**
117
+ * The concurrency of the tile provider. If not provided, the default is used.
118
+ */
119
+ providerConcurrency?: number;
120
+ };
121
+ /**
122
+ * This is an internal function to create a panorama image for specific use cases (e.g. testing).
123
+ * In most cases, you should use {@link createPanoramaImageFromURL} directly.
124
+ * Creates a panorama image from a GeoTIFF image. The image should contain the metadata in the GDAL metadata format.
125
+ * @param rgbImage - the RGB image
126
+ * @param [options]
127
+ */
128
+ export declare function createPanoramaImage(rgbImage: GeoTIFF, options?: CreatePanoramaImageOptions): Promise<PanoramaImage>;
129
+ /**
130
+ * Creates a panorama image from a URL. The URL must point to a RGB image with the name ending in "_rgb.tif".
131
+ * @param rgbImageUrl - the url to the RGB image
132
+ * @param [dataset] - the dataset to which the image belongs, if applicable
133
+ */
134
+ export declare function createPanoramaImageFromURL(rgbImageUrl: string, dataset?: PanoramaDatasetLayer): Promise<PanoramaImage>;
135
+ export {};