@vcmap/core 5.3.3 → 6.0.0-rc.10

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 (400) hide show
  1. package/dist/cesium.d.ts +12 -0
  2. package/dist/index.d.ts +27 -19
  3. package/dist/index.js +22 -14
  4. package/dist/index.js.map +1 -1
  5. package/dist/ol.d.ts +15 -2
  6. package/dist/src/category/category.d.ts +5 -4
  7. package/dist/src/category/category.js +2 -1
  8. package/dist/src/category/category.js.map +1 -1
  9. package/dist/src/category/categoryCollection.js.map +1 -1
  10. package/dist/src/cesium/cesiumVcsCameraPrimitive.d.ts +1 -0
  11. package/dist/src/cesium/cesiumVcsCameraPrimitive.js +4 -0
  12. package/dist/src/cesium/cesiumVcsCameraPrimitive.js.map +1 -1
  13. package/dist/src/classRegistry.d.ts +4 -3
  14. package/dist/src/classRegistry.js +2 -0
  15. package/dist/src/classRegistry.js.map +1 -1
  16. package/dist/src/featureProvider/abstractFeatureProvider.js.map +1 -1
  17. package/dist/src/featureProvider/wmsFeatureProvider.js.map +1 -1
  18. package/dist/src/interaction/abstractInteraction.js.map +1 -1
  19. package/dist/src/interaction/coordinateAtPixel.js.map +1 -1
  20. package/dist/src/interaction/eventHandler.js.map +1 -1
  21. package/dist/src/interaction/featureAtPixelInteraction.d.ts +4 -12
  22. package/dist/src/interaction/featureAtPixelInteraction.js +5 -21
  23. package/dist/src/interaction/featureAtPixelInteraction.js.map +1 -1
  24. package/dist/src/interaction/featureProviderInteraction.js.map +1 -1
  25. package/dist/src/interaction/interactionChain.js.map +1 -1
  26. package/dist/src/interaction/interactionType.js +4 -4
  27. package/dist/src/interaction/interactionType.js.map +1 -1
  28. package/dist/src/layer/cesium/cesiumTilesetCesiumImpl.js.map +1 -1
  29. package/dist/src/layer/cesium/clusterContext.d.ts +12 -16
  30. package/dist/src/layer/cesium/clusterContext.js +75 -43
  31. package/dist/src/layer/cesium/clusterContext.js.map +1 -1
  32. package/dist/src/layer/cesium/dataSourceCesiumImpl.js.map +1 -1
  33. package/dist/src/layer/cesium/rasterLayerCesiumImpl.js.map +1 -1
  34. package/dist/src/layer/cesium/resourceHelper.js.map +1 -1
  35. package/dist/src/layer/cesium/singleImageCesiumImpl.js.map +1 -1
  36. package/dist/src/layer/cesium/terrainCesiumImpl.js.map +1 -1
  37. package/dist/src/layer/cesium/tmsCesiumImpl.js.map +1 -1
  38. package/dist/src/layer/cesium/vectorCesiumImpl.d.ts +2 -3
  39. package/dist/src/layer/cesium/vectorCesiumImpl.js +16 -10
  40. package/dist/src/layer/cesium/vectorCesiumImpl.js.map +1 -1
  41. package/dist/src/layer/cesium/vectorContext.d.ts +11 -54
  42. package/dist/src/layer/cesium/vectorContext.js +154 -171
  43. package/dist/src/layer/cesium/vectorContext.js.map +1 -1
  44. package/dist/src/layer/cesium/vectorRasterTileCesiumImpl.js.map +1 -1
  45. package/dist/src/layer/cesium/vectorTileImageryProvider.js.map +1 -1
  46. package/dist/src/layer/cesium/wmsCesiumImpl.js.map +1 -1
  47. package/dist/src/layer/cesiumTilesetLayer.js.map +1 -1
  48. package/dist/src/layer/czmlLayer.js.map +1 -1
  49. package/dist/src/layer/dataSourceLayer.js.map +1 -1
  50. package/dist/src/layer/featureLayer.js.map +1 -1
  51. package/dist/src/layer/featureStoreFeatureVisibility.js.map +1 -1
  52. package/dist/src/layer/featureStoreLayer.js.map +1 -1
  53. package/dist/src/layer/featureStoreLayerChanges.js.map +1 -1
  54. package/dist/src/layer/featureVisibility.js +4 -5
  55. package/dist/src/layer/featureVisibility.js.map +1 -1
  56. package/dist/src/layer/geojsonHelpers.d.ts +1 -1
  57. package/dist/src/layer/geojsonHelpers.js +5 -10
  58. package/dist/src/layer/geojsonHelpers.js.map +1 -1
  59. package/dist/src/layer/geojsonLayer.js.map +1 -1
  60. package/dist/src/layer/globalHider.js.map +1 -1
  61. package/dist/src/layer/layer.js.map +1 -1
  62. package/dist/src/layer/layerImplementation.js.map +1 -1
  63. package/dist/src/layer/oblique/layerObliqueImpl.js.map +1 -1
  64. package/dist/src/layer/oblique/obliqueHelpers.js +9 -9
  65. package/dist/src/layer/oblique/obliqueHelpers.js.map +1 -1
  66. package/dist/src/layer/oblique/vectorObliqueImpl.d.ts +3 -3
  67. package/dist/src/layer/oblique/vectorObliqueImpl.js.map +1 -1
  68. package/dist/src/layer/openStreetMapLayer.js.map +1 -1
  69. package/dist/src/layer/openlayers/layerOpenlayersImpl.js.map +1 -1
  70. package/dist/src/layer/openlayers/rasterLayerOpenlayersImpl.js.map +1 -1
  71. package/dist/src/layer/openlayers/singleImageOpenlayersImpl.js.map +1 -1
  72. package/dist/src/layer/openlayers/tmsOpenlayersImpl.js.map +1 -1
  73. package/dist/src/layer/openlayers/vectorOpenlayersImpl.d.ts +2 -2
  74. package/dist/src/layer/openlayers/vectorOpenlayersImpl.js.map +1 -1
  75. package/dist/src/layer/openlayers/vectorTileOpenlayersImpl.d.ts +1 -7
  76. package/dist/src/layer/openlayers/vectorTileOpenlayersImpl.js +18 -47
  77. package/dist/src/layer/openlayers/vectorTileOpenlayersImpl.js.map +1 -1
  78. package/dist/src/layer/openlayers/wmsOpenlayersImpl.js.map +1 -1
  79. package/dist/src/layer/openlayers/wmtsOpenlayersImpl.js.map +1 -1
  80. package/dist/src/layer/pointCloudLayer.js.map +1 -1
  81. package/dist/src/layer/rasterLayer.js +1 -1
  82. package/dist/src/layer/rasterLayer.js.map +1 -1
  83. package/dist/src/layer/singleImageLayer.js.map +1 -1
  84. package/dist/src/layer/terrainHelpers.js.map +1 -1
  85. package/dist/src/layer/terrainLayer.js.map +1 -1
  86. package/dist/src/layer/tileLoadedHelper.js.map +1 -1
  87. package/dist/src/layer/tileProvider/mvtTileProvider.js.map +1 -1
  88. package/dist/src/layer/tileProvider/staticGeojsonTileProvider.js.map +1 -1
  89. package/dist/src/layer/tileProvider/tileProvider.js.map +1 -1
  90. package/dist/src/layer/tileProvider/urlTemplateTileProvider.js.map +1 -1
  91. package/dist/src/layer/tmsLayer.js.map +1 -1
  92. package/dist/src/layer/vectorHelpers.js.map +1 -1
  93. package/dist/src/layer/vectorLayer.d.ts +0 -37
  94. package/dist/src/layer/vectorLayer.js +1 -3
  95. package/dist/src/layer/vectorLayer.js.map +1 -1
  96. package/dist/src/layer/vectorProperties.d.ts +10 -5
  97. package/dist/src/layer/vectorProperties.js +59 -10
  98. package/dist/src/layer/vectorProperties.js.map +1 -1
  99. package/dist/src/layer/vectorTileLayer.js.map +1 -1
  100. package/dist/src/layer/wfsLayer.js.map +1 -1
  101. package/dist/src/layer/wmsHelpers.js.map +1 -1
  102. package/dist/src/layer/wmsLayer.js.map +1 -1
  103. package/dist/src/layer/wmtsLayer.js.map +1 -1
  104. package/dist/src/map/baseOLMap.js +1 -1
  105. package/dist/src/map/baseOLMap.js.map +1 -1
  106. package/dist/src/map/cameraLimiter.js +1 -1
  107. package/dist/src/map/cameraLimiter.js.map +1 -1
  108. package/dist/src/map/cesiumMap.js.map +1 -1
  109. package/dist/src/map/obliqueMap.js.map +1 -1
  110. package/dist/src/map/openlayersMap.js +1 -1
  111. package/dist/src/map/openlayersMap.js.map +1 -1
  112. package/dist/src/map/vcsMap.js.map +1 -1
  113. package/dist/src/oblique/helpers.js +5 -5
  114. package/dist/src/oblique/helpers.js.map +1 -1
  115. package/dist/src/oblique/obliqueCollection.js.map +1 -1
  116. package/dist/src/oblique/obliqueDataSet.js +5 -5
  117. package/dist/src/oblique/obliqueDataSet.js.map +1 -1
  118. package/dist/src/oblique/obliqueImage.js.map +1 -1
  119. package/dist/src/oblique/obliqueImageMeta.js.map +1 -1
  120. package/dist/src/oblique/obliqueProvider.js.map +1 -1
  121. package/dist/src/oblique/obliqueView.js.map +1 -1
  122. package/dist/src/oblique/obliqueViewDirection.js +1 -1
  123. package/dist/src/oblique/obliqueViewDirection.js.map +1 -1
  124. package/dist/src/oblique/parseImageJson.js.map +1 -1
  125. package/dist/src/ol/feature.js.map +1 -1
  126. package/dist/src/ol/geom/geometryCollection.js +80 -6
  127. package/dist/src/ol/geom/geometryCollection.js.map +1 -1
  128. package/dist/src/ol/render/canvas/canvasTileRenderer.js.map +1 -1
  129. package/dist/src/ol/source/ClusterEnhancedVectorSource.js.map +1 -1
  130. package/dist/src/ol/source/VcsCluster.js.map +1 -1
  131. package/dist/src/overrideClassRegistry.d.ts +2 -2
  132. package/dist/src/overrideClassRegistry.js +5 -3
  133. package/dist/src/overrideClassRegistry.js.map +1 -1
  134. package/dist/src/style/arcStyle.js +1 -0
  135. package/dist/src/style/arcStyle.js.map +1 -1
  136. package/dist/src/style/arrowStyle.js +6 -6
  137. package/dist/src/style/arrowStyle.js.map +1 -1
  138. package/dist/src/style/declarativeStyleItem.js.map +1 -1
  139. package/dist/src/style/shapesCategory.js.map +1 -1
  140. package/dist/src/style/styleFactory.js.map +1 -1
  141. package/dist/src/style/styleHelpers.js +4 -2
  142. package/dist/src/style/styleHelpers.js.map +1 -1
  143. package/dist/src/style/styleItem.js.map +1 -1
  144. package/dist/src/style/vectorStyleItem.js +9 -9
  145. package/dist/src/style/vectorStyleItem.js.map +1 -1
  146. package/dist/src/style/writeStyle.js.map +1 -1
  147. package/dist/src/util/clipping/clippingObject.js.map +1 -1
  148. package/dist/src/util/clipping/clippingObjectManager.js.map +1 -1
  149. package/dist/src/util/clipping/clippingPlaneHelper.js +2 -2
  150. package/dist/src/util/clipping/clippingPlaneHelper.js.map +1 -1
  151. package/dist/src/util/collection.js.map +1 -1
  152. package/dist/src/util/displayQuality/displayQuality.d.ts +1 -0
  153. package/dist/src/util/displayQuality/displayQuality.js +13 -2
  154. package/dist/src/util/displayQuality/displayQuality.js.map +1 -1
  155. package/dist/src/util/editor/createFeatureSession.d.ts +10 -2
  156. package/dist/src/util/editor/createFeatureSession.js +75 -9
  157. package/dist/src/util/editor/createFeatureSession.js.map +1 -1
  158. package/dist/src/util/editor/editFeaturesSession.d.ts +10 -4
  159. package/dist/src/util/editor/editFeaturesSession.js +74 -37
  160. package/dist/src/util/editor/editFeaturesSession.js.map +1 -1
  161. package/dist/src/util/editor/editGeometrySession.d.ts +7 -2
  162. package/dist/src/util/editor/editGeometrySession.js +109 -66
  163. package/dist/src/util/editor/editGeometrySession.js.map +1 -1
  164. package/dist/src/util/editor/editorHelpers.d.ts +13 -6
  165. package/dist/src/util/editor/editorHelpers.js +53 -23
  166. package/dist/src/util/editor/editorHelpers.js.map +1 -1
  167. package/dist/src/util/editor/editorSessionHelpers.d.ts +6 -6
  168. package/dist/src/util/editor/editorSessionHelpers.js +8 -18
  169. package/dist/src/util/editor/editorSessionHelpers.js.map +1 -1
  170. package/dist/src/util/editor/editorSymbols.d.ts +1 -1
  171. package/dist/src/util/editor/editorSymbols.js +1 -1
  172. package/dist/src/util/editor/editorSymbols.js.map +1 -1
  173. package/dist/src/util/editor/interactions/createBBoxInteraction.d.ts +1 -0
  174. package/dist/src/util/editor/interactions/createBBoxInteraction.js +20 -16
  175. package/dist/src/util/editor/interactions/createBBoxInteraction.js.map +1 -1
  176. package/dist/src/util/editor/interactions/createCircleInteraction.js +1 -1
  177. package/dist/src/util/editor/interactions/createCircleInteraction.js.map +1 -1
  178. package/dist/src/util/editor/interactions/createLineStringInteraction.js +3 -3
  179. package/dist/src/util/editor/interactions/createLineStringInteraction.js.map +1 -1
  180. package/dist/src/util/editor/interactions/createPointInteraction.js +1 -1
  181. package/dist/src/util/editor/interactions/createPointInteraction.js.map +1 -1
  182. package/dist/src/util/editor/interactions/createPolygonInteraction.d.ts +4 -0
  183. package/dist/src/util/editor/interactions/createPolygonInteraction.js +9 -3
  184. package/dist/src/util/editor/interactions/createPolygonInteraction.js.map +1 -1
  185. package/dist/src/util/editor/interactions/creationSnapping.d.ts +26 -0
  186. package/dist/src/util/editor/interactions/creationSnapping.js +139 -0
  187. package/dist/src/util/editor/interactions/creationSnapping.js.map +1 -0
  188. package/dist/src/util/editor/interactions/editFeaturesMouseOverInteraction.js.map +1 -1
  189. package/dist/src/util/editor/interactions/editGeometryMouseOverInteraction.js +11 -9
  190. package/dist/src/util/editor/interactions/editGeometryMouseOverInteraction.js.map +1 -1
  191. package/dist/src/util/editor/interactions/ensureHandlerSelectionInteraction.js.map +1 -1
  192. package/dist/src/util/editor/interactions/insertVertexInteraction.d.ts +3 -1
  193. package/dist/src/util/editor/interactions/insertVertexInteraction.js +14 -6
  194. package/dist/src/util/editor/interactions/insertVertexInteraction.js.map +1 -1
  195. package/dist/src/util/editor/interactions/layerSnapping.d.ts +19 -0
  196. package/dist/src/util/editor/interactions/layerSnapping.js +87 -0
  197. package/dist/src/util/editor/interactions/layerSnapping.js.map +1 -0
  198. package/dist/src/util/editor/interactions/mapInteractionController.js.map +1 -1
  199. package/dist/src/util/editor/interactions/removeVertexInteraction.d.ts +1 -1
  200. package/dist/src/util/editor/interactions/removeVertexInteraction.js +2 -2
  201. package/dist/src/util/editor/interactions/removeVertexInteraction.js.map +1 -1
  202. package/dist/src/util/editor/interactions/segmentLengthInteraction.d.ts +16 -0
  203. package/dist/src/util/editor/interactions/segmentLengthInteraction.js +167 -0
  204. package/dist/src/util/editor/interactions/segmentLengthInteraction.js.map +1 -0
  205. package/dist/src/util/editor/interactions/selectFeatureMouseOverInteraction.js +1 -1
  206. package/dist/src/util/editor/interactions/selectFeatureMouseOverInteraction.js.map +1 -1
  207. package/dist/src/util/editor/interactions/selectMultiFeatureInteraction.d.ts +1 -1
  208. package/dist/src/util/editor/interactions/selectMultiFeatureInteraction.js.map +1 -1
  209. package/dist/src/util/editor/interactions/selectSingleFeatureInteraction.d.ts +1 -1
  210. package/dist/src/util/editor/interactions/selectSingleFeatureInteraction.js.map +1 -1
  211. package/dist/src/util/editor/interactions/translateVertexInteraction.js +4 -8
  212. package/dist/src/util/editor/interactions/translateVertexInteraction.js.map +1 -1
  213. package/dist/src/util/editor/interactions/translationSnapping.d.ts +25 -0
  214. package/dist/src/util/editor/interactions/translationSnapping.js +180 -0
  215. package/dist/src/util/editor/interactions/translationSnapping.js.map +1 -0
  216. package/dist/src/util/editor/selectFeaturesSession.js.map +1 -1
  217. package/dist/src/util/editor/snappingHelpers.d.ts +44 -0
  218. package/dist/src/util/editor/snappingHelpers.js +329 -0
  219. package/dist/src/util/editor/snappingHelpers.js.map +1 -0
  220. package/dist/src/util/editor/transformation/create2DHandlers.js +26 -26
  221. package/dist/src/util/editor/transformation/create2DHandlers.js.map +1 -1
  222. package/dist/src/util/editor/transformation/create3DHandlers.js +65 -14
  223. package/dist/src/util/editor/transformation/create3DHandlers.js.map +1 -1
  224. package/dist/src/util/editor/transformation/extrudeInteraction.js.map +1 -1
  225. package/dist/src/util/editor/transformation/rotateInteraction.js.map +1 -1
  226. package/dist/src/util/editor/transformation/scaleInteraction.js +27 -5
  227. package/dist/src/util/editor/transformation/scaleInteraction.js.map +1 -1
  228. package/dist/src/util/editor/transformation/transformationHandler.js +56 -38
  229. package/dist/src/util/editor/transformation/transformationHandler.js.map +1 -1
  230. package/dist/src/util/editor/transformation/transformationTypes.d.ts +2 -0
  231. package/dist/src/util/editor/transformation/transformationTypes.js +6 -2
  232. package/dist/src/util/editor/transformation/transformationTypes.js.map +1 -1
  233. package/dist/src/util/editor/transformation/translateInteraction.js.map +1 -1
  234. package/dist/src/util/editor/validateGeoemetry.js.map +1 -1
  235. package/dist/src/util/exclusiveManager.js.map +1 -1
  236. package/dist/src/util/extent.js.map +1 -1
  237. package/dist/src/util/featureconverter/arcToCesium.d.ts +5 -19
  238. package/dist/src/util/featureconverter/arcToCesium.js +15 -42
  239. package/dist/src/util/featureconverter/arcToCesium.js.map +1 -1
  240. package/dist/src/util/featureconverter/circleToCesium.d.ts +2 -27
  241. package/dist/src/util/featureconverter/circleToCesium.js +85 -64
  242. package/dist/src/util/featureconverter/circleToCesium.js.map +1 -1
  243. package/dist/src/util/featureconverter/clampedPrimitive.d.ts +2 -0
  244. package/dist/src/util/featureconverter/clampedPrimitive.js +29 -0
  245. package/dist/src/util/featureconverter/clampedPrimitive.js.map +1 -0
  246. package/dist/src/util/featureconverter/convert.d.ts +30 -7
  247. package/dist/src/util/featureconverter/convert.js +221 -44
  248. package/dist/src/util/featureconverter/convert.js.map +1 -1
  249. package/dist/src/util/featureconverter/extent3D.d.ts +4 -3
  250. package/dist/src/util/featureconverter/extent3D.js +4 -3
  251. package/dist/src/util/featureconverter/extent3D.js.map +1 -1
  252. package/dist/src/util/featureconverter/lineStringToCesium.d.ts +12 -27
  253. package/dist/src/util/featureconverter/lineStringToCesium.js +85 -107
  254. package/dist/src/util/featureconverter/lineStringToCesium.js.map +1 -1
  255. package/dist/src/util/featureconverter/pointHelpers.d.ts +8 -11
  256. package/dist/src/util/featureconverter/pointHelpers.js +141 -121
  257. package/dist/src/util/featureconverter/pointHelpers.js.map +1 -1
  258. package/dist/src/util/featureconverter/pointToCesium.d.ts +14 -17
  259. package/dist/src/util/featureconverter/pointToCesium.js +50 -98
  260. package/dist/src/util/featureconverter/pointToCesium.js.map +1 -1
  261. package/dist/src/util/featureconverter/polygonToCesium.d.ts +2 -26
  262. package/dist/src/util/featureconverter/polygonToCesium.js +63 -73
  263. package/dist/src/util/featureconverter/polygonToCesium.js.map +1 -1
  264. package/dist/src/util/featureconverter/storeyHelpers.d.ts +17 -0
  265. package/dist/src/util/featureconverter/storeyHelpers.js +78 -0
  266. package/dist/src/util/featureconverter/storeyHelpers.js.map +1 -0
  267. package/dist/src/util/featureconverter/vectorGeometryFactory.d.ts +54 -0
  268. package/dist/src/util/featureconverter/vectorGeometryFactory.js +278 -0
  269. package/dist/src/util/featureconverter/vectorGeometryFactory.js.map +1 -0
  270. package/dist/src/util/featureconverter/vectorHeightInfo.d.ts +86 -0
  271. package/dist/src/util/featureconverter/vectorHeightInfo.js +240 -0
  272. package/dist/src/util/featureconverter/vectorHeightInfo.js.map +1 -0
  273. package/dist/src/util/fetch.js.map +1 -1
  274. package/dist/src/util/flight/flightAnchor.js.map +1 -1
  275. package/dist/src/util/flight/flightCollection.js.map +1 -1
  276. package/dist/src/util/flight/flightHelpers.js.map +1 -1
  277. package/dist/src/util/flight/flightInstance.js.map +1 -1
  278. package/dist/src/util/flight/flightPlayer.d.ts +11 -6
  279. package/dist/src/util/flight/flightPlayer.js +52 -16
  280. package/dist/src/util/flight/flightPlayer.js.map +1 -1
  281. package/dist/src/util/flight/flightVisualizer.js.map +1 -1
  282. package/dist/src/util/geometryHelpers.d.ts +34 -2
  283. package/dist/src/util/geometryHelpers.js +172 -4
  284. package/dist/src/util/geometryHelpers.js.map +1 -1
  285. package/dist/src/util/hiddenObjects.js.map +1 -1
  286. package/dist/src/util/indexedCollection.js.map +1 -1
  287. package/dist/src/util/layerCollection.js.map +1 -1
  288. package/dist/src/util/locale.js.map +1 -1
  289. package/dist/src/util/mapCollection.js.map +1 -1
  290. package/dist/src/util/math.d.ts +18 -2
  291. package/dist/src/util/math.js +55 -12
  292. package/dist/src/util/math.js.map +1 -1
  293. package/dist/src/util/overrideCollection.d.ts +7 -7
  294. package/dist/src/util/overrideCollection.js +10 -7
  295. package/dist/src/util/overrideCollection.js.map +1 -1
  296. package/dist/src/util/projection.js.map +1 -1
  297. package/dist/src/util/urlHelpers.js.map +1 -1
  298. package/dist/src/util/viewpoint.js.map +1 -1
  299. package/dist/src/vcsApp.d.ts +3 -3
  300. package/dist/src/vcsApp.js +1 -0
  301. package/dist/src/vcsApp.js.map +1 -1
  302. package/dist/src/vcsEvent.js.map +1 -1
  303. package/dist/src/vcsModule.js.map +1 -1
  304. package/dist/src/vcsModuleHelpers.d.ts +1 -0
  305. package/dist/src/vcsModuleHelpers.js +16 -2
  306. package/dist/src/vcsModuleHelpers.js.map +1 -1
  307. package/dist/src/vcsObject.js.map +1 -1
  308. package/dist/tests/unit/helpers/cesiumHelpers.d.ts +11 -11
  309. package/dist/tests/unit/helpers/cesiumHelpers.js +6 -1
  310. package/dist/tests/unit/helpers/cesiumHelpers.js.map +1 -1
  311. package/dist/tests/unit/helpers/helpers.d.ts +2 -9
  312. package/dist/tests/unit/helpers/helpers.js +4 -10
  313. package/dist/tests/unit/helpers/helpers.js.map +1 -1
  314. package/dist/tests/unit/helpers/importJSON.js.map +1 -1
  315. package/dist/tests/unit/helpers/obliqueHelpers.js.map +1 -1
  316. package/index.ts +84 -36
  317. package/package.json +21 -21
  318. package/src/category/category.ts +11 -9
  319. package/src/category/categoryCollection.ts +1 -1
  320. package/src/cesium/cesium.d.ts +12 -0
  321. package/src/cesium/cesiumVcsCameraPrimitive.ts +5 -0
  322. package/src/classRegistry.ts +7 -4
  323. package/src/featureProvider/wmsFeatureProvider.ts +1 -1
  324. package/src/global.d.ts +6 -1
  325. package/src/interaction/featureAtPixelInteraction.ts +7 -26
  326. package/src/layer/cesium/clusterContext.ts +97 -93
  327. package/src/layer/cesium/vectorCesiumImpl.ts +17 -11
  328. package/src/layer/cesium/vectorContext.ts +229 -348
  329. package/src/layer/featureVisibility.ts +3 -6
  330. package/src/layer/geojsonHelpers.ts +9 -12
  331. package/src/layer/oblique/obliqueHelpers.ts +9 -9
  332. package/src/layer/oblique/vectorObliqueImpl.ts +2 -2
  333. package/src/layer/openlayers/vectorOpenlayersImpl.ts +2 -2
  334. package/src/layer/openlayers/vectorTileOpenlayersImpl.ts +23 -53
  335. package/src/layer/tileLoadedHelper.ts +1 -3
  336. package/src/layer/tileProvider/mvtTileProvider.ts +2 -2
  337. package/src/layer/vectorLayer.ts +1 -74
  338. package/src/layer/vectorProperties.ts +80 -16
  339. package/src/map/baseOLMap.ts +1 -1
  340. package/src/oblique/helpers.ts +11 -5
  341. package/src/oblique/obliqueDataSet.ts +4 -4
  342. package/src/ol/geom/geometryCollection.js +96 -6
  343. package/src/ol/ol.d.ts +15 -2
  344. package/src/overrideClassRegistry.ts +13 -7
  345. package/src/style/arcStyle.ts +1 -0
  346. package/src/style/arrowStyle.ts +7 -7
  347. package/src/style/declarativeStyleItem.ts +2 -2
  348. package/src/style/styleHelpers.ts +15 -13
  349. package/src/style/vectorStyleItem.ts +14 -14
  350. package/src/util/clipping/clippingObject.ts +1 -3
  351. package/src/util/clipping/clippingPlaneHelper.ts +3 -4
  352. package/src/util/displayQuality/displayQuality.ts +13 -1
  353. package/src/util/editor/createFeatureSession.ts +107 -13
  354. package/src/util/editor/editFeaturesSession.ts +105 -39
  355. package/src/util/editor/editGeometrySession.ts +157 -83
  356. package/src/util/editor/editorHelpers.ts +85 -33
  357. package/src/util/editor/editorSessionHelpers.ts +13 -20
  358. package/src/util/editor/editorSymbols.ts +1 -1
  359. package/src/util/editor/interactions/createBBoxInteraction.ts +25 -16
  360. package/src/util/editor/interactions/createCircleInteraction.ts +1 -1
  361. package/src/util/editor/interactions/createLineStringInteraction.ts +9 -3
  362. package/src/util/editor/interactions/createPointInteraction.ts +1 -1
  363. package/src/util/editor/interactions/createPolygonInteraction.ts +16 -3
  364. package/src/util/editor/interactions/creationSnapping.ts +226 -0
  365. package/src/util/editor/interactions/editGeometryMouseOverInteraction.ts +7 -6
  366. package/src/util/editor/interactions/insertVertexInteraction.ts +27 -7
  367. package/src/util/editor/interactions/layerSnapping.ts +136 -0
  368. package/src/util/editor/interactions/removeVertexInteraction.ts +3 -4
  369. package/src/util/editor/interactions/segmentLengthInteraction.ts +227 -0
  370. package/src/util/editor/interactions/translateVertexInteraction.ts +11 -12
  371. package/src/util/editor/interactions/translationSnapping.ts +302 -0
  372. package/src/util/editor/snappingHelpers.ts +490 -0
  373. package/src/util/editor/transformation/create2DHandlers.ts +38 -26
  374. package/src/util/editor/transformation/create3DHandlers.ts +84 -22
  375. package/src/util/editor/transformation/scaleInteraction.ts +28 -5
  376. package/src/util/editor/transformation/transformationHandler.ts +72 -41
  377. package/src/util/editor/transformation/transformationTypes.ts +5 -0
  378. package/src/util/featureconverter/arcToCesium.ts +25 -95
  379. package/src/util/featureconverter/circleToCesium.ts +128 -114
  380. package/src/util/featureconverter/clampedPrimitive.ts +70 -0
  381. package/src/util/featureconverter/convert.ts +447 -113
  382. package/src/util/featureconverter/extent3D.ts +13 -6
  383. package/src/util/featureconverter/lineStringToCesium.ts +134 -181
  384. package/src/util/featureconverter/pointHelpers.ts +285 -219
  385. package/src/util/featureconverter/pointToCesium.ts +117 -177
  386. package/src/util/featureconverter/polygonToCesium.ts +99 -118
  387. package/src/util/featureconverter/storeyHelpers.ts +104 -0
  388. package/src/util/featureconverter/vectorGeometryFactory.ts +601 -0
  389. package/src/util/featureconverter/vectorHeightInfo.ts +392 -0
  390. package/src/util/flight/flightPlayer.ts +64 -22
  391. package/src/util/geometryHelpers.ts +239 -9
  392. package/src/util/hiddenObjects.ts +4 -4
  393. package/src/util/math.ts +87 -12
  394. package/src/util/overrideCollection.ts +33 -21
  395. package/src/vcsApp.ts +11 -4
  396. package/src/vcsModuleHelpers.ts +25 -2
  397. package/dist/src/util/featureconverter/featureconverterHelper.d.ts +0 -35
  398. package/dist/src/util/featureconverter/featureconverterHelper.js +0 -403
  399. package/dist/src/util/featureconverter/featureconverterHelper.js.map +0 -1
  400. package/src/util/featureconverter/featureconverterHelper.ts +0 -668
@@ -0,0 +1,17 @@
1
+ import { HeightReference } from '@vcmap-cesium/engine';
2
+ import { RelativeHeightReference, VectorHeightInfo } from './vectorHeightInfo.js';
3
+ /**
4
+ * @param extrudedHeight should be a number > 0
5
+ * @param storeyHeights
6
+ * @param storeyNumber
7
+ */
8
+ export declare function getStoreyHeights(extrudedHeight: number, storeyHeights: number[], storeyNumber: number): number[];
9
+ export declare function validateStoreys(storeys: number, storeyHeights: number[]): void;
10
+ export type StoreyOptions = {
11
+ currentHeight: number;
12
+ extrudedHeight: number;
13
+ };
14
+ export declare function getStoreyOptions(heightInfo: VectorHeightInfo<RelativeHeightReference | HeightReference.NONE>, geometryHeight: number): {
15
+ storeys: StoreyOptions[];
16
+ skirtLevel: number;
17
+ };
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @param extrudedHeight should be a number > 0
3
+ * @param storeyHeights
4
+ * @param storeyNumber
5
+ */
6
+ export function getStoreyHeights(extrudedHeight, storeyHeights, storeyNumber) {
7
+ const positiveExtrudedHeight = Math.abs(extrudedHeight);
8
+ const fittedStoreyHeights = [];
9
+ if (storeyHeights.length) {
10
+ let height = 0;
11
+ for (let i = 0; i < storeyHeights.length; i++) {
12
+ height += storeyHeights[i];
13
+ if (height < positiveExtrudedHeight) {
14
+ fittedStoreyHeights.push(storeyHeights[i]);
15
+ }
16
+ else {
17
+ fittedStoreyHeights.push(storeyHeights[i] - (height - positiveExtrudedHeight));
18
+ return fittedStoreyHeights;
19
+ }
20
+ }
21
+ const lastStoreyHeight = storeyHeights[storeyHeights.length - 1];
22
+ while (height < positiveExtrudedHeight) {
23
+ height += lastStoreyHeight;
24
+ if (height < positiveExtrudedHeight) {
25
+ fittedStoreyHeights.push(lastStoreyHeight);
26
+ }
27
+ else {
28
+ fittedStoreyHeights.push(lastStoreyHeight - (height - positiveExtrudedHeight));
29
+ return fittedStoreyHeights;
30
+ }
31
+ }
32
+ }
33
+ else if (storeyNumber) {
34
+ return new Array(storeyNumber).fill(positiveExtrudedHeight / storeyNumber);
35
+ }
36
+ // case no predefined storeyHeights
37
+ return [positiveExtrudedHeight];
38
+ }
39
+ export function validateStoreys(storeys, storeyHeights) {
40
+ if (storeys && storeyHeights.length) {
41
+ const missingStoreyHeights = storeys - storeyHeights.length;
42
+ if (missingStoreyHeights > 0) {
43
+ storeyHeights.push(...new Array(missingStoreyHeights).fill(storeyHeights[storeyHeights.length - 1]));
44
+ }
45
+ else if (missingStoreyHeights < 0) {
46
+ storeyHeights.splice(storeyHeights.length + missingStoreyHeights);
47
+ }
48
+ if (storeys > 100) {
49
+ storeyHeights.splice(100);
50
+ }
51
+ }
52
+ else {
53
+ storeyHeights.splice(0);
54
+ }
55
+ }
56
+ export function getStoreyOptions(heightInfo, geometryHeight) {
57
+ const options = [];
58
+ let currentHeight = geometryHeight;
59
+ heightInfo.storeyHeightsAboveGround.forEach((storeyHeight) => {
60
+ const extrudedHeight = currentHeight + storeyHeight;
61
+ options.push({
62
+ currentHeight,
63
+ extrudedHeight,
64
+ });
65
+ currentHeight = extrudedHeight;
66
+ });
67
+ currentHeight = geometryHeight;
68
+ heightInfo.storeyHeightsBelowGround.forEach((storeyHeight) => {
69
+ const extrudedHeight = currentHeight - storeyHeight;
70
+ options.push({
71
+ currentHeight,
72
+ extrudedHeight,
73
+ });
74
+ currentHeight = extrudedHeight;
75
+ });
76
+ return { storeys: options, skirtLevel: currentHeight };
77
+ }
78
+ //# sourceMappingURL=storeyHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storeyHelpers.js","sourceRoot":"","sources":["../../../../src/util/featureconverter/storeyHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { Feature } from 'ol';
2
+ import type { Fill, Style } from 'ol/style.js';
3
+ import { Circle, LineString, Polygon } from 'ol/geom.js';
4
+ import { type CircleGeometry, type CircleOutlineGeometry, type GroundPolylineGeometry, MaterialAppearance, type PolygonGeometry, type PolygonOutlineGeometry, type PolylineGeometry, type Scene, type WallGeometry, type WallOutlineGeometry } from '@vcmap-cesium/engine';
5
+ import type VectorProperties from '../../layer/vectorProperties.js';
6
+ import type { ConvertedItem } from './convert.js';
7
+ import { VectorHeightInfo } from './vectorHeightInfo.js';
8
+ export type PolygonGeometryOptions = ConstructorParameters<typeof PolygonGeometry>[0];
9
+ export type PolylineGeometryOptions = ConstructorParameters<typeof PolylineGeometry>[0];
10
+ export type CircleGeometryOptions = ConstructorParameters<typeof CircleGeometry>[0];
11
+ export type GeometryFactoryType = 'polygon' | 'lineString' | 'circle' | 'arc';
12
+ type GeometryOptionsForFactoryType<T extends GeometryFactoryType> = T extends 'polygon' ? PolygonGeometryOptions : T extends 'lineString' | 'arc' ? PolylineGeometryOptions : T extends 'circle' ? CircleGeometryOptions : never;
13
+ export type GeometryForFactoryType<T extends GeometryFactoryType> = T extends 'polygon' ? Polygon : T extends 'lineString' | 'arc' ? LineString : T extends 'circle' ? Circle : never;
14
+ export type VectorGeometryFactory<T extends GeometryFactoryType = GeometryFactoryType> = {
15
+ type: T;
16
+ getGeometryOptions(geom: GeometryForFactoryType<T>, heightInfo: VectorHeightInfo): GeometryOptionsForFactoryType<T>;
17
+ createSolidGeometries(geometryOptions: GeometryOptionsForFactoryType<T>, heightInfo: VectorHeightInfo, height: number, perPositionHeight: boolean, extrudedHeight?: number): CesiumGeometryOption<'solid'>[];
18
+ createOutlineGeometries(geometryOptions: GeometryOptionsForFactoryType<T>, heightInfo: VectorHeightInfo, height: number, perPositionHeight: boolean, extrudedHeight?: number): CesiumGeometryOption<'outline'>[];
19
+ createFillGeometries(geometryOptions: GeometryOptionsForFactoryType<T>, heightInfo: VectorHeightInfo, height: number, perPositionHeight: boolean): CesiumGeometryOption<'fill'>[];
20
+ createGroundLineGeometries(geometryOptions: GeometryOptionsForFactoryType<T>, heightInfo: VectorHeightInfo, style: Style): CesiumGeometryOption<'groundLine'>[];
21
+ createLineGeometries(geometryOptions: GeometryOptionsForFactoryType<T>, heightInfo: VectorHeightInfo, style: Style): CesiumGeometryOption<'line'>[];
22
+ validateGeometry(geom: GeometryForFactoryType<T>): boolean;
23
+ };
24
+ export type CesiumGeometryOptionType = 'solid' | 'fill' | 'outline' | 'line' | 'groundLine';
25
+ export type CesiumGeometryOption<T extends CesiumGeometryOptionType = CesiumGeometryOptionType> = T extends 'solid' ? {
26
+ type: T;
27
+ geometry: PolygonGeometry | WallGeometry | CircleGeometry;
28
+ heightInfo: VectorHeightInfo;
29
+ } : T extends 'fill' ? {
30
+ type: T;
31
+ geometry: PolygonGeometry | CircleGeometry;
32
+ heightInfo: VectorHeightInfo;
33
+ } : T extends 'outline' ? {
34
+ type: T;
35
+ geometry: PolygonOutlineGeometry | WallOutlineGeometry | CircleOutlineGeometry;
36
+ heightInfo: VectorHeightInfo;
37
+ } : T extends 'line' ? {
38
+ type: T;
39
+ geometry: PolylineGeometry;
40
+ heightInfo: VectorHeightInfo;
41
+ } : T extends 'groundLine' ? {
42
+ type: T;
43
+ geometry: GroundPolylineGeometry;
44
+ heightInfo: VectorHeightInfo;
45
+ } : never;
46
+ export declare function getMaterialAppearance(scene: Scene, fill: Fill, feature: Feature): MaterialAppearance;
47
+ export declare function createClassificationPrimitiveItem(feature: Feature, style: Style, vectorProperties: VectorProperties, geometries: CesiumGeometryOption<'fill' | 'solid'>[]): ConvertedItem<'primitive'>;
48
+ export declare function createSolidPrimitiveItem(feature: Feature, style: Style, vectorProperties: VectorProperties, scene: Scene, geometries: CesiumGeometryOption<'fill' | 'solid'>[]): ConvertedItem<'primitive'>;
49
+ export declare function createGroundPrimitiveItem(feature: Feature, style: Style, vectorProperties: VectorProperties, scene: Scene, geometries: CesiumGeometryOption<'fill' | 'solid'>[]): ConvertedItem<'primitive'>;
50
+ export declare function createOutlinePrimitiveItem(feature: Feature, style: Style, vectorProperties: VectorProperties, geometries: CesiumGeometryOption<'outline'>[]): ConvertedItem<'primitive'>;
51
+ export declare function createLinePrimitiveItem(feature: Feature, style: Style, vectorProperties: VectorProperties, geometries: CesiumGeometryOption<'line'>[]): ConvertedItem<'primitive'>;
52
+ export declare function createGroundLinePrimitiveItem(feature: Feature, style: Style, vectorProperties: VectorProperties, geometries: CesiumGeometryOption<'groundLine'>[]): ConvertedItem<'primitive'>;
53
+ export declare function getCesiumGeometriesOptions<T extends GeometryFactoryType>(style: Style, geometry: GeometryForFactoryType<T>, geometryFactory: VectorGeometryFactory<T>, heightInfo: VectorHeightInfo): CesiumGeometryOption[];
54
+ export {};
@@ -0,0 +1,278 @@
1
+ import { getBottomLeft } from 'ol/extent.js';
2
+ import { Cartesian3, ClassificationPrimitive, ClassificationType, Color, ColorGeometryInstanceAttribute, GeometryInstance, GroundPolylinePrimitive, GroundPrimitive, HeightReference, Material, MaterialAppearance, PerInstanceColorAppearance, PolylineMaterialAppearance, Primitive, SceneTransforms, ShadowMode, } from '@vcmap-cesium/engine';
3
+ import { getCesiumColor } from '../../style/styleHelpers.js';
4
+ import { createSync } from '../../layer/vectorSymbols.js';
5
+ import { getGeometryHeight, isClampedHeightReference, } from './vectorHeightInfo.js';
6
+ import { getStoreyOptions } from './storeyHelpers.js';
7
+ export function getMaterialAppearance(scene, fill, feature) {
8
+ const options = {
9
+ flat: true,
10
+ renderState: {
11
+ depthTest: {
12
+ enabled: true,
13
+ },
14
+ },
15
+ };
16
+ const fillColor = fill.getColor();
17
+ if (fillColor instanceof CanvasPattern) {
18
+ const canvas = document.createElement('canvas');
19
+ const ctx = canvas.getContext('2d');
20
+ ctx.fillStyle = fillColor;
21
+ ctx.fillRect(0, 0, 300, 300);
22
+ options.material = Material.fromType('Wallpaper', {
23
+ image: canvas,
24
+ anchor: SceneTransforms.worldToDrawingBufferCoordinates(scene, Cartesian3.fromDegreesArray(getBottomLeft(feature.getGeometry().getExtent()))[0]),
25
+ });
26
+ }
27
+ else {
28
+ const color = getCesiumColor(fillColor, [0, 0, 0, 1]);
29
+ options.material = Material.fromType('Color', {
30
+ color,
31
+ });
32
+ options.translucent = color.alpha !== 1;
33
+ }
34
+ return new MaterialAppearance(options);
35
+ }
36
+ function getClassificationForHeightReference(heightReference) {
37
+ if (heightReference === HeightReference.CLAMP_TO_TERRAIN) {
38
+ return ClassificationType.TERRAIN;
39
+ }
40
+ if (heightReference === HeightReference.CLAMP_TO_3D_TILE) {
41
+ return ClassificationType.CESIUM_3D_TILE;
42
+ }
43
+ return ClassificationType.BOTH;
44
+ }
45
+ export function createClassificationPrimitiveItem(feature, style, vectorProperties, geometries) {
46
+ const classificationType = vectorProperties.getClassificationType(feature);
47
+ const allowPicking = vectorProperties.getAllowPicking(feature);
48
+ const color = getCesiumColor(style.getFill().getColor(), // XXX PatternDescriptor
49
+ [0, 0, 0, 1]);
50
+ const geometryInstances = geometries.map(({ geometry }) => new GeometryInstance({
51
+ geometry,
52
+ attributes: {
53
+ color: ColorGeometryInstanceAttribute.fromColor(color),
54
+ },
55
+ }));
56
+ const appearance = new PerInstanceColorAppearance({
57
+ flat: false,
58
+ renderState: {
59
+ depthTest: {
60
+ enabled: true,
61
+ },
62
+ lineWidth: 1,
63
+ },
64
+ translucent: color.alpha !== 1,
65
+ });
66
+ return {
67
+ type: 'primitive',
68
+ item: new ClassificationPrimitive({
69
+ allowPicking,
70
+ asynchronous: !feature[createSync],
71
+ classificationType,
72
+ geometryInstances,
73
+ appearance,
74
+ }),
75
+ };
76
+ }
77
+ export function createSolidPrimitiveItem(feature, style, vectorProperties, scene, geometries) {
78
+ const allowPicking = vectorProperties.getAllowPicking(feature);
79
+ const geometryInstances = geometries.map(({ geometry }) => new GeometryInstance({
80
+ geometry,
81
+ }));
82
+ const appearance = getMaterialAppearance(scene, style.getFill(), feature);
83
+ return {
84
+ type: 'primitive',
85
+ item: new Primitive({
86
+ shadows: ShadowMode.ENABLED,
87
+ allowPicking,
88
+ asynchronous: !feature[createSync],
89
+ geometryInstances,
90
+ appearance,
91
+ }),
92
+ };
93
+ }
94
+ export function createGroundPrimitiveItem(feature, style, vectorProperties, scene, geometries) {
95
+ const allowPicking = vectorProperties.getAllowPicking(feature);
96
+ const geometryInstances = geometries.map(({ geometry }) => new GeometryInstance({
97
+ geometry,
98
+ }));
99
+ const appearance = getMaterialAppearance(scene, style.getFill(), feature);
100
+ const classificationType = vectorProperties.getClassificationType(feature) ??
101
+ getClassificationForHeightReference(geometries[0].heightInfo.heightReference);
102
+ return {
103
+ type: 'primitive',
104
+ item: new GroundPrimitive({
105
+ classificationType,
106
+ allowPicking,
107
+ asynchronous: !feature[createSync],
108
+ geometryInstances,
109
+ appearance,
110
+ }),
111
+ };
112
+ }
113
+ export function createOutlinePrimitiveItem(feature, style, vectorProperties, geometries) {
114
+ const allowPicking = vectorProperties.getAllowPicking(feature);
115
+ const color = getCesiumColor(style.getStroke().getColor(), [0, 0, 0, 1]);
116
+ const instances = geometries.map(({ geometry }) => new GeometryInstance({
117
+ geometry,
118
+ attributes: {
119
+ color: ColorGeometryInstanceAttribute.fromColor(color),
120
+ },
121
+ }));
122
+ const appearance = new PerInstanceColorAppearance({
123
+ flat: true,
124
+ renderState: {
125
+ depthTest: {
126
+ enabled: true,
127
+ },
128
+ lineWidth: 1,
129
+ },
130
+ translucent: color.alpha !== 1,
131
+ });
132
+ return {
133
+ type: 'primitive',
134
+ item: new Primitive({
135
+ geometryInstances: instances,
136
+ appearance,
137
+ shadows: ShadowMode.ENABLED,
138
+ allowPicking,
139
+ asynchronous: !feature[createSync],
140
+ }),
141
+ };
142
+ }
143
+ export function createLinePrimitiveItem(feature, style, vectorProperties, geometries) {
144
+ const allowPicking = vectorProperties.getAllowPicking(feature);
145
+ const instances = geometries.map(({ geometry }) => new GeometryInstance({
146
+ geometry,
147
+ }));
148
+ const color = getCesiumColor(style.getStroke().getColor(), [0, 0, 0, 1]);
149
+ let material;
150
+ if (style.getStroke()?.getLineDash()) {
151
+ material = Material.fromType('Stripe', {
152
+ horizontal: false,
153
+ repeat: 500,
154
+ evenColor: color,
155
+ oddColor: new Color(0, 0, 0, 0), // transparent
156
+ });
157
+ }
158
+ else {
159
+ material = Material.fromType('Color', { color });
160
+ }
161
+ const appearance = new PolylineMaterialAppearance({
162
+ renderState: {
163
+ depthTest: {
164
+ enabled: true,
165
+ },
166
+ lineWidth: 1,
167
+ },
168
+ translucent: color.alpha !== 1,
169
+ material,
170
+ });
171
+ return {
172
+ type: 'primitive',
173
+ item: new Primitive({
174
+ geometryInstances: instances,
175
+ appearance,
176
+ shadows: ShadowMode.ENABLED,
177
+ allowPicking,
178
+ asynchronous: !feature[createSync],
179
+ }),
180
+ };
181
+ }
182
+ export function createGroundLinePrimitiveItem(feature, style, vectorProperties, geometries) {
183
+ const allowPicking = vectorProperties.getAllowPicking(feature);
184
+ const instances = geometries.map(({ geometry }) => new GeometryInstance({
185
+ geometry,
186
+ }));
187
+ const color = getCesiumColor(style.getStroke().getColor(), [0, 0, 0, 1]);
188
+ let material;
189
+ if (style.getStroke()?.getLineDash()) {
190
+ material = Material.fromType('Stripe', {
191
+ horizontal: false,
192
+ repeat: 500,
193
+ evenColor: color,
194
+ oddColor: new Color(0, 0, 0, 0), // transparent
195
+ });
196
+ }
197
+ else {
198
+ material = Material.fromType('Color', { color });
199
+ }
200
+ const appearance = new PolylineMaterialAppearance({
201
+ renderState: {
202
+ depthTest: {
203
+ enabled: true,
204
+ },
205
+ lineWidth: 1,
206
+ },
207
+ translucent: color.alpha !== 1,
208
+ material,
209
+ });
210
+ const classificationType = vectorProperties.getClassificationType(feature) ??
211
+ getClassificationForHeightReference(geometries[0].heightInfo.heightReference);
212
+ return {
213
+ type: 'primitive',
214
+ item: new GroundPolylinePrimitive({
215
+ classificationType,
216
+ geometryInstances: instances,
217
+ appearance,
218
+ allowPicking,
219
+ asynchronous: !feature[createSync],
220
+ }),
221
+ };
222
+ }
223
+ export function getCesiumGeometriesOptions(style, geometry, geometryFactory, heightInfo) {
224
+ const hasFill = !!style.getFill();
225
+ const hasStroke = !!style.getStroke();
226
+ const cesiumGeometryOptions = [];
227
+ const geometryOptions = geometryFactory.getGeometryOptions(geometry, heightInfo);
228
+ if (isClampedHeightReference(heightInfo.heightReference)) {
229
+ if (hasFill) {
230
+ cesiumGeometryOptions.push(...geometryFactory.createFillGeometries(geometryOptions, heightInfo, 0, false));
231
+ }
232
+ if (hasStroke) {
233
+ cesiumGeometryOptions.push(...geometryFactory.createGroundLineGeometries(geometryOptions, heightInfo, style));
234
+ }
235
+ }
236
+ else {
237
+ const nonClampedHeightInfo = heightInfo;
238
+ const { extruded, perPositionHeight } = nonClampedHeightInfo;
239
+ const geometryHeight = getGeometryHeight(geometry, nonClampedHeightInfo);
240
+ if (extruded) {
241
+ const storeyOptions = getStoreyOptions(nonClampedHeightInfo, geometryHeight);
242
+ if (hasFill) {
243
+ storeyOptions.storeys.forEach((options) => {
244
+ cesiumGeometryOptions.push(...geometryFactory.createSolidGeometries(geometryOptions, heightInfo, options.currentHeight, perPositionHeight, options.extrudedHeight));
245
+ });
246
+ }
247
+ if (hasStroke) {
248
+ storeyOptions.storeys.forEach((options) => {
249
+ cesiumGeometryOptions.push(...geometryFactory.createOutlineGeometries(geometryOptions, heightInfo, options.currentHeight, perPositionHeight, options.extrudedHeight));
250
+ });
251
+ }
252
+ if (nonClampedHeightInfo.skirt) {
253
+ const currentHeight = storeyOptions.skirtLevel;
254
+ const extrudedHeight = currentHeight - nonClampedHeightInfo.skirt;
255
+ const skirtPositionHeight = nonClampedHeightInfo
256
+ .storeyHeightsBelowGround.length
257
+ ? false
258
+ : perPositionHeight;
259
+ if (hasFill) {
260
+ cesiumGeometryOptions.push(...geometryFactory.createSolidGeometries(geometryOptions, heightInfo, currentHeight, skirtPositionHeight, extrudedHeight));
261
+ }
262
+ if (hasStroke) {
263
+ cesiumGeometryOptions.push(...geometryFactory.createOutlineGeometries(geometryOptions, heightInfo, currentHeight, skirtPositionHeight, extrudedHeight));
264
+ }
265
+ }
266
+ }
267
+ else {
268
+ if (hasFill) {
269
+ cesiumGeometryOptions.push(...geometryFactory.createFillGeometries(geometryOptions, heightInfo, geometryHeight, perPositionHeight));
270
+ }
271
+ if (hasStroke) {
272
+ cesiumGeometryOptions.push(...geometryFactory.createLineGeometries(geometryOptions, heightInfo, style));
273
+ }
274
+ }
275
+ }
276
+ return cesiumGeometryOptions;
277
+ }
278
+ //# sourceMappingURL=vectorGeometryFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vectorGeometryFactory.js","sourceRoot":"","sources":["../../../../src/util/featureconverter/vectorGeometryFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { Geometry, SimpleGeometry } from 'ol/geom.js';
2
+ import type { Coordinate } from 'ol/coordinate.js';
3
+ import { Cartesian3, HeightReference } from '@vcmap-cesium/engine';
4
+ import { GeometryLayout } from 'ol/geom/Geometry.js';
5
+ import type { Feature } from 'ol';
6
+ import type VectorProperties from '../../layer/vectorProperties.js';
7
+ export type ExtrusionHeightInfo = {
8
+ /**
9
+ * if the object is extruded
10
+ */
11
+ extruded: boolean;
12
+ /**
13
+ * storey heights above ground, list has the same length as storeysAboveGround
14
+ */
15
+ storeyHeightsAboveGround: number[];
16
+ /**
17
+ * storey heights below ground, list has the same length as storeysBelowGround
18
+ */
19
+ storeyHeightsBelowGround: number[];
20
+ /**
21
+ * a negative height to <i>push</i> the geometry visually into the ground
22
+ */
23
+ skirt: number;
24
+ };
25
+ export type ClampedHeightReference = HeightReference.CLAMP_TO_GROUND | HeightReference.CLAMP_TO_TERRAIN | HeightReference.CLAMP_TO_3D_TILE;
26
+ export type RelativeHeightReference = HeightReference.RELATIVE_TO_GROUND | HeightReference.RELATIVE_TO_TERRAIN | HeightReference.RELATIVE_TO_3D_TILE;
27
+ export type VectorHeightInfo<T extends HeightReference = HeightReference, L extends GeometryLayout = GeometryLayout> = T extends ClampedHeightReference ? {
28
+ heightReference: T;
29
+ layout: L;
30
+ } : T extends RelativeHeightReference ? {
31
+ heightReference: T;
32
+ layout: L;
33
+ clampOrigin?: [number, number];
34
+ heightAboveGround?: number;
35
+ /**
36
+ * the level above or below mean sea level
37
+ */
38
+ groundLevel?: number;
39
+ /**
40
+ * true if not all z values are identical, e.g no height above ground was provided and no or only one storey was provided
41
+ */
42
+ perPositionHeight: boolean;
43
+ } & ExtrusionHeightInfo : T extends HeightReference.NONE ? {
44
+ heightReference: T;
45
+ layout: L;
46
+ /**
47
+ * the level above or below mean sea level (minZ value or ground_level or 0)
48
+ */
49
+ groundLevelOrMinHeight: number;
50
+ /**
51
+ * true if not all z values are identical, e.g no ground level was provided and no or only one storey was provided
52
+ */
53
+ perPositionHeight: boolean;
54
+ } & ExtrusionHeightInfo : never;
55
+ export declare function isClampedHeightReference(heightReference: HeightReference): heightReference is ClampedHeightReference;
56
+ export declare function isRelativeHeightReference(heightReference: HeightReference): heightReference is RelativeHeightReference;
57
+ export declare function isAbsoluteHeightReference(heightReference: HeightReference): heightReference is HeightReference.NONE;
58
+ export declare function getRelativeEquivalent(clampedHeightReference: ClampedHeightReference): RelativeHeightReference;
59
+ export declare function getExtrusionHeightInfo(feature: Feature, vectorProperties: VectorProperties): ExtrusionHeightInfo;
60
+ /**
61
+ * @param geometry - feature must return simple geometry
62
+ * @retruns the center of mass
63
+ */
64
+ export declare function getClampOrigin(geometry: SimpleGeometry): [number, number];
65
+ /**
66
+ * the minimum height of a geometry with a 3D layout
67
+ * @param geometry - with an XYZ layout
68
+ * @returns the minimum height
69
+ */
70
+ export declare function getMinHeight(geometry: Geometry): number;
71
+ export declare function getHeightInfo(feature: Feature, geometry: SimpleGeometry, vectorProperties: VectorProperties): VectorHeightInfo;
72
+ /**
73
+ * Returns the geometry height (as used in the cesium geometry options) depending on the height info. 0 for clamped, groundLevelOrMinHeight for absolute & heightAboveGround + groundLevel (if present) for relative
74
+ * If you pass "with extrusion" the height will be returned including the extrusion, otherwise you get the height of the actual geometry
75
+ */
76
+ export declare function getGeometryHeight(geometry: SimpleGeometry, heightInfo: VectorHeightInfo): number;
77
+ /**
78
+ * @param {VectorHeightInfo} heightInfo
79
+ * @returns a callback function accepting a mercator coordinate. it will return a wgs84coordinate with its Z value adjusted according to the height info
80
+ */
81
+ export declare function mercatorToWgs84TransformerForHeightInfo(heightInfo: VectorHeightInfo): (coord: Coordinate) => Coordinate;
82
+ /**
83
+ * @param {VectorHeightInfo} heightInfo
84
+ * @returns a callback function accepting a mercator coordinate. it will return a Cartesian3 with its Z value adjusted according to the height info
85
+ */
86
+ export declare function mercatorToCartesianTransformerForHeightInfo(heightInfo: VectorHeightInfo): (coord: Coordinate) => Cartesian3;