@itwin/core-frontend 3.0.0-dev.157 → 3.0.0-dev.159

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 (37) hide show
  1. package/lib/cjs/render/GraphicBuilder.d.ts +1 -1
  2. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  3. package/lib/cjs/tile/B3dmReader.d.ts +1 -0
  4. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  5. package/lib/cjs/tile/B3dmReader.js +3 -2
  6. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  7. package/lib/cjs/tile/GltfReader.d.ts +438 -32
  8. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  9. package/lib/cjs/tile/GltfReader.js +409 -166
  10. package/lib/cjs/tile/GltfReader.js.map +1 -1
  11. package/lib/cjs/tile/I3dmReader.d.ts +1 -0
  12. package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
  13. package/lib/cjs/tile/I3dmReader.js +2 -1
  14. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  15. package/lib/cjs/tile/ImdlReader.d.ts +334 -10
  16. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  17. package/lib/cjs/tile/ImdlReader.js +84 -44
  18. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  19. package/lib/esm/render/GraphicBuilder.d.ts +1 -1
  20. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  21. package/lib/esm/tile/B3dmReader.d.ts +1 -0
  22. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  23. package/lib/esm/tile/B3dmReader.js +4 -3
  24. package/lib/esm/tile/B3dmReader.js.map +1 -1
  25. package/lib/esm/tile/GltfReader.d.ts +438 -32
  26. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  27. package/lib/esm/tile/GltfReader.js +384 -143
  28. package/lib/esm/tile/GltfReader.js.map +1 -1
  29. package/lib/esm/tile/I3dmReader.d.ts +1 -0
  30. package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
  31. package/lib/esm/tile/I3dmReader.js +2 -1
  32. package/lib/esm/tile/I3dmReader.js.map +1 -1
  33. package/lib/esm/tile/ImdlReader.d.ts +334 -10
  34. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  35. package/lib/esm/tile/ImdlReader.js +86 -46
  36. package/lib/esm/tile/ImdlReader.js.map +1 -1
  37. package/package.json +22 -22
@@ -2,14 +2,412 @@
2
2
  * @module Tiles
3
3
  */
4
4
  import { ByteStream, Id64String } from "@itwin/core-bentley";
5
- import { Range2d, Range3d, Transform, Vector3d } from "@itwin/core-geometry";
6
- import { BatchType, ElementAlignedBox3d, FeatureTable, GltfBufferData, GltfBufferView, GltfDataType, MeshPolylineList, QParams2d, QParams3d, RenderTexture, TextureMapping, TileReadStatus } from "@itwin/core-common";
5
+ import { Point3d, Range2d, Range3d, Transform, Vector3d } from "@itwin/core-geometry";
6
+ import { BatchType, ElementAlignedBox3d, FeatureTable, MeshPolylineList, QParams2d, QParams3d, RenderTexture, TextureMapping, TileReadStatus } from "@itwin/core-common";
7
7
  import { IModelConnection } from "../IModelConnection";
8
+ import { PickableGraphicOptions } from "../render/GraphicBuilder";
8
9
  import { InstancedGraphicParams } from "../render/InstancedGraphicParams";
9
10
  import { DisplayParams } from "../render/primitives/DisplayParams";
10
11
  import { Mesh } from "../render/primitives/mesh/MeshPrimitives";
12
+ import { RenderGraphic } from "../render/RenderGraphic";
11
13
  import { RenderSystem } from "../render/RenderSystem";
12
14
  import { TileContent } from "./internal";
15
+ /** Enumerates the types of [[GltfMeshPrimitive]] topologies. */
16
+ declare enum GltfMeshMode {
17
+ Points = 0,
18
+ Lines = 1,
19
+ LineStrip = 3,
20
+ Triangles = 4,
21
+ /** Not currently supported. */
22
+ TriangleStrip = 5,
23
+ /** Not currently supported. */
24
+ TriangleFan = 6
25
+ }
26
+ /** Enumerates the basic data types supported by accessors, material values, technique uniforms, etc.
27
+ * @internal
28
+ */
29
+ export declare enum GltfDataType {
30
+ SignedByte = 5120,
31
+ UnsignedByte = 5121,
32
+ SignedShort = 5122,
33
+ UnsignedShort = 5123,
34
+ UInt32 = 5125,
35
+ Float = 5126,
36
+ Rgb = 6407,
37
+ Rgba = 6408,
38
+ IntVec2 = 35667,
39
+ IntVec3 = 35668,
40
+ FloatVec2 = 35664,
41
+ FloatVec3 = 35665,
42
+ FloatVec4 = 35666,
43
+ FloatMat3 = 35675,
44
+ FloatMat4 = 35676,
45
+ Sampler2d = 35678
46
+ }
47
+ /** @internal */
48
+ declare enum GltfMagFilter {
49
+ Nearest = 9728,
50
+ Linear = 9729
51
+ }
52
+ /** @internal */
53
+ declare enum GltfMinFilter {
54
+ Nearest = 9728,
55
+ Linear = 9729,
56
+ NearestMipMapNearest = 9984,
57
+ LinearMipMapNearest = 9985,
58
+ NearestMipMapLinear = 9986,
59
+ LinearMipMapLinear = 9987
60
+ }
61
+ /** Describes how texture coordinates outside of the range [0..1] are handled. */
62
+ declare enum GltfWrapMode {
63
+ ClampToEdge = 33071,
64
+ MirroredRepeat = 33648,
65
+ Repeat = 10497
66
+ }
67
+ /** Describes the intended target of a [[GltfBufferViewProps]]. */
68
+ declare enum GltfBufferTarget {
69
+ ArrayBuffer = 34962,
70
+ ElementArrayBuffer = 24963
71
+ }
72
+ /** The type used to refer to an entry in a [[GltfDictionary]] in a glTF 1.0 asset. */
73
+ declare type Gltf1Id = string;
74
+ /** The type used to refer to an entry in a [[GltfDictionary]] in a glTF 2.0 asset. */
75
+ declare type Gltf2Id = number;
76
+ /** The type used to refer to an entry in a [[GltfDictionary]]. */
77
+ declare type GltfId = Gltf1Id | Gltf2Id;
78
+ /** A collection of resources of some type defined at the top-level of a [[Gltf]] asset.
79
+ * In glTF 1.0, these are defined as objects; each resource is referenced and accessed by its string key.
80
+ * In glTF 2.0, these are defined as arrays; each resource is referenced and accessed by its integer array index.
81
+ */
82
+ interface GltfDictionary<T extends GltfChildOfRootProperty> {
83
+ [key: GltfId]: T | undefined;
84
+ }
85
+ /** Optional extensions applied to a [[GltfProperty]] to enable behavior not defined in the core specification. */
86
+ interface GltfExtensions {
87
+ [key: string]: unknown | undefined;
88
+ }
89
+ /** The base interface provided by most objects in a glTF asset, permitting additional data to be associated with the object. */
90
+ interface GltfProperty {
91
+ extensions?: GltfExtensions;
92
+ extras?: any;
93
+ }
94
+ /** The base interface provided by top-level properties of a [[Gltf]] asset. */
95
+ interface GltfChildOfRootProperty extends GltfProperty {
96
+ /** Optional name, strictly for human consumption. */
97
+ name?: string;
98
+ }
99
+ /** A unit of geometry belonging to a [[GltfMesh]]. */
100
+ interface GltfMeshPrimitive extends GltfProperty {
101
+ /** Maps the name of each mesh attribute semantic to the Id of the [[GltfAccessor]] providing the attribute's data. */
102
+ attributes: {
103
+ [k: string]: GltfId | undefined;
104
+ };
105
+ /** The Id of the [[GltfAccessor]] providing the vertex indices. */
106
+ indices?: GltfId;
107
+ /** The Id of the [[GltfMaterial]] to apply to the primitive when rendering. */
108
+ material?: GltfId;
109
+ /** The primitive topology type. */
110
+ mode?: GltfMeshMode;
111
+ /** Morph targets - currently unsupported. */
112
+ targets?: {
113
+ [k: string]: GltfId | undefined;
114
+ };
115
+ }
116
+ /** A collection of [[GltfMeshPrimitive]]s to be rendered. Each mesh is referenced by a node. Multiple nodes can refer to the same mesh.
117
+ * The node's transform is applied when rendering the mesh.
118
+ */
119
+ interface GltfMesh extends GltfChildOfRootProperty {
120
+ /** The collection of primitives to be rendered. */
121
+ primitives?: GltfMeshPrimitive[];
122
+ /** For morph targets - currently unsupported. */
123
+ weights?: number[];
124
+ }
125
+ /** Properties common to [[Gltf1Node]] and [[Gltf2Node]]. */
126
+ interface GltfNodeBaseProps {
127
+ /** The Ids of the child nodes. @see [[GltfNode]]. */
128
+ children?: GltfId[];
129
+ /** Currently unsupported. */
130
+ camera?: GltfId;
131
+ /** Currently unsupported. */
132
+ skin?: GltfId;
133
+ /** A 4x4 column-major transformation matrix. Mutually exclusive with [[rotation]], [[scale]], and [[translation]]. */
134
+ matrix?: number[];
135
+ /** Unit quaternion as [x, y, z, w], where w is the scalar. */
136
+ rotation?: number[];
137
+ /** Non-uniform scale as [x, y, z]. */
138
+ scale?: number[];
139
+ /** Translation as [x, y, z]. */
140
+ translation?: number[];
141
+ }
142
+ /** glTF 1.0 representation of a [[GltfNode]]. Unlike a [[Gltf2Node]], a Gltf1Node may refer to any number of [[GltfMesh]]es. */
143
+ interface Gltf1Node extends GltfChildOfRootProperty, GltfNodeBaseProps {
144
+ /** The Ids of the [[GltfMesh]]es to be rendered by this node.
145
+ * @note The spec defines this as an array of strings, but the original implementation of [[GltfReader]] was written to treat it as a string instead.
146
+ * In case this was because of non-spec-compliant glTF that placed a string here instead of an array, either is permitted.
147
+ */
148
+ meshes?: GltfId[] | string;
149
+ mesh?: never;
150
+ /** Currently unsupported. */
151
+ jointName?: GltfId;
152
+ /** Currently unsupported. */
153
+ skeletons?: GltfId[];
154
+ }
155
+ /** glTF 2.0 representation of a [[GltfNode]]. Unlike a [[Gltf1Node]], a Gltf2Node may refer to at most one [[GltfMesh]]. */
156
+ interface Gltf2Node extends GltfChildOfRootProperty, GltfNodeBaseProps {
157
+ /** The Id of the [[GltfMesh]] to be rendered by this node. */
158
+ mesh?: GltfId;
159
+ meshes?: never;
160
+ /** Morph targets - currently unsupported. */
161
+ weights?: number[];
162
+ }
163
+ /** Describes a node in a [[GltfScene]]. Each node may be associated with zero, one (glTF 2.0), or any number of (glTF 1.0) [[GltfMesh]]es.
164
+ * Each node may define a transform. Each node may have any number of child nodes. A child node's transform is multiplied by its parent node's transform.
165
+ * Some nodes may be associated with other types of data like cameras, skins, lights, etc - these types of data are currently unsupported.
166
+ * Rendering a node means rendering its meshes and the meshes of all of its descendants, with transforms applied.
167
+ */
168
+ declare type GltfNode = Gltf1Node | Gltf2Node;
169
+ /** Describes a scene graph that composes any number of [[GltfNode]]s to produce a rendering of the [[Gltf]] asset.
170
+ * An asset may define any number of scenes; the default scene is specified by [[Gltf.scene]].
171
+ */
172
+ interface GltfScene extends GltfChildOfRootProperty {
173
+ /** The Ids of the nodes comprising the scene graph. */
174
+ nodes?: GltfId[];
175
+ }
176
+ /** Provides metadata about a [[Gltf]] asset. */
177
+ interface GltfAsset extends GltfProperty {
178
+ /** A copyright message suitable for display to credit the content creator. */
179
+ copyright?: string;
180
+ /** The name of the tool that generated the asset. */
181
+ generator?: string;
182
+ /** The glTF version targeted by the asset, in the form "major.minor" where "major" and "minor" are integers. */
183
+ version: string;
184
+ /** The minimum glTF version required to properly load this asset, in the same form as [[version]].
185
+ * This minimum version must be no greater than [[version]].
186
+ */
187
+ minVersion?: string;
188
+ }
189
+ /** Describes an image such as one used for a [[GltfTexture]]. The image may be referenced by a [[uri]] or a [[bufferView]]. */
190
+ interface GltfImage extends GltfChildOfRootProperty {
191
+ /** URI from which the image data can be obtained, either as a base-64-encoded data URI or an external resource.
192
+ * Mutually exclusive with [[bufferView]].
193
+ * Currently unsupported.
194
+ */
195
+ uri?: string;
196
+ /** The image's media type. This property is required if [[bufferView]] is defined. */
197
+ mimeType?: "image/jpeg" | "image/png";
198
+ /** The Id of the [[GltfBufferViewProps]] containing the image data. Mutually exclusive with [[uri]]. */
199
+ bufferView?: GltfId;
200
+ }
201
+ /** Describes a reference to a [[GltfTexture]]. */
202
+ interface GltfTextureInfo extends GltfProperty {
203
+ /** The Id of the [[GltfTexture]]. */
204
+ index: GltfId;
205
+ /** The set index of the texture's TEXCOORD attribute used for texture coordinate mapping. */
206
+ texCoord?: number;
207
+ }
208
+ /** Describes a texture and its sampler. */
209
+ interface GltfTexture extends GltfChildOfRootProperty {
210
+ /** The Id of the [[GltfSampler]] used by this texture.
211
+ * If undefined, a sampler with repeat wrapping and auto filtering should be used by default.
212
+ */
213
+ sampler?: GltfId;
214
+ /** The Id of the [[GltfImage]] used by this texture.
215
+ * If undefined, an extension or other mechanism should supply an alternate image source - otherwise, the behavior is undefined.
216
+ */
217
+ source?: GltfId;
218
+ }
219
+ /** Describes the filtering and wrapping behavior to be applied to a [[GltfTexture]]. */
220
+ interface GltfSampler extends GltfChildOfRootProperty {
221
+ /** Magnification filter. */
222
+ magFilter?: GltfMagFilter;
223
+ /** Minification filter. */
224
+ minFilter?: GltfMinFilter;
225
+ /** S (U) wrapping mode. */
226
+ wrapS?: GltfWrapMode;
227
+ /** T (V) wrapping mode. */
228
+ wrapT?: GltfWrapMode;
229
+ }
230
+ /** For glTF 1.0 only, describes shader programs and shader state associated with a [[Gltf1Material]], used to render meshes associated with the material.
231
+ * This implementation uses it strictly to identify techniques that require alpha blending.
232
+ */
233
+ interface GltfTechnique extends GltfChildOfRootProperty {
234
+ /** GL render states to be applied by the technique. */
235
+ states?: {
236
+ /** An array of integers corresponding to boolean GL states that should be enabled using GL's `enable` function.
237
+ * For example, the value `3042` indicates that blending should be enabled.
238
+ */
239
+ enable?: number[];
240
+ };
241
+ }
242
+ interface Gltf1Material extends GltfChildOfRootProperty {
243
+ diffuse?: string;
244
+ emission?: number[];
245
+ shininess?: number;
246
+ specular?: number[];
247
+ technique?: GltfId;
248
+ values?: {
249
+ texStep?: number[];
250
+ color?: number[];
251
+ tex?: number | string;
252
+ };
253
+ }
254
+ interface GltfMaterialPbrMetallicRoughness extends GltfProperty {
255
+ baseColorFactor?: number[];
256
+ baseColorTexture?: GltfTextureInfo;
257
+ metallicFactor?: number;
258
+ metallicRoughnessTexture?: GltfTextureInfo;
259
+ }
260
+ interface Gltf2Material extends GltfChildOfRootProperty {
261
+ pbrMetallicRoughness?: GltfMaterialPbrMetallicRoughness;
262
+ normalTexture?: unknown;
263
+ occlusionTexture?: unknown;
264
+ emissiveTexture?: GltfTextureInfo;
265
+ emissiveFactor?: number[];
266
+ alphaMode?: "OPAQUE" | "MASK" | "BLEND";
267
+ alphaCutoff?: number;
268
+ doubleSided?: boolean;
269
+ extensions?: GltfExtensions & {
270
+ /** The [KHR_techniques_webgl extension](https://github.com/KhronosGroup/glTF/blob/c1c12bd100e88ff468ccef1cb88cfbec56a69af2/extensions/2.0/Khronos/KHR_techniques_webgl/README.md)
271
+ * allows "techniques" to be associated with [[GltfMaterial]]s. Techniques can supply custom shader programs to render geometry; this was a core feature of glTF 1.0 (see [[GltfTechnique]]).
272
+ * Here, it is only used to extract uniform values.
273
+ */
274
+ KHR_techniques_webgl?: {
275
+ technique?: number;
276
+ values?: {
277
+ u_texStep?: number[];
278
+ u_color?: number[];
279
+ u_diffuse?: {
280
+ index: number;
281
+ texCoord: number;
282
+ };
283
+ [k: string]: unknown | undefined;
284
+ };
285
+ };
286
+ };
287
+ }
288
+ declare type GltfMaterial = Gltf1Material | Gltf2Material;
289
+ interface GltfBuffer extends GltfChildOfRootProperty {
290
+ uri?: string;
291
+ byteLength?: number;
292
+ }
293
+ interface GltfBufferViewProps extends GltfChildOfRootProperty {
294
+ buffer: GltfId;
295
+ byteLength?: number;
296
+ byteOffset?: number;
297
+ byteStride?: number;
298
+ target?: GltfBufferTarget;
299
+ }
300
+ interface GltfAccessor extends GltfChildOfRootProperty {
301
+ bufferView?: GltfId;
302
+ byteOffset?: number;
303
+ componentType?: GltfDataType.SignedByte | GltfDataType.UnsignedByte | GltfDataType.SignedShort | GltfDataType.UnsignedShort | GltfDataType.UInt32 | GltfDataType.Float;
304
+ normalized?: boolean;
305
+ count: number;
306
+ type: "SCALAR" | "VEC2" | "VEC3" | "VEC4" | "MAT2" | "MAT3" | "MAT4";
307
+ max?: number[];
308
+ min?: number[];
309
+ sparse?: unknown;
310
+ }
311
+ /** Describes the top-level structure of a glTF asset.
312
+ * This interface, along with all of the related Gltf* types defined in this file, is primarily based upon the [official glTF 2.0 specification](https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html).
313
+ * However, it can also represent a [glTF 1.0](https://github.com/KhronosGroup/glTF/tree/main/specification/1.0#reference-node) asset.
314
+ * Some types are combined. For example, the top-level dictionaries in glTF 1.0 are objects, while in glTF 2.0 they are arrays; the GltfDictionary interface supports accessing
315
+ * items using either strings or numeric indexes represented by [[GltfId]].
316
+ * For types that differ significantly between the two specs, Gltf1* and Gltf2* versions are defined (e.g., GltfMaterial is a union of Gltf1Material and Gltf2Material).
317
+ * These interfaces also accommodate some deviations from both specs that are known to exist in the wild.
318
+ * Most aspects of the specifications that are not implemented here are omitted (e.g., skinning, animations).
319
+ */
320
+ interface Gltf extends GltfProperty {
321
+ /** Metadata about the glTF asset.
322
+ * @note This property is required in glTF 2.0, but optional in 1.0.
323
+ */
324
+ asset?: GltfAsset;
325
+ /** The Id of the default [[GltfScene]] in [[scenes]]. */
326
+ scene?: GltfId;
327
+ extensions?: GltfExtensions & {
328
+ /** The [CESIUM_RTC extension](https://github.com/KhronosGroup/glTF/blob/main/extensions/1.0/Vendor/CESIUM_RTC/README.md) defines a centroid
329
+ * relative to which all coordinates in the asset are defined, to reduce floating-point precision errors for large coordinates.
330
+ */
331
+ CESIUM_RTC?: {
332
+ center?: number[];
333
+ };
334
+ /** The [KHR_techniques_webgl extension](https://github.com/KhronosGroup/glTF/blob/c1c12bd100e88ff468ccef1cb88cfbec56a69af2/extensions/2.0/Khronos/KHR_techniques_webgl/README.md)
335
+ * allows "techniques" to be associated with [[GltfMaterial]]s. Techniques can supply custom shader programs to render geometry; this was a core feature of glTF 1.0 (see [[GltfTechnique]]).
336
+ * Here, it is only used to extract uniform values.
337
+ */
338
+ KHR_techniques_webgl?: {
339
+ techniques?: Array<{
340
+ uniforms?: {
341
+ [key: string]: {
342
+ type: GltfDataType;
343
+ value?: any;
344
+ } | undefined;
345
+ };
346
+ }>;
347
+ };
348
+ };
349
+ /** Names of glTF extensions used in the asset. */
350
+ extensionsUsed?: string[];
351
+ /** Names of glTF extensions required to properly load the asset. */
352
+ extensionsRequired?: string[];
353
+ accessors?: GltfDictionary<GltfAccessor>;
354
+ /** Not currently supported. */
355
+ animations?: GltfDictionary<any>;
356
+ buffers?: GltfDictionary<GltfBuffer>;
357
+ bufferViews?: GltfDictionary<GltfBufferViewProps>;
358
+ /** Not currently used. */
359
+ cameras?: GltfDictionary<any>;
360
+ images?: GltfDictionary<GltfImage>;
361
+ materials?: GltfDictionary<GltfMaterial>;
362
+ meshes?: GltfDictionary<GltfMesh>;
363
+ nodes?: GltfDictionary<GltfNode>;
364
+ samplers?: GltfDictionary<GltfSampler>;
365
+ scenes?: GltfDictionary<GltfScene>;
366
+ /** Not currently supported. */
367
+ skins?: GltfDictionary<any>;
368
+ textures?: GltfDictionary<GltfTexture>;
369
+ /** For glTF 1.0 only, techniques associated with [[Gltf1Material]]s. */
370
+ techniques?: GltfDictionary<GltfTechnique>;
371
+ }
372
+ /** @internal */
373
+ export declare type GltfDataBuffer = Uint8Array | Uint16Array | Uint32Array | Float32Array;
374
+ /**
375
+ * A chunk of binary data exposed as a typed array.
376
+ * The count member indicates how many elements exist. This may be less than this.buffer.length due to padding added to the
377
+ * binary stream to ensure correct alignment.
378
+ * @internal
379
+ */
380
+ export declare class GltfBufferData {
381
+ readonly buffer: GltfDataBuffer;
382
+ readonly count: number;
383
+ constructor(buffer: GltfDataBuffer, count: number);
384
+ /**
385
+ * Create a GltfBufferData of the desired type. The actual type may differ from the desired type - for example, small 32-bit integers
386
+ * may be represented as 8-bit or 16-bit integers instead.
387
+ * If the actual data type is not convertible to the desired type, this function returns undefined.
388
+ */
389
+ static create(bytes: Uint8Array, actualType: GltfDataType, expectedType: GltfDataType, count: number): GltfBufferData | undefined;
390
+ private static createDataBuffer;
391
+ }
392
+ /**
393
+ * A view of a chunk of glTF binary data containing an array of elements of a specific data type.
394
+ * The count member indicates how many elements exist; this may be smaller than this.data.length.
395
+ * The count member may also indicate the number of elements of a type containing more than one value of the
396
+ * underlying type. For example, a buffer of 4 32-bit floating point 'vec2' elements will have a count of 4,
397
+ * but its data member will contain 8 32-bit floating point values (2 per vec2).
398
+ * The accessor member may contain additional JSON data specific to a particular buffer.
399
+ * @internal
400
+ */
401
+ declare class GltfBufferView {
402
+ readonly data: Uint8Array;
403
+ readonly count: number;
404
+ readonly type: GltfDataType;
405
+ readonly accessor: GltfAccessor;
406
+ readonly stride: number;
407
+ get byteLength(): number;
408
+ constructor(data: Uint8Array, count: number, type: GltfDataType, accessor: GltfAccessor, stride: number);
409
+ toBufferData(desiredType: GltfDataType): GltfBufferData | undefined;
410
+ }
13
411
  /** The result of [[GltfReader.read]].
14
412
  * @internal
15
413
  */
@@ -22,15 +420,7 @@ export interface GltfReaderResult extends TileContent {
22
420
  export declare class GltfReaderProps {
23
421
  readonly buffer: ByteStream;
24
422
  readonly binaryData: Uint8Array;
25
- readonly accessors: any;
26
- readonly bufferViews: any;
27
- readonly scene: any;
28
- readonly nodes: any;
29
- readonly meshes: any;
30
- readonly materials: any;
31
- readonly extensions: any;
32
- readonly samplers: any;
33
- readonly techniques: any;
423
+ readonly glTF: Gltf;
34
424
  readonly yAxisUp: boolean;
35
425
  private constructor();
36
426
  /** Attempt to construct a new GltfReaderProps from the binary data beginning at the supplied stream's current read position. */
@@ -63,35 +453,28 @@ export declare type ShouldAbortReadGltf = (reader: GltfReader) => boolean;
63
453
  */
64
454
  export declare abstract class GltfReader {
65
455
  protected readonly _buffer: ByteStream;
66
- protected readonly _scene: any;
67
- protected readonly _accessors: any;
68
- protected readonly _bufferViews: any;
69
- protected readonly _meshes: any;
70
- protected readonly _nodes: any;
71
- protected readonly _batchData: any;
72
- protected readonly _materialValues: any;
73
- protected readonly _textures: any;
74
- protected readonly _renderMaterials: any;
75
- protected readonly _namedTextures: any;
76
- protected readonly _images: any;
77
- protected readonly _samplers: any;
78
- protected readonly _techniques: any;
79
- protected readonly _extensions: any;
80
456
  protected readonly _binaryData: Uint8Array;
457
+ protected readonly _glTF: Gltf;
81
458
  protected readonly _iModel: IModelConnection;
82
459
  protected readonly _is3d: boolean;
83
- protected readonly _modelId: Id64String;
84
460
  protected readonly _system: RenderSystem;
85
- protected readonly _returnToCenter: number[] | undefined;
461
+ protected readonly _returnToCenter?: Point3d;
86
462
  protected readonly _yAxisUp: boolean;
87
463
  protected readonly _type: BatchType;
88
464
  protected readonly _deduplicateVertices: boolean;
89
465
  private readonly _canceled?;
466
+ protected readonly _sceneNodes: GltfId[];
467
+ protected _computedContentRange?: ElementAlignedBox3d;
468
+ protected get _nodes(): GltfDictionary<GltfNode>;
469
+ protected get _meshes(): GltfDictionary<GltfMesh>;
470
+ protected get _accessors(): GltfDictionary<GltfAccessor>;
471
+ protected get _bufferViews(): GltfDictionary<GltfBufferViewProps>;
472
+ protected get _materialValues(): GltfDictionary<GltfMaterial>;
90
473
  /** Asynchronously deserialize the tile data and return the result. */
91
474
  abstract read(): Promise<GltfReaderResult>;
92
475
  protected get _isCanceled(): boolean;
93
476
  protected get _isVolumeClassifier(): boolean;
94
- protected readGltfAndCreateGraphics(isLeaf: boolean, featureTable: FeatureTable, contentRange: ElementAlignedBox3d, transformToRoot?: Transform, pseudoRtcBias?: Vector3d, instances?: InstancedGraphicParams): GltfReaderResult;
477
+ protected readGltfAndCreateGraphics(isLeaf: boolean, featureTable: FeatureTable | undefined, contentRange: ElementAlignedBox3d | undefined, transformToRoot?: Transform, pseudoRtcBias?: Vector3d, instances?: InstancedGraphicParams): GltfReaderResult;
95
478
  private graphicFromMeshData;
96
479
  private readNodeAndCreateGraphics;
97
480
  getBufferView(json: any, accessorName: string): GltfBufferView | undefined;
@@ -99,14 +482,11 @@ export declare abstract class GltfReader {
99
482
  readBufferData16(json: any, accessorName: string): GltfBufferData | undefined;
100
483
  readBufferData8(json: any, accessorName: string): GltfBufferData | undefined;
101
484
  readBufferDataFloat(json: any, accessorName: string): GltfBufferData | undefined;
102
- protected constructor(props: GltfReaderProps, iModel: IModelConnection, modelId: Id64String, is3d: boolean, system: RenderSystem, type?: BatchType, isCanceled?: ShouldAbortReadGltf, deduplicateVertices?: boolean);
485
+ protected constructor(props: GltfReaderProps, iModel: IModelConnection, is3d: boolean, system: RenderSystem, type?: BatchType, isCanceled?: ShouldAbortReadGltf, deduplicateVertices?: boolean);
103
486
  protected readBufferData(json: any, accessorName: string, type: GltfDataType): GltfBufferData | undefined;
104
487
  protected readFeatureIndices(_json: any): number[] | undefined;
105
- private colorFromJson;
106
- private colorFromMaterial;
107
488
  private extractTextureId;
108
489
  protected createDisplayParams(materialJson: any, hasBakedLighting: boolean): DisplayParams | undefined;
109
- protected extractReturnToCenter(extensions: any): number[] | undefined;
110
490
  protected readMeshPrimitive(primitive: any, featureTable?: FeatureTable, pseudoRtcBias?: Vector3d): GltfMeshData | undefined;
111
491
  private deduplicateVertices;
112
492
  /**
@@ -129,4 +509,30 @@ export declare abstract class GltfReader {
129
509
  protected loadTexture(textureId: string, isTransparent: boolean): Promise<void>;
130
510
  protected findTextureMapping(textureId: string): TextureMapping | undefined;
131
511
  }
512
+ /** Arguments supplied to [[readGltfGraphics]] to produce a [[RenderGraphic]] from a [glTF](https://www.khronos.org/gltf/) asset.
513
+ * @public
514
+ */
515
+ export interface ReadGltfGraphicsArgs {
516
+ /** The binary data describing the glTF asset. */
517
+ gltf: Uint8Array;
518
+ /** The iModel with which the graphics will be associated - typically obtained from the [[Viewport]] into which they will be drawn. */
519
+ iModel: IModelConnection;
520
+ /** Options for making the graphic [pickable]($docs/learning/frontend/ViewDecorations#pickable-view-graphic-decorations).
521
+ * Only the [[PickableGraphicOptions.id]] property is required to make the graphics pickable. If a `modelId` is also supplied and differs from the `id`,
522
+ * the graphics will also be selectable.
523
+ */
524
+ pickableOptions?: PickableGraphicOptions & {
525
+ modelId?: Id64String;
526
+ };
527
+ }
528
+ /** Produce a [[RenderGraphic]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).
529
+ * @returns a graphic produced from the glTF asset's default scene, or `undefined` if a graphic could not be produced from the asset.
530
+ * @note Support for the full [glTF 2.0 specification](https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html) is currently a work in progress.
531
+ * If a particular glTF asset fails to load and/or display properly, please
532
+ * [submit an issue](https://github.com/iTwin/itwinjs-core/issues).
533
+ * @see [Example decorator]($docs/learning/frontend/ViewDecorations#gltf-decorations) for an example of a decorator that reads and displays a glTF asset.
534
+ * @public
535
+ */
536
+ export declare function readGltfGraphics(args: ReadGltfGraphicsArgs): Promise<RenderGraphic | undefined>;
537
+ export {};
132
538
  //# sourceMappingURL=GltfReader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GltfReader.d.ts","sourceRoot":"","sources":["../../../src/tile/GltfReader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,UAAU,EAAE,UAAU,EAA2B,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAqC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EACL,SAAS,EAAY,mBAAmB,EAAE,YAAY,EAAa,cAAc,EAAE,cAAc,EAAE,YAAY,EAChC,gBAAgB,EAAwC,SAAS,EAAE,SAAS,EAE3J,aAAa,EAAE,cAAc,EAAE,cAAc,EAC9C,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAmB,MAAM,0CAA0C,CAAC;AAGjF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAWzC;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,eAAe;aACU,MAAM,EAAE,UAAU;aACpC,UAAU,EAAE,UAAU;aACtB,SAAS,EAAE,GAAG;aACd,WAAW,EAAE,GAAG;aAChB,KAAK,EAAE,GAAG;aACV,KAAK,EAAE,GAAG;aACV,MAAM,EAAE,GAAG;aACX,SAAS,EAAE,GAAG;aACd,UAAU,EAAE,GAAG;aACf,QAAQ,EAAE,GAAG;aACb,UAAU,EAAE,GAAG;aACf,OAAO,EAAE,OAAO;IAXlC,OAAO;IAaP,gIAAgI;WAClH,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,GAAE,OAAe,GAAG,eAAe,GAAG,SAAS;CA+BhG;AAED;;;;;IAKI;AACJ,qBAAa,YAAY;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;gBAExB,KAAK,EAAE,IAAI;CAG/B;AAED;;GAEG;AACH,oBAAY,mBAAmB,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;AAalE;;GAEG;AACH,8BAAsB,UAAU;IAC9B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IACvC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC;IACvC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IAC3C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAsB;IAajD,sEAAsE;aACtD,IAAI,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAEjD,SAAS,KAAK,WAAW,IAAI,OAAO,CAAiE;IACrG,SAAS,KAAK,mBAAmB,IAAI,OAAO,CAAsD;IAElG,SAAS,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,sBAAsB,GAAG,gBAAgB;IA+DhO,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,yBAAyB;IAkE1B,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAgD1E,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAC7E,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAC7E,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAC5E,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAEvF,SAAS,aAAa,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,SAA6B,EAAE,UAAU,CAAC,EAAE,mBAAmB,EAAE,mBAAmB,UAAM;IA6BlO,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,cAAc,GAAG,SAAS;IAKzG,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,SAAS;IAE9D,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,gBAAgB;IAuCxB,SAAS,CAAC,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS;IAMtG,SAAS,CAAC,qBAAqB,CAAC,UAAU,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,SAAS;IAQtE,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS;IA8H5H,OAAO,CAAC,mBAAmB;IAuC3B;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAmEpB,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAY5E,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG;IAGhD,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO;IAUjE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAyCnF,OAAO,CAAC,YAAY;IAgEpB,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;cA6BjG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;cA4B7B,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;cAkD9G,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IASrF,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;CAK5E"}
1
+ {"version":3,"file":"GltfReader.d.ts","sourceRoot":"","sources":["../../../src/tile/GltfReader.ts"],"names":[],"mappings":"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"}