@loaders.gl/i3s 3.3.0-alpha.7 → 3.3.0

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 (50) hide show
  1. package/dist/dist.min.js +111 -141
  2. package/dist/es5/arcgis-webscene-loader.js +1 -1
  3. package/dist/es5/arcgis-webscene-loader.js.map +1 -1
  4. package/dist/es5/i3s-attribute-loader.js +1 -1
  5. package/dist/es5/i3s-attribute-loader.js.map +1 -1
  6. package/dist/es5/i3s-building-scene-layer-loader.js +1 -1
  7. package/dist/es5/i3s-building-scene-layer-loader.js.map +1 -1
  8. package/dist/es5/i3s-content-loader.js +1 -1
  9. package/dist/es5/i3s-content-loader.js.map +1 -1
  10. package/dist/es5/i3s-loader.js +11 -4
  11. package/dist/es5/i3s-loader.js.map +1 -1
  12. package/dist/es5/i3s-node-page-loader.js +1 -1
  13. package/dist/es5/i3s-node-page-loader.js.map +1 -1
  14. package/dist/es5/lib/parsers/constants.js +1 -1
  15. package/dist/es5/lib/parsers/constants.js.map +1 -1
  16. package/dist/es5/lib/parsers/parse-i3s-tile-content.js +1 -1
  17. package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  18. package/dist/es5/types.js.map +1 -1
  19. package/dist/esm/arcgis-webscene-loader.js +1 -1
  20. package/dist/esm/arcgis-webscene-loader.js.map +1 -1
  21. package/dist/esm/i3s-attribute-loader.js +1 -1
  22. package/dist/esm/i3s-attribute-loader.js.map +1 -1
  23. package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
  24. package/dist/esm/i3s-building-scene-layer-loader.js.map +1 -1
  25. package/dist/esm/i3s-content-loader.js +1 -1
  26. package/dist/esm/i3s-content-loader.js.map +1 -1
  27. package/dist/esm/i3s-loader.js +5 -1
  28. package/dist/esm/i3s-loader.js.map +1 -1
  29. package/dist/esm/i3s-node-page-loader.js +1 -1
  30. package/dist/esm/i3s-node-page-loader.js.map +1 -1
  31. package/dist/esm/lib/parsers/constants.js +1 -1
  32. package/dist/esm/lib/parsers/constants.js.map +1 -1
  33. package/dist/esm/lib/parsers/parse-i3s-tile-content.js +1 -1
  34. package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  35. package/dist/esm/types.js.map +1 -1
  36. package/dist/i3s-content-nodejs-worker.js +58 -58
  37. package/dist/i3s-content-nodejs-worker.js.map +3 -3
  38. package/dist/i3s-content-worker.js +58 -60
  39. package/dist/i3s-loader.d.ts +1 -1
  40. package/dist/i3s-loader.d.ts.map +1 -1
  41. package/dist/i3s-loader.js +4 -0
  42. package/dist/lib/parsers/constants.js +1 -1
  43. package/dist/lib/parsers/parse-i3s-tile-content.js +1 -1
  44. package/dist/types.d.ts +178 -91
  45. package/dist/types.d.ts.map +1 -1
  46. package/package.json +9 -10
  47. package/src/i3s-loader.ts +5 -0
  48. package/src/lib/parsers/constants.ts +1 -1
  49. package/src/lib/parsers/parse-i3s-tile-content.ts +1 -1
  50. package/src/types.ts +95 -2
package/dist/types.d.ts CHANGED
@@ -12,7 +12,7 @@ export declare enum DATA_TYPE {
12
12
  Float32 = "Float32",
13
13
  Float64 = "Float64"
14
14
  }
15
- export declare type COLOR = [number, number, number, number];
15
+ export type COLOR = [number, number, number, number];
16
16
  /**
17
17
  * spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/3DSceneLayer.cmn.md
18
18
  */
@@ -22,14 +22,14 @@ export interface I3STilesetHeader extends SceneLayer3D {
22
22
  [key: string]: any;
23
23
  }
24
24
  /** https://github.com/Esri/i3s-spec/blob/master/docs/1.8/nodePage.cmn.md */
25
- export declare type NodePage = {
25
+ export type NodePage = {
26
26
  /** Array of nodes. */
27
27
  nodes: NodeInPage[];
28
28
  };
29
29
  /**
30
30
  * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/mesh.cmn.md
31
31
  */
32
- declare type NodeMesh = {
32
+ type NodeMesh = {
33
33
  /**
34
34
  * The material definition.
35
35
  */
@@ -40,7 +40,7 @@ declare type NodeMesh = {
40
40
  attribute: meshAttribute;
41
41
  };
42
42
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/meshMaterial.cmn.md */
43
- export declare type MeshMaterial = {
43
+ export type MeshMaterial = {
44
44
  /** The index in layer.materialDefinitions array. */
45
45
  definition: number;
46
46
  /** Resource id for the material textures. i.e: layers/0/nodes/{material.resource}/textures/{tex_name}. Is required if material declares any textures. */
@@ -49,7 +49,7 @@ export declare type MeshMaterial = {
49
49
  texelCountHint?: number;
50
50
  };
51
51
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/meshGeometry.cmn.md */
52
- export declare type MeshGeometry = {
52
+ export type MeshGeometry = {
53
53
  /** The index in layer.geometryDefinitions array */
54
54
  definition: number;
55
55
  /** The resource locator to be used to query geometry resources: layers/0/nodes/{this.resource}/geometries/{layer.geometryDefinitions[this.definition].geometryBuffers[0 or 1]}. */
@@ -60,12 +60,12 @@ export declare type MeshGeometry = {
60
60
  featureCount?: number;
61
61
  };
62
62
  /** https://github.com/Esri/i3s-spec/blob/master/docs/1.8/meshAttribute.cmn.md */
63
- declare type meshAttribute = {
63
+ type meshAttribute = {
64
64
  /** The resource identifier to be used to locate attribute resources of this mesh. i.e. layers/0/nodes/<resource id>/attributes/... */
65
65
  resource: number;
66
66
  };
67
- export declare type I3STextureFormat = 'jpg' | 'png' | 'ktx-etc2' | 'dds' | 'ktx2';
68
- export declare type I3STileHeader = {
67
+ export type I3STextureFormat = 'jpg' | 'png' | 'ktx-etc2' | 'dds' | 'ktx2';
68
+ export type I3STileHeader = {
69
69
  isDracoGeometry: boolean;
70
70
  textureUrl?: string;
71
71
  url?: string;
@@ -77,7 +77,7 @@ export declare type I3STileHeader = {
77
77
  lodSelection?: LodSelection[];
78
78
  [key: string]: any;
79
79
  };
80
- export declare type I3SParseOptions = {
80
+ export type I3SParseOptions = {
81
81
  /** ArcGIS access token */
82
82
  token?: string;
83
83
  /** Is 3DSceneLayer json expected in response */
@@ -113,7 +113,7 @@ export declare type I3SParseOptions = {
113
113
  maxColor: COLOR;
114
114
  };
115
115
  };
116
- export declare type I3STileOptions = {
116
+ export type I3STileOptions = {
117
117
  isDracoGeometry: boolean;
118
118
  textureUrl?: string;
119
119
  textureFormat?: I3STextureFormat;
@@ -122,12 +122,12 @@ export declare type I3STileOptions = {
122
122
  attributeUrls: string[];
123
123
  mbs: Mbs;
124
124
  };
125
- export declare type I3STilesetOptions = {
125
+ export type I3STilesetOptions = {
126
126
  store: Store;
127
127
  attributeStorageInfo: AttributeStorageInfo[];
128
128
  fields: Field[];
129
129
  };
130
- export declare type I3STileContent = {
130
+ export type I3STileContent = {
131
131
  attributes: I3SMeshAttributes;
132
132
  indices: TypedArray | null;
133
133
  featureIds: number[] | TypedArray;
@@ -138,25 +138,25 @@ export declare type I3STileContent = {
138
138
  texture: TileContentTexture;
139
139
  [key: string]: any;
140
140
  };
141
- export declare type TileContentTexture = ArrayBuffer | {
141
+ export type TileContentTexture = ArrayBuffer | {
142
142
  compressed: boolean;
143
143
  mipmaps: boolean;
144
144
  width: number;
145
145
  height: number;
146
146
  data: TextureLevel[];
147
147
  } | null;
148
- export declare type BoundingVolumes = {
148
+ export type BoundingVolumes = {
149
149
  mbs: Mbs;
150
150
  obb: Obb;
151
151
  };
152
- export declare type Obb = {
152
+ export type Obb = {
153
153
  center: number[] | Vector3;
154
154
  halfSize: number[] | Vector3;
155
155
  quaternion: number[] | Quaternion;
156
156
  };
157
- export declare type Mbs = [number, number, number, number];
157
+ export type Mbs = [number, number, number, number];
158
158
  /** SceneLayer3D based on I3S specification - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/3DSceneLayer.cmn.md */
159
- export declare type SceneLayer3D = {
159
+ export type SceneLayer3D = {
160
160
  /** Unique numeric ID of the layer. */
161
161
  id: number;
162
162
  /** The relative URL to the 3DSceneLayerResource. Only present as part of the SceneServiceInfo resource. */
@@ -219,19 +219,19 @@ export declare type SceneLayer3D = {
219
219
  fullExtent?: FullExtent;
220
220
  };
221
221
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/cachedDrawingInfo.cmn.md */
222
- export declare type CachedDrawingInfo = {
222
+ export type CachedDrawingInfo = {
223
223
  /** If true, the drawingInfo is captured as part of the binary scene layer representation. */
224
224
  color: boolean;
225
225
  };
226
226
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/drawingInfo.cmn.md */
227
- export declare type DrawingInfo = {
227
+ export type DrawingInfo = {
228
228
  /** An object defining the symbology for the layer. See more information about supported renderer types in ArcGIS clients. */
229
229
  renderer: any;
230
230
  /** Scale symbols for the layer. */
231
231
  scaleSymbols: boolean;
232
232
  };
233
233
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/elevationInfo.cmn.md */
234
- export declare type ElevationInfo = {
234
+ export type ElevationInfo = {
235
235
  mode: 'relativeToGround' | 'absoluteHeight' | 'onTheGround' | 'relativeToScene';
236
236
  /** Offset is always added to the result of the above logic except for onTheGround where offset is ignored. */
237
237
  offset: number;
@@ -239,7 +239,7 @@ export declare type ElevationInfo = {
239
239
  unit: string;
240
240
  };
241
241
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/statisticsInfo.cmn.md */
242
- export declare type StatisticsInfo = {
242
+ export type StatisticsInfo = {
243
243
  /** Key indicating the resource of the statistics. */
244
244
  key: string;
245
245
  /** Name of the field of the statistical information. */
@@ -248,7 +248,7 @@ export declare type StatisticsInfo = {
248
248
  href: string;
249
249
  };
250
250
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/nodePageDefinition.cmn.md */
251
- export declare type NodePageDefinition = {
251
+ export type NodePageDefinition = {
252
252
  /** Number of nodes per page for this layer. Must be a power-of-two less than 4096 */
253
253
  nodesPerPage: number;
254
254
  /** Index of the root node. Default = 0. */
@@ -257,7 +257,7 @@ export declare type NodePageDefinition = {
257
257
  lodSelectionMetricType: 'maxScreenThresholdSQ';
258
258
  };
259
259
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialDefinitions.cmn.md */
260
- export declare type I3SMaterialDefinition = {
260
+ export type I3SMaterialDefinition = {
261
261
  /** A set of parameter values that are used to define the metallic-roughness material model from Physically-Based Rendering (PBR) methodology. When not specified, all the default values of pbrMetallicRoughness apply. */
262
262
  pbrMetallicRoughness: I3SPbrMetallicRoughness;
263
263
  /** The normal texture map. */
@@ -278,7 +278,7 @@ export declare type I3SMaterialDefinition = {
278
278
  cullFace?: 'none' | 'front' | 'back';
279
279
  };
280
280
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/pbrMetallicRoughness.cmn.md */
281
- export declare type I3SPbrMetallicRoughness = {
281
+ export type I3SPbrMetallicRoughness = {
282
282
  /** The material's base color factor. default=[1,1,1,1] */
283
283
  baseColorFactor?: [number, number, number, number];
284
284
  /** The base color texture. */
@@ -291,7 +291,7 @@ export declare type I3SPbrMetallicRoughness = {
291
291
  metallicRoughnessTexture?: I3SMaterialTexture;
292
292
  };
293
293
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialTexture.cmn.md */
294
- export declare type I3SMaterialTexture = {
294
+ export type I3SMaterialTexture = {
295
295
  /** The index in layer.textureSetDefinitions. */
296
296
  textureSetDefinitionId: number;
297
297
  /** The set index of texture's TEXCOORD attribute used for texture coordinate mapping. Default is 0. Deprecated. */
@@ -300,7 +300,7 @@ export declare type I3SMaterialTexture = {
300
300
  factor?: number;
301
301
  };
302
302
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/attributeStorageInfo.cmn.md */
303
- export declare type AttributeStorageInfo = {
303
+ export type AttributeStorageInfo = {
304
304
  key: string;
305
305
  name: string;
306
306
  header: {
@@ -313,15 +313,15 @@ export declare type AttributeStorageInfo = {
313
313
  objectIds?: AttributeValue;
314
314
  };
315
315
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/field.cmn.md */
316
- export declare type Field = {
316
+ export type Field = {
317
317
  name: string;
318
318
  type: ESRIField;
319
319
  alias?: string;
320
320
  domain?: Domain;
321
321
  };
322
- export declare type ESRIField = 'esriFieldTypeDate' | 'esriFieldTypeSingle' | 'esriFieldTypeDouble' | 'esriFieldTypeGUID' | 'esriFieldTypeGlobalID' | 'esriFieldTypeInteger' | 'esriFieldTypeOID' | 'esriFieldTypeSmallInteger' | 'esriFieldTypeString';
322
+ export type ESRIField = 'esriFieldTypeDate' | 'esriFieldTypeSingle' | 'esriFieldTypeDouble' | 'esriFieldTypeGUID' | 'esriFieldTypeGlobalID' | 'esriFieldTypeInteger' | 'esriFieldTypeOID' | 'esriFieldTypeSmallInteger' | 'esriFieldTypeString';
323
323
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/popupInfo.cmn.md */
324
- export declare type PopupInfo = {
324
+ export type PopupInfo = {
325
325
  title?: string;
326
326
  description?: string;
327
327
  expressionInfos?: any[];
@@ -336,10 +336,9 @@ export declare type PopupInfo = {
336
336
  /**
337
337
  * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md
338
338
  */
339
- export declare type Node3DIndexDocument = {
339
+ export type Node3DIndexDocument = {
340
340
  id: string;
341
341
  version?: string;
342
- path?: string;
343
342
  level?: number;
344
343
  mbs?: Mbs;
345
344
  obb?: Obb;
@@ -358,7 +357,7 @@ export declare type Node3DIndexDocument = {
358
357
  /**
359
358
  * Minimal I3S node data is needed for loading
360
359
  */
361
- export declare type I3SMinimalNodeData = {
360
+ export type I3SMinimalNodeData = {
362
361
  id: string;
363
362
  url?: string;
364
363
  transform?: number[];
@@ -376,18 +375,18 @@ export declare type I3SMinimalNodeData = {
376
375
  children?: NodeReference[];
377
376
  isDracoGeometry: boolean;
378
377
  };
379
- export declare type LodSelection = {
378
+ export type LodSelection = {
380
379
  metricType?: string;
381
380
  maxError: number;
382
381
  };
383
- export declare type NodeReference = {
382
+ export type NodeReference = {
384
383
  id: string;
385
384
  version?: string;
386
385
  mbs?: Mbs;
387
386
  obb?: Obb;
388
387
  href?: string;
389
388
  };
390
- export declare type Resource = {
389
+ export type Resource = {
391
390
  href: string;
392
391
  layerContent?: string[];
393
392
  featureRange?: number[];
@@ -396,11 +395,11 @@ export declare type Resource = {
396
395
  faceElements?: number[];
397
396
  nodePath?: string;
398
397
  };
399
- export declare type MaxScreenThresholdSQ = {
398
+ export type MaxScreenThresholdSQ = {
400
399
  maxError: number;
401
400
  };
402
401
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/node.cmn.md */
403
- export declare type NodeInPage = {
402
+ export type NodeInPage = {
404
403
  /**
405
404
  * The index in the node array. May be different than material, geometry and attribute resource id. See mesh for more information.
406
405
  */
@@ -429,7 +428,7 @@ export declare type NodeInPage = {
429
428
  /**
430
429
  * https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialDefinitionInfo.cmn.md
431
430
  */
432
- export declare type MaterialDefinitionInfo = {
431
+ export type MaterialDefinitionInfo = {
433
432
  /** A name for the material as assigned in the creating application. */
434
433
  name?: string;
435
434
  /** Indicates the material type, chosen from the supported values. */
@@ -478,7 +477,7 @@ export declare type MaterialDefinitionInfo = {
478
477
  };
479
478
  };
480
479
  /** https://github.com/Esri/i3s-spec/blob/master/docs/1.8/sharedResource.cmn.md */
481
- export declare type SharedResources = {
480
+ export type SharedResources = {
482
481
  /** Materials describe how a Feature or a set of Features is to be rendered. */
483
482
  materialDefinitions?: {
484
483
  [key: string]: MaterialDefinitionInfo;
@@ -489,7 +488,7 @@ export declare type SharedResources = {
489
488
  };
490
489
  };
491
490
  /** https://github.com/Esri/i3s-spec/blob/master/docs/1.8/image.cmn.md */
492
- declare type TextureImage = {
491
+ type TextureImage = {
493
492
  /** A unique ID for each image. Generated using the BuildID function. */
494
493
  id: string;
495
494
  /** width of this image, in pixels. */
@@ -506,17 +505,17 @@ declare type TextureImage = {
506
505
  * in the same order as the encodings. */
507
506
  length?: number[];
508
507
  };
509
- export declare type Attribute = 'OBJECTID' | 'string' | 'double' | 'Int32' | string;
510
- export declare type Extent = [number, number, number, number];
511
- export declare type FeatureAttribute = {
508
+ export type Attribute = 'OBJECTID' | 'string' | 'double' | 'Int32' | string;
509
+ export type Extent = [number, number, number, number];
510
+ export type FeatureAttribute = {
512
511
  id: AttributeValue;
513
512
  faceRange: AttributeValue;
514
513
  };
515
- export declare type BuildingSceneLayerTileset = {
514
+ export type BuildingSceneLayerTileset = {
516
515
  header: BuildingSceneLayer;
517
516
  sublayers: BuildingSceneSublayer[];
518
517
  };
519
- export declare type BuildingSceneLayer = {
518
+ export type BuildingSceneLayer = {
520
519
  id: number;
521
520
  name: string;
522
521
  version: string;
@@ -532,7 +531,7 @@ export declare type BuildingSceneLayer = {
532
531
  activeFilterID?: string;
533
532
  statisticsHRef?: string;
534
533
  };
535
- export declare type BuildingSceneSublayer = {
534
+ export type BuildingSceneSublayer = {
536
535
  id: number;
537
536
  name: string;
538
537
  alias?: string;
@@ -544,7 +543,7 @@ export declare type BuildingSceneSublayer = {
544
543
  isEmpty?: boolean;
545
544
  url?: string;
546
545
  };
547
- declare type Filter = {
546
+ type Filter = {
548
547
  id: string;
549
548
  name: string;
550
549
  description: string;
@@ -553,38 +552,38 @@ declare type Filter = {
553
552
  filterBlocks: FilterBlock[];
554
553
  filterAuthoringInfo?: FilterAuthoringInfo;
555
554
  };
556
- declare type FilterAuthoringInfo = {
555
+ type FilterAuthoringInfo = {
557
556
  type: string;
558
557
  filterBlocks: FilterBlockAuthoringInfo[];
559
558
  };
560
- declare type FilterBlockAuthoringInfo = {
559
+ type FilterBlockAuthoringInfo = {
561
560
  filterTypes: FilterType[];
562
561
  };
563
- declare type FilterType = {
562
+ type FilterType = {
564
563
  filterType: string;
565
564
  filterValues: string[];
566
565
  };
567
- declare type FilterBlock = {
566
+ type FilterBlock = {
568
567
  title: string;
569
568
  filterMode: FilterModeSolid | FilterModeWireFrame;
570
569
  filterExpression: string;
571
570
  };
572
- declare type Edges = {
571
+ type Edges = {
573
572
  type: string;
574
573
  color: number[];
575
574
  size: number;
576
575
  transparency: number;
577
576
  extensionLength: number;
578
577
  };
579
- declare type FilterModeSolid = {
578
+ type FilterModeSolid = {
580
579
  type: 'solid';
581
580
  };
582
- declare type FilterModeWireFrame = {
581
+ type FilterModeWireFrame = {
583
582
  type: 'wireFrame';
584
583
  edges: Edges;
585
584
  };
586
585
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/spatialReference.cmn.md */
587
- export declare type SpatialReference = {
586
+ export type SpatialReference = {
588
587
  /** The current WKID value of the vertical coordinate system. */
589
588
  latestVcsWkid: number;
590
589
  /** dentifies the current WKID value associated with the same spatial reference. */
@@ -597,7 +596,7 @@ export declare type SpatialReference = {
597
596
  wkt?: string;
598
597
  };
599
598
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/fullExtent.cmn.md */
600
- export declare type FullExtent = {
599
+ export type FullExtent = {
601
600
  /** left longitude in decimal degrees */
602
601
  xmin: number;
603
602
  /** right longitude in decimal degrees */
@@ -615,7 +614,7 @@ export declare type FullExtent = {
615
614
  /**
616
615
  * https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureDefinitionInfo.cmn.md
617
616
  */
618
- export declare type TextureDefinitionInfo = {
617
+ export type TextureDefinitionInfo = {
619
618
  /** MIMEtype - The encoding/content type that is used by all images in this map */
620
619
  encoding?: string[];
621
620
  /** UV wrapping modes, from {none, repeat, mirror}. */
@@ -630,7 +629,7 @@ export declare type TextureDefinitionInfo = {
630
629
  images: TextureImage[];
631
630
  };
632
631
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/domain.cmn.md */
633
- declare type Domain = {
632
+ type Domain = {
634
633
  type: string;
635
634
  name: string;
636
635
  description?: string;
@@ -646,7 +645,7 @@ declare type Domain = {
646
645
  /**
647
646
  * spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/store.cmn.md
648
647
  */
649
- declare type Store = {
648
+ type Store = {
650
649
  id: string | number;
651
650
  profile: string;
652
651
  version: number | string;
@@ -665,7 +664,7 @@ declare type Store = {
665
664
  /**
666
665
  * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/defaultGeometrySchema.cmn.md
667
666
  */
668
- declare type DefaultGeometrySchema = {
667
+ type DefaultGeometrySchema = {
669
668
  geometryType?: 'triangles';
670
669
  topology: 'PerAttributeArray' | 'Indexed';
671
670
  header: HeaderAttribute[];
@@ -679,7 +678,7 @@ declare type DefaultGeometrySchema = {
679
678
  /**
680
679
  * spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/headerAttribute.cmn.md
681
680
  */
682
- export declare type HeaderAttribute = {
681
+ export type HeaderAttribute = {
683
682
  property: HeaderAttributeProperty.vertexCount | HeaderAttributeProperty.featureCount | string;
684
683
  type: DATA_TYPE.UInt8 | DATA_TYPE.UInt16 | DATA_TYPE.UInt32 | DATA_TYPE.UInt64 | DATA_TYPE.Int16 | DATA_TYPE.Int32 | DATA_TYPE.Int64 | DATA_TYPE.Float32 | DATA_TYPE.Float64;
685
684
  };
@@ -687,19 +686,19 @@ export declare enum HeaderAttributeProperty {
687
686
  vertexCount = "vertexCount",
688
687
  featureCount = "featureCount"
689
688
  }
690
- export declare type VertexAttribute = {
689
+ export type VertexAttribute = {
691
690
  position: GeometryAttribute;
692
691
  normal: GeometryAttribute;
693
692
  uv0: GeometryAttribute;
694
693
  color: GeometryAttribute;
695
694
  region?: GeometryAttribute;
696
695
  };
697
- export declare type GeometryAttribute = {
696
+ export type GeometryAttribute = {
698
697
  byteOffset?: number;
699
698
  valueType: DATA_TYPE.UInt8 | DATA_TYPE.UInt16 | DATA_TYPE.Int16 | DATA_TYPE.Int32 | DATA_TYPE.Int64 | DATA_TYPE.Float32 | DATA_TYPE.Float64;
700
699
  valuesPerElement: number;
701
700
  };
702
- export declare type I3SMeshAttributes = {
701
+ export type I3SMeshAttributes = {
703
702
  [key: string]: I3SMeshAttribute;
704
703
  };
705
704
  export interface I3SMeshAttribute extends MeshAttribute {
@@ -707,27 +706,27 @@ export interface I3SMeshAttribute extends MeshAttribute {
707
706
  metadata?: any;
708
707
  }
709
708
  /** https://github.com/Esri/i3s-spec/blob/master/docs/1.8/heightModelInfo.cmn.md */
710
- declare type HeightModelInfo = {
709
+ type HeightModelInfo = {
711
710
  heightModel: 'gravity_related_height' | 'ellipsoidal';
712
711
  vertCRS: string;
713
712
  heightUnit: 'meter' | 'us-foot' | 'foot' | 'clarke-foot' | 'clarke-yard' | 'clarke-link' | 'sears-yard' | 'sears-foot' | 'sears-chain' | 'benoit-1895-b-chain' | 'indian-yard' | 'indian-1937-yard' | 'gold-coast-foot' | 'sears-1922-truncated-chain' | 'us-inch' | 'us-mile' | 'us-yard' | 'millimeter' | 'decimeter' | 'centimeter' | 'kilometer';
714
713
  };
715
- export declare type TextureSetDefinitionFormats = {
714
+ export type TextureSetDefinitionFormats = {
716
715
  name: string;
717
716
  format: I3STextureFormat;
718
717
  }[];
719
718
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureSetDefinition.cmn.md */
720
- declare type TextureSetDefinition = {
719
+ type TextureSetDefinition = {
721
720
  formats: TextureSetDefinitionFormats;
722
721
  atlas?: boolean;
723
722
  };
724
723
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/geometryDefinition.cmn.md */
725
- declare type GeometryDefinition = {
724
+ type GeometryDefinition = {
726
725
  topology: 'triangle' | string;
727
726
  geometryBuffers: GeometryBuffer[];
728
727
  };
729
728
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/geometryBuffer.cmn.md */
730
- declare type GeometryBuffer = {
729
+ type GeometryBuffer = {
731
730
  offset?: number;
732
731
  position?: GeometryBufferItem;
733
732
  normal?: GeometryBufferItem;
@@ -741,24 +740,24 @@ declare type GeometryBuffer = {
741
740
  attributes: string[];
742
741
  };
743
742
  };
744
- declare type GeometryBufferItem = {
743
+ type GeometryBufferItem = {
745
744
  type: string;
746
745
  component: number;
747
746
  encoding?: string;
748
747
  binding: string;
749
748
  };
750
- declare type AttributeValue = {
749
+ type AttributeValue = {
751
750
  valueType: string;
752
751
  encoding?: string;
753
752
  valuesPerElement?: number;
754
753
  };
755
- export declare type FieldInfo = {
754
+ export type FieldInfo = {
756
755
  fieldName: string;
757
756
  visible: boolean;
758
757
  isEditable: boolean;
759
758
  label: string;
760
759
  };
761
- export declare type ArcGisWebSceneData = {
760
+ export type ArcGisWebSceneData = {
762
761
  header: ArcGisWebScene;
763
762
  layers: OperationalLayer[];
764
763
  unsupportedLayers: OperationalLayer[];
@@ -766,7 +765,7 @@ export declare type ArcGisWebSceneData = {
766
765
  /**
767
766
  * ArcGis WebScene spec - https://developers.arcgis.com/web-scene-specification/objects/webscene/
768
767
  */
769
- export declare type ArcGisWebScene = {
768
+ export type ArcGisWebScene = {
770
769
  /**
771
770
  * @todo add type.
772
771
  * Spec - https://developers.arcgis.com/web-scene-specification/objects/applicationProperties/
@@ -807,7 +806,7 @@ export declare type ArcGisWebScene = {
807
806
  * Spec - https://developers.arcgis.com/web-scene-specification/objects/presentation/
808
807
  * @todo Add presentation type.
809
808
  */
810
- presentation: any;
809
+ presentation: ArcGisPresentation;
811
810
  /**
812
811
  * An object that provides information about the initial environment settings and viewpoint of the web scene.
813
812
  */
@@ -853,11 +852,99 @@ export declare type ArcGisWebScene = {
853
852
  */
854
853
  widgets?: any;
855
854
  };
855
+ /**
856
+ * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-webscene-Presentation.html
857
+ */
858
+ type ArcGisPresentation = {
859
+ slides: Slide[];
860
+ };
861
+ /**
862
+ * A slide stores a snapshot of several pre-set properties of the WebScene and SceneView,
863
+ * such as the basemap, viewpoint and visible layers.
864
+ * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-webscene-Slide.html
865
+ */
866
+ type Slide = {
867
+ id: string;
868
+ title: {
869
+ text: string;
870
+ };
871
+ thumbnail: {
872
+ url: string;
873
+ };
874
+ description: {
875
+ text: string;
876
+ };
877
+ ground: {
878
+ transparency: number;
879
+ };
880
+ baseMap: ArcGisBaseMap;
881
+ visibleLayers: ArcGisVisibleLayer[];
882
+ viewpoint: ArcGisViewPoint;
883
+ };
884
+ /**
885
+ * The basemap of the scene. Only the base and reference layers of the basemap are stored in a slide.
886
+ * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html
887
+ */
888
+ type ArcGisBaseMap = {
889
+ id: string;
890
+ title: string;
891
+ baseMapLayers: ArcGisBaseMapLayer[];
892
+ };
893
+ /**
894
+ * The visible layers of the scene.
895
+ * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-webscene-Slide.html#visibleLayers
896
+ */
897
+ type ArcGisVisibleLayer = {
898
+ id: string;
899
+ sublayerIds: number[];
900
+ };
901
+ /**
902
+ * The basemap of the scene.
903
+ * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html
904
+ */
905
+ type ArcGisBaseMapLayer = {
906
+ id: string;
907
+ title: string;
908
+ url: string;
909
+ layerType: string;
910
+ visibility: boolean;
911
+ };
912
+ /**
913
+ * The viewpoint of the slide. This acts like a bookmark, saving a predefined location or point of view from which to view the scene.
914
+ * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-Viewpoint.html
915
+ */
916
+ type ArcGisViewPoint = {
917
+ scale: number;
918
+ rotation?: number;
919
+ /**
920
+ * Spec - https://developers.arcgis.com/web-scene-specification/objects/viewpoint/
921
+ */
922
+ targetGeometry: any;
923
+ camera: ArcGisCamera;
924
+ };
925
+ /**
926
+ * The camera defines the position, tilt, and heading of the point from which the SceneView's visible extent is observed.
927
+ * It is not associated with device hardware. This class only applies to 3D SceneViews.
928
+ * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-Camera.html
929
+ */
930
+ export type ArcGisCamera = {
931
+ position: {
932
+ x: number;
933
+ y: number;
934
+ z: number;
935
+ };
936
+ spatialReference: {
937
+ wkid: number;
938
+ latestWkid: number;
939
+ };
940
+ heading: number;
941
+ tilt: number;
942
+ };
856
943
  /**
857
944
  * Operational layers contain your data. Usually, a basemap sits beneath your operational layers to give them geographic context.
858
945
  * Spec- https://developers.arcgis.com/web-scene-specification/objects/operationalLayers/
859
946
  */
860
- export declare type OperationalLayer = {
947
+ export type OperationalLayer = {
861
948
  id: string;
862
949
  opacity: number;
863
950
  title: string;
@@ -872,17 +959,17 @@ export declare type OperationalLayer = {
872
959
  showLegend?: boolean;
873
960
  layers?: OperationalLayer[];
874
961
  };
875
- declare type LayerDefinition = {
962
+ type LayerDefinition = {
876
963
  elevationInfo: ElevationInfo;
877
964
  drawingInfo: DrawingInfo;
878
965
  };
879
- declare type BaseMap = {
966
+ type BaseMap = {
880
967
  id: string;
881
968
  title: string;
882
969
  baseMapLayers: BaseMapLayer[];
883
970
  elevationLayers: ElevationLayer[];
884
971
  };
885
- declare type BaseMapLayer = {
972
+ type BaseMapLayer = {
886
973
  id: string;
887
974
  opacity: number;
888
975
  title: string;
@@ -890,7 +977,7 @@ declare type BaseMapLayer = {
890
977
  visibility: boolean;
891
978
  layerType: string;
892
979
  };
893
- declare type ElevationLayer = {
980
+ type ElevationLayer = {
894
981
  id: string;
895
982
  listMode: string;
896
983
  title: string;
@@ -898,36 +985,36 @@ declare type ElevationLayer = {
898
985
  visibility: boolean;
899
986
  layerType: string;
900
987
  };
901
- declare type Ground = {
988
+ type Ground = {
902
989
  layers: ElevationLayer[];
903
990
  transparency: number;
904
991
  navigationConstraint: NavigationConstraint;
905
992
  };
906
- declare type NavigationConstraint = {
993
+ type NavigationConstraint = {
907
994
  type: string;
908
995
  };
909
- declare type InitialState = {
996
+ type InitialState = {
910
997
  environment: Enviroment;
911
998
  viewpoint: ViewPoint;
912
999
  };
913
- declare type Enviroment = {
1000
+ type Enviroment = {
914
1001
  lighting: Lighting;
915
1002
  atmosphereEnabled?: string;
916
1003
  starsEnabled?: string;
917
1004
  };
918
- declare type Lighting = {
1005
+ type Lighting = {
919
1006
  datetime?: number;
920
1007
  displayUTCOffset?: number;
921
1008
  };
922
- declare type ViewPoint = {
1009
+ type ViewPoint = {
923
1010
  camera: Camera;
924
1011
  };
925
- declare type Camera = {
1012
+ type Camera = {
926
1013
  position: CameraPosition;
927
1014
  heading: number;
928
1015
  tilt: number;
929
1016
  };
930
- declare type CameraPosition = {
1017
+ type CameraPosition = {
931
1018
  spatialReference: SpatialReference;
932
1019
  x: number;
933
1020
  y: number;
@@ -936,7 +1023,7 @@ declare type CameraPosition = {
936
1023
  /**
937
1024
  * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/statsInfo.cmn.md
938
1025
  */
939
- export declare type StatsInfo = {
1026
+ export type StatsInfo = {
940
1027
  /** Represents the count of the value. */
941
1028
  totalValuesCount?: number;
942
1029
  /** Minimum attribute value for the entire layer. */
@@ -959,7 +1046,7 @@ export declare type StatsInfo = {
959
1046
  mostFrequentValues?: ValueCount[];
960
1047
  };
961
1048
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/histogram.cmn.md */
962
- export declare type Histogram = {
1049
+ export type Histogram = {
963
1050
  /** Minimum attribute value for the entire layer. */
964
1051
  minimum: number;
965
1052
  /** Maximum attribute value for the entire layer. Maximum array size for stats.histo.counts is 256. */
@@ -967,7 +1054,7 @@ export declare type Histogram = {
967
1054
  /** Count for the entire layer. */
968
1055
  counts: number[];
969
1056
  };
970
- export declare type ValueCount = {
1057
+ export type ValueCount = {
971
1058
  /** Type of the attribute values after decompression, if applicable. Please note that string is not supported for point cloud scene layer attributes. */
972
1059
  value: number | string;
973
1060
  /** Count of the number of values. May exceed 32 bits. */