@vcmap/core 5.0.0-rc.23 → 5.0.0-rc.25

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 (65) hide show
  1. package/index.d.ts +824 -200
  2. package/index.js +24 -10
  3. package/package.json +2 -2
  4. package/src/category/category.js +1 -1
  5. package/src/featureProvider/abstractFeatureProvider.js +1 -18
  6. package/src/interaction/eventHandler.js +14 -0
  7. package/src/layer/cesium/cesiumTilesetCesiumImpl.js +4 -19
  8. package/src/layer/cesium/clusterContext.js +18 -0
  9. package/src/layer/cesium/vectorCesiumImpl.js +17 -2
  10. package/src/layer/cesium/vectorContext.js +187 -11
  11. package/src/layer/cesium/vectorRasterTileCesiumImpl.js +0 -1
  12. package/src/layer/cesiumTilesetLayer.js +1 -63
  13. package/src/layer/czmlLayer.js +1 -1
  14. package/src/layer/dataSourceLayer.js +1 -53
  15. package/src/layer/featureLayer.js +42 -38
  16. package/src/layer/featureStoreLayer.js +0 -15
  17. package/src/layer/layer.js +6 -11
  18. package/src/layer/layerSymbols.js +2 -1
  19. package/src/layer/oblique/vectorObliqueImpl.js +6 -0
  20. package/src/layer/openStreetMapLayer.js +6 -0
  21. package/src/layer/openlayers/layerOpenlayersImpl.js +69 -4
  22. package/src/layer/openlayers/rasterLayerOpenlayersImpl.js +0 -80
  23. package/src/layer/rasterLayer.js +1 -1
  24. package/src/layer/vectorHelpers.js +0 -85
  25. package/src/layer/vectorLayer.js +1 -9
  26. package/src/layer/vectorProperties.js +150 -8
  27. package/src/layer/vectorTileLayer.js +0 -9
  28. package/src/map/baseOLMap.js +17 -0
  29. package/src/map/cesiumMap.js +46 -8
  30. package/src/map/vcsMap.js +23 -5
  31. package/src/style/arcStyle.js +316 -0
  32. package/src/style/arrowStyle.js +269 -0
  33. package/src/util/editor/createFeatureSession.js +3 -1
  34. package/src/util/editor/editFeaturesSession.js +315 -0
  35. package/src/util/editor/editGeometrySession.js +5 -1
  36. package/src/util/editor/editorHelpers.js +118 -14
  37. package/src/util/editor/editorSessionHelpers.js +12 -0
  38. package/src/util/editor/editorSymbols.js +6 -0
  39. package/src/util/editor/interactions/editFeaturesMouseOverInteraction.js +120 -0
  40. package/src/util/editor/interactions/editGeometryMouseOverInteraction.js +1 -3
  41. package/src/util/editor/interactions/ensureHandlerSelectionInteraction.js +48 -0
  42. package/src/util/editor/interactions/mapInteractionController.js +5 -2
  43. package/src/util/editor/interactions/selectMultiFeatureInteraction.js +146 -0
  44. package/src/util/editor/interactions/translateVertexInteraction.js +2 -2
  45. package/src/util/editor/transformation/create2DHandlers.js +294 -0
  46. package/src/util/editor/transformation/create3DHandlers.js +575 -0
  47. package/src/util/editor/transformation/extrudeInteraction.js +91 -0
  48. package/src/util/editor/transformation/rotateInteraction.js +188 -0
  49. package/src/util/editor/transformation/scaleInteraction.js +185 -0
  50. package/src/util/editor/transformation/transformationHandler.js +168 -0
  51. package/src/util/editor/transformation/transformationTypes.js +83 -0
  52. package/src/util/editor/transformation/translateInteraction.js +209 -0
  53. package/src/util/featureconverter/arcToCesium.js +87 -0
  54. package/src/util/featureconverter/convert.js +7 -1
  55. package/src/util/featureconverter/extent3D.js +64 -1
  56. package/src/util/featureconverter/lineStringToCesium.js +103 -2
  57. package/src/util/featureconverter/pointHelpers.js +341 -0
  58. package/src/util/featureconverter/pointToCesium.js +27 -76
  59. package/src/util/geometryHelpers.js +11 -8
  60. package/src/util/mapCollection.js +30 -24
  61. package/src/util/math.js +99 -2
  62. package/tests/unit/helpers/cesiumHelpers.js +14 -4
  63. package/tests/unit/helpers/helpers.js +13 -0
  64. package/src/featureProvider/featureProviderHelpers.js +0 -50
  65. package/src/util/splitScreen.js +0 -233
package/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import olFeature from 'ol/Feature';
2
2
  import Geometry from 'ol/geom/Geometry';
3
+ import Style from 'ol/style/Style';
3
4
 
4
5
  export interface AppBackedCategoryOptions extends CategoryOptions {
5
6
  collectionName: string;
@@ -74,7 +75,7 @@ export class Category<T extends Object|VcsObject> extends VcsObject {
74
75
  * @returns // XXX should this still be async?
75
76
  */
76
77
  protected _deserializeItem(config: any): Promise<T>;
77
- protected _serializeItem(item: T): object[];
78
+ protected _serializeItem(item: T): any;
78
79
  serializeForContext(contextId: string): any | null;
79
80
  /**
80
81
  * unique Name
@@ -190,10 +191,6 @@ export interface AbstractFeatureProviderOptions extends VcsObjectOptions {
190
191
  * the style to apply to features created by this feature provider
191
192
  */
192
193
  style?: StyleItemOptions | StyleItem | undefined;
193
- /**
194
- * generic properties to add to features created by this feature provider
195
- */
196
- genericFeatureProperties?: any | undefined;
197
194
  /**
198
195
  * the vector properties of the features. Allow picking is false by default.
199
196
  */
@@ -231,12 +228,6 @@ export class AbstractFeatureProvider {
231
228
  * The vector properties assigned to features created by this provider
232
229
  */
233
230
  vectorProperties: VectorProperties;
234
- /**
235
- * An object of potential generic feature properties to add to all feature created by this provider
236
- */
237
- genericFeatureProperties: {
238
- [key: string]: any;
239
- } | undefined;
240
231
  /**
241
232
  * Map ClassNames Can be used to only apply this featureProvider to the specified maps
242
233
  */
@@ -246,7 +237,7 @@ export class AbstractFeatureProvider {
246
237
  */
247
238
  isSupported(map: VcsMap): boolean;
248
239
  /**
249
- * Ensures the feature has an ID, applies all vectorProperties and adds the generic properties, style and the vcsLayerName
240
+ * Ensures the feature has an ID, applies all vectorProperties and adds style and the vcsLayerName
250
241
  * and isProvidedFeature symbols to the feature
251
242
  */
252
243
  getProviderFeature(feature: import("ol").Feature<import("ol/geom/Geometry").default>): import("ol").Feature<import("ol/geom/Geometry").default>;
@@ -268,17 +259,15 @@ export class AbstractFeatureProvider {
268
259
  destroy(): void;
269
260
  }
270
261
 
271
- export function getGenericFeatureFromProvidedFeature(feature: VectorClickedObject, layer: Layer): GenericFeature;
272
-
273
262
  /**
274
263
  * Added to ol.Feature, if they are not part of a layer, but provided by an {@link AbstractFeatureProvider}.
275
264
  */
276
- export const isProvidedFeature: symbol;
265
+ export const isProvidedFeature: unique symbol;
277
266
 
278
267
  /**
279
268
  * A boolean value, indicating whether {@link SelectBehavior} should add the feature to the selected item layer
280
269
  */
281
- export const showProvidedFeature: symbol;
270
+ export const showProvidedFeature: unique symbol;
282
271
 
283
272
  export interface TileProviderFeatureProviderOptions extends AbstractFeatureProviderOptions {
284
273
  tileProvider: TileProvider;
@@ -310,12 +299,6 @@ export class TileProviderFeatureProvider extends AbstractFeatureProvider {
310
299
  * The vector properties assigned to features created by this provider
311
300
  */
312
301
  vectorProperties: VectorProperties;
313
- /**
314
- * An object of potential generic feature properties to add to all feature created by this provider
315
- */
316
- genericFeatureProperties: {
317
- [key: string]: any;
318
- } | undefined;
319
302
  }
320
303
 
321
304
  /**
@@ -388,12 +371,6 @@ export class WMSFeatureProvider extends AbstractFeatureProvider {
388
371
  * The vector properties assigned to features created by this provider
389
372
  */
390
373
  vectorProperties: VectorProperties;
391
- /**
392
- * An object of potential generic feature properties to add to all feature created by this provider
393
- */
394
- genericFeatureProperties: {
395
- [key: string]: any;
396
- } | undefined;
397
374
  /**
398
375
  * Map ClassNames Can be used to only apply this featureProvider to the specified maps
399
376
  */
@@ -575,6 +552,10 @@ export class EventHandler {
575
552
  * A copy of all the EventHandler interactions
576
553
  */
577
554
  readonly interactions: AbstractInteraction[];
555
+ /**
556
+ * An event called, when the modifier changes. Order of precedence, if more then one key is pressed: SHIFT, ALT, CTRL
557
+ */
558
+ readonly modifierChanged: VcsEvent<ModificationKeyType>;
578
559
  /**
579
560
  * Add a dynamic interaction to the interaction chain. This is the default methodology for
580
561
  * user map interactions, such as drawing or measuring. If another exclusive interaction is added,
@@ -701,7 +682,7 @@ export class BitCounter {
701
682
  /**
702
683
  * Enumeration of modification key types
703
684
  */
704
- export const enum ModificationKeyType {
685
+ export enum ModificationKeyType {
705
686
  NONE,
706
687
  ALT,
707
688
  CTRL,
@@ -712,7 +693,7 @@ export const enum ModificationKeyType {
712
693
  /**
713
694
  * Enumeration of pointer event types
714
695
  */
715
- export const enum EventType {
696
+ export enum EventType {
716
697
  NONE,
717
698
  CLICK,
718
699
  DBLCLICK,
@@ -728,7 +709,7 @@ export const enum EventType {
728
709
  /**
729
710
  * Enumeration of pointer keys.
730
711
  */
731
- export const enum PointerKeyType {
712
+ export enum PointerKeyType {
732
713
  LEFT,
733
714
  RIGHT,
734
715
  MIDDLE,
@@ -738,13 +719,13 @@ export const enum PointerKeyType {
738
719
  /**
739
720
  * Enumeration of pointer key events.
740
721
  */
741
- export const enum PointerEventType {
722
+ export enum PointerEventType {
742
723
  DOWN,
743
724
  UP,
744
725
  MOVE
745
726
  }
746
727
 
747
- export const cesiumTilesetLastUpdated: symbol;
728
+ export const cesiumTilesetLastUpdated: unique symbol;
748
729
 
749
730
  /**
750
731
  * @returns in mercator
@@ -786,6 +767,7 @@ export class ClusterContext {
786
767
  featureToBillboardMap: Map<import("ol").Feature<import("ol/geom/Geometry").default>, import("@vcmap/cesium").Entity[]>;
787
768
  featureToLabelMap: Map<import("ol").Feature<import("ol/geom/Geometry").default>, import("@vcmap/cesium").Entity[]>;
788
769
  addPrimitives(primitives: (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Model)[], feature: import("ol").Feature<import("ol/geom/Geometry").default>, allowPicking?: boolean): void;
770
+ addScaledPrimitives(primitives: (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Model)[], feature: import("ol").Feature<import("ol/geom/Geometry").default>, allowPicking?: boolean): void;
789
771
  addBillboards(billboardOptions: object[], feature: import("ol").Feature<import("ol/geom/Geometry").default>, allowPicking?: boolean): void;
790
772
  addLabels(labelOptions: object[], feature: import("ol").Feature<import("ol/geom/Geometry").default>, allowPicking?: boolean): void;
791
773
  removeFeature(feature: import("ol").Feature<import("ol/geom/Geometry").default>): void;
@@ -794,6 +776,7 @@ export class ClusterContext {
794
776
  */
795
777
  createFeatureCache(feature: import("ol").Feature<import("ol/geom/Geometry").default>): VectorContextFeatureCache;
796
778
  clearFeatureCache(cache: VectorContextFeatureCache): void;
779
+ updateSplitDirection(splitDirection: import("@vcmap/cesium").SplitDirection): void;
797
780
  }
798
781
 
799
782
  export class DataSourceCesiumImpl extends LayerImplementation<CesiumMap> {
@@ -890,6 +873,7 @@ export class VectorCesiumImpl extends LayerImplementation<CesiumMap> implements
890
873
  constructor(map: CesiumMap, options: VectorImplementationOptions);
891
874
  vectorProperties: VectorProperties;
892
875
  source: import("ol/source").Vector<import("ol/geom/Geometry").default>;
876
+ splitDirection: import("@vcmap/cesium").SplitDirection;
893
877
  style: StyleItem;
894
878
  featureVisibility: FeatureVisibility;
895
879
 
@@ -904,12 +888,14 @@ export class VectorCesiumImpl extends LayerImplementation<CesiumMap> implements
904
888
  activate(): Promise<void>;
905
889
  deactivate(): void;
906
890
  updateStyle(style: StyleItem, silent?: boolean): void;
891
+ updateSplitDirection(splitDirection: import("@vcmap/cesium").SplitDirection): void;
907
892
  protected _destroyCollection(): void;
908
893
  destroy(): void;
909
894
  }
910
895
 
911
896
  export interface VectorContextFeatureCache {
912
897
  primitives?: (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Model)[] | undefined;
898
+ scaledPrimitives?: (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Model)[] | undefined;
913
899
  billboards?: (import("@vcmap/cesium").Billboard | import("@vcmap/cesium").Entity)[] | undefined;
914
900
  labels?: (import("@vcmap/cesium").Label | import("@vcmap/cesium").Entity)[] | undefined;
915
901
  }
@@ -918,19 +904,37 @@ export function setReferenceForPicking(feature: import("ol").Feature<import("ol/
918
904
 
919
905
  export function removeArrayFromCollection(collection: import("@vcmap/cesium").PrimitiveCollection | import("@vcmap/cesium").BillboardCollection | import("@vcmap/cesium").LabelCollection | import("@vcmap/cesium").EntityCollection, array?: (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Billboard | import("@vcmap/cesium").Label | import("@vcmap/cesium").Entity | import("@vcmap/cesium").Model)[]): void;
920
906
 
921
- export function removeFeatureFromMap(feature: import("ol").Feature<import("ol/geom/Geometry").default>, featuresMap: Map<import("ol").Feature<import("ol/geom/Geometry").default>, (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Billboard | import("@vcmap/cesium").Label | import("@vcmap/cesium").Entity | import("@vcmap/cesium").Model)[]>, primitiveCollection: import("@vcmap/cesium").PrimitiveCollection | import("@vcmap/cesium").BillboardCollection | import("@vcmap/cesium").LabelCollection | import("@vcmap/cesium").EntityCollection): void;
907
+ /**
908
+ * @returns - if a feature was removed from the map
909
+ */
910
+ export function removeFeatureFromMap(feature: import("ol").Feature<import("ol/geom/Geometry").default>, featuresMap: Map<import("ol").Feature<import("ol/geom/Geometry").default>, (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Billboard | import("@vcmap/cesium").Label | import("@vcmap/cesium").Entity | import("@vcmap/cesium").Model)[]>, primitiveCollection: import("@vcmap/cesium").PrimitiveCollection | import("@vcmap/cesium").BillboardCollection | import("@vcmap/cesium").LabelCollection | import("@vcmap/cesium").EntityCollection): boolean;
911
+
912
+ export function addPrimitiveToContext(primitives: (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Entity.ConstructorOptions | import("@vcmap/cesium").Model | object)[], feature: import("ol").Feature<import("ol/geom/Geometry").default>, allowPicking: boolean, primitiveCollection: import("@vcmap/cesium").BillboardCollection | import("@vcmap/cesium").LabelCollection | import("@vcmap/cesium").PrimitiveCollection | import("@vcmap/cesium").EntityCollection, featureMap: Map<import("ol").Feature<import("ol/geom/Geometry").default>, (import("@vcmap/cesium").Billboard | import("@vcmap/cesium").Label | import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Entity | import("@vcmap/cesium").Model)[]>, splitDirection?: import("@vcmap/cesium").SplitDirection): void;
922
913
 
923
- export function addPrimitiveToContext(primitives: (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Entity.ConstructorOptions | import("@vcmap/cesium").Model | object)[], feature: import("ol").Feature<import("ol/geom/Geometry").default>, allowPicking: boolean, primitiveCollection: import("@vcmap/cesium").BillboardCollection | import("@vcmap/cesium").LabelCollection | import("@vcmap/cesium").PrimitiveCollection | import("@vcmap/cesium").EntityCollection, featureMap: Map<import("ol").Feature<import("ol/geom/Geometry").default>, (import("@vcmap/cesium").Billboard | import("@vcmap/cesium").Label | import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Entity | import("@vcmap/cesium").Model)[]>): void;
914
+ /**
915
+ * Sets splitDirection on primitives. Currently only Model primitives support splitting.
916
+ */
917
+ export function setSplitDirectionOnPrimitives(splitDirection: import("@vcmap/cesium").SplitDirection, primitives: import("@vcmap/cesium").PrimitiveCollection): void;
918
+
919
+ /**
920
+ * Creates a self scaling primitive collection. It will scale a primitive of model in the collection
921
+ * in such a fashion, that the cartesian unit of 1 equals 1 pixel.
922
+ */
923
+ export function setupScalingPrimitiveCollection(map: CesiumMap, primitiveCollection: import("@vcmap/cesium").PrimitiveCollection, dirtyRef: any): (...params: any[]) => any;
924
924
 
925
925
  export class VectorContext {
926
- constructor(scene: import("@vcmap/cesium").Scene, rootCollection: import("@vcmap/cesium").PrimitiveCollection);
926
+ constructor(map: CesiumMap, rootCollection: import("@vcmap/cesium").PrimitiveCollection, splitDirection: import("@vcmap/cesium").SplitDirection);
927
927
  primitives: import("@vcmap/cesium").PrimitiveCollection;
928
+ scaledPrimitives: import("@vcmap/cesium").PrimitiveCollection;
928
929
  billboards: import("@vcmap/cesium").BillboardCollection;
929
930
  labels: import("@vcmap/cesium").LabelCollection;
930
931
  featureToPrimitiveMap: Map<import("ol").Feature<import("ol/geom/Geometry").default>, (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Model)[]>;
932
+ featureToScaledPrimitiveMap: Map<import("ol").Feature<import("ol/geom/Geometry").default>, (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Model)[]>;
931
933
  featureToBillboardMap: Map<import("ol").Feature<import("ol/geom/Geometry").default>, import("@vcmap/cesium").Billboard[]>;
932
934
  featureToLabelMap: Map<import("ol").Feature<import("ol/geom/Geometry").default>, import("@vcmap/cesium").Label[]>;
935
+ splitDirection: import("@vcmap/cesium").SplitDirection;
933
936
  addPrimitives(primitives: (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Model)[], feature: import("ol").Feature<import("ol/geom/Geometry").default>, allowPicking?: boolean): void;
937
+ addScaledPrimitives(primitives: (import("@vcmap/cesium").Primitive | import("@vcmap/cesium").GroundPrimitive | import("@vcmap/cesium").GroundPolylinePrimitive | import("@vcmap/cesium").ClassificationPrimitive | import("@vcmap/cesium").Model)[], feature: import("ol").Feature<import("ol/geom/Geometry").default>, allowPicking?: boolean): void;
934
938
  addBillboards(billboardOptions: object[], feature: import("ol").Feature<import("ol/geom/Geometry").default>, allowPicking?: boolean): void;
935
939
  addLabels(labelOptions: object[], feature: import("ol").Feature<import("ol/geom/Geometry").default>, allowPicking?: boolean): void;
936
940
  removeFeature(feature: import("ol").Feature<import("ol/geom/Geometry").default>): void;
@@ -939,10 +943,18 @@ export class VectorContext {
939
943
  */
940
944
  createFeatureCache(feature: import("ol").Feature<import("ol/geom/Geometry").default>): VectorContextFeatureCache;
941
945
  clearFeatureCache(cache: VectorContextFeatureCache): void;
946
+ /**
947
+ * Updates splitDirection on primitives. Currently only Model primitives support splitting.
948
+ */
949
+ updateSplitDirection(splitDirection: import("@vcmap/cesium").SplitDirection): void;
942
950
  /**
943
951
  * Clears all collections and maps
944
952
  */
945
953
  clear(): void;
954
+ /**
955
+ * Destroys this context and all its resources
956
+ */
957
+ destroy(): void;
946
958
  }
947
959
 
948
960
 
@@ -1074,10 +1086,6 @@ export interface CesiumTilesetOptions extends LayerOptions {
1074
1086
  tilesetOptions?: any | undefined;
1075
1087
  highlightStyle?: VectorStyleItem | VectorStyleItemOptions | undefined;
1076
1088
  featureVisibility?: FeatureVisibility | undefined;
1077
- /**
1078
- * either 'left' or 'right', if omitted none is applied
1079
- */
1080
- splitDirection?: string | undefined;
1081
1089
  /**
1082
1090
  * an offset of x, y, z. x and y in degrees longitude/latitude respectively
1083
1091
  */
@@ -1091,18 +1099,15 @@ export interface CesiumTilesetTilesetProperties {
1091
1099
 
1092
1100
  export interface CesiumTilesetImplementationOptions extends FeatureLayerImplementationOptions {
1093
1101
  tilesetOptions?: any | undefined;
1094
- splitDirection: import("@vcmap/cesium").SplitDirection;
1095
1102
  tilesetProperties?: CesiumTilesetTilesetProperties[] | undefined;
1096
1103
  modelMatrix?: import("@vcmap/cesium").Matrix4 | undefined;
1097
1104
  offset?: import("ol/coordinate").Coordinate | undefined;
1098
1105
  }
1099
1106
 
1100
-
1101
-
1102
1107
  /**
1103
1108
  * represents a specific Building layer for cesium.
1104
1109
  */
1105
- export class CesiumTilesetLayer extends FeatureLayer implements SplitLayer {
1110
+ export class CesiumTilesetLayer extends FeatureLayer {
1106
1111
  constructor(options: CesiumTilesetOptions);
1107
1112
  static className: string;
1108
1113
  static getDefaultOptions(): CesiumTilesetOptions;
@@ -1111,14 +1116,8 @@ export class CesiumTilesetLayer extends FeatureLayer implements SplitLayer {
1111
1116
  screenSpaceErrorMobile: number;
1112
1117
  maximumMemoryUsage: number;
1113
1118
  tilesetOptions: any;
1114
-
1115
- /**
1116
- * raised if the split direction changes, is passed the split direction as its only argument
1117
- */
1118
- splitDirectionChanged: VcsEvent<import("@vcmap/cesium").SplitDirection>;
1119
1119
  modelMatrix: any;
1120
1120
  offset: any;
1121
- splitDirection: any;
1122
1121
  /**
1123
1122
  * set the maximum screenspace error of this layer
1124
1123
  */
@@ -1131,6 +1130,11 @@ export class CesiumTilesetLayer extends FeatureLayer implements SplitLayer {
1131
1130
  * a height offset for rendering of a balloon for a feature of this layer.
1132
1131
  */
1133
1132
  balloonHeightOffset: number;
1133
+
1134
+ /**
1135
+ * raised if the split direction changes, is passed the split direction as its only argument
1136
+ */
1137
+ splitDirectionChanged: VcsEvent<import("@vcmap/cesium").SplitDirection>;
1134
1138
  /**
1135
1139
  * FeatureVisibility tracks the highlighting and hiding of features on this layer
1136
1140
  */
@@ -1143,10 +1147,7 @@ export class CesiumTilesetLayer extends FeatureLayer implements SplitLayer {
1143
1147
  * style, use setStyle to change
1144
1148
  */
1145
1149
  readonly style: StyleItem;
1146
- /**
1147
- * Generic properties to be added to each feature. Use assignGenericFeatureProperties to change them.
1148
- */
1149
- readonly genericFeatureProperties: any;
1150
+ splitDirection: import("@vcmap/cesium").SplitDirection;
1150
1151
  /**
1151
1152
  * Metadata on the extent of the data in this layer. Depending on the implementation, data is only requested
1152
1153
  * for this extent (e.g. {@see RasterLayer})
@@ -1217,7 +1218,7 @@ export class CesiumTilesetLayer extends FeatureLayer implements SplitLayer {
1217
1218
  readonly className: string;
1218
1219
  }
1219
1220
 
1220
- export interface CzmlOptions extends DataSourceOptions {
1221
+ export interface CzmlOptions extends LayerOptions {
1221
1222
  sourceUri?: string | undefined;
1222
1223
  }
1223
1224
 
@@ -1310,10 +1311,6 @@ export class CzmlLayer extends DataSourceLayer {
1310
1311
  readonly className: string;
1311
1312
  }
1312
1313
 
1313
- export interface DataSourceOptions extends LayerOptions {
1314
- genericFeatureProperties?: any | undefined;
1315
- }
1316
-
1317
1314
  export interface DataSourcePickedObject {
1318
1315
  id: import("@vcmap/cesium").Entity;
1319
1316
  clickedPosition: ClickPosition;
@@ -1329,8 +1326,7 @@ export interface DataSourceImplementationOptions extends LayerImplementationOpti
1329
1326
  * Represents a layer of Cesium.Entity
1330
1327
  */
1331
1328
  export class DataSourceLayer extends Layer {
1332
- constructor(options: DataSourceOptions);
1333
- static getDefaultOptions(): DataSourceOptions;
1329
+ constructor(options: LayerOptions);
1334
1330
  /**
1335
1331
  * The entities of this layer. Use the `addEntity` API to add Enitities to ensure interoperability with vcm interfaces
1336
1332
  */
@@ -1357,7 +1353,6 @@ export class DataSourceLayer extends Layer {
1357
1353
  */
1358
1354
  removeEntityById(id: string): void;
1359
1355
  objectClickedHandler(object: DataSourcePickedObject): any;
1360
- getGenericFeatureFromClickedObject(object: DataSourcePickedObject): GenericFeature;
1361
1356
  /**
1362
1357
  * Metadata on the extent of the data in this layer. Depending on the implementation, data is only requested
1363
1358
  * for this extent (e.g. {@see RasterLayer})
@@ -1432,11 +1427,11 @@ export class DataSourceLayer extends Layer {
1432
1427
  */
1433
1428
  export interface FeatureLayerOptions extends LayerOptions {
1434
1429
  style?: DeclarativeStyleItemOptions | VectorStyleItemOptions | StyleItem | undefined;
1430
+ balloonHeightOffset?: number;
1435
1431
  /**
1436
- * properties to add to generic features, eg for display in the balloon
1432
+ * either 'left' or 'right', if omitted none is applied (for 3D Vector currently only Models are split-able)
1437
1433
  */
1438
- genericFeatureProperties?: any | undefined;
1439
- balloonHeightOffset?: number;
1434
+ splitDirection?: string | undefined;
1440
1435
  /**
1441
1436
  * vcs:undocumented
1442
1437
  */
@@ -1445,18 +1440,22 @@ export interface FeatureLayerOptions extends LayerOptions {
1445
1440
 
1446
1441
  export interface FeatureLayerImplementationOptions extends LayerImplementationOptions {
1447
1442
  globalHider: GlobalHider;
1443
+ splitDirection: import("@vcmap/cesium").SplitDirection;
1448
1444
  featureVisibility: FeatureVisibility;
1449
1445
  style: StyleItem;
1450
1446
  }
1451
1447
 
1452
1448
  export interface FeatureLayerImplementation extends LayerImplementation<VcsMap> {
1453
1449
  updateStyle: (...params: any[]) => any;
1450
+ updateSplitDirection: (...params: any[]) => any;
1454
1451
  }
1455
1452
 
1453
+
1454
+
1456
1455
  /**
1457
1456
  * Base class for all layers representing features, e.g. VectorLayer, Buildings, POIs
1458
1457
  */
1459
- export class FeatureLayer extends Layer {
1458
+ export class FeatureLayer extends Layer implements SplitLayer {
1460
1459
  constructor(options: FeatureLayerOptions);
1461
1460
  static className: string;
1462
1461
  static getDefaultOptions(): FeatureLayerOptions;
@@ -1468,6 +1467,11 @@ export class FeatureLayer extends Layer {
1468
1467
  * a height offset for rendering of a balloon for a feature of this layer.
1469
1468
  */
1470
1469
  balloonHeightOffset: number;
1470
+
1471
+ /**
1472
+ * raised if the split direction changes, is passed the split direction as its only argument
1473
+ */
1474
+ splitDirectionChanged: VcsEvent<import("@vcmap/cesium").SplitDirection>;
1471
1475
  /**
1472
1476
  * FeatureVisibility tracks the highlighting and hiding of features on this layer
1473
1477
  */
@@ -1480,20 +1484,8 @@ export class FeatureLayer extends Layer {
1480
1484
  * style, use setStyle to change
1481
1485
  */
1482
1486
  readonly style: StyleItem;
1483
- /**
1484
- * Generic properties to be added to each feature. Use assignGenericFeatureProperties to change them.
1485
- */
1486
- readonly genericFeatureProperties: any;
1487
+ splitDirection: any;
1487
1488
  objectClickedHandler(object: any | import("ol").Feature<import("ol/geom/Geometry").default> | import("@vcmap/cesium").Cesium3DTilePointFeature | import("@vcmap/cesium").Cesium3DTileFeature | DataSourcePickedObject): any;
1488
- /**
1489
- * This is called by the selectBehavior to create generic features from clicked objects
1490
- * needs to be implemented by each layer which has clickable objects
1491
- */
1492
- getGenericFeatureFromClickedObject(object: any | VectorClickedObject | import("ol").Feature<import("ol/geom/Geometry").default>): GenericFeature;
1493
- /**
1494
- * Set properties, which are always added to the generic object, eg. for use in balloons
1495
- */
1496
- assignGenericFeatureProperties(properties: any): void;
1497
1489
  getStyleOrDefaultStyle(styleOptions?: DeclarativeStyleItemOptions | VectorStyleItemOptions | StyleItem, defaultStyle?: VectorStyleItem | DeclarativeStyleItem): StyleItem;
1498
1490
  /**
1499
1491
  * Sets the style based on a styleName on a layer
@@ -1643,7 +1635,7 @@ export interface FeatureStoreOptions extends FeatureStoreLayerSchema {
1643
1635
  injectedFetchDynamicFeatureFunc?: ((...params: any[]) => any) | undefined;
1644
1636
  }
1645
1637
 
1646
- export const isTiledFeature: symbol;
1638
+ export const isTiledFeature: unique symbol;
1647
1639
 
1648
1640
  /**
1649
1641
  * FeatureStoreLayer Layer
@@ -1706,6 +1698,11 @@ export class FeatureStoreLayer extends VectorLayer {
1706
1698
  * a height offset for rendering of a balloon for a feature of this layer.
1707
1699
  */
1708
1700
  balloonHeightOffset: number;
1701
+
1702
+ /**
1703
+ * raised if the split direction changes, is passed the split direction as its only argument
1704
+ */
1705
+ splitDirectionChanged: VcsEvent<import("@vcmap/cesium").SplitDirection>;
1709
1706
  /**
1710
1707
  * FeatureVisibility tracks the highlighting and hiding of features on this layer
1711
1708
  */
@@ -1718,10 +1715,7 @@ export class FeatureStoreLayer extends VectorLayer {
1718
1715
  * style, use setStyle to change
1719
1716
  */
1720
1717
  readonly style: StyleItem;
1721
- /**
1722
- * Generic properties to be added to each feature. Use assignGenericFeatureProperties to change them.
1723
- */
1724
- readonly genericFeatureProperties: any;
1718
+ splitDirection: import("@vcmap/cesium").SplitDirection;
1725
1719
  /**
1726
1720
  * Metadata on the extent of the data in this layer. Depending on the implementation, data is only requested
1727
1721
  * for this extent (e.g. {@see RasterLayer})
@@ -1875,12 +1869,12 @@ export class FeatureStoreLayerChanges extends VcsObject {
1875
1869
  readonly className: string;
1876
1870
  }
1877
1871
 
1878
- export const featureStoreStateSymbol: symbol;
1872
+ export const featureStoreStateSymbol: unique symbol;
1879
1873
 
1880
1874
  /**
1881
1875
  * Enumeration of feature store item states
1882
1876
  */
1883
- export const enum FeatureStoreLayerState {
1877
+ export enum FeatureStoreLayerState {
1884
1878
  DYNAMIC,
1885
1879
  STATIC,
1886
1880
  EDITED
@@ -1890,25 +1884,25 @@ export const enum FeatureStoreLayerState {
1890
1884
  * Set on an ol.Feature or Cesium.Cesium3DTileFeature to indicate its style before it was hidden or highlighted.
1891
1885
  * Can be undefined or ol.style.Style for ol.Features and Cesium.Color for Cesium.Cesium3DTileFeatures.
1892
1886
  */
1893
- export const originalStyle: symbol;
1887
+ export const originalStyle: unique symbol;
1894
1888
 
1895
1889
  /**
1896
1890
  * Set on an ol.Feature or Cesium.Cesium3DTileFeature to indicate that this features is highlighted.
1897
1891
  * Its value is a {@link VectorStyleItem}.
1898
1892
  */
1899
- export const highlighted: symbol;
1893
+ export const highlighted: unique symbol;
1900
1894
 
1901
1895
  /**
1902
1896
  * Is a boolean value set on ol.Feature or Cesium.Cesium3DTileFeature to indicate it is hidden
1903
1897
  * by the layers {@link FeatureVisibility}.
1904
1898
  */
1905
- export const hidden: symbol;
1899
+ export const hidden: unique symbol;
1906
1900
 
1907
1901
  /**
1908
1902
  * Is a boolean value set on ol.Feature or Cesium.Cesium3DTileFeature to indicate it is hidden
1909
1903
  * by the {@link GlobalHider}
1910
1904
  */
1911
- export const globalHidden: symbol;
1905
+ export const globalHidden: unique symbol;
1912
1906
 
1913
1907
  export interface HighlightedObject {
1914
1908
  style: VectorStyleItem;
@@ -1925,7 +1919,7 @@ export function featureExists(feature: import("@vcmap/cesium").Cesium3DTileFeatu
1925
1919
  /**
1926
1920
  * Enumeration of feature visibility actions.
1927
1921
  */
1928
- export const enum FeatureVisibilityAction {
1922
+ export enum FeatureVisibilityAction {
1929
1923
  HIGHLIGHT,
1930
1924
  UNHIGHLIGHT,
1931
1925
  HIDE,
@@ -2081,7 +2075,7 @@ export interface GeoJSONOptions extends VectorOptions {
2081
2075
  /**
2082
2076
  * indicates, that this feature is part of the options
2083
2077
  */
2084
- export const featureFromOptions: symbol;
2078
+ export const featureFromOptions: unique symbol;
2085
2079
 
2086
2080
  /**
2087
2081
  * GeojsonLayer layer for Cesium, OpenlayersMap and ObliqueMap
@@ -2119,6 +2113,11 @@ export class GeoJSONLayer extends VectorLayer {
2119
2113
  * a height offset for rendering of a balloon for a feature of this layer.
2120
2114
  */
2121
2115
  balloonHeightOffset: number;
2116
+
2117
+ /**
2118
+ * raised if the split direction changes, is passed the split direction as its only argument
2119
+ */
2120
+ splitDirectionChanged: VcsEvent<import("@vcmap/cesium").SplitDirection>;
2122
2121
  /**
2123
2122
  * FeatureVisibility tracks the highlighting and hiding of features on this layer
2124
2123
  */
@@ -2131,10 +2130,7 @@ export class GeoJSONLayer extends VectorLayer {
2131
2130
  * style, use setStyle to change
2132
2131
  */
2133
2132
  readonly style: StyleItem;
2134
- /**
2135
- * Generic properties to be added to each feature. Use assignGenericFeatureProperties to change them.
2136
- */
2137
- readonly genericFeatureProperties: any;
2133
+ splitDirection: import("@vcmap/cesium").SplitDirection;
2138
2134
  /**
2139
2135
  * Metadata on the extent of the data in this layer. Depending on the implementation, data is only requested
2140
2136
  * for this extent (e.g. {@see RasterLayer})
@@ -2237,16 +2233,6 @@ export class GlobalHider {
2237
2233
  hasFeature(uuid: string | number, feature: import("ol").Feature<import("ol/geom/Geometry").default> | import("@vcmap/cesium").Cesium3DTileFeature | import("@vcmap/cesium").Cesium3DTilePointFeature | import("@vcmap/cesium").Entity): boolean;
2238
2234
  }
2239
2235
 
2240
- export interface GenericFeature {
2241
- longitude: number;
2242
- latitude: number;
2243
- height: number;
2244
- layerName: string;
2245
- layerClass: string;
2246
- attributes: any;
2247
- relativeToGround: boolean;
2248
- }
2249
-
2250
2236
  export interface SplitLayer extends Layer {
2251
2237
  splitDirection: import("@vcmap/cesium").SplitDirection;
2252
2238
  splitDirectionChanged: VcsEvent<import("@vcmap/cesium").SplitDirection>;
@@ -2322,6 +2308,10 @@ export interface LayerImplementationOptions {
2322
2308
  url: string;
2323
2309
  }
2324
2310
 
2311
+ export interface SplitLayerImplementationOptions extends LayerImplementationOptions {
2312
+ splitDirection: import("@vcmap/cesium").SplitDirection;
2313
+ }
2314
+
2325
2315
  /**
2326
2316
  * The version of vcsMeta schema being written by this helper
2327
2317
  */
@@ -2512,12 +2502,14 @@ export class LayerImplementation<T extends VcsMap> extends VcsObject {
2512
2502
  * Enumeration of possible layer states.
2513
2503
  * State machine: inactive <-> loading -> active -> inactive
2514
2504
  */
2515
- export const enum LayerState {
2505
+ export enum LayerState {
2516
2506
  INACTIVE = 1,
2517
2507
  ACTIVE = 2,
2518
2508
  LOADING = 4
2519
2509
  }
2520
2510
 
2511
+ export const vcsLayerName: unique symbol;
2512
+
2521
2513
  export class LayerObliqueImpl extends LayerImplementation<ObliqueMap> {
2522
2514
  constructor(map: ObliqueMap, options: LayerImplementationOptions);
2523
2515
  olLayer: import("ol/layer").Layer<import("ol/source/Source").default> | null;
@@ -2593,6 +2585,7 @@ export class VectorObliqueImpl extends LayerObliqueImpl implements FeatureLayerI
2593
2585
  featureVisibility: FeatureVisibility;
2594
2586
  olLayer: import("ol/layer").Vector<import("ol/source").Vector<import("ol/geom/Geometry").default>> | null;
2595
2587
  updateStyle(style: StyleItem, silent?: boolean): void;
2588
+ updateSplitDirection(splitDirection: import("@vcmap/cesium").SplitDirection): void;
2596
2589
  protected _addSourceListeners(): void;
2597
2590
  updateObliqueGeometry(originalFeature: import("ol").Feature<import("ol/geom/Geometry").default>, obliqueFeature: import("ol").Feature<import("ol/geom/Geometry").default>): void;
2598
2591
 
@@ -2710,12 +2703,17 @@ export class OpenStreetMapLayer extends Layer implements SplitLayer {
2710
2703
  readonly className: string;
2711
2704
  }
2712
2705
 
2706
+ export interface LayerOpenlayersImplementationOptions extends LayerImplementationOptions {
2707
+ splitDirection: import("@vcmap/cesium").SplitDirection;
2708
+ }
2709
+
2713
2710
  /**
2714
- * Layer implementation for {@link CesiumMap}.
2711
+ * Layer implementation for {@link OpenlayersMap}.
2715
2712
  */
2716
2713
  export class LayerOpenlayersImpl extends LayerImplementation<OpenlayersMap> {
2717
- constructor(map: OpenlayersMap, options: LayerImplementationOptions);
2714
+ constructor(map: OpenlayersMap, options: LayerOpenlayersImplementationOptions);
2718
2715
  olLayer: import("ol/layer").Layer<import("ol/source/Source").default> | null;
2716
+ splitDirection: import("@vcmap/cesium").SplitDirection;
2719
2717
  initialize(): Promise<void>;
2720
2718
  activate(): Promise<void>;
2721
2719
  deactivate(): void;
@@ -2723,6 +2721,7 @@ export class LayerOpenlayersImpl extends LayerImplementation<OpenlayersMap> {
2723
2721
  * returns the ol Layer
2724
2722
  */
2725
2723
  getOLLayer(): import("ol/layer").Layer<import("ol/source/Source").default>;
2724
+ updateSplitDirection(splitDirection: import("@vcmap/cesium").SplitDirection): void;
2726
2725
  destroy(): void;
2727
2726
  }
2728
2727
 
@@ -2739,15 +2738,14 @@ export class OpenStreetMapOpenlayersImpl extends RasterLayerOpenlayersImpl {
2739
2738
  */
2740
2739
  export class RasterLayerOpenlayersImpl extends LayerOpenlayersImpl implements RasterLayerImplementation {
2741
2740
  constructor(map: OpenlayersMap, options: RasterLayerImplementationOptions);
2742
- splitDirection: import("@vcmap/cesium").SplitDirection;
2743
2741
  minLevel: number;
2744
2742
  maxLevel: number;
2745
2743
  tilingSchema: string;
2746
2744
  extent: Extent;
2747
2745
  opacity: number;
2748
2746
  updateOpacity(opacity: number): void;
2749
- updateSplitDirection(splitDirection: import("@vcmap/cesium").SplitDirection): void;
2750
2747
  olLayer: import("ol/layer").Layer<import("ol/source/Source").default> | null;
2748
+ splitDirection: import("@vcmap/cesium").SplitDirection;
2751
2749
  }
2752
2750
 
2753
2751
  /**
@@ -2756,13 +2754,13 @@ export class RasterLayerOpenlayersImpl extends LayerOpenlayersImpl implements Ra
2756
2754
  export class SingleImageOpenlayersImpl extends RasterLayerOpenlayersImpl {
2757
2755
  constructor(map: OpenlayersMap, options: SingleImageImplementationOptions);
2758
2756
  credit: string;
2759
- splitDirection: import("@vcmap/cesium").SplitDirection;
2760
2757
  minLevel: number;
2761
2758
  maxLevel: number;
2762
2759
  tilingSchema: string;
2763
2760
  extent: Extent;
2764
2761
  opacity: number;
2765
2762
  olLayer: import("ol/layer").Layer<import("ol/source/Source").default> | null;
2763
+ splitDirection: import("@vcmap/cesium").SplitDirection;
2766
2764
  }
2767
2765
 
2768
2766
 
@@ -2782,13 +2780,13 @@ export class TmsOpenlayersImpl extends RasterLayerOpenlayersImpl {
2782
2780
  constructor(map: OpenlayersMap, options: TMSImplementationOptions);
2783
2781
  format: string;
2784
2782
  tileSize: import("ol/size").Size;
2785
- splitDirection: import("@vcmap/cesium").SplitDirection;
2786
2783
  minLevel: number;
2787
2784
  maxLevel: number;
2788
2785
  tilingSchema: string;
2789
2786
  extent: Extent;
2790
2787
  opacity: number;
2791
2788
  olLayer: import("ol/layer").Layer<import("ol/source/Source").default> | null;
2789
+ splitDirection: import("@vcmap/cesium").SplitDirection;
2792
2790
  }
2793
2791
 
2794
2792
 
@@ -2807,6 +2805,7 @@ export class VectorOpenlayersImpl extends LayerOpenlayersImpl implements Feature
2807
2805
  globalHider: GlobalHider;
2808
2806
  updateStyle(style: StyleItem, silent?: boolean): void;
2809
2807
  setVisibility(visibility: boolean): void;
2808
+ splitDirection: import("@vcmap/cesium").SplitDirection;
2810
2809
  }
2811
2810
 
2812
2811
 
@@ -2830,6 +2829,7 @@ export class VectorTileOpenlayersImpl extends LayerOpenlayersImpl implements Vec
2830
2829
  updateStyle(style: StyleItem, silent?: boolean): void;
2831
2830
  setVisibility(visibility: boolean): void;
2832
2831
  olLayer: import("ol/layer").Layer<import("ol/source/Source").default> | null;
2832
+ splitDirection: import("@vcmap/cesium").SplitDirection;
2833
2833
  }
2834
2834
 
2835
2835
  /**
@@ -2842,13 +2842,13 @@ export class WmsOpenlayersImpl extends RasterLayerOpenlayersImpl {
2842
2842
  };
2843
2843
  version: string;
2844
2844
  tileSize: import("ol/size").Size;
2845
- splitDirection: import("@vcmap/cesium").SplitDirection;
2846
2845
  minLevel: number;
2847
2846
  maxLevel: number;
2848
2847
  tilingSchema: string;
2849
2848
  extent: Extent;
2850
2849
  opacity: number;
2851
2850
  olLayer: import("ol/layer").Layer<import("ol/source/Source").default> | null;
2851
+ splitDirection: import("@vcmap/cesium").SplitDirection;
2852
2852
  }
2853
2853
 
2854
2854
  /**
@@ -2865,13 +2865,13 @@ export class WmtsOpenlayersImpl extends RasterLayerOpenlayersImpl {
2865
2865
  numberOfLevelZeroTilesY: number;
2866
2866
  matrixIds: string[];
2867
2867
  openlayersOptions: any;
2868
- splitDirection: import("@vcmap/cesium").SplitDirection;
2869
2868
  minLevel: number;
2870
2869
  maxLevel: number;
2871
2870
  tilingSchema: string;
2872
2871
  extent: Extent;
2873
2872
  opacity: number;
2874
2873
  olLayer: import("ol/layer").Layer<import("ol/source/Source").default> | null;
2874
+ splitDirection: import("@vcmap/cesium").SplitDirection;
2875
2875
  }
2876
2876
 
2877
2877
  /**
@@ -2911,11 +2911,6 @@ export class PointCloudLayer extends CesiumTilesetLayer {
2911
2911
  screenSpaceErrorMobile: number;
2912
2912
  maximumMemoryUsage: number;
2913
2913
  tilesetOptions: any;
2914
-
2915
- /**
2916
- * raised if the split direction changes, is passed the split direction as its only argument
2917
- */
2918
- splitDirectionChanged: VcsEvent<import("@vcmap/cesium").SplitDirection>;
2919
2914
  /**
2920
2915
  * A model matrix to apply to each cesium3DTileset created from this layer.
2921
2916
  * This will overwrite any modelMatrix calculated by the offset property.
@@ -2927,7 +2922,6 @@ export class PointCloudLayer extends CesiumTilesetLayer {
2927
2922
  * set the modelMatrix to undefined.
2928
2923
  */
2929
2924
  offset: import("ol/coordinate").Coordinate | undefined;
2930
- splitDirection: import("@vcmap/cesium").SplitDirection;
2931
2925
  /**
2932
2926
  * An event, called when the style of the layer changes. Is passed the new style item as its value.
2933
2927
  */
@@ -2936,6 +2930,11 @@ export class PointCloudLayer extends CesiumTilesetLayer {
2936
2930
  * a height offset for rendering of a balloon for a feature of this layer.
2937
2931
  */
2938
2932
  balloonHeightOffset: number;
2933
+
2934
+ /**
2935
+ * raised if the split direction changes, is passed the split direction as its only argument
2936
+ */
2937
+ splitDirectionChanged: VcsEvent<import("@vcmap/cesium").SplitDirection>;
2939
2938
  /**
2940
2939
  * FeatureVisibility tracks the highlighting and hiding of features on this layer
2941
2940
  */
@@ -2948,10 +2947,7 @@ export class PointCloudLayer extends CesiumTilesetLayer {
2948
2947
  * style, use setStyle to change
2949
2948
  */
2950
2949
  readonly style: StyleItem;
2951
- /**
2952
- * Generic properties to be added to each feature. Use assignGenericFeatureProperties to change them.
2953
- */
2954
- readonly genericFeatureProperties: any;
2950
+ splitDirection: import("@vcmap/cesium").SplitDirection;
2955
2951
  /**
2956
2952
  * Metadata on the extent of the data in this layer. Depending on the implementation, data is only requested
2957
2953
  * for this extent (e.g. {@see RasterLayer})
@@ -3052,8 +3048,8 @@ export interface RasterLayerImplementationOptions extends LayerImplementationOpt
3052
3048
  maxLevel: number;
3053
3049
  tilingSchema: string;
3054
3050
  opacity: number;
3055
- splitDirection: import("@vcmap/cesium").SplitDirection;
3056
3051
  extent?: Extent | undefined;
3052
+ splitDirection: import("@vcmap/cesium").SplitDirection;
3057
3053
  }
3058
3054
 
3059
3055
  export interface RasterLayerImplementation extends LayerImplementation<VcsMap> {
@@ -3064,7 +3060,7 @@ export interface RasterLayerImplementation extends LayerImplementation<VcsMap> {
3064
3060
  /**
3065
3061
  * Enumeration of tiling schemes.
3066
3062
  */
3067
- export const enum TilingScheme {
3063
+ export enum TilingScheme {
3068
3064
  GEOGRAPHIC,
3069
3065
  MERCATOR
3070
3066
  }
@@ -3867,12 +3863,12 @@ export class TMSLayer extends RasterLayer {
3867
3863
  /**
3868
3864
  * Added to ol.source.Vector to determine, when the source has last had an update to its features visibility.
3869
3865
  */
3870
- export const fvLastUpdated: symbol;
3866
+ export const fvLastUpdated: unique symbol;
3871
3867
 
3872
3868
  /**
3873
3869
  * Added to ol.source.Vector to determine, when the source has last had an update to its features global visibility.
3874
3870
  */
3875
- export const globalHiderLastUpdated: symbol;
3871
+ export const globalHiderLastUpdated: unique symbol;
3876
3872
 
3877
3873
  export function updateFeatureVisibility(featureVisibility: FeatureVisibility, source: import("ol/source").Vector<import("ol/geom/Geometry").default>): void;
3878
3874
 
@@ -3880,8 +3876,6 @@ export function updateGlobalHider(globalHider: GlobalHider, source: import("ol/s
3880
3876
 
3881
3877
  export function synchronizeFeatureVisibilityWithSource(featureVisibility: FeatureVisibility, source: import("ol/source").Vector<import("ol/geom/Geometry").default>, globalHider: GlobalHider): ((...params: any[]) => void)[];
3882
3878
 
3883
- export function getGenericFeatureFromClickedObject(object: VectorClickedObject, layer: VectorLayer | VectorTileLayer): GenericFeature;
3884
-
3885
3879
  /**
3886
3880
  */
3887
3881
  export interface VectorOptions extends FeatureLayerOptions {
@@ -3953,10 +3947,12 @@ export interface VectorClickedObject extends olFeature<Geometry> {
3953
3947
  clickedPosition: ClickPosition;
3954
3948
  }
3955
3949
 
3950
+
3951
+
3956
3952
  /**
3957
3953
  * VectorLayer Layer for OpenlayersMap, Cesium and ObliqueMap
3958
3954
  */
3959
- export class VectorLayer extends FeatureLayer {
3955
+ export class VectorLayer extends FeatureLayer implements SplitLayer {
3960
3956
  constructor(options: VectorOptions);
3961
3957
  static readonly className: any;
3962
3958
  static readonly alreadyTransformedToMercator: any;
@@ -4039,6 +4035,11 @@ export class VectorLayer extends FeatureLayer {
4039
4035
  * a height offset for rendering of a balloon for a feature of this layer.
4040
4036
  */
4041
4037
  balloonHeightOffset: number;
4038
+
4039
+ /**
4040
+ * raised if the split direction changes, is passed the split direction as its only argument
4041
+ */
4042
+ splitDirectionChanged: VcsEvent<import("@vcmap/cesium").SplitDirection>;
4042
4043
  /**
4043
4044
  * FeatureVisibility tracks the highlighting and hiding of features on this layer
4044
4045
  */
@@ -4051,10 +4052,7 @@ export class VectorLayer extends FeatureLayer {
4051
4052
  * style, use setStyle to change
4052
4053
  */
4053
4054
  readonly style: StyleItem;
4054
- /**
4055
- * Generic properties to be added to each feature. Use assignGenericFeatureProperties to change them.
4056
- */
4057
- readonly genericFeatureProperties: any;
4055
+ splitDirection: import("@vcmap/cesium").SplitDirection;
4058
4056
  /**
4059
4057
  * Metadata on the extent of the data in this layer. Depending on the implementation, data is only requested
4060
4058
  * for this extent (e.g. {@see RasterLayer})
@@ -4199,28 +4197,74 @@ export interface VectorPropertiesOptions {
4199
4197
  * in degrees
4200
4198
  */
4201
4199
  modelRoll?: number;
4200
+ modelAutoScale?: boolean;
4202
4201
  /**
4203
4202
  * Model options are merged with the model definition from model url, scale and orientation and accepts any option passed to a Cesium.Model.
4204
4203
  */
4205
4204
  modelOptions?: any | undefined;
4205
+ /**
4206
+ * primitive options to render in 3D instead of a billboard
4207
+ */
4208
+ primitiveOptions?: VectorPropertiesPrimitiveOptions;
4206
4209
  /**
4207
4210
  * a base URL to resolve relative model URLs against.
4208
4211
  */
4209
4212
  baseUrl?: string | undefined;
4210
4213
  }
4211
4214
 
4212
- export interface VectorPropertiesModelOptions {
4213
- url: string;
4215
+ export interface VectorPropertiesBaseOptions {
4214
4216
  scale: number[];
4215
4217
  heading: number;
4216
4218
  pitch: number;
4217
4219
  roll: number;
4220
+ autoScale: boolean;
4221
+ }
4222
+
4223
+ export interface VectorPropertiesModelOptions extends VectorPropertiesBaseOptions {
4224
+ url: string;
4225
+ }
4226
+
4227
+ /**
4228
+ */
4229
+ export interface VectorPropertiesPrimitiveOptions {
4230
+ type: PrimitiveOptionsType;
4231
+ /**
4232
+ * the options for the specified geometry
4233
+ */
4234
+ geometryOptions: any;
4235
+ depthFailColor?: import("ol/color").Color | import("ol/colorlike").ColorLike;
4236
+ /**
4237
+ * an offset to apply to the geometry
4238
+ */
4239
+ offset?: import("ol/coordinate").Coordinate;
4240
+ /**
4241
+ * additional options passed to the Primitive constructor
4242
+ */
4243
+ additionalOptions?: any;
4244
+ }
4245
+
4246
+ export interface VectorPropertiesPrimitive extends VectorPropertiesBaseOptions {
4247
+ primitiveOptions: VectorPropertiesPrimitiveOptions;
4248
+ }
4249
+
4250
+ export enum PrimitiveOptionsType {
4251
+ CYLINDER,
4252
+ SPHERE,
4253
+ ELLIPSE,
4254
+ ELLIPSOID,
4255
+ BOC
4218
4256
  }
4219
4257
 
4220
- export const enum AltitudeModeCesium {
4258
+ export enum AltitudeModeCesium {
4259
+ clampToGround,
4260
+ absolute,
4261
+ relativeToGround
4221
4262
  }
4222
4263
 
4223
- export const enum ClassificationTypeCesium {
4264
+ export enum ClassificationTypeCesium {
4265
+ both,
4266
+ cesium3DTile,
4267
+ terrain
4224
4268
  }
4225
4269
 
4226
4270
  export function parseNearFarScalar(value: number[], defaultValue: import("@vcmap/cesium").NearFarScalar | undefined): import("@vcmap/cesium").NearFarScalar | undefined;
@@ -4299,8 +4343,16 @@ export class VectorProperties {
4299
4343
  * Get the features or the properties modelOptions. Returns an empty Object if both are undefined
4300
4344
  */
4301
4345
  getModelOptions(feature: import("ol").Feature<import("ol/geom/Geometry").default>): any;
4346
+ modelAutoScale: any;
4347
+ getModelAutoScale(feature: import("ol").Feature<import("ol/geom/Geometry").default>): any | boolean;
4302
4348
  baseUrl: any;
4303
4349
  getBaseUrl(feature: import("ol").Feature<import("ol/geom/Geometry").default>): string;
4350
+ primitiveOptions: any;
4351
+ getPrimitiveOptions(feature: import("ol").Feature<import("ol/geom/Geometry").default>): VectorPropertiesPrimitiveOptions | null;
4352
+ /**
4353
+ * Returns the primive definition of this feature
4354
+ */
4355
+ getPrimitive(feature: import("ol").Feature<import("ol/geom/Geometry").default>): VectorPropertiesPrimitive | null;
4304
4356
  getModel(feature: import("ol").Feature<import("ol/geom/Geometry").default>): VectorPropertiesModelOptions | null;
4305
4357
  /**
4306
4358
  * resets values, either given, or default Value raises propertyChanged event once;
@@ -4321,40 +4373,40 @@ export class VectorProperties {
4321
4373
  /**
4322
4374
  * Attached to a geometry to indicate, it is already in mercator and not the layers default projection
4323
4375
  */
4324
- export const alreadyTransformedToMercator: symbol;
4376
+ export const alreadyTransformedToMercator: unique symbol;
4325
4377
 
4326
4378
  /**
4327
4379
  * Attached to a geometry to indicate, it is already in oblique image coordiantes and not mercator
4328
4380
  */
4329
- export const alreadyTransformedToImage: symbol;
4381
+ export const alreadyTransformedToImage: unique symbol;
4330
4382
 
4331
4383
  /**
4332
4384
  * Attached to an ol/Feature to reference the underlying oblique geometry
4333
4385
  */
4334
- export const obliqueGeometry: symbol;
4386
+ export const obliqueGeometry: unique symbol;
4335
4387
 
4336
4388
  /**
4337
4389
  * Attached to an ol/Feature which should only exist in oblqie coordinates and not be transformed to mercator on change
4338
4390
  */
4339
- export const doNotTransform: symbol;
4391
+ export const doNotTransform: unique symbol;
4340
4392
 
4341
4393
  /**
4342
4394
  * Attached to oblique features to reference the underlying original ol/Feature
4343
4395
  */
4344
- export const originalFeatureSymbol: symbol;
4396
+ export const originalFeatureSymbol: unique symbol;
4345
4397
 
4346
4398
  /**
4347
4399
  * Attached to mercator or oblique geometries which are polygons but have a circular counterpart. Used to not
4348
4400
  * mess up circle drawing in oblique
4349
4401
  */
4350
- export const actuallyIsCircle: symbol;
4402
+ export const actuallyIsCircle: unique symbol;
4351
4403
 
4352
4404
  /**
4353
4405
  * Can be attached to features to have the primitives be created sync instead of async. Use this
4354
4406
  * for faster response times to changes. Do not use this on bulk insertion etc. since sync creation blocks
4355
4407
  * the rendering thread
4356
4408
  */
4357
- export const createSync: symbol;
4409
+ export const createSync: unique symbol;
4358
4410
 
4359
4411
  export function synchronizeFeatureVisibility(source: FeatureVisibility, destination: FeatureVisibility): (...params: any[]) => any;
4360
4412
 
@@ -4416,6 +4468,11 @@ export class VectorTileLayer extends FeatureLayer {
4416
4468
  * a height offset for rendering of a balloon for a feature of this layer.
4417
4469
  */
4418
4470
  balloonHeightOffset: number;
4471
+
4472
+ /**
4473
+ * raised if the split direction changes, is passed the split direction as its only argument
4474
+ */
4475
+ splitDirectionChanged: VcsEvent<import("@vcmap/cesium").SplitDirection>;
4419
4476
  /**
4420
4477
  * FeatureVisibility tracks the highlighting and hiding of features on this layer
4421
4478
  */
@@ -4428,10 +4485,7 @@ export class VectorTileLayer extends FeatureLayer {
4428
4485
  * style, use setStyle to change
4429
4486
  */
4430
4487
  readonly style: StyleItem;
4431
- /**
4432
- * Generic properties to be added to each feature. Use assignGenericFeatureProperties to change them.
4433
- */
4434
- readonly genericFeatureProperties: any;
4488
+ splitDirection: import("@vcmap/cesium").SplitDirection;
4435
4489
  /**
4436
4490
  * Metadata on the extent of the data in this layer. Depending on the implementation, data is only requested
4437
4491
  * for this extent (e.g. {@see RasterLayer})
@@ -4560,6 +4614,11 @@ export class WFSLayer extends VectorLayer {
4560
4614
  * a height offset for rendering of a balloon for a feature of this layer.
4561
4615
  */
4562
4616
  balloonHeightOffset: number;
4617
+
4618
+ /**
4619
+ * raised if the split direction changes, is passed the split direction as its only argument
4620
+ */
4621
+ splitDirectionChanged: VcsEvent<import("@vcmap/cesium").SplitDirection>;
4563
4622
  /**
4564
4623
  * FeatureVisibility tracks the highlighting and hiding of features on this layer
4565
4624
  */
@@ -4572,10 +4631,7 @@ export class WFSLayer extends VectorLayer {
4572
4631
  * style, use setStyle to change
4573
4632
  */
4574
4633
  readonly style: StyleItem;
4575
- /**
4576
- * Generic properties to be added to each feature. Use assignGenericFeatureProperties to change them.
4577
- */
4578
- readonly genericFeatureProperties: any;
4634
+ splitDirection: import("@vcmap/cesium").SplitDirection;
4579
4635
  /**
4580
4636
  * Metadata on the extent of the data in this layer. Depending on the implementation, data is only requested
4581
4637
  * for this extent (e.g. {@see RasterLayer})
@@ -4947,6 +5003,11 @@ export class WMTSLayer extends RasterLayer {
4947
5003
  */
4948
5004
  export class BaseOLMap extends VcsMap {
4949
5005
  constructor(options: VcsMapOptions);
5006
+ /**
5007
+ * The splitPosition should always be aligned with the mapCollection's splitPosition.
5008
+ * Use mapCollection to change splitPosition.
5009
+ */
5010
+ splitPosition: number;
4950
5011
  readonly olMap: any;
4951
5012
  /**
4952
5013
  * Internal API for registering representations.
@@ -4981,9 +5042,9 @@ export class BaseOLMap extends VcsMap {
4981
5042
  */
4982
5043
  pointerInteractionEvent: VcsEvent<MapEvent>;
4983
5044
  /**
4984
- * If present, the split screen to use on this map. Is set by the mapCollection
5045
+ * The split position to use on this map. Is set by the mapCollection
4985
5046
  */
4986
- splitScreen: SplitScreen | null;
5047
+
4987
5048
  /**
4988
5049
  * Whether the map is active or not
4989
5050
  */
@@ -5035,7 +5096,7 @@ export interface CameraLimiterOptions {
5035
5096
  /**
5036
5097
  * Enumeration of camera limiter modes.
5037
5098
  */
5038
- export const enum CameraLimiterMode {
5099
+ export enum CameraLimiterMode {
5039
5100
  HEIGHT,
5040
5101
  DISTANCE
5041
5102
  }
@@ -5119,6 +5180,11 @@ export class CesiumMap extends VcsMap {
5119
5180
  globeColor: import("@vcmap/cesium").Color;
5120
5181
 
5121
5182
  defaultTerrainProvider: import("@vcmap/cesium").TerrainProvider;
5183
+ /**
5184
+ * The splitPosition should always be aligned with the mapCollection's splitPosition.
5185
+ * Use mapCollection to change splitPosition.
5186
+ */
5187
+ splitPosition: number;
5122
5188
  readonly terrainProvider: any;
5123
5189
  cameraLimiter: any;
5124
5190
  debug: any;
@@ -5129,6 +5195,7 @@ export class CesiumMap extends VcsMap {
5129
5195
  * @returns the array of coordinates with heights updated in place
5130
5196
  */
5131
5197
  getHeightFromTerrain(positions: import("ol/coordinate").Coordinate[]): Promise<import("ol/coordinate").Coordinate[]>;
5198
+ getCurrentResolutionFromCartesian(cartesian: import("@vcmap/cesium").Cartesian3): number;
5132
5199
  /**
5133
5200
  * set dataSource clock as display clock to visualize time dependent animation
5134
5201
  */
@@ -5236,9 +5303,9 @@ export class CesiumMap extends VcsMap {
5236
5303
  */
5237
5304
  pointerInteractionEvent: VcsEvent<MapEvent>;
5238
5305
  /**
5239
- * If present, the split screen to use on this map. Is set by the mapCollection
5306
+ * The split position to use on this map. Is set by the mapCollection
5240
5307
  */
5241
- splitScreen: SplitScreen | null;
5308
+
5242
5309
  /**
5243
5310
  * Whether the map is active or not
5244
5311
  */
@@ -5273,7 +5340,7 @@ export class CesiumMap extends VcsMap {
5273
5340
  * The state of a map.
5274
5341
  * State machine: inactive <-> loading -> active -> inactive
5275
5342
  */
5276
- export const enum MapState {
5343
+ export enum MapState {
5277
5344
  INACTIVE = 1,
5278
5345
  ACTIVE = 2,
5279
5346
  LOADING = 4
@@ -5346,9 +5413,9 @@ export class ObliqueMap extends BaseOLMap {
5346
5413
  */
5347
5414
  pointerInteractionEvent: VcsEvent<MapEvent>;
5348
5415
  /**
5349
- * If present, the split screen to use on this map. Is set by the mapCollection
5416
+ * The split position to use on this map. Is set by the mapCollection
5350
5417
  */
5351
- splitScreen: SplitScreen | null;
5418
+
5352
5419
  /**
5353
5420
  * Whether the map is active or not
5354
5421
  */
@@ -5422,9 +5489,9 @@ export class OpenlayersMap extends BaseOLMap {
5422
5489
  */
5423
5490
  pointerInteractionEvent: VcsEvent<MapEvent>;
5424
5491
  /**
5425
- * If present, the split screen to use on this map. Is set by the mapCollection
5492
+ * The split position to use on this map. Is set by the mapCollection
5426
5493
  */
5427
- splitScreen: SplitScreen | null;
5494
+
5428
5495
  /**
5429
5496
  * Whether the map is active or not
5430
5497
  */
@@ -5517,9 +5584,9 @@ export class VcsMap extends VcsObject {
5517
5584
  */
5518
5585
  pointerInteractionEvent: VcsEvent<MapEvent>;
5519
5586
  /**
5520
- * If present, the split screen to use on this map. Is set by the mapCollection
5587
+ * The split position to use on this map. Is set by the mapCollection
5521
5588
  */
5522
- splitScreen: SplitScreen | null;
5589
+
5523
5590
  /**
5524
5591
  * Whether the map is active or not
5525
5592
  */
@@ -5533,6 +5600,11 @@ export class VcsMap extends VcsObject {
5533
5600
  */
5534
5601
  readonly target: HTMLElement | null;
5535
5602
  layerCollection: any;
5603
+ /**
5604
+ * The splitPosition should always be aligned with the mapCollection's splitPosition.
5605
+ * Use mapCollection to change splitPosition.
5606
+ */
5607
+ splitPosition: any;
5536
5608
  /**
5537
5609
  * An event raised on the maps post render
5538
5610
  */
@@ -5902,7 +5974,7 @@ export interface ObliqueDataSetImagesLoaded {
5902
5974
  /**
5903
5975
  * Enumeration of data set states
5904
5976
  */
5905
- export const enum DataState {
5977
+ export enum DataState {
5906
5978
  PENDING,
5907
5979
  LOADING,
5908
5980
  READY
@@ -6198,7 +6270,7 @@ export class ObliqueView {
6198
6270
  /**
6199
6271
  * Enumeration of view directions.
6200
6272
  */
6201
- export const enum ObliqueViewDirection {
6273
+ export enum ObliqueViewDirection {
6202
6274
  NORTH,
6203
6275
  EAST,
6204
6276
  SOUTH,
@@ -6270,6 +6342,109 @@ export class OverrideClassRegistry<T extends Object|VcsObject> {
6270
6342
  destroy(): void;
6271
6343
  }
6272
6344
 
6345
+ /**
6346
+ */
6347
+ export interface ArcStyleOptions extends ArrowStyleOptions {
6348
+ /**
6349
+ * factor to calculate the 'height' of an arc, based on the distance from start to end
6350
+ */
6351
+ arcFactor?: number;
6352
+ /**
6353
+ * number of segments to interpolate the arc by
6354
+ */
6355
+ numberOfSegments?: number;
6356
+ }
6357
+
6358
+ /**
6359
+ */
6360
+ export interface ArcStruct {
6361
+ /**
6362
+ * undefined if not an arc
6363
+ */
6364
+ geometry?: import("ol/geom").LineString;
6365
+ /**
6366
+ * undefined if not an arc
6367
+ */
6368
+ coordinates?: import("ol/coordinate").Coordinate[];
6369
+ destroy: (...params: any[]) => any;
6370
+ }
6371
+
6372
+ /**
6373
+ * Added to feature to hold there respective arc structure
6374
+ */
6375
+ export const featureArcStruct: unique symbol;
6376
+
6377
+ /**
6378
+ * A style which applies an arc to LineString geometries depending on their first and last coordinates.
6379
+ * All other coordinates will be ignored. This still will
6380
+ * not render non-LineString geometries (same as {@see ArrowStyle}).
6381
+ */
6382
+ export class ArcStyle extends ArrowStyle {
6383
+ constructor(options?: ArcStyleOptions);
6384
+ numberOfSegments: any;
6385
+ arcFactor: any;
6386
+ primitiveOptions: VectorPropertiesPrimitiveOptions;
6387
+ end: ArrowEnd;
6388
+ /**
6389
+ * Same as getStroke().getWidth() / getStroke().setWidth()
6390
+ */
6391
+ width: number;
6392
+ /**
6393
+ * The color of the stroke and icon styles. Setting the color will not re-apply the icons color.
6394
+ */
6395
+ color: import("ol/color").Color | import("ol/colorlike").ColorLike;
6396
+ }
6397
+
6398
+ /**
6399
+ */
6400
+ export interface ArrowStyleOptions {
6401
+ /**
6402
+ * color used to color in the line & the icon
6403
+ */
6404
+ color?: import("ol/color").Color | import("ol/colorlike").ColorLike;
6405
+ /**
6406
+ * passed to ol.Style.Stroke
6407
+ */
6408
+ width?: number;
6409
+ /**
6410
+ * passed to ol.Style
6411
+ */
6412
+ zIndex?: number;
6413
+ /**
6414
+ * icon options to use. if none are provided, if is attempted to derive the arrow icon from the primitive options. if providing your own icon, the color will not be options.color by default
6415
+ */
6416
+ arrowIcon?: import("ol/style/Icon").Options | import("ol/style").Image;
6417
+ /**
6418
+ * the default primitive options are a cylinder with a bottom radius of 1/3 its length and 0 top radius
6419
+ */
6420
+ primitiveOptions?: VectorPropertiesPrimitiveOptions;
6421
+ /**
6422
+ * end to place the arrow head at
6423
+ */
6424
+ end?: ArrowEnd;
6425
+ }
6426
+
6427
+ export enum ArrowEnd {
6428
+ }
6429
+
6430
+ /**
6431
+ * A style which renders arrow heads at the ends of a line string. This style cannot be applied to non-LineString geometries.
6432
+ * When setting this on a layer with heterogeneous geometry types, use a style function.
6433
+ */
6434
+ export class ArrowStyle extends Style {
6435
+ constructor(options?: ArrowStyleOptions);
6436
+ primitiveOptions: VectorPropertiesPrimitiveOptions;
6437
+ end: ArrowEnd;
6438
+ width: any;
6439
+ color: any;
6440
+ /**
6441
+ * Returns the style used to render primitives (a style with a circle image and the color of this style).
6442
+ */
6443
+ getOlcsStyle(): import("ol/style").Style;
6444
+ protected _getCloneOptions(): ArrowStyleOptions;
6445
+ clone(): ArrowStyle;
6446
+ }
6447
+
6273
6448
  export interface DeclarativeStyleItemConditions {
6274
6449
  conditions: (string[] | string)[];
6275
6450
  }
@@ -6380,7 +6555,7 @@ export interface FontObject {
6380
6555
  lineHeight: string;
6381
6556
  }
6382
6557
 
6383
- export const enum PatternType {
6558
+ export enum PatternType {
6384
6559
  NWSE,
6385
6560
  SWNE,
6386
6561
  DIAGONALCROSS,
@@ -6569,7 +6744,7 @@ export interface VectorStyleItemSections extends StyleItemSections {
6569
6744
  label?: boolean | undefined;
6570
6745
  }
6571
6746
 
6572
- export const enum OlcsGeometryType {
6747
+ export enum OlcsGeometryType {
6573
6748
  POLYGON,
6574
6749
  POLYLINE,
6575
6750
  POINT
@@ -6588,7 +6763,7 @@ export interface VectorStyleItemOptions extends StyleItemOptions {
6588
6763
  * Is set by the Editor if the layerStyle is overwritten. The VectorLayer layer assures this style is set, if
6589
6764
  * the style on the layer is not a DeclarativeStyle
6590
6765
  */
6591
- export const vectorStyleSymbol: symbol;
6766
+ export const vectorStyleSymbol: unique symbol;
6592
6767
 
6593
6768
  export class VectorStyleItem extends StyleItem {
6594
6769
  constructor(options: VectorStyleItemOptions);
@@ -6906,6 +7081,30 @@ export interface CreateFeatureSession extends EditorSession {
6906
7081
  finish: (...params: any[]) => any;
6907
7082
  }
6908
7083
 
7084
+ /**
7085
+ * Creates an editor session to create features of the given geometry type.
7086
+ * While the session is active: Do not change the geometry on the current feature (the last created one)
7087
+ * and do not change crucial olcs properties on the feature or the layer (olcs_altitudeMode)
7088
+ */
7089
+ export function startCreateFeatureSession(app: VcsApp, layer: VectorLayer, geometryType: GeometryType): CreateFeatureSession;
7090
+
7091
+ /**
7092
+ */
7093
+ export interface EditFeaturesSession extends EditorSession {
7094
+ featureSelection: SelectMultiFeatureInteraction;
7095
+ /**
7096
+ * read only access to the current mode
7097
+ */
7098
+ mode: TransformationMode;
7099
+ setMode: (...params: any[]) => any;
7100
+ modeChanged: VcsEvent<TransformationMode>;
7101
+ }
7102
+
7103
+ /**
7104
+ * Creates an editor session to select, translate, rotate & scale the feature on a given layer
7105
+ */
7106
+ export function startEditFeaturesSession(app: VcsApp, layer: VectorLayer, initialMode?: TransformationMode, highlightStyle?: import("ol/style").Style): EditFeaturesSession;
7107
+
6909
7108
  /**
6910
7109
  */
6911
7110
  export interface EditGeometrySession extends EditorSession {
@@ -6915,8 +7114,21 @@ export interface EditGeometrySession extends EditorSession {
6915
7114
  featureSelection: SelectSingleFeatureInteraction;
6916
7115
  }
6917
7116
 
7117
+ /**
7118
+ * Creates the edit geometry session.
7119
+ */
7120
+ export function startEditGeometrySession(app: VcsApp, layer: VectorLayer): EditGeometrySession;
7121
+
6918
7122
  export function createVertex(coordinate: import("ol/coordinate").Coordinate): Vertex;
6919
7123
 
7124
+ /**
7125
+ * Returns the closest point on a 2D line. the Z index is taken from the point.
7126
+ * @param start - line segment start
7127
+ * @param end - line segment end
7128
+ * @param point - point to project
7129
+ */
7130
+ export function getClosestPointOn2DLine(start: import("ol/coordinate").Coordinate, end: import("ol/coordinate").Coordinate, point: import("ol/coordinate").Coordinate): import("ol/coordinate").Coordinate;
7131
+
6920
7132
  /**
6921
7133
  * @param start - line segment start
6922
7134
  * @param end - line segment end
@@ -6931,10 +7143,26 @@ export function pointOnLine3D(start: import("ol/coordinate").Coordinate, end: im
6931
7143
  */
6932
7144
  export function pointOnLine2D(start: import("ol/coordinate").Coordinate, end: import("ol/coordinate").Coordinate, point: import("ol/coordinate").Coordinate, epsilon?: number): boolean;
6933
7145
 
6934
- export function createVerticalPlane(originCoordinates: import("ol/coordinate").Coordinate, scene: import("@vcmap/cesium").Scene): import("@vcmap/cesium").Plane;
7146
+ export function createCameraVerticalPlane(originCoordinates: import("ol/coordinate").Coordinate, scene: import("@vcmap/cesium").Scene): import("@vcmap/cesium").Plane;
6935
7147
 
6936
7148
  export function createHorizontalPlane(originCoordinates: import("ol/coordinate").Coordinate, scene: import("@vcmap/cesium").Scene): import("@vcmap/cesium").Plane;
6937
7149
 
7150
+ export function getCartographicFromPlane(plane: import("@vcmap/cesium").Plane, camera: import("@vcmap/cesium").Camera, windowPosition: import("@vcmap/cesium").Cartesian2): import("@vcmap/cesium").Cartographic;
7151
+
7152
+ /**
7153
+ * Drapes a geometry onto the terrain by placing each coordinate at its height.
7154
+ */
7155
+ export function drapeGeometryOnTerrain(geometry: import("ol/geom").Geometry, map: VcsMap): Promise<void>;
7156
+
7157
+ /**
7158
+ * Places a geometry onto the terrain at its lowest point.
7159
+ */
7160
+ export function placeGeometryOnTerrain(geometry: import("ol/geom").Geometry, map: VcsMap): Promise<void>;
7161
+
7162
+ export function ensureFeatureAbsolute(feature: import("ol").Feature, layer: VectorLayer, cesiumMap: VcsMap): Promise<void>;
7163
+
7164
+ export function clampFeature(feature: import("ol").Feature): void;
7165
+
6938
7166
  /**
6939
7167
  * An editor session is a currently set of interactions to create or edit geometries & features.
6940
7168
  * All editor sessions can be stopped and will be stopped, if their interactions get removed from the
@@ -6947,7 +7175,10 @@ export interface EditorSession {
6947
7175
  stopped: VcsEvent<void>;
6948
7176
  }
6949
7177
 
6950
- export const enum SessionType {
7178
+ export enum SessionType {
7179
+ CREATE,
7180
+ EDIT_GEOMETRY,
7181
+ EDIT_FEATURES
6951
7182
  }
6952
7183
 
6953
7184
  /**
@@ -6956,7 +7187,7 @@ export const enum SessionType {
6956
7187
  */
6957
7188
  export function setupScratchLayer(layerCollection: LayerCollection): VectorLayer;
6958
7189
 
6959
- export const enum GeometryType {
7190
+ export enum GeometryType {
6960
7191
  Point,
6961
7192
  Circle,
6962
7193
  LineString,
@@ -6967,12 +7198,18 @@ export const enum GeometryType {
6967
7198
  /**
6968
7199
  * Symbol to identify a {@see Vertex}
6969
7200
  */
6970
- export const vertexSymbol: symbol;
7201
+ export const vertexSymbol: unique symbol;
6971
7202
 
6972
7203
  /**
6973
7204
  * Symbol to denote the vertexes index in the vertices array. This is important for snapping & bbox operations
6974
7205
  */
6975
- export const vertexIndex: symbol;
7206
+ export const vertexIndex: unique symbol;
7207
+
7208
+ /**
7209
+ * Symbol added to primitives and features to denote that these are handlers. It is expected, that the value of the symobl is
7210
+ * equal to an {@see AXIS_AND_PLANES}
7211
+ */
7212
+ export const handlerSymbol: unique symbol;
6976
7213
 
6977
7214
 
6978
7215
 
@@ -7115,6 +7352,39 @@ export class CreatePolygonInteraction extends AbstractInteraction implements Cre
7115
7352
  pointerKey: number;
7116
7353
  }
7117
7354
 
7355
+ /**
7356
+ * A class to handle mouse over effects on features for editor sessions.
7357
+ * @param layerName - the layer name of the currently editing layer
7358
+ */
7359
+ export class EditFeaturesMouseOverInteraction extends AbstractInteraction {
7360
+ constructor(layerName: string, selectMultiFeatureInteraction: SelectMultiFeatureInteraction);
7361
+ /**
7362
+ * The layer name to react to
7363
+ */
7364
+ layerName: string;
7365
+ cursorStyle: CSSStyleDeclaration;
7366
+ /**
7367
+ * Reset the cursorStyle to auto
7368
+ */
7369
+ reset(): void;
7370
+ /**
7371
+ * A unique identifier for this interaction
7372
+ */
7373
+ id: string;
7374
+ /**
7375
+ * The current active bitmask for {@link EventType}
7376
+ */
7377
+ active: number;
7378
+ /**
7379
+ * The current active {@link ModificationKeyType}
7380
+ */
7381
+ modificationKey: number;
7382
+ /**
7383
+ * The currently active {@link PointerKeyType}
7384
+ */
7385
+ pointerKey: number;
7386
+ }
7387
+
7118
7388
  /**
7119
7389
  * only exported for tests
7120
7390
  */
@@ -7153,6 +7423,16 @@ export class EditGeometryMouseOverInteraction extends AbstractInteraction {
7153
7423
  pointerKey: number;
7154
7424
  }
7155
7425
 
7426
+ /**
7427
+ * This interaction ensure a potential handler is dragged in 3D when it is obscured by a transparent feature.
7428
+ * It uses drillPick on MOVE if: the map is 3D, there is a feature at said position, there is a feature selected in
7429
+ * the feature selection & the feature at the position is _not_ a handler
7430
+ */
7431
+ export class EnsureHandlerSelectionInteraction {
7432
+ constructor(selectMultiFeatureInteraction: SelectMultiFeatureInteraction);
7433
+ pipe(event: InteractionEvent): Promise<InteractionEvent>;
7434
+ }
7435
+
7156
7436
  export interface VertexInsertedEvent {
7157
7437
  vertex: Vertex;
7158
7438
  index: number;
@@ -7213,6 +7493,44 @@ export class RemoveVertexInteraction extends AbstractInteraction {
7213
7493
  pointerKey: number;
7214
7494
  }
7215
7495
 
7496
+ /**
7497
+ * Interaction to create a selection set from the given layer.
7498
+ * Will use CTRL modifier key to add more features to the set.
7499
+ * Clears the set if not clicking a feature
7500
+ * Creates a new set when clicking a feature
7501
+ * FeatureStore features will be converted to their dynamic state on selection.
7502
+ */
7503
+ export class SelectMultiFeatureInteraction extends AbstractInteraction {
7504
+ constructor(layer: VectorLayer);
7505
+ /**
7506
+ * Event raised when the feature selection changes. Will be called with an array of features or an empty array, when no feature is selected
7507
+ */
7508
+ readonly featuresChanged: VcsEvent<import("ol").Feature[]>;
7509
+ selectedFeatures: any;
7510
+ hasFeatureId(featureId: string): boolean;
7511
+ setSelectionSet(features: (import("ol").Feature | import("@vcmap/cesium").Cesium3DTileFeature | import("@vcmap/cesium").Cesium3DTilePointFeature | import("@vcmap/cesium").Entity)[]): Promise<void>;
7512
+ /**
7513
+ * Clears the interaction, removing all features and calling the featureChange event with an empty array
7514
+ */
7515
+ clear(): void;
7516
+ /**
7517
+ * A unique identifier for this interaction
7518
+ */
7519
+ id: string;
7520
+ /**
7521
+ * The current active bitmask for {@link EventType}
7522
+ */
7523
+ active: number;
7524
+ /**
7525
+ * The current active {@link ModificationKeyType}
7526
+ */
7527
+ modificationKey: number;
7528
+ /**
7529
+ * The currently active {@link PointerKeyType}
7530
+ */
7531
+ pointerKey: number;
7532
+ }
7533
+
7216
7534
  /**
7217
7535
  * Class to select features for editing.
7218
7536
  * Static FeatureStore features will be converted into their dynamic form
@@ -7275,6 +7593,215 @@ export class TranslateVertexInteraction extends AbstractInteraction {
7275
7593
  pointerKey: number;
7276
7594
  }
7277
7595
 
7596
+ /**
7597
+ * A class to handle events on a {@see TransformationHandler}. Should be used with {@see TransformationHandler} created for mode TransformationMode.EXTRUDE.
7598
+ * If the Z handler is dragged, the extruded event will be raised with a delta in Z direction. This
7599
+ * interaction only works if a {@see CesiumMap} is the active map.
7600
+ */
7601
+ export class ExtrudeInteraction extends AbstractInteraction {
7602
+ constructor(transformationHandler: TransformationHandler);
7603
+ /**
7604
+ * Event raised with the extrusion delta to the last event fired.
7605
+ */
7606
+ readonly extruded: VcsEvent<number>;
7607
+ /**
7608
+ * A unique identifier for this interaction
7609
+ */
7610
+ id: string;
7611
+ /**
7612
+ * The current active bitmask for {@link EventType}
7613
+ */
7614
+ active: number;
7615
+ /**
7616
+ * The current active {@link ModificationKeyType}
7617
+ */
7618
+ modificationKey: number;
7619
+ /**
7620
+ * The currently active {@link PointerKeyType}
7621
+ */
7622
+ pointerKey: number;
7623
+ }
7624
+
7625
+ /**
7626
+ */
7627
+ export interface RotationEvent {
7628
+ /**
7629
+ * in radians
7630
+ */
7631
+ angle: number;
7632
+ /**
7633
+ * the axis of rotation
7634
+ */
7635
+ axis: AXIS_AND_PLANES;
7636
+ }
7637
+
7638
+ /**
7639
+ * A class to handle events on a {@see TransformationHandler}. Should be used with {@see TransformationHandler} created for mode TransformationMode.ROTATE.
7640
+ * If the rings are dragged, the rotated event will be raised.
7641
+ */
7642
+ export class RotateInteraction extends AbstractInteraction {
7643
+ constructor(transformationHandler: TransformationHandler);
7644
+ /**
7645
+ * The event raised, if the rings are dragged. Event is raised with the angle delta to the last event in radians.
7646
+ */
7647
+ readonly rotated: VcsEvent<RotationEvent>;
7648
+ /**
7649
+ * A unique identifier for this interaction
7650
+ */
7651
+ id: string;
7652
+ /**
7653
+ * The current active bitmask for {@link EventType}
7654
+ */
7655
+ active: number;
7656
+ /**
7657
+ * The current active {@link ModificationKeyType}
7658
+ */
7659
+ modificationKey: number;
7660
+ /**
7661
+ * The currently active {@link PointerKeyType}
7662
+ */
7663
+ pointerKey: number;
7664
+ }
7665
+
7666
+ /**
7667
+ * A class to handle events on a {@see TransformationHandler}. Should be used with {@see TransformationHandler} created for mode TransformationMode.SCALE..
7668
+ * If the handlers are dragged, the scaled event will be raised.
7669
+ */
7670
+ export class ScaleInteraction extends AbstractInteraction {
7671
+ constructor(transformationHandler: TransformationHandler);
7672
+
7673
+
7674
+ /**
7675
+ * Event raised if the handlers are dragged. The resulting array is of type [sx, sy, sz] where all numbers
7676
+ * are considered to be deltas to the previous event (where 1 means no scaling).
7677
+ */
7678
+ readonly scaled: VcsEvent<number[]>;
7679
+ /**
7680
+ * A unique identifier for this interaction
7681
+ */
7682
+ id: string;
7683
+ /**
7684
+ * The current active bitmask for {@link EventType}
7685
+ */
7686
+ active: number;
7687
+ /**
7688
+ * The current active {@link ModificationKeyType}
7689
+ */
7690
+ modificationKey: number;
7691
+ /**
7692
+ * The currently active {@link PointerKeyType}
7693
+ */
7694
+ pointerKey: number;
7695
+ }
7696
+
7697
+ /**
7698
+ * Handlers are map specific transformation handlers wich enable the use of the transformation interactions.
7699
+ * There visualization is {@see TransformationMode} specific. It is not adviced to create these handlers yourself,
7700
+ * use {@see createTransformationHandler} instead.
7701
+ */
7702
+ export interface Handlers {
7703
+ /**
7704
+ * whether to show or hide all handlers
7705
+ */
7706
+ show: boolean;
7707
+ /**
7708
+ * update the center of the handlers
7709
+ */
7710
+ setCenter: (...params: any[]) => any;
7711
+ /**
7712
+ * highlight the given axis
7713
+ */
7714
+ showAxis: AXIS_AND_PLANES;
7715
+ /**
7716
+ * display Z axis handlers in grey and do not allow them to be picked
7717
+ */
7718
+ greyOutZ: boolean;
7719
+ /**
7720
+ * destroy the handlers, removing any resources created by create2DHandlers or create3DHandlers
7721
+ */
7722
+ destroy: (...params: any[]) => any;
7723
+ }
7724
+
7725
+ /**
7726
+ * This interface provides an abstraction from the other {@see Handlers} interface.
7727
+ */
7728
+ export interface TransformationHandler {
7729
+ /**
7730
+ * translate the center of the underlying handlers
7731
+ */
7732
+ translate: (...params: any[]) => any;
7733
+ /**
7734
+ * readonly current center of the handler. this is a copy, not a reference
7735
+ */
7736
+ center: import("ol/coordinate").Coordinate;
7737
+ /**
7738
+ * highlight the given axis
7739
+ */
7740
+ showAxis: AXIS_AND_PLANES;
7741
+ /**
7742
+ * readonly value indicating whether the handlers are showing (proxy for: features are selected)
7743
+ */
7744
+ showing: boolean;
7745
+ /**
7746
+ * destroy the handler and any resources created by it
7747
+ */
7748
+ destroy: (...params: any[]) => any;
7749
+ }
7750
+
7751
+ export enum AXIS_AND_PLANES {
7752
+ X,
7753
+ Y,
7754
+ Z,
7755
+ XY,
7756
+ XZ,
7757
+ YZ,
7758
+ NONE
7759
+ }
7760
+
7761
+ export enum TransformationMode {
7762
+ TRANSLATE,
7763
+ ROTATE,
7764
+ SCALE,
7765
+ EXTRUDE
7766
+ }
7767
+
7768
+ export const greyedOutColor: import("@vcmap/cesium").Color;
7769
+
7770
+ export function is1DAxis(axis: AXIS_AND_PLANES): boolean;
7771
+
7772
+ export function is2DAxis(axis: AXIS_AND_PLANES): boolean;
7773
+
7774
+ /**
7775
+ * A class to handle events on a {@see TransformationHandler}. Should be used with {@see TransformationHandler} created for mode TransformationMode.TRANSLATE.
7776
+ * If the rings are dragged, the translated event will be raised.
7777
+ */
7778
+ export class TranslateInteraction extends AbstractInteraction {
7779
+ constructor(transformationHandler: TransformationHandler);
7780
+
7781
+
7782
+ /**
7783
+ * Event raised if the handlers are dragged. The resulting array is of type [dx, dy, dz] where all numbers
7784
+ * are considered to be deltas to the previous event (where 0 means no translating).
7785
+ */
7786
+ readonly translated: VcsEvent<number[]>;
7787
+ /**
7788
+ * A unique identifier for this interaction
7789
+ */
7790
+ id: string;
7791
+ /**
7792
+ * The current active bitmask for {@link EventType}
7793
+ */
7794
+ active: number;
7795
+ /**
7796
+ * The current active {@link ModificationKeyType}
7797
+ */
7798
+ modificationKey: number;
7799
+ /**
7800
+ * The currently active {@link PointerKeyType}
7801
+ */
7802
+ pointerKey: number;
7803
+ }
7804
+
7278
7805
  /**
7279
7806
  * Tracks layer exclusivity, added to every {@link LayerCollection}.
7280
7807
  */
@@ -7361,6 +7888,32 @@ export function validateCircle(circle: import("ol/geom/Circle").default): boolea
7361
7888
 
7362
7889
  export function getStylesArray(style: void | import("ol/style/Style").StyleLike, feature: import("ol").Feature<import("ol/geom/Geometry").default>, resolution?: number): import("ol/style/Style").default[];
7363
7890
 
7891
+ export class Extent3D {
7892
+ constructor(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number);
7893
+ static fromArray(array: number[]): Extent3D;
7894
+ static fromGeometry(geometry: import("ol/geom").Geometry): Extent3D;
7895
+ static fromHeightInfo(heightInfo: VectorHeightInfo): Extent3D;
7896
+ static fromCoordinates(coordinates: import("ol/coordinate").Coordinate[]): Extent3D;
7897
+ minX: number;
7898
+ minY: number;
7899
+ minZ: number;
7900
+ maxX: number;
7901
+ maxY: number;
7902
+ maxZ: number;
7903
+ extendWithGeometry(geometry: import("ol/geom").Geometry): void;
7904
+ extendWithHeightInfo(heightInfo: VectorHeightInfo): void;
7905
+ extendXYZ(x: number, y: number, z: number): void;
7906
+ extendXY(x: number, y: number): void;
7907
+ extendZ(z: number): void;
7908
+ extendFlatCoordinates(flatCoordinates: number[], stride: number): void;
7909
+ to2D(): import("ol/extent").Extent;
7910
+ toArray(): number[];
7911
+ isEmpty(): boolean;
7912
+ getCenter(): import("ol/coordinate").Coordinate;
7913
+ getSize(): number[];
7914
+ clone(): Extent3D;
7915
+ }
7916
+
7364
7917
  export function getMaterialAppearance(scene: import("@vcmap/cesium").Scene, fill: import("ol/style/Fill").default, feature: import("ol").Feature<import("ol/geom/Geometry").default>): import("@vcmap/cesium").MaterialAppearance;
7365
7918
 
7366
7919
  export function createClassificationPrimitive(options: any, geometries: import("@vcmap/cesium").Geometry[], color: import("@vcmap/cesium").Color, classificationType: import("@vcmap/cesium").ClassificationType): import("@vcmap/cesium").ClassificationPrimitive;
@@ -7391,11 +7944,17 @@ export function getStoreyOptions(storeyHeights: number[], initialHeight: number,
7391
7944
 
7392
7945
  export function addPrimitivesToContext(feature: import("ol").Feature<import("ol/geom/Geometry").default>, style: import("ol/style/Style").default, geometries: import("ol/geom/SimpleGeometry").default[], vectorProperties: VectorProperties, scene: import("@vcmap/cesium").Scene, geometryFactory: VectorGeometryFactoryType, context: VectorContext | ClusterContext): void;
7393
7946
 
7947
+ export function addArrowsToContext(feature: import("ol").Feature, style: ArrowStyle, validGeometries: import("ol/geom").LineString[], vectorProperties: VectorProperties, scene: import("@vcmap/cesium").Scene, lineGeometryFactory: VectorGeometryFactoryType, context: VectorContext | ClusterContext): void;
7948
+
7394
7949
  /**
7395
7950
  * validates if a lineString is renderable
7396
7951
  */
7397
7952
  export function validateLineString(lineString: import("ol/geom/LineString").default): boolean;
7398
7953
 
7954
+ export function getModelOptions(feature: import("ol").Feature<import("ol/geom/Geometry").default>, wgs84Positions: import("ol/coordinate").Coordinate[], positions: import("@vcmap/cesium").Cartesian3[], vectorProperties: VectorProperties, scene: import("@vcmap/cesium").Scene): null | any;
7955
+
7956
+ export function getPrimitiveOptions(feature: import("ol").Feature<import("ol/geom/Geometry").default>, style: import("ol/style/Style").default, wgs84Positions: import("ol/coordinate").Coordinate[], positions: import("@vcmap/cesium").Cartesian3[], vectorProperties: VectorProperties, scene: import("@vcmap/cesium").Scene): null | any;
7957
+
7399
7958
  export function getBillboardOptions(feature: import("ol").Feature<import("ol/geom/Geometry").default>, style: import("ol/style/Style").default, heightReference: import("@vcmap/cesium").HeightReference, vectorProperties: VectorProperties): any | null;
7400
7959
 
7401
7960
  /**
@@ -7405,8 +7964,6 @@ export function getBillboardOptions(feature: import("ol").Feature<import("ol/geo
7405
7964
  */
7406
7965
  export function getLabelOptions(feature: import("ol").Feature<import("ol/geom/Geometry").default>, style: import("ol/style/Style").default, heightReference: import("@vcmap/cesium").HeightReference, vectorProperties: VectorProperties): any | null;
7407
7966
 
7408
- export function getModelOptions(feature: import("ol").Feature<import("ol/geom/Geometry").default>, wgs84Positions: import("ol/coordinate").Coordinate[], positions: import("@vcmap/cesium").Cartesian3[], vectorProperties: VectorProperties, scene: import("@vcmap/cesium").Scene): null | import("@vcmap/cesium").Model[];
7409
-
7410
7967
  /**
7411
7968
  * validates if a point is renderable
7412
7969
  */
@@ -7576,6 +8133,10 @@ export class MapCollection extends Collection<VcsMap> {
7576
8133
  * Manages the clipping object for the maps in this collection.
7577
8134
  */
7578
8135
  clippingObjectManager: ClippingObjectManager;
8136
+ /**
8137
+ * Event raised when the maps split position changes. It passed the position as its only argument.
8138
+ */
8139
+ splitPositionChanged: VcsEvent<number>;
7579
8140
  /**
7580
8141
  * The currently active map
7581
8142
  */
@@ -7589,15 +8150,15 @@ export class MapCollection extends Collection<VcsMap> {
7589
8150
  */
7590
8151
  layerCollection: any;
7591
8152
  /**
7592
- * Set split screen for these maps.
8153
+ * Set the splitPosition for these maps.
7593
8154
  */
7594
- splitScreen: any;
8155
+ splitPosition: any;
7595
8156
  /**
7596
8157
  * Raised on the active maps post render event
7597
8158
  */
7598
8159
  readonly postRender: VcsEvent<VcsMapRenderEvent>;
7599
8160
  /**
7600
- * Adds a map to the collection. This will set the collections target, {@link SplitScreen}
8161
+ * Adds a map to the collection. This will set the collections target
7601
8162
  * and the collections {@link LayerCollection} on the map.
7602
8163
  * It will add map event listeners and pass them to the event handler of this collection.
7603
8164
  */
@@ -7638,6 +8199,13 @@ export function coordinateAtDistance(coord: number[], d: number, brng: number):
7638
8199
  */
7639
8200
  export function initialBearingBetweenCoords(coords1: number[], coords2: number[]): number;
7640
8201
 
8202
+ /**
8203
+ * @param p1 - mercator
8204
+ * @param p2 - mercator
8205
+ * @returns in radians
8206
+ */
8207
+ export function getCartesianBearing(p1: import("ol/coordinate").Coordinate, p2: import("ol/coordinate").Coordinate): number;
8208
+
7641
8209
  /**
7642
8210
  * returns distance between two coordinates
7643
8211
  */
@@ -7650,10 +8218,26 @@ export function cartesian3DDistance(p1: import("ol/coordinate").Coordinate, p2:
7650
8218
  */
7651
8219
  export function modulo(n: number, m: number): number;
7652
8220
 
8221
+ export function cartographicToWgs84(cartographic: import("@vcmap/cesium").Cartographic): number[];
8222
+
8223
+ export function mercatorToCartesian(mercatorCoordinates: import("ol/coordinate").Coordinate, result?: import("@vcmap/cesium").Cartesian3): import("@vcmap/cesium").Cartesian3;
8224
+
8225
+ export function cartesianToMercator(cartesian: import("@vcmap/cesium").Cartesian3): import("ol/coordinate").Coordinate;
8226
+
8227
+ export function getMidPoint(p1: import("ol/coordinate").Coordinate, p2: import("ol/coordinate").Coordinate): import("ol/coordinate").Coordinate;
8228
+
8229
+ /**
8230
+ * Gets the pitch between two points in degrees.
8231
+ * @param p1 - mercator
8232
+ * @param p2 - mercator
8233
+ * @returns in degrees
8234
+ */
8235
+ export function getCartesianPitch(p1: import("ol/coordinate").Coordinate, p2: import("ol/coordinate").Coordinate): number;
8236
+
7653
8237
  /**
7654
8238
  * A symbol added to override collections.
7655
8239
  */
7656
- export const isOverrideCollection: symbol;
8240
+ export const isOverrideCollection: unique symbol;
7657
8241
 
7658
8242
  /**
7659
8243
  * @param getDynamicContextId - function to get the current dynamic context id
@@ -7768,22 +8352,6 @@ export const wgs84Projection: Projection;
7768
8352
  */
7769
8353
  export const mercatorProjection: Projection;
7770
8354
 
7771
- export class SplitScreen {
7772
- constructor(clippingObjectManager: ClippingObjectManager);
7773
- scene: import("@vcmap/cesium").Scene | null;
7774
- olMap: import("ol/Map").default | null;
7775
- initialized: boolean;
7776
- leftScreenClippingObject: ClippingObject;
7777
- rightScreenClippingObject: ClippingObject;
7778
- originalCameraPercentageChanged: number | null;
7779
- position: any;
7780
- mapActivated(map: VcsMap): void;
7781
- /**
7782
- * Gets the clipping object for a split direction
7783
- */
7784
- getClippingObjectForDirection(splitDirection: import("@vcmap/cesium").SplitDirection): ClippingObject | null;
7785
- }
7786
-
7787
8355
  /**
7788
8356
  * compares two numeric properties
7789
8357
  */
@@ -7975,7 +8543,7 @@ export class VcsApp {
7975
8543
 
7976
8544
  export function getVcsAppById(id: string): VcsApp;
7977
8545
 
7978
- export const contextIdSymbol: symbol;
8546
+ export const contextIdSymbol: unique symbol;
7979
8547
 
7980
8548
  export interface ContextLayerOptions extends LayerOptions {
7981
8549
  style?: string | StyleItemOptions;
@@ -8120,3 +8688,59 @@ export interface CreateInteraction<T extends import("ol/geom").Geometry> {
8120
8688
 
8121
8689
  export type Vertex = import("ol").Feature<import("ol/geom").Point>;
8122
8690
 
8691
+ declare module "@vcmap/cesium" {
8692
+ interface Entity {
8693
+ getId():number|string;
8694
+ getProperty(key: string): any;
8695
+ [vcsLayerName]: string|null;
8696
+ }
8697
+
8698
+ interface Cesium3DTileFeature {
8699
+ getId():number|string;
8700
+ [vcsLayerName]: string|null;
8701
+ }
8702
+
8703
+ interface Cesium3DTilePointFeature {
8704
+ getId():number|string;
8705
+ [vcsLayerName]: string|null;
8706
+ }
8707
+
8708
+ interface StyleExpression {
8709
+ evaluate(feature: import("@vcmap/cesium").Cesium3DTileFeature | import("ol/Feature").default<import("ol/geom/Geometry").default>):any;
8710
+ evaluateColor(feature: import("@vcmap/cesium").Cesium3DTileFeature | import("ol/Feature").default<import("ol/geom/Geometry").default>):import("@vcmap/cesium").Color;
8711
+ }
8712
+
8713
+ interface Expression {
8714
+ evaluate(feature: import("@vcmap/cesium").Cesium3DTileFeature | import("ol/Feature").default<import("ol/geom/Geometry").default>):any;
8715
+ evaluateColor(feature: import("@vcmap/cesium").Cesium3DTileFeature | import("ol/Feature").default<import("ol/geom/Geometry").default>):import("@vcmap/cesium").Color;
8716
+ }
8717
+ }
8718
+
8719
+ declare module "ol/geom" {
8720
+ interface Geometry {
8721
+ getCoordinates(): any;
8722
+ setCoordinates(coordinates: any, layout?: any): void;
8723
+ getFlatCoordinates(): number[];
8724
+ getLayout(): import("ol/geom/Geometry").GeometryLayout;
8725
+ }
8726
+
8727
+ interface GeometryCollection {
8728
+ getCoordinates(): Array<import("ol/coordinate").Coordinate | Array<import("ol/coordinate").Coordinate> | Array<Array<import("ol/coordinate").Coordinate>> | Array<Array<Array<import("ol/coordinate").Coordinate>>>>;
8729
+ setCoordinates(coordinates: Array<import("ol/coordinate").Coordinate | Array<import("ol/coordinate").Coordinate> | Array<Array<import("ol/coordinate").Coordinate>> | Array<Array<Array<import("ol/coordinate").Coordinate>>>>): void;
8730
+ getLayout(): import("ol/geom/Geometry").GeometryLayout;
8731
+ }
8732
+
8733
+ interface Circle {
8734
+ getCoordinates(): import("ol/coordinate").Coordinate[];
8735
+ setCoordinates(coordinates: import("ol/coordinate").Coordinate[]): void;
8736
+ rotate(angle: number, anchor: import("ol/coordinate").Coordinate): void;
8737
+ }
8738
+ }
8739
+
8740
+ declare module "ol/index" {
8741
+ interface Feature<Geometry> {
8742
+ getProperty(key: string): any;
8743
+ getPropertyInherited(key: string): any;
8744
+ [vcsLayerName]: string|null;
8745
+ }
8746
+ }