@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
@@ -1,668 +0,0 @@
1
- import { getBottomLeft } from 'ol/extent.js';
2
- import type { Feature } from 'ol/index.js';
3
- import type { SimpleGeometry } from 'ol/geom.js';
4
- import type { Style, Fill } from 'ol/style.js';
5
- import type { Coordinate } from 'ol/coordinate.js';
6
- import {
7
- Cartesian3,
8
- HeightReference,
9
- ColorGeometryInstanceAttribute,
10
- GeometryInstance,
11
- Material,
12
- SceneTransforms,
13
- MaterialAppearance,
14
- ClassificationType,
15
- PerInstanceColorAppearance,
16
- GroundPrimitive,
17
- GroundPolylinePrimitive,
18
- ClassificationPrimitive,
19
- ShadowMode,
20
- Primitive,
21
- Color,
22
- PolylineMaterialAppearance,
23
- type Scene,
24
- type PolylineGeometry,
25
- type GroundPolylineGeometry,
26
- type CircleOutlineGeometry,
27
- type WallOutlineGeometry,
28
- type PolygonOutlineGeometry,
29
- type PolygonGeometry,
30
- type CircleGeometry,
31
- type WallGeometry,
32
- } from '@vcmap-cesium/engine';
33
- import { getCesiumColor } from '../../style/styleHelpers.js';
34
- import { createSync } from '../../layer/vectorSymbols.js';
35
- import type VectorProperties from '../../layer/vectorProperties.js';
36
- import type {
37
- VectorGeometryFactoryType,
38
- VectorHeightInfo,
39
- } from '../../layer/vectorLayer.js';
40
- import type { AsyncCesiumVectorContext } from '../../layer/cesium/vectorContext.js';
41
-
42
- export function getMaterialAppearance(
43
- scene: Scene,
44
- fill: Fill,
45
- feature: Feature,
46
- ): MaterialAppearance {
47
- const options: ConstructorParameters<typeof MaterialAppearance>[0] = {
48
- flat: true,
49
- renderState: {
50
- depthTest: {
51
- enabled: true,
52
- },
53
- },
54
- };
55
- const fillColor = fill.getColor();
56
- if (fillColor instanceof CanvasPattern) {
57
- const canvas = document.createElement('canvas');
58
- const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;
59
- ctx.fillStyle = fillColor;
60
- ctx.fillRect(0, 0, 300, 300);
61
- options.material = Material.fromType('Wallpaper', {
62
- image: canvas,
63
- anchor: SceneTransforms.wgs84ToDrawingBufferCoordinates(
64
- scene,
65
- Cartesian3.fromDegreesArray(
66
- getBottomLeft(feature.getGeometry()!.getExtent()),
67
- )[0],
68
- ),
69
- });
70
- } else {
71
- const color = getCesiumColor(fillColor as string, [0, 0, 0, 1]);
72
- options.material = Material.fromType('Color', {
73
- color,
74
- });
75
- options.translucent = color.alpha !== 1;
76
- }
77
- return new MaterialAppearance(options);
78
- }
79
-
80
- export function createClassificationPrimitive(
81
- options: Partial<ConstructorParameters<typeof ClassificationPrimitive>[0]>,
82
- geometries: (PolygonGeometry | CircleGeometry | WallGeometry)[],
83
- color: Color,
84
- classificationType: ClassificationType,
85
- ): ClassificationPrimitive {
86
- const instances = geometries.map(
87
- (geometry) =>
88
- new GeometryInstance({
89
- geometry,
90
- attributes: {
91
- color: ColorGeometryInstanceAttribute.fromColor(color),
92
- },
93
- }),
94
- );
95
-
96
- const appearance = new PerInstanceColorAppearance({
97
- flat: false,
98
- renderState: {
99
- depthTest: {
100
- enabled: true,
101
- },
102
- lineWidth: 1,
103
- },
104
- translucent: color.alpha !== 1,
105
- });
106
-
107
- const classificationPrimitiveOptions = {
108
- ...options,
109
- geometryInstances: instances,
110
- appearance,
111
- shadows: ShadowMode.ENABLED,
112
- classificationType,
113
- };
114
- return new ClassificationPrimitive(classificationPrimitiveOptions);
115
- }
116
-
117
- export function createPrimitive(
118
- scene: Scene,
119
- vectorProperties: VectorProperties,
120
- allowPicking: boolean,
121
- feature: Feature,
122
- geometries: (PolygonGeometry | CircleGeometry | WallGeometry)[],
123
- style: Style,
124
- groundPrimitive: boolean,
125
- ): Primitive | GroundPrimitive | ClassificationPrimitive | null {
126
- const classificationType = vectorProperties.getClassificationType(feature);
127
- const options: Partial<ConstructorParameters<typeof Primitive>[0]> & {
128
- classificationType?: ClassificationType;
129
- } = {
130
- shadows: ShadowMode.ENABLED,
131
- allowPicking,
132
- asynchronous: !feature[createSync],
133
- };
134
- let primitive;
135
- if (classificationType !== undefined && !groundPrimitive) {
136
- if (!ClassificationPrimitive.isSupported(scene)) {
137
- return null;
138
- }
139
- const color = getCesiumColor(style.getFill()!.getColor(), [0, 0, 0, 1]);
140
- primitive = createClassificationPrimitive(
141
- options,
142
- geometries,
143
- color,
144
- classificationType,
145
- );
146
- } else {
147
- const instances = geometries.map(
148
- (geometry) =>
149
- new GeometryInstance({
150
- geometry,
151
- }),
152
- );
153
- options.geometryInstances = instances;
154
- const appearance = getMaterialAppearance(scene, style.getFill(), feature);
155
- options.appearance = appearance;
156
- if (groundPrimitive) {
157
- if (!GroundPrimitive.isSupported(scene)) {
158
- return null;
159
- }
160
- options.classificationType =
161
- classificationType || ClassificationType.TERRAIN;
162
- primitive = new GroundPrimitive(options);
163
- } else {
164
- primitive = new Primitive(options);
165
- }
166
- }
167
- return primitive;
168
- }
169
-
170
- export function createOutlinePrimitive(
171
- _scene: Scene,
172
- _vectorProperties: VectorProperties,
173
- allowPicking: boolean,
174
- feature: Feature,
175
- geometries: (PolygonGeometry | CircleGeometry | WallGeometry)[],
176
- style: Style,
177
- ): Primitive {
178
- const color = getCesiumColor(style.getStroke().getColor(), [0, 0, 0, 1]);
179
- const instances = geometries.map(
180
- (geometry) =>
181
- new GeometryInstance({
182
- geometry,
183
- attributes: {
184
- color: ColorGeometryInstanceAttribute.fromColor(color),
185
- },
186
- }),
187
- );
188
- const appearance = new PerInstanceColorAppearance({
189
- flat: true,
190
- renderState: {
191
- depthTest: {
192
- enabled: true,
193
- },
194
- lineWidth: 1,
195
- },
196
- translucent: color.alpha !== 1,
197
- });
198
- const options = {
199
- geometryInstances: instances,
200
- appearance,
201
- shadows: ShadowMode.ENABLED,
202
- allowPicking,
203
- asynchronous: !feature[createSync],
204
- };
205
- const primitive = new Primitive(options);
206
- return primitive;
207
- }
208
-
209
- export function createLinePrimitive(
210
- scene: Scene,
211
- vectorProperties: VectorProperties,
212
- allowPicking: boolean,
213
- feature: Feature,
214
- geometries: (PolylineGeometry | GroundPolylineGeometry)[],
215
- style: Style,
216
- groundPrimitive: boolean,
217
- ): Primitive | GroundPolylinePrimitive | null {
218
- const classificationType = vectorProperties.getClassificationType(feature);
219
- const instances = geometries.map(
220
- (geometry) =>
221
- new GeometryInstance({
222
- geometry,
223
- }),
224
- );
225
-
226
- const color = getCesiumColor(style.getStroke().getColor(), [0, 0, 0, 1]);
227
- let material;
228
- if (style.getStroke().getLineDash()) {
229
- material = Material.fromType('Stripe', {
230
- horizontal: false,
231
- repeat: 500,
232
- evenColor: color,
233
- oddColor: new Color(0, 0, 0, 0), // transparent
234
- });
235
- } else {
236
- material = Material.fromType('Color', { color });
237
- }
238
-
239
- const appearance = new PolylineMaterialAppearance({
240
- renderState: {
241
- depthTest: {
242
- enabled: true,
243
- },
244
- lineWidth: 1,
245
- },
246
- translucent: color.alpha !== 1,
247
- material,
248
- });
249
-
250
- const options: Partial<ConstructorParameters<typeof Primitive>[0]> & {
251
- classificationType?: ClassificationType;
252
- } = {
253
- geometryInstances: instances,
254
- appearance,
255
- shadows: ShadowMode.ENABLED,
256
- allowPicking,
257
- asynchronous: !feature[createSync],
258
- };
259
- let primitive;
260
- if (groundPrimitive) {
261
- if (!GroundPolylinePrimitive.isSupported(scene)) {
262
- return null;
263
- }
264
- options.classificationType =
265
- classificationType || ClassificationType.TERRAIN;
266
- primitive = new GroundPolylinePrimitive(options);
267
- } else {
268
- primitive = new Primitive(options);
269
- }
270
- return primitive;
271
- }
272
-
273
- /**
274
- * returns groundlevel or extracts the minimum height from the coordinates, returns 0 if no z coordinates are set
275
- * @param groundLevel
276
- * @param coordinates
277
- */
278
- export function getMinHeightOrGroundLevel(
279
- groundLevel: number | null | undefined,
280
- coordinates?: Coordinate[],
281
- ): number {
282
- if (groundLevel != null && Number.isFinite(Number(groundLevel))) {
283
- return groundLevel;
284
- }
285
- if (coordinates) {
286
- let minimumHeight = Infinity;
287
- for (let i = 0; i < coordinates.length; i++) {
288
- minimumHeight =
289
- coordinates[i][2] < minimumHeight ? coordinates[i][2] : minimumHeight;
290
- }
291
- if (Number.isFinite(minimumHeight)) {
292
- return minimumHeight;
293
- }
294
- }
295
- return 0;
296
- }
297
-
298
- /**
299
- * @param extrudedHeight should be a number > 0
300
- * @param storeyHeights
301
- * @param storeyNumber
302
- */
303
- export function getStoreyHeights(
304
- extrudedHeight: number,
305
- storeyHeights: number[],
306
- storeyNumber: number,
307
- ): number[] {
308
- const positiveExtrudedHeight = Math.abs(extrudedHeight);
309
- const fittedStoreyHeights = [];
310
- if (storeyHeights.length) {
311
- let height = 0;
312
- for (let i = 0; i < storeyHeights.length; i++) {
313
- height += storeyHeights[i];
314
- if (height < positiveExtrudedHeight) {
315
- fittedStoreyHeights.push(storeyHeights[i]);
316
- } else {
317
- fittedStoreyHeights.push(
318
- storeyHeights[i] - (height - positiveExtrudedHeight),
319
- );
320
- return fittedStoreyHeights;
321
- }
322
- }
323
- const lastStoreyHeight = storeyHeights[storeyHeights.length - 1];
324
- while (height < positiveExtrudedHeight) {
325
- height += lastStoreyHeight;
326
- if (height < positiveExtrudedHeight) {
327
- fittedStoreyHeights.push(lastStoreyHeight);
328
- } else {
329
- fittedStoreyHeights.push(
330
- lastStoreyHeight - (height - positiveExtrudedHeight),
331
- );
332
- return fittedStoreyHeights;
333
- }
334
- }
335
- } else if (storeyNumber) {
336
- return new Array(storeyNumber).fill(
337
- positiveExtrudedHeight / storeyNumber,
338
- ) as number[];
339
- }
340
- // case no predefined storeyHeights
341
- return [positiveExtrudedHeight];
342
- }
343
-
344
- export function validateStoreys(
345
- storeys: number,
346
- storeyHeights: number[],
347
- ): void {
348
- if (storeys && storeyHeights.length) {
349
- const missingStoreyHeights = storeys - storeyHeights.length;
350
- if (missingStoreyHeights > 0) {
351
- storeyHeights.push(
352
- ...(new Array(missingStoreyHeights).fill(
353
- storeyHeights[storeyHeights.length - 1],
354
- ) as number[]),
355
- );
356
- } else if (missingStoreyHeights < 0) {
357
- storeyHeights.splice(storeyHeights.length + missingStoreyHeights);
358
- }
359
- if (storeys > 100) {
360
- storeyHeights.splice(100);
361
- }
362
- } else {
363
- storeyHeights.splice(0);
364
- }
365
- }
366
-
367
- export function getHeightAboveGround(
368
- feature: Feature,
369
- heightReference: HeightReference,
370
- vectorProperties: VectorProperties,
371
- ): number {
372
- if (heightReference === HeightReference.RELATIVE_TO_GROUND) {
373
- return vectorProperties.getHeightAboveGround(feature);
374
- }
375
- return 0;
376
- }
377
-
378
- export function getHeightInfo(
379
- feature: Feature,
380
- vectorProperties: VectorProperties,
381
- coordinates: Coordinate[],
382
- ): VectorHeightInfo {
383
- const extrudedHeight = vectorProperties.getExtrudedHeight(feature);
384
-
385
- let storeysAboveGround = vectorProperties.getStoreysAboveGround(feature);
386
- let storeysBelowGround = vectorProperties.getStoreysBelowGround(feature);
387
- let storeyHeightsAboveGround =
388
- vectorProperties.getStoreyHeightsAboveGround(feature);
389
- let storeyHeightsBelowGround =
390
- vectorProperties.getStoreyHeightsBelowGround(feature);
391
- if (extrudedHeight) {
392
- // current Case only extrudedHeight
393
- if (extrudedHeight > 0) {
394
- storeyHeightsAboveGround = getStoreyHeights(
395
- extrudedHeight,
396
- storeyHeightsAboveGround,
397
- storeysAboveGround,
398
- );
399
- storeysAboveGround = storeyHeightsAboveGround.length;
400
- storeyHeightsBelowGround = [];
401
- storeysBelowGround = 0;
402
- } else if (extrudedHeight < 0) {
403
- storeyHeightsBelowGround = getStoreyHeights(
404
- extrudedHeight,
405
- storeyHeightsBelowGround,
406
- storeysBelowGround,
407
- );
408
- storeysBelowGround = storeyHeightsBelowGround.length;
409
- storeyHeightsAboveGround = [];
410
- storeysAboveGround = 0;
411
- }
412
- }
413
-
414
- validateStoreys(storeysAboveGround, storeyHeightsAboveGround);
415
- validateStoreys(storeysBelowGround, storeyHeightsBelowGround);
416
-
417
- const skirt = vectorProperties.getSkirt(feature);
418
- const olcsGroundLevel = vectorProperties.getGroundLevel(feature);
419
-
420
- const heightReference = vectorProperties.getAltitudeMode(feature);
421
- const heightAboveGroundAdjustment = getHeightAboveGround(
422
- feature,
423
- heightReference,
424
- vectorProperties,
425
- );
426
-
427
- const groundLevel =
428
- getMinHeightOrGroundLevel(olcsGroundLevel, coordinates) +
429
- heightAboveGroundAdjustment;
430
- const hasZCoordinate = !!coordinates.find((value) => value[2]);
431
-
432
- const extruded = !!(
433
- storeyHeightsAboveGround.length ||
434
- storeyHeightsBelowGround.length ||
435
- skirt
436
- );
437
- const perPositionHeight =
438
- hasZCoordinate &&
439
- olcsGroundLevel == null &&
440
- (!extruded ||
441
- (extruded &&
442
- storeyHeightsAboveGround.length + storeyHeightsBelowGround.length ===
443
- 1));
444
-
445
- return {
446
- extruded,
447
- storeyHeightsAboveGround,
448
- storeyHeightsBelowGround,
449
- skirt,
450
- groundLevel,
451
- perPositionHeight,
452
- heightReference,
453
- heightAboveGroundAdjustment,
454
- };
455
- }
456
-
457
- type StoreyOptions = { currentHeight: number; extrudedHeight: number };
458
-
459
- export function getStoreyOptions(
460
- storeyHeights: number[],
461
- initialHeight: number,
462
- down?: boolean,
463
- result?: StoreyOptions[],
464
- ): StoreyOptions[] {
465
- const direction = down ? -1 : 1;
466
- let currentHeight = initialHeight;
467
- const storeys = storeyHeights.length;
468
- const options = new Array(storeys);
469
- for (let i = 0; i < storeys; i++) {
470
- const extrudedHeight = currentHeight + direction * storeyHeights[i];
471
- options[i] = {
472
- currentHeight,
473
- extrudedHeight,
474
- };
475
- currentHeight = extrudedHeight;
476
- }
477
-
478
- if (result) {
479
- result.push(...(options as StoreyOptions[]));
480
- return result;
481
- }
482
- return options as StoreyOptions[];
483
- }
484
-
485
- export function addPrimitivesToContext(
486
- feature: Feature,
487
- style: Style,
488
- geometries: SimpleGeometry[],
489
- vectorProperties: VectorProperties,
490
- scene: Scene,
491
- geometryFactory: VectorGeometryFactoryType,
492
- context: AsyncCesiumVectorContext,
493
- ): void {
494
- // no geometries, so early escape
495
- if (!geometries.length) {
496
- return;
497
- }
498
-
499
- const fillGeometries: (PolygonGeometry | CircleGeometry | WallGeometry)[] =
500
- [];
501
- const outlineGeometries: (
502
- | CircleOutlineGeometry
503
- | WallOutlineGeometry
504
- | PolygonOutlineGeometry
505
- )[] = [];
506
- const lineGeometries: (PolylineGeometry | GroundPolylineGeometry)[] = [];
507
-
508
- const heightInfo = getHeightInfo(
509
- feature,
510
- vectorProperties,
511
- geometryFactory.getCoordinates(geometries),
512
- );
513
-
514
- const hasFill = !!style.getFill();
515
- const hasStroke = !!style.getStroke();
516
-
517
- let groundPrimitive = false;
518
-
519
- geometries.forEach((geometry) => {
520
- const geometryOptions = geometryFactory.getGeometryOptions(
521
- geometry,
522
- heightInfo.heightAboveGroundAdjustment,
523
- heightInfo.perPositionHeight,
524
- heightInfo.groundLevel,
525
- );
526
- const storeyOptions = getStoreyOptions(
527
- heightInfo.storeyHeightsAboveGround,
528
- heightInfo.groundLevel,
529
- );
530
- getStoreyOptions(
531
- heightInfo.storeyHeightsBelowGround,
532
- heightInfo.groundLevel,
533
- true,
534
- storeyOptions,
535
- );
536
-
537
- if (hasFill) {
538
- storeyOptions.forEach((options) => {
539
- fillGeometries.push(
540
- ...geometryFactory.createSolidGeometries(
541
- geometryOptions,
542
- options.currentHeight,
543
- heightInfo.perPositionHeight,
544
- options.extrudedHeight,
545
- ),
546
- );
547
- });
548
- }
549
- if (hasStroke) {
550
- storeyOptions.forEach((options) => {
551
- outlineGeometries.push(
552
- ...geometryFactory.createOutlineGeometries(
553
- geometryOptions,
554
- options.currentHeight,
555
- heightInfo.perPositionHeight,
556
- options.extrudedHeight,
557
- ),
558
- );
559
- });
560
- }
561
- if (heightInfo.skirt) {
562
- const currentHeight =
563
- heightInfo.groundLevel -
564
- heightInfo.storeyHeightsBelowGround.reduce((a, b) => a + b, 0);
565
- const extrudedHeight = currentHeight - heightInfo.skirt;
566
- const skirtPositionHeight = heightInfo.storeyHeightsBelowGround.length
567
- ? false
568
- : heightInfo.perPositionHeight;
569
- if (hasFill) {
570
- fillGeometries.push(
571
- ...geometryFactory.createSolidGeometries(
572
- geometryOptions,
573
- currentHeight,
574
- skirtPositionHeight,
575
- extrudedHeight,
576
- ),
577
- );
578
- }
579
- if (hasStroke) {
580
- outlineGeometries.push(
581
- ...geometryFactory.createOutlineGeometries(
582
- geometryOptions,
583
- currentHeight,
584
- skirtPositionHeight,
585
- extrudedHeight,
586
- ),
587
- );
588
- }
589
- }
590
-
591
- if (!heightInfo.extruded) {
592
- if (heightInfo.heightReference === HeightReference.CLAMP_TO_GROUND) {
593
- groundPrimitive = true;
594
- }
595
- if (hasFill) {
596
- fillGeometries.push(
597
- ...geometryFactory.createFillGeometries(
598
- geometryOptions,
599
- heightInfo.groundLevel,
600
- heightInfo.perPositionHeight,
601
- ),
602
- );
603
- }
604
- if (hasStroke) {
605
- if (heightInfo.heightReference === HeightReference.CLAMP_TO_GROUND) {
606
- lineGeometries.push(
607
- ...geometryFactory.createGroundLineGeometries(
608
- geometryOptions,
609
- style,
610
- ),
611
- );
612
- } else {
613
- lineGeometries.push(
614
- ...geometryFactory.createLineGeometries(geometryOptions, style),
615
- );
616
- }
617
- }
618
- }
619
- });
620
-
621
- const allowPicking = vectorProperties.getAllowPicking(feature);
622
- const primitives = [];
623
- if (lineGeometries.length) {
624
- const linePrimitive = createLinePrimitive(
625
- scene,
626
- vectorProperties,
627
- allowPicking,
628
- feature,
629
- lineGeometries,
630
- style,
631
- groundPrimitive,
632
- );
633
- if (linePrimitive) {
634
- primitives.push(linePrimitive);
635
- }
636
- }
637
-
638
- if (fillGeometries.length) {
639
- const fillPrimitive = createPrimitive(
640
- scene,
641
- vectorProperties,
642
- allowPicking,
643
- feature,
644
- fillGeometries,
645
- style,
646
- groundPrimitive,
647
- );
648
- if (fillPrimitive) {
649
- primitives.push(fillPrimitive);
650
- }
651
- }
652
-
653
- if (outlineGeometries.length) {
654
- const outlinePrimitive = createOutlinePrimitive(
655
- scene,
656
- vectorProperties,
657
- allowPicking,
658
- feature,
659
- outlineGeometries,
660
- style,
661
- );
662
- if (outlinePrimitive) {
663
- primitives.push(outlinePrimitive);
664
- }
665
- }
666
-
667
- context.addPrimitives(primitives, feature, allowPicking);
668
- }