@itwin/core-frontend 4.1.0-dev.6 → 4.1.0-dev.8

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 (123) hide show
  1. package/lib/cjs/BriefcaseTxns.d.ts +2 -2
  2. package/lib/cjs/BriefcaseTxns.d.ts.map +1 -1
  3. package/lib/cjs/BriefcaseTxns.js +3 -3
  4. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  5. package/lib/cjs/GraphicalEditingScope.d.ts +2 -2
  6. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  7. package/lib/cjs/GraphicalEditingScope.js +1 -1
  8. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  9. package/lib/cjs/IpcApp.d.ts.map +1 -1
  10. package/lib/cjs/IpcApp.js +3 -3
  11. package/lib/cjs/IpcApp.js.map +1 -1
  12. package/lib/cjs/LocalhostIpcApp.js +1 -1
  13. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  14. package/lib/cjs/NativeApp.d.ts.map +1 -1
  15. package/lib/cjs/NativeApp.js +3 -3
  16. package/lib/cjs/NativeApp.js.map +1 -1
  17. package/lib/cjs/core-frontend.d.ts +3 -0
  18. package/lib/cjs/core-frontend.d.ts.map +1 -1
  19. package/lib/cjs/core-frontend.js +3 -0
  20. package/lib/cjs/core-frontend.js.map +1 -1
  21. package/lib/cjs/imdl/ImdlGraphicsCreator.d.ts +19 -0
  22. package/lib/cjs/imdl/ImdlGraphicsCreator.d.ts.map +1 -0
  23. package/lib/cjs/imdl/ImdlGraphicsCreator.js +328 -0
  24. package/lib/cjs/imdl/ImdlGraphicsCreator.js.map +1 -0
  25. package/lib/cjs/imdl/ImdlModel.d.ts +181 -0
  26. package/lib/cjs/imdl/ImdlModel.d.ts.map +1 -0
  27. package/lib/cjs/imdl/ImdlModel.js +10 -0
  28. package/lib/cjs/imdl/ImdlModel.js.map +1 -0
  29. package/lib/cjs/imdl/ImdlParser.d.ts +40 -0
  30. package/lib/cjs/imdl/ImdlParser.d.ts.map +1 -0
  31. package/lib/cjs/imdl/ImdlParser.js +996 -0
  32. package/lib/cjs/imdl/ImdlParser.js.map +1 -0
  33. package/lib/cjs/imdl/ImdlSchema.d.ts +380 -0
  34. package/lib/cjs/imdl/ImdlSchema.d.ts.map +1 -0
  35. package/lib/cjs/imdl/ImdlSchema.js +10 -0
  36. package/lib/cjs/imdl/ImdlSchema.js.map +1 -0
  37. package/lib/cjs/render/primitives/AuxChannelTable.d.ts +4 -0
  38. package/lib/cjs/render/primitives/AuxChannelTable.d.ts.map +1 -1
  39. package/lib/cjs/render/primitives/AuxChannelTable.js +33 -0
  40. package/lib/cjs/render/primitives/AuxChannelTable.js.map +1 -1
  41. package/lib/cjs/render/primitives/VertexTable.d.ts +3 -3
  42. package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
  43. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  44. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts +5 -1
  45. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +1 -1
  46. package/lib/cjs/render/primitives/VertexTableSplitter.js +13 -12
  47. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -1
  48. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  49. package/lib/cjs/tile/IModelTile.js +14 -15
  50. package/lib/cjs/tile/IModelTile.js.map +1 -1
  51. package/lib/cjs/tile/ImdlReader.d.ts +11 -420
  52. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  53. package/lib/cjs/tile/ImdlReader.js +64 -902
  54. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  55. package/lib/cjs/tile/map/MapTile.d.ts +6 -1
  56. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  57. package/lib/cjs/tile/map/MapTile.js +8 -7
  58. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  59. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  60. package/lib/cjs/tile/map/MapTileTree.js +8 -2
  61. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  62. package/lib/esm/BriefcaseTxns.d.ts +2 -2
  63. package/lib/esm/BriefcaseTxns.d.ts.map +1 -1
  64. package/lib/esm/BriefcaseTxns.js +3 -3
  65. package/lib/esm/BriefcaseTxns.js.map +1 -1
  66. package/lib/esm/GraphicalEditingScope.d.ts +2 -2
  67. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  68. package/lib/esm/GraphicalEditingScope.js +2 -2
  69. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  70. package/lib/esm/IpcApp.d.ts.map +1 -1
  71. package/lib/esm/IpcApp.js +4 -4
  72. package/lib/esm/IpcApp.js.map +1 -1
  73. package/lib/esm/LocalhostIpcApp.js +2 -2
  74. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  75. package/lib/esm/NativeApp.d.ts.map +1 -1
  76. package/lib/esm/NativeApp.js +4 -4
  77. package/lib/esm/NativeApp.js.map +1 -1
  78. package/lib/esm/core-frontend.d.ts +3 -0
  79. package/lib/esm/core-frontend.d.ts.map +1 -1
  80. package/lib/esm/core-frontend.js +3 -0
  81. package/lib/esm/core-frontend.js.map +1 -1
  82. package/lib/esm/imdl/ImdlGraphicsCreator.d.ts +19 -0
  83. package/lib/esm/imdl/ImdlGraphicsCreator.d.ts.map +1 -0
  84. package/lib/esm/imdl/ImdlGraphicsCreator.js +324 -0
  85. package/lib/esm/imdl/ImdlGraphicsCreator.js.map +1 -0
  86. package/lib/esm/imdl/ImdlModel.d.ts +181 -0
  87. package/lib/esm/imdl/ImdlModel.d.ts.map +1 -0
  88. package/lib/esm/imdl/ImdlModel.js +9 -0
  89. package/lib/esm/imdl/ImdlModel.js.map +1 -0
  90. package/lib/esm/imdl/ImdlParser.d.ts +40 -0
  91. package/lib/esm/imdl/ImdlParser.d.ts.map +1 -0
  92. package/lib/esm/imdl/ImdlParser.js +988 -0
  93. package/lib/esm/imdl/ImdlParser.js.map +1 -0
  94. package/lib/esm/imdl/ImdlSchema.d.ts +380 -0
  95. package/lib/esm/imdl/ImdlSchema.d.ts.map +1 -0
  96. package/lib/esm/imdl/ImdlSchema.js +9 -0
  97. package/lib/esm/imdl/ImdlSchema.js.map +1 -0
  98. package/lib/esm/render/primitives/AuxChannelTable.d.ts +4 -0
  99. package/lib/esm/render/primitives/AuxChannelTable.d.ts.map +1 -1
  100. package/lib/esm/render/primitives/AuxChannelTable.js +33 -0
  101. package/lib/esm/render/primitives/AuxChannelTable.js.map +1 -1
  102. package/lib/esm/render/primitives/VertexTable.d.ts +3 -3
  103. package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
  104. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  105. package/lib/esm/render/primitives/VertexTableSplitter.d.ts +5 -1
  106. package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +1 -1
  107. package/lib/esm/render/primitives/VertexTableSplitter.js +13 -12
  108. package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -1
  109. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  110. package/lib/esm/tile/IModelTile.js +14 -15
  111. package/lib/esm/tile/IModelTile.js.map +1 -1
  112. package/lib/esm/tile/ImdlReader.d.ts +11 -420
  113. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  114. package/lib/esm/tile/ImdlReader.js +67 -903
  115. package/lib/esm/tile/ImdlReader.js.map +1 -1
  116. package/lib/esm/tile/map/MapTile.d.ts +6 -1
  117. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  118. package/lib/esm/tile/map/MapTile.js +8 -7
  119. package/lib/esm/tile/map/MapTile.js.map +1 -1
  120. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  121. package/lib/esm/tile/map/MapTileTree.js +8 -2
  122. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  123. package/package.json +18 -18
@@ -0,0 +1,181 @@
1
+ /** @packageDocumentation
2
+ * @module Tiles
3
+ */
4
+ import { UintArray } from "@itwin/core-bentley";
5
+ import { LowAndHighXYZ, XYAndZ } from "@itwin/core-geometry";
6
+ import { ColorDefProps, FeatureIndexType, FillFlags, Gradient, LinePixels, PolylineTypeFlags, QParams2dProps, QParams3dProps } from "@itwin/core-common";
7
+ import { EdgeTable } from "../render/primitives/EdgeParams";
8
+ import { SurfaceMaterialAtlas, SurfaceType } from "../render/primitives/SurfaceParams";
9
+ import { AuxChannelTableProps } from "../render/primitives/AuxChannelTable";
10
+ import { ImdlAreaPattern, ImdlDocument } from "./ImdlSchema";
11
+ /** Types comprising the parsed representation of an ImdlDocument, produced by [[parseImdlDocument]] and consumed by [[decodeImdlGraphics]].
12
+ * All of the types are required to support [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) so that they
13
+ * can be passed between workers and the main JavaScript thread.
14
+ * @internal
15
+ */
16
+ export declare namespace ImdlModel {
17
+ interface VertexTable {
18
+ data: Uint8Array;
19
+ usesUnquantizedPositions?: boolean;
20
+ qparams: QParams3dProps;
21
+ width: number;
22
+ height: number;
23
+ hasTranslucency: boolean;
24
+ uniformColor?: ColorDefProps;
25
+ featureIndexType: FeatureIndexType;
26
+ uniformFeatureID?: number;
27
+ numVertices: number;
28
+ numRgbaPerVertex: number;
29
+ uvParams?: QParams2dProps;
30
+ }
31
+ interface PointStringParams {
32
+ vertices: VertexTable;
33
+ indices: Uint8Array;
34
+ weight: number;
35
+ }
36
+ interface TesselatedPolyline {
37
+ indices: Uint8Array;
38
+ prevIndices: Uint8Array;
39
+ nextIndicesAndParams: Uint8Array;
40
+ }
41
+ interface PolylineParams {
42
+ vertices: VertexTable;
43
+ polyline: TesselatedPolyline;
44
+ isPlanar: boolean;
45
+ type: PolylineTypeFlags;
46
+ weight: number;
47
+ linePixels: LinePixels;
48
+ }
49
+ interface SegmentEdgeParams {
50
+ indices: Uint8Array;
51
+ endPointAndQuadIndices: Uint8Array;
52
+ }
53
+ interface SilhouetteParams extends SegmentEdgeParams {
54
+ normalPairs: Uint8Array;
55
+ }
56
+ interface IndexedEdgeParams {
57
+ indices: Uint8Array;
58
+ edges: EdgeTable;
59
+ }
60
+ interface EdgeParams {
61
+ weight: number;
62
+ linePixels: LinePixels;
63
+ segments?: SegmentEdgeParams;
64
+ silhouettes?: SilhouetteParams;
65
+ polylines?: TesselatedPolyline;
66
+ indexed?: IndexedEdgeParams;
67
+ }
68
+ interface SurfaceMaterialParams {
69
+ alpha?: number;
70
+ diffuse?: {
71
+ color?: ColorDefProps;
72
+ weight?: number;
73
+ };
74
+ specular?: {
75
+ color?: ColorDefProps;
76
+ weight?: number;
77
+ exponent?: number;
78
+ };
79
+ }
80
+ interface SurfaceRenderMaterial {
81
+ isAtlas: false;
82
+ material: string | SurfaceMaterialParams;
83
+ }
84
+ type SurfaceMaterial = SurfaceRenderMaterial | SurfaceMaterialAtlas;
85
+ interface SurfaceParams {
86
+ type: SurfaceType;
87
+ indices: Uint8Array;
88
+ fillFlags: FillFlags;
89
+ hasBakedLighting: boolean;
90
+ material?: SurfaceMaterial;
91
+ textureMapping?: {
92
+ texture: string | Gradient.SymbProps;
93
+ alwaysDisplayed: boolean;
94
+ };
95
+ }
96
+ interface MeshParams {
97
+ vertices: VertexTable;
98
+ surface: SurfaceParams;
99
+ edges?: EdgeParams;
100
+ isPlanar: boolean;
101
+ auxChannels?: AuxChannelTableProps;
102
+ }
103
+ interface Instances {
104
+ type: "instances";
105
+ count: number;
106
+ transforms: Float32Array;
107
+ transformCenter: XYAndZ;
108
+ featureIds?: Uint8Array;
109
+ symbologyOverrides?: Uint8Array;
110
+ range?: LowAndHighXYZ;
111
+ }
112
+ interface ViewIndependentOrigin {
113
+ type: "viewIndependentOrigin";
114
+ origin: XYAndZ;
115
+ }
116
+ type PrimitiveModifier = Instances | ViewIndependentOrigin;
117
+ type Primitive = {
118
+ params: MeshParams;
119
+ modifier?: PrimitiveModifier;
120
+ type: "mesh";
121
+ } | {
122
+ params: PointStringParams;
123
+ modifier?: PrimitiveModifier;
124
+ type: "point";
125
+ } | {
126
+ params: PolylineParams;
127
+ modifier?: PrimitiveModifier;
128
+ type: "polyline";
129
+ };
130
+ type AreaPatternParams = Omit<ImdlAreaPattern, "xyOffsets"> & {
131
+ xyOffsets: Float32Array;
132
+ };
133
+ type NodePrimitive = Primitive | {
134
+ params: AreaPatternParams;
135
+ modifier?: never;
136
+ type: "pattern";
137
+ };
138
+ interface BasicNode {
139
+ primitives: NodePrimitive[];
140
+ animationNodeId?: never;
141
+ animationId?: never;
142
+ layerId?: never;
143
+ }
144
+ interface AnimationNode {
145
+ primitives: NodePrimitive[];
146
+ animationNodeId: number;
147
+ animationId?: string;
148
+ layerId?: never;
149
+ }
150
+ interface Layer {
151
+ primitives: NodePrimitive[];
152
+ layerId: string;
153
+ animationNodeId?: never;
154
+ animationId?: never;
155
+ }
156
+ type Node = BasicNode | AnimationNode | Layer;
157
+ interface SingleModelFeatureTable {
158
+ multiModel: false;
159
+ data: Uint32Array;
160
+ numFeatures: number;
161
+ animationNodeIds?: UintArray;
162
+ numSubCategories?: never;
163
+ }
164
+ interface MultiModelFeatureTable {
165
+ multiModel: true;
166
+ data: Uint32Array;
167
+ numFeatures: number;
168
+ numSubCategories: number;
169
+ animationNodeIds?: UintArray;
170
+ }
171
+ type FeatureTable = SingleModelFeatureTable | MultiModelFeatureTable;
172
+ interface Document {
173
+ featureTable: FeatureTable;
174
+ nodes: Node[];
175
+ patterns: Map<string, Primitive[]>;
176
+ rtcCenter?: XYAndZ;
177
+ binaryData: Uint8Array;
178
+ json: ImdlDocument;
179
+ }
180
+ }
181
+ //# sourceMappingURL=ImdlModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImdlModel.d.ts","sourceRoot":"","sources":["../../../src/imdl/ImdlModel.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EACpH,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE7D;;;;GAIG;AACH,yBAAiB,SAAS,CAAC;IACzB,UAAiB,WAAW;QAC1B,IAAI,EAAE,UAAU,CAAC;QACjB,wBAAwB,CAAC,EAAE,OAAO,CAAC;QACnC,OAAO,EAAE,cAAc,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,OAAO,CAAC;QACzB,YAAY,CAAC,EAAE,aAAa,CAAC;QAC7B,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,cAAc,CAAC;KAC3B;IAED,UAAiB,iBAAiB;QAChC,QAAQ,EAAE,WAAW,CAAC;QACtB,OAAO,EAAE,UAAU,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;KAChB;IAED,UAAiB,kBAAkB;QACjC,OAAO,EAAE,UAAU,CAAC;QACpB,WAAW,EAAE,UAAU,CAAC;QACxB,oBAAoB,EAAE,UAAU,CAAC;KAClC;IAED,UAAiB,cAAc;QAC7B,QAAQ,EAAE,WAAW,CAAC;QACtB,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,QAAQ,EAAE,OAAO,CAAC;QAClB,IAAI,EAAE,iBAAiB,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,UAAU,CAAC;KACxB;IAED,UAAiB,iBAAiB;QAChC,OAAO,EAAE,UAAU,CAAC;QACpB,sBAAsB,EAAE,UAAU,CAAC;KACpC;IAED,UAAiB,gBAAiB,SAAQ,iBAAiB;QACzD,WAAW,EAAE,UAAU,CAAC;KACzB;IAED,UAAiB,iBAAiB;QAChC,OAAO,EAAE,UAAU,CAAC;QACpB,KAAK,EAAE,SAAS,CAAC;KAClB;IAED,UAAiB,UAAU;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,UAAU,CAAC;QACvB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;QAC7B,WAAW,CAAC,EAAE,gBAAgB,CAAC;QAC/B,SAAS,CAAC,EAAE,kBAAkB,CAAC;QAC/B,OAAO,CAAC,EAAE,iBAAiB,CAAC;KAC7B;IAED,UAAiB,qBAAqB;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE;YACR,KAAK,CAAC,EAAE,aAAa,CAAC;YACtB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,QAAQ,CAAC,EAAE;YACT,KAAK,CAAC,EAAE,aAAa,CAAC;YACtB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;KACH;IAED,UAAiB,qBAAqB;QACpC,OAAO,EAAE,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAAC;KAC1C;IAED,KAAY,eAAe,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;IAE3E,UAAiB,aAAa;QAC5B,IAAI,EAAE,WAAW,CAAC;QAClB,OAAO,EAAE,UAAU,CAAC;QACpB,SAAS,EAAE,SAAS,CAAC;QACrB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,cAAc,CAAC,EAAE;YACf,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;YACrC,eAAe,EAAE,OAAO,CAAC;SAC1B,CAAC;KACH;IAED,UAAiB,UAAU;QACzB,QAAQ,EAAE,WAAW,CAAC;QACtB,OAAO,EAAE,aAAa,CAAC;QACvB,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,oBAAoB,CAAC;KACpC;IAED,UAAiB,SAAS;QACxB,IAAI,EAAE,WAAW,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,YAAY,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,kBAAkB,CAAC,EAAE,UAAU,CAAC;QAChC,KAAK,CAAC,EAAE,aAAa,CAAC;KACvB;IAED,UAAiB,qBAAqB;QACpC,IAAI,EAAE,uBAAuB,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC;KAChB;IAED,KAAY,iBAAiB,GAAG,SAAS,GAAG,qBAAqB,CAAC;IAElE,KAAY,SAAS,GAAG;QACtB,MAAM,EAAE,UAAU,CAAC;QACnB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC;KACd,GAAG;QACF,MAAM,EAAE,iBAAiB,CAAC;QAC1B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;QAC7B,IAAI,EAAE,OAAO,CAAC;KACf,GAAG;QACF,MAAM,EAAE,cAAc,CAAC;QACvB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;QAC7B,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;IAEF,KAAY,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG;QACnE,SAAS,EAAE,YAAY,CAAC;KACzB,CAAC;IAEF,KAAY,aAAa,GAAG,SAAS,GAAG;QACtC,MAAM,EAAE,iBAAiB,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,SAAS,CAAC;KACjB,CAAC;IAEF,UAAiB,SAAS;QACxB,UAAU,EAAE,aAAa,EAAE,CAAC;QAC5B,eAAe,CAAC,EAAE,KAAK,CAAC;QACxB,WAAW,CAAC,EAAE,KAAK,CAAC;QACpB,OAAO,CAAC,EAAE,KAAK,CAAC;KACjB;IAED,UAAiB,aAAa;QAC5B,UAAU,EAAE,aAAa,EAAE,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,KAAK,CAAC;KACjB;IAED,UAAiB,KAAK;QACpB,UAAU,EAAE,aAAa,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,KAAK,CAAC;QACxB,WAAW,CAAC,EAAE,KAAK,CAAC;KACrB;IAED,KAAY,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,KAAK,CAAC;IAErD,UAAiB,uBAAuB;QACtC,UAAU,EAAE,KAAK,CAAC;QAClB,IAAI,EAAE,WAAW,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,SAAS,CAAC;QAC7B,gBAAgB,CAAC,EAAE,KAAK,CAAC;KAC1B;IAED,UAAiB,sBAAsB;QACrC,UAAU,EAAE,IAAI,CAAC;QACjB,IAAI,EAAE,WAAW,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,SAAS,CAAC;KAC9B;IAED,KAAY,YAAY,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;IAE5E,UAAiB,QAAQ;QACvB,YAAY,EAAE,YAAY,CAAC;QAC3B,KAAK,EAAE,IAAI,EAAE,CAAC;QACd,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACnC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,UAAU,CAAC;QACvB,IAAI,EAAE,YAAY,CAAC;KACpB;CACF"}
@@ -0,0 +1,9 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Tiles
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=ImdlModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImdlModel.js","sourceRoot":"","sources":["../../../src/imdl/ImdlModel.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { UintArray } from \"@itwin/core-bentley\";\r\nimport { LowAndHighXYZ, XYAndZ } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDefProps, FeatureIndexType, FillFlags, Gradient, LinePixels, PolylineTypeFlags, QParams2dProps, QParams3dProps,\r\n} from \"@itwin/core-common\";\r\nimport { EdgeTable } from \"../render/primitives/EdgeParams\";\r\nimport { SurfaceMaterialAtlas, SurfaceType } from \"../render/primitives/SurfaceParams\";\r\nimport { AuxChannelTableProps } from \"../render/primitives/AuxChannelTable\";\r\nimport { ImdlAreaPattern, ImdlDocument } from \"./ImdlSchema\";\r\n\r\n/** Types comprising the parsed representation of an ImdlDocument, produced by [[parseImdlDocument]] and consumed by [[decodeImdlGraphics]].\r\n * All of the types are required to support [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) so that they\r\n * can be passed between workers and the main JavaScript thread.\r\n * @internal\r\n */\r\nexport namespace ImdlModel {\r\n export interface VertexTable {\r\n data: Uint8Array;\r\n usesUnquantizedPositions?: boolean;\r\n qparams: QParams3dProps;\r\n width: number;\r\n height: number;\r\n hasTranslucency: boolean;\r\n uniformColor?: ColorDefProps;\r\n featureIndexType: FeatureIndexType;\r\n uniformFeatureID?: number;\r\n numVertices: number;\r\n numRgbaPerVertex: number;\r\n uvParams?: QParams2dProps;\r\n }\r\n\r\n export interface PointStringParams {\r\n vertices: VertexTable;\r\n indices: Uint8Array;\r\n weight: number;\r\n }\r\n\r\n export interface TesselatedPolyline {\r\n indices: Uint8Array;\r\n prevIndices: Uint8Array;\r\n nextIndicesAndParams: Uint8Array;\r\n }\r\n\r\n export interface PolylineParams {\r\n vertices: VertexTable;\r\n polyline: TesselatedPolyline;\r\n isPlanar: boolean;\r\n type: PolylineTypeFlags;\r\n weight: number;\r\n linePixels: LinePixels;\r\n }\r\n\r\n export interface SegmentEdgeParams {\r\n indices: Uint8Array;\r\n endPointAndQuadIndices: Uint8Array;\r\n }\r\n\r\n export interface SilhouetteParams extends SegmentEdgeParams {\r\n normalPairs: Uint8Array;\r\n }\r\n\r\n export interface IndexedEdgeParams {\r\n indices: Uint8Array;\r\n edges: EdgeTable;\r\n }\r\n\r\n export interface EdgeParams {\r\n weight: number;\r\n linePixels: LinePixels;\r\n segments?: SegmentEdgeParams;\r\n silhouettes?: SilhouetteParams;\r\n polylines?: TesselatedPolyline;\r\n indexed?: IndexedEdgeParams;\r\n }\r\n\r\n export interface SurfaceMaterialParams {\r\n alpha?: number;\r\n diffuse?: {\r\n color?: ColorDefProps;\r\n weight?: number;\r\n };\r\n specular?: {\r\n color?: ColorDefProps;\r\n weight?: number;\r\n exponent?: number;\r\n };\r\n }\r\n\r\n export interface SurfaceRenderMaterial {\r\n isAtlas: false;\r\n material: string | SurfaceMaterialParams;\r\n }\r\n\r\n export type SurfaceMaterial = SurfaceRenderMaterial | SurfaceMaterialAtlas;\r\n\r\n export interface SurfaceParams {\r\n type: SurfaceType;\r\n indices: Uint8Array;\r\n fillFlags: FillFlags;\r\n hasBakedLighting: boolean;\r\n material?: SurfaceMaterial;\r\n textureMapping?: {\r\n texture: string | Gradient.SymbProps;\r\n alwaysDisplayed: boolean;\r\n };\r\n }\r\n\r\n export interface MeshParams {\r\n vertices: VertexTable;\r\n surface: SurfaceParams;\r\n edges?: EdgeParams;\r\n isPlanar: boolean;\r\n auxChannels?: AuxChannelTableProps;\r\n }\r\n\r\n export interface Instances {\r\n type: \"instances\";\r\n count: number;\r\n transforms: Float32Array;\r\n transformCenter: XYAndZ;\r\n featureIds?: Uint8Array;\r\n symbologyOverrides?: Uint8Array;\r\n range?: LowAndHighXYZ;\r\n }\r\n\r\n export interface ViewIndependentOrigin {\r\n type: \"viewIndependentOrigin\";\r\n origin: XYAndZ;\r\n }\r\n\r\n export type PrimitiveModifier = Instances | ViewIndependentOrigin;\r\n\r\n export type Primitive = {\r\n params: MeshParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"mesh\";\r\n } | {\r\n params: PointStringParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"point\";\r\n } | {\r\n params: PolylineParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"polyline\";\r\n };\r\n\r\n export type AreaPatternParams = Omit<ImdlAreaPattern, \"xyOffsets\"> & {\r\n xyOffsets: Float32Array;\r\n };\r\n\r\n export type NodePrimitive = Primitive | {\r\n params: AreaPatternParams;\r\n modifier?: never;\r\n type: \"pattern\";\r\n };\r\n\r\n export interface BasicNode {\r\n primitives: NodePrimitive[];\r\n animationNodeId?: never;\r\n animationId?: never;\r\n layerId?: never;\r\n }\r\n\r\n export interface AnimationNode {\r\n primitives: NodePrimitive[];\r\n animationNodeId: number;\r\n animationId?: string;\r\n layerId?: never;\r\n }\r\n\r\n export interface Layer {\r\n primitives: NodePrimitive[];\r\n layerId: string;\r\n animationNodeId?: never;\r\n animationId?: never;\r\n }\r\n\r\n export type Node = BasicNode | AnimationNode | Layer;\r\n\r\n export interface SingleModelFeatureTable {\r\n multiModel: false;\r\n data: Uint32Array;\r\n numFeatures: number;\r\n animationNodeIds?: UintArray;\r\n numSubCategories?: never;\r\n }\r\n\r\n export interface MultiModelFeatureTable {\r\n multiModel: true;\r\n data: Uint32Array;\r\n numFeatures: number;\r\n numSubCategories: number;\r\n animationNodeIds?: UintArray;\r\n }\r\n\r\n export type FeatureTable = SingleModelFeatureTable | MultiModelFeatureTable;\r\n\r\n export interface Document {\r\n featureTable: FeatureTable;\r\n nodes: Node[];\r\n patterns: Map<string, Primitive[]>;\r\n rtcCenter?: XYAndZ;\r\n binaryData: Uint8Array;\r\n json: ImdlDocument;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,40 @@
1
+ /** @packageDocumentation
2
+ * @module Tiles
3
+ */
4
+ import { ByteStream, Id64String } from "@itwin/core-bentley";
5
+ import { RenderFeatureTable, RenderSchedule, TileReadStatus } from "@itwin/core-common";
6
+ import { ImdlModel as Imdl } from "./ImdlModel";
7
+ import { EdgeParams } from "../render/primitives/EdgeParams";
8
+ import { VertexTable } from "../render/primitives/VertexTable";
9
+ import { CreateRenderMaterialArgs } from "../render/RenderMaterial";
10
+ /** Timeline used to reassemble iMdl content into animatable nodes.
11
+ * @internal
12
+ */
13
+ export type ImdlTimeline = RenderSchedule.ModelTimeline | RenderSchedule.Script;
14
+ /** Options provided to [[parseImdlDocument]].
15
+ * @internal
16
+ */
17
+ export interface ImdlParserOptions {
18
+ stream: ByteStream;
19
+ batchModelId: Id64String;
20
+ is3d: boolean;
21
+ maxVertexTableSize: number;
22
+ omitEdges?: boolean;
23
+ createUntransformedRootNode?: boolean;
24
+ timeline?: ImdlTimeline;
25
+ }
26
+ /** Error codes resulting from [[parseImdlDocument]].
27
+ * @internal
28
+ */
29
+ export type ImdlParseError = Exclude<TileReadStatus, TileReadStatus.Success>;
30
+ /** @internal */
31
+ export declare function toVertexTable(imdl: Imdl.VertexTable): VertexTable;
32
+ /** @internal */
33
+ export declare function edgeParamsFromImdl(imdl: Imdl.EdgeParams): EdgeParams;
34
+ /** @internal */
35
+ export declare function toMaterialArgs(mat: Imdl.SurfaceMaterialParams): CreateRenderMaterialArgs;
36
+ /** @internal */
37
+ export declare function convertFeatureTable(imdlFeatureTable: Imdl.FeatureTable, batchModelId: Id64String): RenderFeatureTable;
38
+ /** @internal */
39
+ export declare function parseImdlDocument(options: ImdlParserOptions): Imdl.Document | ImdlParseError;
40
+ //# sourceMappingURL=ImdlParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImdlParser.d.ts","sourceRoot":"","sources":["../../../src/imdl/ImdlParser.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,UAAU,EAAE,UAAU,EAA2B,MAAM,qBAAqB,CAAC;AAE9F,OAAO,EAEwD,kBAAkB,EAAkB,cAAc,EACnG,cAAc,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,aAAa,CAAC;AAWhD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAA6B,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,UAAU,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAoDD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;AAuG7E,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAOjE;AAWD,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAqBpE;AAo1BD,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,qBAAqB,GAAG,wBAAwB,CAkBxF;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,GAAG,kBAAkB,CAOrH;AAED,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC,QAAQ,GAAG,cAAc,CAyD5F"}