@loaders.gl/i3s 4.0.0-alpha.5 → 4.0.0-alpha.6

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 (169) hide show
  1. package/dist/arcgis-webscene-loader.d.ts +7 -0
  2. package/dist/arcgis-webscene-loader.d.ts.map +1 -0
  3. package/dist/arcgis-webscene-loader.js +28 -0
  4. package/dist/bundle.js +2 -2
  5. package/dist/dist.min.js +8804 -8547
  6. package/dist/es5/arcgis-webscene-loader.js +40 -0
  7. package/dist/es5/arcgis-webscene-loader.js.map +1 -0
  8. package/dist/es5/bundle.js +6 -0
  9. package/dist/es5/bundle.js.map +1 -0
  10. package/dist/es5/i3s-attribute-loader.js +195 -0
  11. package/dist/es5/i3s-attribute-loader.js.map +1 -0
  12. package/dist/es5/i3s-building-scene-layer-loader.js +46 -0
  13. package/dist/es5/i3s-building-scene-layer-loader.js.map +1 -0
  14. package/dist/es5/i3s-content-loader.js +57 -0
  15. package/dist/es5/i3s-content-loader.js.map +1 -0
  16. package/dist/es5/i3s-loader.js +193 -0
  17. package/dist/es5/i3s-loader.js.map +1 -0
  18. package/dist/es5/i3s-node-page-loader.js +39 -0
  19. package/dist/es5/i3s-node-page-loader.js.map +1 -0
  20. package/dist/es5/index.js +61 -0
  21. package/dist/es5/index.js.map +1 -0
  22. package/dist/es5/lib/helpers/i3s-nodepages-tiles.js +312 -0
  23. package/dist/es5/lib/helpers/i3s-nodepages-tiles.js.map +1 -0
  24. package/dist/es5/lib/parsers/constants.js +72 -0
  25. package/dist/es5/lib/parsers/constants.js.map +1 -0
  26. package/dist/es5/lib/parsers/parse-arcgis-webscene.js +158 -0
  27. package/dist/es5/lib/parsers/parse-arcgis-webscene.js.map +1 -0
  28. package/dist/es5/lib/parsers/parse-i3s-attribute.js +76 -0
  29. package/dist/es5/lib/parsers/parse-i3s-attribute.js.map +1 -0
  30. package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js +65 -0
  31. package/dist/es5/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -0
  32. package/dist/es5/lib/parsers/parse-i3s-tile-content.js +510 -0
  33. package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +1 -0
  34. package/dist/es5/lib/parsers/parse-i3s.js +116 -0
  35. package/dist/es5/lib/parsers/parse-i3s.js.map +1 -0
  36. package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js +17 -0
  37. package/dist/es5/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -0
  38. package/dist/es5/lib/utils/customizeColors.js +159 -0
  39. package/dist/es5/lib/utils/customizeColors.js.map +1 -0
  40. package/dist/es5/lib/utils/url-utils.js +33 -0
  41. package/dist/es5/lib/utils/url-utils.js.map +1 -0
  42. package/dist/es5/types.js +26 -0
  43. package/dist/es5/types.js.map +1 -0
  44. package/dist/es5/workers/i3s-content-nodejs-worker.js +7 -0
  45. package/dist/es5/workers/i3s-content-nodejs-worker.js.map +1 -0
  46. package/dist/es5/workers/i3s-content-worker.js +6 -0
  47. package/dist/es5/workers/i3s-content-worker.js.map +1 -0
  48. package/dist/esm/arcgis-webscene-loader.js +16 -0
  49. package/dist/esm/arcgis-webscene-loader.js.map +1 -0
  50. package/dist/esm/bundle.js +4 -0
  51. package/dist/esm/bundle.js.map +1 -0
  52. package/dist/esm/i3s-attribute-loader.js +119 -0
  53. package/dist/esm/i3s-attribute-loader.js.map +1 -0
  54. package/dist/esm/i3s-building-scene-layer-loader.js +19 -0
  55. package/dist/esm/i3s-building-scene-layer-loader.js.map +1 -0
  56. package/dist/esm/i3s-content-loader.js +31 -0
  57. package/dist/esm/i3s-content-loader.js.map +1 -0
  58. package/dist/esm/i3s-loader.js +87 -0
  59. package/dist/esm/i3s-loader.js.map +1 -0
  60. package/dist/esm/i3s-node-page-loader.js +15 -0
  61. package/dist/esm/i3s-node-page-loader.js.map +1 -0
  62. package/dist/esm/index.js +8 -0
  63. package/dist/esm/index.js.map +1 -0
  64. package/dist/esm/lib/helpers/i3s-nodepages-tiles.js +198 -0
  65. package/dist/esm/lib/helpers/i3s-nodepages-tiles.js.map +1 -0
  66. package/dist/esm/lib/parsers/constants.js +57 -0
  67. package/dist/esm/lib/parsers/constants.js.map +1 -0
  68. package/dist/esm/lib/parsers/parse-arcgis-webscene.js +70 -0
  69. package/dist/esm/lib/parsers/parse-arcgis-webscene.js.map +1 -0
  70. package/dist/esm/lib/parsers/parse-i3s-attribute.js +60 -0
  71. package/dist/esm/lib/parsers/parse-i3s-attribute.js.map +1 -0
  72. package/dist/esm/lib/parsers/parse-i3s-building-scene-layer.js +39 -0
  73. package/dist/esm/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -0
  74. package/dist/esm/lib/parsers/parse-i3s-tile-content.js +435 -0
  75. package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +1 -0
  76. package/dist/esm/lib/parsers/parse-i3s.js +83 -0
  77. package/dist/esm/lib/parsers/parse-i3s.js.map +1 -0
  78. package/dist/esm/lib/utils/convert-i3s-obb-to-mbs.js +9 -0
  79. package/dist/esm/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -0
  80. package/dist/esm/lib/utils/customizeColors.js +92 -0
  81. package/dist/esm/lib/utils/customizeColors.js.map +1 -0
  82. package/dist/esm/lib/utils/url-utils.js +28 -0
  83. package/dist/esm/lib/utils/url-utils.js.map +1 -0
  84. package/dist/esm/types.js +18 -0
  85. package/dist/esm/types.js.map +1 -0
  86. package/dist/esm/workers/i3s-content-nodejs-worker.js +5 -0
  87. package/dist/esm/workers/i3s-content-nodejs-worker.js.map +1 -0
  88. package/dist/esm/workers/i3s-content-worker.js +4 -0
  89. package/dist/esm/workers/i3s-content-worker.js.map +1 -0
  90. package/dist/i3s-attribute-loader.d.ts +9 -2
  91. package/dist/i3s-attribute-loader.d.ts.map +1 -1
  92. package/dist/i3s-attribute-loader.js +155 -132
  93. package/dist/i3s-building-scene-layer-loader.js +23 -18
  94. package/dist/i3s-content-loader.d.ts.map +1 -1
  95. package/dist/i3s-content-loader.js +30 -22
  96. package/dist/i3s-content-nodejs-worker.js +198 -0
  97. package/dist/i3s-content-nodejs-worker.js.map +7 -0
  98. package/dist/i3s-content-worker.js +1119 -1100
  99. package/dist/i3s-loader.d.ts +5 -0
  100. package/dist/i3s-loader.d.ts.map +1 -1
  101. package/dist/i3s-loader.js +88 -83
  102. package/dist/i3s-node-page-loader.d.ts +3 -2
  103. package/dist/i3s-node-page-loader.d.ts.map +1 -1
  104. package/dist/i3s-node-page-loader.js +20 -20
  105. package/dist/index.d.ts +4 -2
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +19 -6
  108. package/dist/lib/helpers/i3s-nodepages-tiles.d.ts +1 -0
  109. package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -1
  110. package/dist/lib/helpers/i3s-nodepages-tiles.js +231 -228
  111. package/dist/lib/parsers/constants.js +85 -63
  112. package/dist/lib/parsers/parse-arcgis-webscene.d.ts +7 -0
  113. package/dist/lib/parsers/parse-arcgis-webscene.d.ts.map +1 -0
  114. package/dist/lib/parsers/parse-arcgis-webscene.js +88 -0
  115. package/dist/lib/parsers/parse-i3s-attribute.d.ts +6 -4
  116. package/dist/lib/parsers/parse-i3s-attribute.d.ts.map +1 -1
  117. package/dist/lib/parsers/parse-i3s-attribute.js +87 -62
  118. package/dist/lib/parsers/parse-i3s-building-scene-layer.js +41 -40
  119. package/dist/lib/parsers/parse-i3s-tile-content.d.ts +2 -2
  120. package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -1
  121. package/dist/lib/parsers/parse-i3s-tile-content.js +454 -454
  122. package/dist/lib/parsers/parse-i3s.d.ts +1 -1
  123. package/dist/lib/parsers/parse-i3s.d.ts.map +1 -1
  124. package/dist/lib/parsers/parse-i3s.js +92 -88
  125. package/dist/lib/utils/convert-i3s-obb-to-mbs.js +19 -8
  126. package/dist/lib/utils/customizeColors.d.ts +14 -0
  127. package/dist/lib/utils/customizeColors.d.ts.map +1 -0
  128. package/dist/lib/utils/customizeColors.js +94 -0
  129. package/dist/lib/utils/url-utils.js +41 -28
  130. package/dist/types.d.ts +518 -97
  131. package/dist/types.d.ts.map +1 -1
  132. package/dist/types.js +18 -19
  133. package/dist/workers/i3s-content-nodejs-worker.d.ts +2 -0
  134. package/dist/workers/i3s-content-nodejs-worker.d.ts.map +1 -0
  135. package/dist/workers/i3s-content-nodejs-worker.js +6 -0
  136. package/dist/workers/i3s-content-worker.js +5 -4
  137. package/package.json +15 -15
  138. package/src/arcgis-webscene-loader.ts +31 -0
  139. package/src/i3s-attribute-loader.ts +9 -9
  140. package/src/i3s-content-loader.ts +19 -6
  141. package/src/i3s-loader.ts +22 -13
  142. package/src/i3s-node-page-loader.ts +6 -10
  143. package/src/index.ts +22 -5
  144. package/src/lib/helpers/i3s-nodepages-tiles.ts +14 -3
  145. package/src/lib/parsers/constants.ts +1 -1
  146. package/src/lib/parsers/parse-arcgis-webscene.ts +102 -0
  147. package/src/lib/parsers/parse-i3s-attribute.ts +21 -14
  148. package/src/lib/parsers/parse-i3s-tile-content.ts +99 -76
  149. package/src/lib/parsers/parse-i3s.ts +8 -3
  150. package/src/lib/utils/customizeColors.ts +134 -0
  151. package/src/types.ts +482 -33
  152. package/src/workers/i3s-content-nodejs-worker.ts +5 -0
  153. package/dist/bundle.js.map +0 -1
  154. package/dist/i3s-attribute-loader.js.map +0 -1
  155. package/dist/i3s-building-scene-layer-loader.js.map +0 -1
  156. package/dist/i3s-content-loader.js.map +0 -1
  157. package/dist/i3s-loader.js.map +0 -1
  158. package/dist/i3s-node-page-loader.js.map +0 -1
  159. package/dist/index.js.map +0 -1
  160. package/dist/lib/helpers/i3s-nodepages-tiles.js.map +0 -1
  161. package/dist/lib/parsers/constants.js.map +0 -1
  162. package/dist/lib/parsers/parse-i3s-attribute.js.map +0 -1
  163. package/dist/lib/parsers/parse-i3s-building-scene-layer.js.map +0 -1
  164. package/dist/lib/parsers/parse-i3s-tile-content.js.map +0 -1
  165. package/dist/lib/parsers/parse-i3s.js.map +0 -1
  166. package/dist/lib/utils/convert-i3s-obb-to-mbs.js.map +0 -1
  167. package/dist/lib/utils/url-utils.js.map +0 -1
  168. package/dist/types.js.map +0 -1
  169. package/dist/workers/i3s-content-worker.js.map +0 -1
package/dist/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { GLTFMaterial } from '@loaders.gl/gltf';
2
1
  import type { Matrix4, Quaternion, Vector3 } from '@math.gl/core';
3
2
  import type { TypedArray, MeshAttribute, TextureLevel } from '@loaders.gl/schema';
3
+ import { Tile3D, Tileset3D } from '@loaders.gl/tiles';
4
4
  export declare enum DATA_TYPE {
5
5
  UInt8 = "UInt8",
6
6
  UInt16 = "UInt16",
@@ -12,6 +12,7 @@ export declare enum DATA_TYPE {
12
12
  Float32 = "Float32",
13
13
  Float64 = "Float64"
14
14
  }
15
+ export type COLOR = [number, number, number, number];
15
16
  /**
16
17
  * spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/3DSceneLayer.cmn.md
17
18
  */
@@ -21,14 +22,14 @@ export interface I3STilesetHeader extends SceneLayer3D {
21
22
  [key: string]: any;
22
23
  }
23
24
  /** https://github.com/Esri/i3s-spec/blob/master/docs/1.8/nodePage.cmn.md */
24
- export declare type NodePage = {
25
+ export type NodePage = {
25
26
  /** Array of nodes. */
26
27
  nodes: NodeInPage[];
27
28
  };
28
29
  /**
29
30
  * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/mesh.cmn.md
30
31
  */
31
- declare type NodeMesh = {
32
+ type NodeMesh = {
32
33
  /**
33
34
  * The material definition.
34
35
  */
@@ -39,7 +40,7 @@ declare type NodeMesh = {
39
40
  attribute: meshAttribute;
40
41
  };
41
42
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/meshMaterial.cmn.md */
42
- export declare type MeshMaterial = {
43
+ export type MeshMaterial = {
43
44
  /** The index in layer.materialDefinitions array. */
44
45
  definition: number;
45
46
  /** Resource id for the material textures. i.e: layers/0/nodes/{material.resource}/textures/{tex_name}. Is required if material declares any textures. */
@@ -48,7 +49,7 @@ export declare type MeshMaterial = {
48
49
  texelCountHint?: number;
49
50
  };
50
51
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/meshGeometry.cmn.md */
51
- export declare type MeshGeometry = {
52
+ export type MeshGeometry = {
52
53
  /** The index in layer.geometryDefinitions array */
53
54
  definition: number;
54
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]}. */
@@ -59,12 +60,12 @@ export declare type MeshGeometry = {
59
60
  featureCount?: number;
60
61
  };
61
62
  /** https://github.com/Esri/i3s-spec/blob/master/docs/1.8/meshAttribute.cmn.md */
62
- declare type meshAttribute = {
63
+ type meshAttribute = {
63
64
  /** The resource identifier to be used to locate attribute resources of this mesh. i.e. layers/0/nodes/<resource id>/attributes/... */
64
65
  resource: number;
65
66
  };
66
- export declare type I3STextureFormat = 'jpg' | 'png' | 'ktx-etc2' | 'dds' | 'ktx2';
67
- export declare type I3STileHeader = {
67
+ export type I3STextureFormat = 'jpg' | 'png' | 'ktx-etc2' | 'dds' | 'ktx2';
68
+ export type I3STileHeader = {
68
69
  isDracoGeometry: boolean;
69
70
  textureUrl?: string;
70
71
  url?: string;
@@ -76,7 +77,57 @@ export declare type I3STileHeader = {
76
77
  lodSelection?: LodSelection[];
77
78
  [key: string]: any;
78
79
  };
79
- export declare type I3STileContent = {
80
+ export type I3SParseOptions = {
81
+ /** ArcGIS access token */
82
+ token?: string;
83
+ /** Is 3DSceneLayer json expected in response */
84
+ isTileset?: string;
85
+ /** Is 3DNodeIndexDocument json expected in response */
86
+ isTileHeader?: string;
87
+ /** Tile3D instance. This property used only to load tile content */
88
+ /** Tile-specific options */
89
+ _tileOptions?: I3STileOptions;
90
+ /** Tileset-specific options */
91
+ _tilesetOptions?: I3STilesetOptions;
92
+ /** Load Draco Compressed geometry if available */
93
+ useDracoGeometry?: boolean;
94
+ /** Load compressed textures if available */
95
+ useCompressedTextures?: boolean;
96
+ /** Set false if don't need to parse textures */
97
+ decodeTextures?: boolean;
98
+ /** deck.gl compatible coordinate system.
99
+ * https://github.com/visgl/deck.gl/blob/master/docs/developer-guide/coordinate-systems.md
100
+ * Supported coordinate systems: METER_OFFSETS, LNGLAT_OFFSETS
101
+ */
102
+ coordinateSystem?: number;
103
+ colorsByAttribute?: {
104
+ attributeName: string;
105
+ minValue: number;
106
+ maxValue: number;
107
+ minColor: COLOR;
108
+ maxColor: COLOR;
109
+ };
110
+ /** @deprecated */
111
+ tile?: Tile3D | I3STileOptions;
112
+ /** Tileset3D instance. This property used only to load tile content */
113
+ /** @deprecated */
114
+ tileset?: Tileset3D | I3STilesetOptions;
115
+ };
116
+ export type I3STileOptions = {
117
+ isDracoGeometry: boolean;
118
+ textureUrl?: string;
119
+ textureFormat?: I3STextureFormat;
120
+ textureLoaderOptions?: any;
121
+ materialDefinition?: I3SMaterialDefinition;
122
+ attributeUrls: string[];
123
+ mbs: Mbs;
124
+ };
125
+ export type I3STilesetOptions = {
126
+ store: Store;
127
+ attributeStorageInfo: AttributeStorageInfo[];
128
+ fields: Field[];
129
+ };
130
+ export type I3STileContent = {
80
131
  attributes: I3SMeshAttributes;
81
132
  indices: TypedArray | null;
82
133
  featureIds: number[] | TypedArray;
@@ -87,25 +138,25 @@ export declare type I3STileContent = {
87
138
  texture: TileContentTexture;
88
139
  [key: string]: any;
89
140
  };
90
- export declare type TileContentTexture = ArrayBuffer | {
141
+ export type TileContentTexture = ArrayBuffer | {
91
142
  compressed: boolean;
92
143
  mipmaps: boolean;
93
144
  width: number;
94
145
  height: number;
95
146
  data: TextureLevel[];
96
147
  } | null;
97
- export declare type BoundingVolumes = {
148
+ export type BoundingVolumes = {
98
149
  mbs: Mbs;
99
150
  obb: Obb;
100
151
  };
101
- export declare type Obb = {
152
+ export type Obb = {
102
153
  center: number[] | Vector3;
103
154
  halfSize: number[] | Vector3;
104
- quaternion: Quaternion;
155
+ quaternion: number[] | Quaternion;
105
156
  };
106
- export declare type Mbs = [number, number, number, number];
157
+ export type Mbs = [number, number, number, number];
107
158
  /** SceneLayer3D based on I3S specification - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/3DSceneLayer.cmn.md */
108
- export declare type SceneLayer3D = {
159
+ export type SceneLayer3D = {
109
160
  /** Unique numeric ID of the layer. */
110
161
  id: number;
111
162
  /** The relative URL to the 3DSceneLayerResource. Only present as part of the SceneServiceInfo resource. */
@@ -168,19 +219,19 @@ export declare type SceneLayer3D = {
168
219
  fullExtent?: FullExtent;
169
220
  };
170
221
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/cachedDrawingInfo.cmn.md */
171
- export declare type CachedDrawingInfo = {
222
+ export type CachedDrawingInfo = {
172
223
  /** If true, the drawingInfo is captured as part of the binary scene layer representation. */
173
224
  color: boolean;
174
225
  };
175
226
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/drawingInfo.cmn.md */
176
- export declare type DrawingInfo = {
227
+ export type DrawingInfo = {
177
228
  /** An object defining the symbology for the layer. See more information about supported renderer types in ArcGIS clients. */
178
229
  renderer: any;
179
230
  /** Scale symbols for the layer. */
180
231
  scaleSymbols: boolean;
181
232
  };
182
233
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/elevationInfo.cmn.md */
183
- export declare type ElevationInfo = {
234
+ export type ElevationInfo = {
184
235
  mode: 'relativeToGround' | 'absoluteHeight' | 'onTheGround' | 'relativeToScene';
185
236
  /** Offset is always added to the result of the above logic except for onTheGround where offset is ignored. */
186
237
  offset: number;
@@ -188,7 +239,7 @@ export declare type ElevationInfo = {
188
239
  unit: string;
189
240
  };
190
241
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/statisticsInfo.cmn.md */
191
- export declare type StatisticsInfo = {
242
+ export type StatisticsInfo = {
192
243
  /** Key indicating the resource of the statistics. */
193
244
  key: string;
194
245
  /** Name of the field of the statistical information. */
@@ -197,7 +248,7 @@ export declare type StatisticsInfo = {
197
248
  href: string;
198
249
  };
199
250
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/nodePageDefinition.cmn.md */
200
- export declare type NodePageDefinition = {
251
+ export type NodePageDefinition = {
201
252
  /** Number of nodes per page for this layer. Must be a power-of-two less than 4096 */
202
253
  nodesPerPage: number;
203
254
  /** Index of the root node. Default = 0. */
@@ -206,41 +257,41 @@ export declare type NodePageDefinition = {
206
257
  lodSelectionMetricType: 'maxScreenThresholdSQ';
207
258
  };
208
259
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialDefinitions.cmn.md */
209
- export declare type I3SMaterialDefinition = {
260
+ export type I3SMaterialDefinition = {
210
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. */
211
262
  pbrMetallicRoughness: I3SPbrMetallicRoughness;
212
263
  /** The normal texture map. */
213
- normalTexture: I3SMaterialTexture;
264
+ normalTexture?: I3SMaterialTexture;
214
265
  /** The occlusion texture map. */
215
- occlusionTexture: I3SMaterialTexture;
266
+ occlusionTexture?: I3SMaterialTexture;
216
267
  /** The emissive texture map. */
217
- emissiveTexture: I3SMaterialTexture;
268
+ emissiveTexture?: I3SMaterialTexture;
218
269
  /** The emissive color of the material. */
219
- emissiveFactor: [number, number, number];
270
+ emissiveFactor?: [number, number, number];
220
271
  /** Defines the meaning of the alpha-channel/alpha-mask. */
221
272
  alphaMode: 'opaque' | 'mask' | 'blend';
222
273
  /** The alpha cutoff value of the material. */
223
- alphaCutoff: number;
274
+ alphaCutoff?: number;
224
275
  /** Specifies whether the material is double sided. */
225
- doubleSided: boolean;
276
+ doubleSided?: boolean;
226
277
  /** Winding order is counterclockwise. */
227
- cullFace: 'none' | 'front' | 'back';
278
+ cullFace?: 'none' | 'front' | 'back';
228
279
  };
229
280
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/pbrMetallicRoughness.cmn.md */
230
- export declare type I3SPbrMetallicRoughness = {
281
+ export type I3SPbrMetallicRoughness = {
231
282
  /** The material's base color factor. default=[1,1,1,1] */
232
- baseColorFactor: [number, number, number, number];
283
+ baseColorFactor?: [number, number, number, number];
233
284
  /** The base color texture. */
234
- baseColorTexture: I3SMaterialTexture;
285
+ baseColorTexture?: I3SMaterialTexture;
235
286
  /** the metalness of the material. default=1.0 */
236
287
  metallicFactor: number;
237
288
  /** the roughness of the material. default=1.0 */
238
289
  roughnessFactor: number;
239
290
  /** the metallic-roughness texture. */
240
- metallicRoughnessTexture: I3SMaterialTexture;
291
+ metallicRoughnessTexture?: I3SMaterialTexture;
241
292
  };
242
293
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialTexture.cmn.md */
243
- export declare type I3SMaterialTexture = {
294
+ export type I3SMaterialTexture = {
244
295
  /** The index in layer.textureSetDefinitions. */
245
296
  textureSetDefinitionId: number;
246
297
  /** The set index of texture's TEXCOORD attribute used for texture coordinate mapping. Default is 0. Deprecated. */
@@ -249,7 +300,7 @@ export declare type I3SMaterialTexture = {
249
300
  factor?: number;
250
301
  };
251
302
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/attributeStorageInfo.cmn.md */
252
- export declare type AttributeStorageInfo = {
303
+ export type AttributeStorageInfo = {
253
304
  key: string;
254
305
  name: string;
255
306
  header: {
@@ -262,15 +313,15 @@ export declare type AttributeStorageInfo = {
262
313
  objectIds?: AttributeValue;
263
314
  };
264
315
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/field.cmn.md */
265
- export declare type Field = {
316
+ export type Field = {
266
317
  name: string;
267
318
  type: ESRIField;
268
319
  alias?: string;
269
320
  domain?: Domain;
270
321
  };
271
- 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';
272
323
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/popupInfo.cmn.md */
273
- export declare type PopupInfo = {
324
+ export type PopupInfo = {
274
325
  title?: string;
275
326
  description?: string;
276
327
  expressionInfos?: any[];
@@ -285,10 +336,9 @@ export declare type PopupInfo = {
285
336
  /**
286
337
  * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md
287
338
  */
288
- export declare type Node3DIndexDocument = {
339
+ export type Node3DIndexDocument = {
289
340
  id: string;
290
341
  version?: string;
291
- path?: string;
292
342
  level?: number;
293
343
  mbs?: Mbs;
294
344
  obb?: Obb;
@@ -307,7 +357,7 @@ export declare type Node3DIndexDocument = {
307
357
  /**
308
358
  * Minimal I3S node data is needed for loading
309
359
  */
310
- export declare type I3SMinimalNodeData = {
360
+ export type I3SMinimalNodeData = {
311
361
  id: string;
312
362
  url?: string;
313
363
  transform?: number[];
@@ -325,18 +375,18 @@ export declare type I3SMinimalNodeData = {
325
375
  children?: NodeReference[];
326
376
  isDracoGeometry: boolean;
327
377
  };
328
- export declare type LodSelection = {
378
+ export type LodSelection = {
329
379
  metricType?: string;
330
380
  maxError: number;
331
381
  };
332
- export declare type NodeReference = {
382
+ export type NodeReference = {
333
383
  id: string;
334
384
  version?: string;
335
385
  mbs?: Mbs;
336
386
  obb?: Obb;
337
387
  href?: string;
338
388
  };
339
- export declare type Resource = {
389
+ export type Resource = {
340
390
  href: string;
341
391
  layerContent?: string[];
342
392
  featureRange?: number[];
@@ -345,11 +395,11 @@ export declare type Resource = {
345
395
  faceElements?: number[];
346
396
  nodePath?: string;
347
397
  };
348
- export declare type MaxScreenThresholdSQ = {
398
+ export type MaxScreenThresholdSQ = {
349
399
  maxError: number;
350
400
  };
351
401
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/node.cmn.md */
352
- export declare type NodeInPage = {
402
+ export type NodeInPage = {
353
403
  /**
354
404
  * The index in the node array. May be different than material, geometry and attribute resource id. See mesh for more information.
355
405
  */
@@ -375,38 +425,97 @@ export declare type NodeInPage = {
375
425
  */
376
426
  mesh?: NodeMesh;
377
427
  };
378
- export declare type SharedResources = {
379
- materialDefinitions?: GLTFMaterial[];
380
- textureDefinitions?: TextureDefinitionInfo[];
381
- nodePath: string;
428
+ /**
429
+ * https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialDefinitionInfo.cmn.md
430
+ */
431
+ export type MaterialDefinitionInfo = {
432
+ /** A name for the material as assigned in the creating application. */
433
+ name?: string;
434
+ /** Indicates the material type, chosen from the supported values. */
435
+ type?: 'standard' | 'water' | 'billboard' | 'leafcard' | 'reference';
436
+ /** The href that resolves to the shared resource bundle in which the material definition is contained. */
437
+ $ref?: string;
438
+ /** Parameter defined for the material.
439
+ * https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialParams.cmn.md
440
+ */
441
+ params: {
442
+ /** Indicates transparency of this material; 0 = opaque, 1 = fully transparent. */
443
+ transparency?: number;
444
+ /** Indicates reflectivity of this material. */
445
+ reflectivity?: number;
446
+ /** Indicates shininess of this material. */
447
+ shininess?: number;
448
+ /** Ambient color of this material. Ambient color is the color of an object where it is in shadow.
449
+ * This color is what the object reflects when illuminated by ambient light rather than direct light. */
450
+ ambient?: number[];
451
+ /** Diffuse color of this material. Diffuse color is the most instinctive meaning of the color of an object.
452
+ * It is that essential color that the object reveals under pure white light. It is perceived as the color
453
+ * of the object itself rather than a reflection of the light. */
454
+ diffuse?: number[];
455
+ /** Specular color of this material. Specular color is the color of the light of a specular reflection
456
+ * (specular reflection is the type of reflection that is characteristic of light reflected from a shiny
457
+ * surface). */
458
+ specular?: number[];
459
+ /** Rendering mode. */
460
+ renderMode: 'textured' | 'solid' | 'untextured' | 'wireframe';
461
+ /** TRUE if features with this material should cast shadows. */
462
+ castShadows?: boolean;
463
+ /** TRUE if features with this material should receive shadows */
464
+ receiveShadows?: boolean;
465
+ /** Indicates the material culling options {back, front, none}. */
466
+ cullFace?: string;
467
+ /** This flag indicates that the vertex color attribute of the geometry should be used to color the geometry
468
+ * for rendering. If texture is present, the vertex colors are multiplied by this color.
469
+ * e.g. pixel_color = [interpolated]vertex_color * texel_color. Default is false. */
470
+ vertexColors?: boolean;
471
+ /** This flag indicates that the geometry has uv region vertex attributes. These are used for adressing
472
+ * subtextures in a texture atlas. The uv coordinates are relative to this subtexture in this case.
473
+ * This is mostly useful for repeated textures in a texture atlas. Default is false. */
474
+ vertexRegions?: boolean;
475
+ /** Indicates whether Vertex Colors also contain a transparency channel. Default is false. */
476
+ useVertexColorAlpha?: boolean;
477
+ };
382
478
  };
383
- declare type TextureImage = {
479
+ /** https://github.com/Esri/i3s-spec/blob/master/docs/1.8/sharedResource.cmn.md */
480
+ export type SharedResources = {
481
+ /** Materials describe how a Feature or a set of Features is to be rendered. */
482
+ materialDefinitions?: {
483
+ [key: string]: MaterialDefinitionInfo;
484
+ };
485
+ /** A Texture is a set of images, with some parameters specific to the texture/uv mapping to geometries. */
486
+ textureDefinitions?: {
487
+ [key: string]: TextureDefinitionInfo;
488
+ };
489
+ };
490
+ /** https://github.com/Esri/i3s-spec/blob/master/docs/1.8/image.cmn.md */
491
+ type TextureImage = {
492
+ /** A unique ID for each image. Generated using the BuildID function. */
384
493
  id: string;
494
+ /** width of this image, in pixels. */
385
495
  size?: number;
496
+ /** The maximum size of a single pixel in world units.
497
+ * This property is used by the client to pick the image to load and render. */
386
498
  pixelInWorldUnits?: number;
499
+ /** The href to the image(s), one per encoding, in the same order as the encodings. */
387
500
  href?: string[];
501
+ /** The byte offset of this image's encodings. There is one per encoding,
502
+ * in the same order as the encodings, in the block in which this texture image resides. */
388
503
  byteOffset?: string[];
504
+ /** The length in bytes of this image's encodings. There is one per encoding,
505
+ * in the same order as the encodings. */
389
506
  length?: number[];
390
- mimeType?: string;
391
- bufferView?: {
392
- data: ArrayBuffer;
393
- };
394
- image?: {
395
- height: number;
396
- width: number;
397
- };
398
507
  };
399
- export declare type Attribute = 'OBJECTID' | 'string' | 'double' | 'Int32' | string;
400
- export declare type Extent = [number, number, number, number];
401
- 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 = {
402
511
  id: AttributeValue;
403
512
  faceRange: AttributeValue;
404
513
  };
405
- export declare type BuildingSceneLayerTileset = {
514
+ export type BuildingSceneLayerTileset = {
406
515
  header: BuildingSceneLayer;
407
516
  sublayers: BuildingSceneSublayer[];
408
517
  };
409
- export declare type BuildingSceneLayer = {
518
+ export type BuildingSceneLayer = {
410
519
  id: number;
411
520
  name: string;
412
521
  version: string;
@@ -422,7 +531,7 @@ export declare type BuildingSceneLayer = {
422
531
  activeFilterID?: string;
423
532
  statisticsHRef?: string;
424
533
  };
425
- export declare type BuildingSceneSublayer = {
534
+ export type BuildingSceneSublayer = {
426
535
  id: number;
427
536
  name: string;
428
537
  alias?: string;
@@ -434,7 +543,7 @@ export declare type BuildingSceneSublayer = {
434
543
  isEmpty?: boolean;
435
544
  url?: string;
436
545
  };
437
- declare type Filter = {
546
+ type Filter = {
438
547
  id: string;
439
548
  name: string;
440
549
  description: string;
@@ -443,38 +552,38 @@ declare type Filter = {
443
552
  filterBlocks: FilterBlock[];
444
553
  filterAuthoringInfo?: FilterAuthoringInfo;
445
554
  };
446
- declare type FilterAuthoringInfo = {
555
+ type FilterAuthoringInfo = {
447
556
  type: string;
448
557
  filterBlocks: FilterBlockAuthoringInfo[];
449
558
  };
450
- declare type FilterBlockAuthoringInfo = {
559
+ type FilterBlockAuthoringInfo = {
451
560
  filterTypes: FilterType[];
452
561
  };
453
- declare type FilterType = {
562
+ type FilterType = {
454
563
  filterType: string;
455
564
  filterValues: string[];
456
565
  };
457
- declare type FilterBlock = {
566
+ type FilterBlock = {
458
567
  title: string;
459
568
  filterMode: FilterModeSolid | FilterModeWireFrame;
460
569
  filterExpression: string;
461
570
  };
462
- declare type Edges = {
571
+ type Edges = {
463
572
  type: string;
464
573
  color: number[];
465
574
  size: number;
466
575
  transparency: number;
467
576
  extensionLength: number;
468
577
  };
469
- declare type FilterModeSolid = {
578
+ type FilterModeSolid = {
470
579
  type: 'solid';
471
580
  };
472
- declare type FilterModeWireFrame = {
581
+ type FilterModeWireFrame = {
473
582
  type: 'wireFrame';
474
583
  edges: Edges;
475
584
  };
476
585
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/spatialReference.cmn.md */
477
- export declare type SpatialReference = {
586
+ export type SpatialReference = {
478
587
  /** The current WKID value of the vertical coordinate system. */
479
588
  latestVcsWkid: number;
480
589
  /** dentifies the current WKID value associated with the same spatial reference. */
@@ -487,31 +596,40 @@ export declare type SpatialReference = {
487
596
  wkt?: string;
488
597
  };
489
598
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/fullExtent.cmn.md */
490
- declare type FullExtent = {
491
- /** left */
599
+ export type FullExtent = {
600
+ /** left longitude in decimal degrees */
492
601
  xmin: number;
493
- /** right */
602
+ /** right longitude in decimal degrees */
494
603
  xmax: number;
495
- /** bottom */
604
+ /** bottom latitude in decimal degrees*/
496
605
  ymin: number;
497
- /** top */
606
+ /** top latitude in decimal degrees*/
498
607
  ymax: number;
499
- /** lowest elevation */
608
+ /** lowest elevation in meters */
500
609
  zmin: number;
501
- /** highest elevation */
610
+ /** highest elevation in meters */
502
611
  zmax: number;
503
612
  spatialReference?: SpatialReference;
504
613
  };
505
- declare type TextureDefinitionInfo = {
506
- encoding: string[];
614
+ /**
615
+ * https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureDefinitionInfo.cmn.md
616
+ */
617
+ export type TextureDefinitionInfo = {
618
+ /** MIMEtype - The encoding/content type that is used by all images in this map */
619
+ encoding?: string[];
620
+ /** UV wrapping modes, from {none, repeat, mirror}. */
507
621
  wrap?: string[];
622
+ /** TRUE if the Map represents a texture atlas. */
508
623
  atlas?: boolean;
624
+ /** The name of the UV set to be used as texture coordinates. */
509
625
  uvSet?: string;
626
+ /** Indicates channels description. */
510
627
  channels?: 'rbg' | 'rgba' | string;
628
+ /** An image is a binary resource, containing a single raster that can be used to texture a feature or symbol. */
511
629
  images: TextureImage[];
512
630
  };
513
631
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/domain.cmn.md */
514
- declare type Domain = {
632
+ type Domain = {
515
633
  type: string;
516
634
  name: string;
517
635
  description?: string;
@@ -527,7 +645,7 @@ declare type Domain = {
527
645
  /**
528
646
  * spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/store.cmn.md
529
647
  */
530
- declare type Store = {
648
+ type Store = {
531
649
  id: string | number;
532
650
  profile: string;
533
651
  version: number | string;
@@ -546,7 +664,7 @@ declare type Store = {
546
664
  /**
547
665
  * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/defaultGeometrySchema.cmn.md
548
666
  */
549
- declare type DefaultGeometrySchema = {
667
+ type DefaultGeometrySchema = {
550
668
  geometryType?: 'triangles';
551
669
  topology: 'PerAttributeArray' | 'Indexed';
552
670
  header: HeaderAttribute[];
@@ -560,7 +678,7 @@ declare type DefaultGeometrySchema = {
560
678
  /**
561
679
  * spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/headerAttribute.cmn.md
562
680
  */
563
- export declare type HeaderAttribute = {
681
+ export type HeaderAttribute = {
564
682
  property: HeaderAttributeProperty.vertexCount | HeaderAttributeProperty.featureCount | string;
565
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;
566
684
  };
@@ -568,19 +686,19 @@ export declare enum HeaderAttributeProperty {
568
686
  vertexCount = "vertexCount",
569
687
  featureCount = "featureCount"
570
688
  }
571
- export declare type VertexAttribute = {
689
+ export type VertexAttribute = {
572
690
  position: GeometryAttribute;
573
691
  normal: GeometryAttribute;
574
692
  uv0: GeometryAttribute;
575
693
  color: GeometryAttribute;
576
694
  region?: GeometryAttribute;
577
695
  };
578
- export declare type GeometryAttribute = {
696
+ export type GeometryAttribute = {
579
697
  byteOffset?: number;
580
698
  valueType: DATA_TYPE.UInt8 | DATA_TYPE.UInt16 | DATA_TYPE.Int16 | DATA_TYPE.Int32 | DATA_TYPE.Int64 | DATA_TYPE.Float32 | DATA_TYPE.Float64;
581
699
  valuesPerElement: number;
582
700
  };
583
- export declare type I3SMeshAttributes = {
701
+ export type I3SMeshAttributes = {
584
702
  [key: string]: I3SMeshAttribute;
585
703
  };
586
704
  export interface I3SMeshAttribute extends MeshAttribute {
@@ -588,27 +706,27 @@ export interface I3SMeshAttribute extends MeshAttribute {
588
706
  metadata?: any;
589
707
  }
590
708
  /** https://github.com/Esri/i3s-spec/blob/master/docs/1.8/heightModelInfo.cmn.md */
591
- declare type HeightModelInfo = {
709
+ type HeightModelInfo = {
592
710
  heightModel: 'gravity_related_height' | 'ellipsoidal';
593
711
  vertCRS: string;
594
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';
595
713
  };
596
- export declare type TextureSetDefinitionFormats = {
714
+ export type TextureSetDefinitionFormats = {
597
715
  name: string;
598
716
  format: I3STextureFormat;
599
717
  }[];
600
718
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureSetDefinition.cmn.md */
601
- declare type TextureSetDefinition = {
719
+ type TextureSetDefinition = {
602
720
  formats: TextureSetDefinitionFormats;
603
721
  atlas?: boolean;
604
722
  };
605
723
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/geometryDefinition.cmn.md */
606
- declare type GeometryDefinition = {
724
+ type GeometryDefinition = {
607
725
  topology: 'triangle' | string;
608
726
  geometryBuffers: GeometryBuffer[];
609
727
  };
610
728
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/geometryBuffer.cmn.md */
611
- declare type GeometryBuffer = {
729
+ type GeometryBuffer = {
612
730
  offset?: number;
613
731
  position?: GeometryBufferItem;
614
732
  normal?: GeometryBufferItem;
@@ -622,22 +740,325 @@ declare type GeometryBuffer = {
622
740
  attributes: string[];
623
741
  };
624
742
  };
625
- declare type GeometryBufferItem = {
743
+ type GeometryBufferItem = {
626
744
  type: string;
627
745
  component: number;
628
746
  encoding?: string;
629
747
  binding: string;
630
748
  };
631
- declare type AttributeValue = {
749
+ type AttributeValue = {
632
750
  valueType: string;
633
751
  encoding?: string;
634
752
  valuesPerElement?: number;
635
753
  };
636
- export declare type FieldInfo = {
754
+ export type FieldInfo = {
637
755
  fieldName: string;
638
756
  visible: boolean;
639
757
  isEditable: boolean;
640
758
  label: string;
641
759
  };
760
+ export type ArcGisWebSceneData = {
761
+ header: ArcGisWebScene;
762
+ layers: OperationalLayer[];
763
+ unsupportedLayers: OperationalLayer[];
764
+ };
765
+ /**
766
+ * ArcGis WebScene spec - https://developers.arcgis.com/web-scene-specification/objects/webscene/
767
+ */
768
+ export type ArcGisWebScene = {
769
+ /**
770
+ * @todo add type.
771
+ * Spec - https://developers.arcgis.com/web-scene-specification/objects/applicationProperties/
772
+ * Configuration of application and UI elements.
773
+ */
774
+ applicationProperties?: any;
775
+ /**
776
+ * Operational layers contain business data which are used to make thematic scenes.
777
+ */
778
+ operationalLayers: OperationalLayer[];
779
+ /**
780
+ * Basemaps give the web scene a geographic context.
781
+ */
782
+ baseMap: BaseMap;
783
+ /**
784
+ * Ground defines the main surface of the web scene, based on elevation layers.
785
+ */
786
+ ground: Ground;
787
+ /**
788
+ * An object that defines the characteristics of the vertical coordinate system used by the web scene.
789
+ */
790
+ heightModelInfo: HeightModelInfo;
791
+ /**
792
+ * Root element in the web scene specifying a string value indicating the web scene version.
793
+ * Valid values: 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20, 1.21, 1.22, 1.23, 1.24, 1.25, 1.26, 1.27
794
+ */
795
+ version: string;
796
+ /**
797
+ * String value indicating the application which authored the webmap
798
+ */
799
+ authoringApp: string;
800
+ /**
801
+ * String value indicating the authoring App's version number.
802
+ */
803
+ authoringAppVersion: string;
804
+ /**
805
+ * A presentation consists of multiple slides, where each slide is a specific view into the web scene.
806
+ * Spec - https://developers.arcgis.com/web-scene-specification/objects/presentation/
807
+ * @todo Add presentation type.
808
+ */
809
+ presentation: ArcGisPresentation;
810
+ /**
811
+ * An object that provides information about the initial environment settings and viewpoint of the web scene.
812
+ */
813
+ initialState: InitialState;
814
+ /**
815
+ * An object used to specify the spatial reference of the given geometry.
816
+ */
817
+ spatialReference: SpatialReference;
818
+ viewingMode: 'global' | 'local';
819
+ /**
820
+ * @todo add type.
821
+ * Defines area to be clipped for display.
822
+ */
823
+ clippingArea?: any;
824
+ /**
825
+ * @todo add type.
826
+ * Spec - https://developers.arcgis.com/web-scene-specification/objects/mapFloorInfo/
827
+ * Contains floor-awareness information for the web scene.
828
+ */
829
+ mapFloorInfo?: any;
830
+ /**
831
+ * @todo add type.
832
+ * Spec - https://developers.arcgis.com/web-scene-specification/objects/mapRangeInfo/
833
+ * Map Range Information
834
+ */
835
+ mapRangeInfo?: any;
836
+ /**
837
+ * @todo add type.
838
+ * Spec - https://developers.arcgis.com/web-scene-specification/objects/table/
839
+ * An array of table objects.
840
+ */
841
+ tables?: any;
842
+ /**
843
+ * @todo add type.
844
+ * Spec - https://developers.arcgis.com/web-scene-specification/objects/transportationNetwork/
845
+ * Used to specify the transportation networks of the scene.
846
+ */
847
+ transportationNetworks?: any;
848
+ /**
849
+ * @todo add type.
850
+ * Spec - https://developers.arcgis.com/web-scene-specification/objects/widgets/
851
+ * The widgets object contains widgets that should be exposed to the user.
852
+ */
853
+ widgets?: any;
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
+ };
943
+ /**
944
+ * Operational layers contain your data. Usually, a basemap sits beneath your operational layers to give them geographic context.
945
+ * Spec- https://developers.arcgis.com/web-scene-specification/objects/operationalLayers/
946
+ */
947
+ export type OperationalLayer = {
948
+ id: string;
949
+ opacity: number;
950
+ title: string;
951
+ url: string;
952
+ visibility: boolean;
953
+ itemId: string;
954
+ layerType: string;
955
+ LayerDefinition: LayerDefinition;
956
+ screenSizePerspective: boolean;
957
+ showLabels?: boolean;
958
+ disablePopup?: boolean;
959
+ showLegend?: boolean;
960
+ layers?: OperationalLayer[];
961
+ };
962
+ type LayerDefinition = {
963
+ elevationInfo: ElevationInfo;
964
+ drawingInfo: DrawingInfo;
965
+ };
966
+ type BaseMap = {
967
+ id: string;
968
+ title: string;
969
+ baseMapLayers: BaseMapLayer[];
970
+ elevationLayers: ElevationLayer[];
971
+ };
972
+ type BaseMapLayer = {
973
+ id: string;
974
+ opacity: number;
975
+ title: string;
976
+ url: string;
977
+ visibility: boolean;
978
+ layerType: string;
979
+ };
980
+ type ElevationLayer = {
981
+ id: string;
982
+ listMode: string;
983
+ title: string;
984
+ url: string;
985
+ visibility: boolean;
986
+ layerType: string;
987
+ };
988
+ type Ground = {
989
+ layers: ElevationLayer[];
990
+ transparency: number;
991
+ navigationConstraint: NavigationConstraint;
992
+ };
993
+ type NavigationConstraint = {
994
+ type: string;
995
+ };
996
+ type InitialState = {
997
+ environment: Enviroment;
998
+ viewpoint: ViewPoint;
999
+ };
1000
+ type Enviroment = {
1001
+ lighting: Lighting;
1002
+ atmosphereEnabled?: string;
1003
+ starsEnabled?: string;
1004
+ };
1005
+ type Lighting = {
1006
+ datetime?: number;
1007
+ displayUTCOffset?: number;
1008
+ };
1009
+ type ViewPoint = {
1010
+ camera: Camera;
1011
+ };
1012
+ type Camera = {
1013
+ position: CameraPosition;
1014
+ heading: number;
1015
+ tilt: number;
1016
+ };
1017
+ type CameraPosition = {
1018
+ spatialReference: SpatialReference;
1019
+ x: number;
1020
+ y: number;
1021
+ z: number;
1022
+ };
1023
+ /**
1024
+ * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/statsInfo.cmn.md
1025
+ */
1026
+ export type StatsInfo = {
1027
+ /** Represents the count of the value. */
1028
+ totalValuesCount?: number;
1029
+ /** Minimum attribute value for the entire layer. */
1030
+ min?: number;
1031
+ /** Maximum attribute value for the entire layer. */
1032
+ max?: number;
1033
+ /** Count for the entire layer. */
1034
+ count?: number;
1035
+ /** Sum of the attribute values over the entire layer. */
1036
+ sum?: number;
1037
+ /** Representing average or mean value. For example, sum/count. */
1038
+ avg?: number;
1039
+ /** Representing the standard deviation. */
1040
+ stddev?: number;
1041
+ /** Representing variance. For example, stats.stddev *stats.stddev. */
1042
+ variance?: number;
1043
+ /** Represents the histogram. */
1044
+ histogram?: Histogram;
1045
+ /** An array of most frequently used values within the point cloud scene layer. */
1046
+ mostFrequentValues?: ValueCount[];
1047
+ };
1048
+ /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/histogram.cmn.md */
1049
+ export type Histogram = {
1050
+ /** Minimum attribute value for the entire layer. */
1051
+ minimum: number;
1052
+ /** Maximum attribute value for the entire layer. Maximum array size for stats.histo.counts is 256. */
1053
+ maximum: number;
1054
+ /** Count for the entire layer. */
1055
+ counts: number[];
1056
+ };
1057
+ export type ValueCount = {
1058
+ /** Type of the attribute values after decompression, if applicable. Please note that string is not supported for point cloud scene layer attributes. */
1059
+ value: number | string;
1060
+ /** Count of the number of values. May exceed 32 bits. */
1061
+ count: number;
1062
+ };
642
1063
  export {};
643
1064
  //# sourceMappingURL=types.d.ts.map