@itwin/core-frontend 4.1.0-dev.2 → 4.1.0-dev.21

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 (834) hide show
  1. package/CHANGELOG.md +44 -1
  2. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  3. package/lib/cjs/AccuSnap.js +8 -0
  4. package/lib/cjs/AccuSnap.js.map +1 -1
  5. package/lib/cjs/BriefcaseTxns.d.ts +2 -2
  6. package/lib/cjs/BriefcaseTxns.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseTxns.js +3 -3
  8. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  9. package/lib/cjs/CheckpointConnection.js +1 -1
  10. package/lib/cjs/CheckpointConnection.js.map +1 -1
  11. package/lib/cjs/DrawingViewState.js +1 -1
  12. package/lib/cjs/DrawingViewState.js.map +1 -1
  13. package/lib/cjs/ElementLocateManager.js +1 -1
  14. package/lib/cjs/ElementLocateManager.js.map +1 -1
  15. package/lib/cjs/EnvironmentDecorations.js +1 -1
  16. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  17. package/lib/cjs/GeoServices.js +1 -1
  18. package/lib/cjs/GeoServices.js.map +1 -1
  19. package/lib/cjs/GraphicalEditingScope.d.ts +2 -2
  20. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  21. package/lib/cjs/GraphicalEditingScope.js +1 -1
  22. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  23. package/lib/cjs/IModelApp.js +1 -1
  24. package/lib/cjs/IModelApp.js.map +1 -1
  25. package/lib/cjs/IModelConnection.d.ts +3 -3
  26. package/lib/cjs/IModelConnection.js +4 -4
  27. package/lib/cjs/IModelConnection.js.map +1 -1
  28. package/lib/cjs/IpcApp.d.ts.map +1 -1
  29. package/lib/cjs/IpcApp.js +3 -3
  30. package/lib/cjs/IpcApp.js.map +1 -1
  31. package/lib/cjs/LocalhostIpcApp.js +1 -1
  32. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  33. package/lib/cjs/Marker.d.ts +1 -1
  34. package/lib/cjs/Marker.d.ts.map +1 -1
  35. package/lib/cjs/Marker.js +3 -3
  36. package/lib/cjs/Marker.js.map +1 -1
  37. package/lib/cjs/NativeApp.d.ts.map +1 -1
  38. package/lib/cjs/NativeApp.js +4 -4
  39. package/lib/cjs/NativeApp.js.map +1 -1
  40. package/lib/cjs/NoRenderApp.d.ts +1 -1
  41. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  42. package/lib/cjs/NoRenderApp.js +1 -1
  43. package/lib/cjs/NoRenderApp.js.map +1 -1
  44. package/lib/cjs/RealityDataSource.js +1 -1
  45. package/lib/cjs/RealityDataSource.js.map +1 -1
  46. package/lib/cjs/RealityDataSourceContextShareImpl.js +1 -1
  47. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  48. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  49. package/lib/cjs/SheetViewState.js +2 -2
  50. package/lib/cjs/SheetViewState.js.map +1 -1
  51. package/lib/cjs/Sprites.js +2 -2
  52. package/lib/cjs/Sprites.js.map +1 -1
  53. package/lib/cjs/ViewingSpace.js +1 -1
  54. package/lib/cjs/ViewingSpace.js.map +1 -1
  55. package/lib/cjs/Viewport.d.ts +1 -1
  56. package/lib/cjs/Viewport.d.ts.map +1 -1
  57. package/lib/cjs/Viewport.js +1 -1
  58. package/lib/cjs/Viewport.js.map +1 -1
  59. package/lib/cjs/common/FrontendLoggerCategory.d.ts.map +1 -0
  60. package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -0
  61. package/lib/cjs/common/ImageUtil.d.ts.map +1 -0
  62. package/lib/cjs/{ImageUtil.js → common/ImageUtil.js} +2 -0
  63. package/lib/cjs/common/ImageUtil.js.map +1 -0
  64. package/lib/cjs/common/ViewRect.d.ts.map +1 -0
  65. package/lib/cjs/common/ViewRect.js.map +1 -0
  66. package/lib/cjs/common/WorkerProxy.d.ts +73 -0
  67. package/lib/cjs/common/WorkerProxy.d.ts.map +1 -0
  68. package/lib/cjs/common/WorkerProxy.js +54 -0
  69. package/lib/cjs/common/WorkerProxy.js.map +1 -0
  70. package/lib/{esm → cjs/common}/gltf/GltfModel.d.ts +1 -1
  71. package/lib/cjs/common/gltf/GltfModel.d.ts.map +1 -0
  72. package/lib/cjs/common/gltf/GltfModel.js.map +1 -0
  73. package/lib/cjs/common/gltf/GltfParser.d.ts.map +1 -0
  74. package/lib/cjs/common/gltf/GltfParser.js.map +1 -0
  75. package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -0
  76. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -0
  77. package/lib/cjs/common/imdl/ImdlModel.d.ts +186 -0
  78. package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -0
  79. package/lib/cjs/common/imdl/ImdlModel.js +71 -0
  80. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -0
  81. package/lib/cjs/common/imdl/ImdlSchema.d.ts +380 -0
  82. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -0
  83. package/lib/cjs/common/imdl/ImdlSchema.js +10 -0
  84. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -0
  85. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts +45 -0
  86. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -0
  87. package/lib/cjs/common/imdl/ParseImdlDocument.js +995 -0
  88. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -0
  89. package/lib/cjs/common/render/AnimationNodeId.d.ts +11 -0
  90. package/lib/cjs/common/render/AnimationNodeId.d.ts.map +1 -0
  91. package/lib/cjs/common/render/AnimationNodeId.js +19 -0
  92. package/lib/cjs/common/render/AnimationNodeId.js.map +1 -0
  93. package/lib/{esm/render/RenderMaterial.d.ts → cjs/common/render/MaterialParams.d.ts} +7 -20
  94. package/lib/cjs/common/render/MaterialParams.d.ts.map +1 -0
  95. package/lib/cjs/{render/RenderMaterial.js → common/render/MaterialParams.js} +1 -1
  96. package/lib/cjs/common/render/MaterialParams.js.map +1 -0
  97. package/lib/cjs/common/render/TextureParams.d.ts +30 -0
  98. package/lib/cjs/common/render/TextureParams.d.ts.map +1 -0
  99. package/lib/cjs/{render/RenderTexture.js → common/render/TextureParams.js} +1 -1
  100. package/lib/cjs/common/render/TextureParams.js.map +1 -0
  101. package/lib/{esm → cjs/common}/render/primitives/AuxChannelTable.d.ts +12 -8
  102. package/lib/cjs/common/render/primitives/AuxChannelTable.d.ts.map +1 -0
  103. package/lib/cjs/{render → common/render}/primitives/AuxChannelTable.js +42 -9
  104. package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +1 -0
  105. package/lib/cjs/common/render/primitives/DisplayParams.d.ts.map +1 -0
  106. package/lib/cjs/common/render/primitives/DisplayParams.js.map +1 -0
  107. package/lib/cjs/common/render/primitives/EdgeParams.d.ts +94 -0
  108. package/lib/cjs/common/render/primitives/EdgeParams.d.ts.map +1 -0
  109. package/lib/cjs/common/render/primitives/EdgeParams.js +46 -0
  110. package/lib/cjs/common/render/primitives/EdgeParams.js.map +1 -0
  111. package/lib/cjs/common/render/primitives/MeshParams.d.ts +20 -0
  112. package/lib/cjs/common/render/primitives/MeshParams.d.ts.map +1 -0
  113. package/lib/cjs/common/render/primitives/MeshParams.js +10 -0
  114. package/lib/cjs/common/render/primitives/MeshParams.js.map +1 -0
  115. package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts +29 -0
  116. package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts.map +1 -0
  117. package/lib/cjs/common/render/primitives/MeshPrimitive.js +18 -0
  118. package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +1 -0
  119. package/lib/cjs/common/render/primitives/PointStringParams.d.ts +14 -0
  120. package/lib/cjs/common/render/primitives/PointStringParams.d.ts.map +1 -0
  121. package/lib/cjs/common/render/primitives/PointStringParams.js +10 -0
  122. package/lib/cjs/common/render/primitives/PointStringParams.js.map +1 -0
  123. package/lib/cjs/common/render/primitives/PolylineParams.d.ts +29 -0
  124. package/lib/cjs/common/render/primitives/PolylineParams.d.ts.map +1 -0
  125. package/lib/cjs/common/render/primitives/PolylineParams.js +10 -0
  126. package/lib/cjs/common/render/primitives/PolylineParams.js.map +1 -0
  127. package/lib/{esm → cjs/common}/render/primitives/SurfaceParams.d.ts +1 -1
  128. package/lib/cjs/common/render/primitives/SurfaceParams.d.ts.map +1 -0
  129. package/lib/cjs/common/render/primitives/SurfaceParams.js.map +1 -0
  130. package/lib/cjs/common/render/primitives/VertexIndices.d.ts +26 -0
  131. package/lib/cjs/common/render/primitives/VertexIndices.d.ts.map +1 -0
  132. package/lib/cjs/common/render/primitives/VertexIndices.js +64 -0
  133. package/lib/cjs/common/render/primitives/VertexIndices.js.map +1 -0
  134. package/lib/cjs/common/render/primitives/VertexTable.d.ts +45 -0
  135. package/lib/cjs/common/render/primitives/VertexTable.d.ts.map +1 -0
  136. package/lib/cjs/common/render/primitives/VertexTable.js +38 -0
  137. package/lib/cjs/common/render/primitives/VertexTable.js.map +1 -0
  138. package/lib/cjs/{render → common/render}/primitives/VertexTableSplitter.d.ts +23 -2
  139. package/lib/cjs/common/render/primitives/VertexTableSplitter.d.ts.map +1 -0
  140. package/lib/cjs/{render → common/render}/primitives/VertexTableSplitter.js +46 -35
  141. package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +1 -0
  142. package/lib/cjs/core-frontend.d.ts +26 -6
  143. package/lib/cjs/core-frontend.d.ts.map +1 -1
  144. package/lib/cjs/core-frontend.js +26 -6
  145. package/lib/cjs/core-frontend.js.map +1 -1
  146. package/lib/cjs/extension/ExtensionAdmin.js +1 -1
  147. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  148. package/lib/cjs/quantity-formatting/QuantityFormatter.js +1 -1
  149. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  150. package/lib/cjs/render/CreateRenderMaterialArgs.d.ts +24 -0
  151. package/lib/cjs/render/CreateRenderMaterialArgs.d.ts.map +1 -0
  152. package/lib/cjs/render/CreateRenderMaterialArgs.js +10 -0
  153. package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -0
  154. package/lib/{esm/render/RenderTexture.d.ts → cjs/render/CreateTextureArgs.d.ts} +4 -28
  155. package/lib/cjs/render/CreateTextureArgs.d.ts.map +1 -0
  156. package/lib/cjs/render/CreateTextureArgs.js +10 -0
  157. package/lib/cjs/render/CreateTextureArgs.js.map +1 -0
  158. package/lib/cjs/render/GraphicBranch.d.ts +1 -7
  159. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  160. package/lib/cjs/render/GraphicBranch.js +1 -9
  161. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  162. package/lib/cjs/render/MockRender.d.ts +4 -4
  163. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  164. package/lib/cjs/render/MockRender.js +1 -1
  165. package/lib/cjs/render/MockRender.js.map +1 -1
  166. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  167. package/lib/cjs/render/ParticleCollectionBuilder.js +5 -5
  168. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  169. package/lib/cjs/render/RealityMeshParams.js +2 -2
  170. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  171. package/lib/cjs/render/RenderSystem.d.ts +7 -6
  172. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  173. package/lib/cjs/render/RenderSystem.js +6 -6
  174. package/lib/cjs/render/RenderSystem.js.map +1 -1
  175. package/lib/cjs/render/RenderTarget.d.ts +1 -1
  176. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  177. package/lib/cjs/render/RenderTarget.js.map +1 -1
  178. package/lib/cjs/render/VisibleFeature.d.ts +1 -1
  179. package/lib/cjs/render/VisibleFeature.d.ts.map +1 -1
  180. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  181. package/lib/cjs/render/primitives/EdgeParams.d.ts +2 -89
  182. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -1
  183. package/lib/cjs/render/primitives/EdgeParams.js +35 -71
  184. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  185. package/lib/cjs/render/primitives/PointStringParams.d.ts +2 -11
  186. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +1 -1
  187. package/lib/cjs/render/primitives/PointStringParams.js +26 -30
  188. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -1
  189. package/lib/cjs/render/primitives/Polyface.d.ts +1 -1
  190. package/lib/cjs/render/primitives/Polyface.d.ts.map +1 -1
  191. package/lib/cjs/render/primitives/Polyface.js.map +1 -1
  192. package/lib/cjs/render/primitives/PolylineParams.d.ts +4 -36
  193. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -1
  194. package/lib/cjs/render/primitives/PolylineParams.js +29 -40
  195. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
  196. package/lib/cjs/render/primitives/Strokes.d.ts +1 -1
  197. package/lib/cjs/render/primitives/Strokes.d.ts.map +1 -1
  198. package/lib/cjs/render/primitives/Strokes.js.map +1 -1
  199. package/lib/cjs/render/primitives/VertexTableBuilder.d.ts +28 -0
  200. package/lib/cjs/render/primitives/VertexTableBuilder.d.ts.map +1 -0
  201. package/lib/cjs/render/primitives/{VertexTable.js → VertexTableBuilder.js} +61 -175
  202. package/lib/cjs/render/primitives/VertexTableBuilder.js.map +1 -0
  203. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +1 -1
  204. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  205. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  206. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +1 -1
  207. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  208. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +1 -1
  209. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  210. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts +1 -1
  211. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
  212. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js +1 -1
  213. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  214. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts +1 -1
  215. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  216. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  217. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts +6 -5
  218. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  219. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js +3 -2
  220. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  221. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +4 -25
  222. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  223. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +9 -14
  224. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  225. package/lib/cjs/render/webgl/CachedGeometry.d.ts +1 -1
  226. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  227. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  228. package/lib/cjs/render/webgl/ColorInfo.d.ts +1 -1
  229. package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
  230. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  231. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +2 -2
  232. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
  233. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  234. package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
  235. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  236. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  237. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  238. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  239. package/lib/cjs/render/webgl/Material.d.ts +1 -1
  240. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  241. package/lib/cjs/render/webgl/Material.js.map +1 -1
  242. package/lib/cjs/render/webgl/Mesh.d.ts +2 -2
  243. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  244. package/lib/cjs/render/webgl/Mesh.js +1 -1
  245. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  246. package/lib/cjs/render/webgl/MeshData.d.ts +2 -2
  247. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
  248. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  249. package/lib/cjs/render/webgl/MeshGeometry.d.ts +1 -1
  250. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -1
  251. package/lib/cjs/render/webgl/PointString.d.ts +1 -1
  252. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  253. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  254. package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
  255. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  256. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  257. package/lib/cjs/render/webgl/RenderCommands.js +1 -1
  258. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  259. package/lib/cjs/render/webgl/SceneCompositor.d.ts +1 -1
  260. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  261. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  262. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +1 -1
  263. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  264. package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
  265. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  266. package/lib/cjs/render/webgl/System.d.ts +7 -6
  267. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  268. package/lib/cjs/render/webgl/System.js +1 -1
  269. package/lib/cjs/render/webgl/System.js.map +1 -1
  270. package/lib/cjs/render/webgl/Target.d.ts +1 -1
  271. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  272. package/lib/cjs/render/webgl/Target.js +4 -4
  273. package/lib/cjs/render/webgl/Target.js.map +1 -1
  274. package/lib/cjs/render/webgl/Texture.d.ts +1 -1
  275. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  276. package/lib/cjs/render/webgl/Texture.js +1 -1
  277. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  278. package/lib/cjs/render/webgl/UniformHandle.js +1 -1
  279. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  280. package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
  281. package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
  282. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  283. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  284. package/lib/cjs/render-primitives.d.ts +1 -4
  285. package/lib/cjs/render-primitives.d.ts.map +1 -1
  286. package/lib/cjs/render-primitives.js +1 -4
  287. package/lib/cjs/render-primitives.js.map +1 -1
  288. package/lib/cjs/tile/B3dmReader.d.ts +1 -1
  289. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  290. package/lib/cjs/tile/B3dmReader.js +1 -1
  291. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  292. package/lib/cjs/tile/GltfReader.d.ts +3 -3
  293. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  294. package/lib/cjs/tile/GltfReader.js +12 -21
  295. package/lib/cjs/tile/GltfReader.js.map +1 -1
  296. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  297. package/lib/cjs/tile/IModelTile.js +11 -17
  298. package/lib/cjs/tile/IModelTile.js.map +1 -1
  299. package/lib/cjs/tile/IModelTileTree.d.ts +3 -1
  300. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  301. package/lib/cjs/tile/IModelTileTree.js +14 -0
  302. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  303. package/lib/cjs/tile/ImdlDecoder.d.ts +52 -0
  304. package/lib/cjs/tile/ImdlDecoder.d.ts.map +1 -0
  305. package/lib/cjs/tile/ImdlDecoder.js +35 -0
  306. package/lib/cjs/tile/ImdlDecoder.js.map +1 -0
  307. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +19 -0
  308. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -0
  309. package/lib/cjs/tile/ImdlGraphicsCreator.js +328 -0
  310. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -0
  311. package/lib/cjs/tile/ImdlParser.d.ts +26 -0
  312. package/lib/cjs/tile/ImdlParser.d.ts.map +1 -0
  313. package/lib/cjs/tile/ImdlParser.js +72 -0
  314. package/lib/cjs/tile/ImdlParser.js.map +1 -0
  315. package/lib/cjs/tile/ImdlReader.d.ts +16 -420
  316. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  317. package/lib/cjs/tile/ImdlReader.js +69 -902
  318. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  319. package/lib/cjs/tile/OPCFormatInterpreter.js +1 -1
  320. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  321. package/lib/cjs/tile/PntsReader.js +1 -1
  322. package/lib/cjs/tile/PntsReader.js.map +1 -1
  323. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  324. package/lib/cjs/tile/PrimaryTileTree.js +2 -1
  325. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  326. package/lib/cjs/tile/RealityTileLoader.js +1 -1
  327. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  328. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +1 -1
  329. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  330. package/lib/cjs/tile/TileAdmin.d.ts +7 -0
  331. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  332. package/lib/cjs/tile/TileAdmin.js +1 -0
  333. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  334. package/lib/cjs/tile/internal.d.ts +3 -0
  335. package/lib/cjs/tile/internal.d.ts.map +1 -1
  336. package/lib/cjs/tile/internal.js +3 -0
  337. package/lib/cjs/tile/internal.js.map +1 -1
  338. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +8 -1
  339. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  340. package/lib/cjs/tile/map/ArcGisUtilities.js +21 -0
  341. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  342. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  343. package/lib/cjs/tile/map/MapLayerImageryFormats.js +3 -0
  344. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  345. package/lib/cjs/tile/map/MapLayerSources.d.ts +4 -1
  346. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  347. package/lib/cjs/tile/map/MapLayerSources.js +3 -0
  348. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  349. package/lib/cjs/tile/map/MapTile.d.ts +6 -1
  350. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  351. package/lib/cjs/tile/map/MapTile.js +8 -7
  352. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  353. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  354. package/lib/cjs/tile/map/MapTileTree.js +8 -2
  355. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  356. package/lib/cjs/tools/ElementSetTool.js +1 -1
  357. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  358. package/lib/cjs/tools/SelectTool.js +1 -1
  359. package/lib/cjs/tools/SelectTool.js.map +1 -1
  360. package/lib/cjs/tools/ToolAdmin.js +1 -1
  361. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  362. package/lib/cjs/tools/ViewTool.js +1 -1
  363. package/lib/cjs/tools/ViewTool.js.map +1 -1
  364. package/lib/cjs/workers/ImdlParser/Worker.d.ts +20 -0
  365. package/lib/cjs/workers/ImdlParser/Worker.d.ts.map +1 -0
  366. package/lib/cjs/workers/ImdlParser/Worker.js +32 -0
  367. package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -0
  368. package/lib/cjs/workers/ImdlParser/webpack.config.js +40 -0
  369. package/lib/cjs/workers/RegisterWorker.d.ts +9 -0
  370. package/lib/cjs/workers/RegisterWorker.d.ts.map +1 -0
  371. package/lib/cjs/workers/RegisterWorker.js +36 -0
  372. package/lib/cjs/workers/RegisterWorker.js.map +1 -0
  373. package/lib/esm/AccuSnap.d.ts.map +1 -1
  374. package/lib/esm/AccuSnap.js +8 -0
  375. package/lib/esm/AccuSnap.js.map +1 -1
  376. package/lib/esm/BriefcaseTxns.d.ts +2 -2
  377. package/lib/esm/BriefcaseTxns.d.ts.map +1 -1
  378. package/lib/esm/BriefcaseTxns.js +3 -3
  379. package/lib/esm/BriefcaseTxns.js.map +1 -1
  380. package/lib/esm/CheckpointConnection.js +1 -1
  381. package/lib/esm/CheckpointConnection.js.map +1 -1
  382. package/lib/esm/DrawingViewState.js +1 -1
  383. package/lib/esm/DrawingViewState.js.map +1 -1
  384. package/lib/esm/ElementLocateManager.js +1 -1
  385. package/lib/esm/ElementLocateManager.js.map +1 -1
  386. package/lib/esm/EnvironmentDecorations.js +1 -1
  387. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  388. package/lib/esm/GeoServices.js +1 -1
  389. package/lib/esm/GeoServices.js.map +1 -1
  390. package/lib/esm/GraphicalEditingScope.d.ts +2 -2
  391. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  392. package/lib/esm/GraphicalEditingScope.js +2 -2
  393. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  394. package/lib/esm/IModelApp.js +1 -1
  395. package/lib/esm/IModelApp.js.map +1 -1
  396. package/lib/esm/IModelConnection.d.ts +3 -3
  397. package/lib/esm/IModelConnection.js +4 -4
  398. package/lib/esm/IModelConnection.js.map +1 -1
  399. package/lib/esm/IpcApp.d.ts.map +1 -1
  400. package/lib/esm/IpcApp.js +4 -4
  401. package/lib/esm/IpcApp.js.map +1 -1
  402. package/lib/esm/LocalhostIpcApp.js +2 -2
  403. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  404. package/lib/esm/Marker.d.ts +1 -1
  405. package/lib/esm/Marker.d.ts.map +1 -1
  406. package/lib/esm/Marker.js +3 -3
  407. package/lib/esm/Marker.js.map +1 -1
  408. package/lib/esm/NativeApp.d.ts.map +1 -1
  409. package/lib/esm/NativeApp.js +5 -5
  410. package/lib/esm/NativeApp.js.map +1 -1
  411. package/lib/esm/NoRenderApp.d.ts +1 -1
  412. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  413. package/lib/esm/NoRenderApp.js +1 -1
  414. package/lib/esm/NoRenderApp.js.map +1 -1
  415. package/lib/esm/RealityDataSource.js +1 -1
  416. package/lib/esm/RealityDataSource.js.map +1 -1
  417. package/lib/esm/RealityDataSourceContextShareImpl.js +1 -1
  418. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  419. package/lib/esm/SheetViewState.d.ts.map +1 -1
  420. package/lib/esm/SheetViewState.js +2 -2
  421. package/lib/esm/SheetViewState.js.map +1 -1
  422. package/lib/esm/Sprites.js +2 -2
  423. package/lib/esm/Sprites.js.map +1 -1
  424. package/lib/esm/ViewingSpace.js +1 -1
  425. package/lib/esm/ViewingSpace.js.map +1 -1
  426. package/lib/esm/Viewport.d.ts +1 -1
  427. package/lib/esm/Viewport.d.ts.map +1 -1
  428. package/lib/esm/Viewport.js +1 -1
  429. package/lib/esm/Viewport.js.map +1 -1
  430. package/lib/esm/common/FrontendLoggerCategory.d.ts.map +1 -0
  431. package/lib/esm/common/FrontendLoggerCategory.js.map +1 -0
  432. package/lib/esm/common/ImageUtil.d.ts.map +1 -0
  433. package/lib/esm/{ImageUtil.js → common/ImageUtil.js} +2 -0
  434. package/lib/esm/common/ImageUtil.js.map +1 -0
  435. package/lib/esm/common/ViewRect.d.ts.map +1 -0
  436. package/lib/esm/common/ViewRect.js.map +1 -0
  437. package/lib/esm/common/WorkerProxy.d.ts +73 -0
  438. package/lib/esm/common/WorkerProxy.d.ts.map +1 -0
  439. package/lib/esm/common/WorkerProxy.js +50 -0
  440. package/lib/esm/common/WorkerProxy.js.map +1 -0
  441. package/lib/{cjs → esm/common}/gltf/GltfModel.d.ts +1 -1
  442. package/lib/esm/common/gltf/GltfModel.d.ts.map +1 -0
  443. package/lib/esm/common/gltf/GltfModel.js.map +1 -0
  444. package/lib/esm/common/gltf/GltfParser.d.ts.map +1 -0
  445. package/lib/esm/common/gltf/GltfParser.js.map +1 -0
  446. package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -0
  447. package/lib/esm/common/gltf/GltfSchema.js.map +1 -0
  448. package/lib/esm/common/imdl/ImdlModel.d.ts +186 -0
  449. package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -0
  450. package/lib/esm/common/imdl/ImdlModel.js +67 -0
  451. package/lib/esm/common/imdl/ImdlModel.js.map +1 -0
  452. package/lib/esm/common/imdl/ImdlSchema.d.ts +380 -0
  453. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -0
  454. package/lib/esm/common/imdl/ImdlSchema.js +9 -0
  455. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -0
  456. package/lib/esm/common/imdl/ParseImdlDocument.d.ts +45 -0
  457. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -0
  458. package/lib/esm/common/imdl/ParseImdlDocument.js +987 -0
  459. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -0
  460. package/lib/esm/common/render/AnimationNodeId.d.ts +11 -0
  461. package/lib/esm/common/render/AnimationNodeId.d.ts.map +1 -0
  462. package/lib/esm/common/render/AnimationNodeId.js +16 -0
  463. package/lib/esm/common/render/AnimationNodeId.js.map +1 -0
  464. package/lib/{cjs/render/RenderMaterial.d.ts → esm/common/render/MaterialParams.d.ts} +7 -20
  465. package/lib/esm/common/render/MaterialParams.d.ts.map +1 -0
  466. package/lib/esm/{render/RenderMaterial.js → common/render/MaterialParams.js} +1 -1
  467. package/lib/esm/common/render/MaterialParams.js.map +1 -0
  468. package/lib/esm/common/render/TextureParams.d.ts +30 -0
  469. package/lib/esm/common/render/TextureParams.d.ts.map +1 -0
  470. package/lib/esm/{render/RenderTexture.js → common/render/TextureParams.js} +1 -1
  471. package/lib/esm/common/render/TextureParams.js.map +1 -0
  472. package/lib/{cjs → esm/common}/render/primitives/AuxChannelTable.d.ts +12 -8
  473. package/lib/esm/common/render/primitives/AuxChannelTable.d.ts.map +1 -0
  474. package/lib/esm/{render → common/render}/primitives/AuxChannelTable.js +42 -9
  475. package/lib/esm/common/render/primitives/AuxChannelTable.js.map +1 -0
  476. package/lib/esm/common/render/primitives/DisplayParams.d.ts.map +1 -0
  477. package/lib/esm/common/render/primitives/DisplayParams.js.map +1 -0
  478. package/lib/esm/common/render/primitives/EdgeParams.d.ts +94 -0
  479. package/lib/esm/common/render/primitives/EdgeParams.d.ts.map +1 -0
  480. package/lib/esm/common/render/primitives/EdgeParams.js +42 -0
  481. package/lib/esm/common/render/primitives/EdgeParams.js.map +1 -0
  482. package/lib/esm/common/render/primitives/MeshParams.d.ts +20 -0
  483. package/lib/esm/common/render/primitives/MeshParams.d.ts.map +1 -0
  484. package/lib/esm/common/render/primitives/MeshParams.js +9 -0
  485. package/lib/esm/common/render/primitives/MeshParams.js.map +1 -0
  486. package/lib/esm/common/render/primitives/MeshPrimitive.d.ts +29 -0
  487. package/lib/esm/common/render/primitives/MeshPrimitive.d.ts.map +1 -0
  488. package/lib/esm/common/render/primitives/MeshPrimitive.js +15 -0
  489. package/lib/esm/common/render/primitives/MeshPrimitive.js.map +1 -0
  490. package/lib/esm/common/render/primitives/PointStringParams.d.ts +14 -0
  491. package/lib/esm/common/render/primitives/PointStringParams.d.ts.map +1 -0
  492. package/lib/esm/common/render/primitives/PointStringParams.js +9 -0
  493. package/lib/esm/common/render/primitives/PointStringParams.js.map +1 -0
  494. package/lib/esm/common/render/primitives/PolylineParams.d.ts +29 -0
  495. package/lib/esm/common/render/primitives/PolylineParams.d.ts.map +1 -0
  496. package/lib/esm/common/render/primitives/PolylineParams.js +9 -0
  497. package/lib/esm/common/render/primitives/PolylineParams.js.map +1 -0
  498. package/lib/{cjs → esm/common}/render/primitives/SurfaceParams.d.ts +1 -1
  499. package/lib/esm/common/render/primitives/SurfaceParams.d.ts.map +1 -0
  500. package/lib/esm/common/render/primitives/SurfaceParams.js.map +1 -0
  501. package/lib/esm/common/render/primitives/VertexIndices.d.ts +26 -0
  502. package/lib/esm/common/render/primitives/VertexIndices.d.ts.map +1 -0
  503. package/lib/esm/common/render/primitives/VertexIndices.js +60 -0
  504. package/lib/esm/common/render/primitives/VertexIndices.js.map +1 -0
  505. package/lib/esm/common/render/primitives/VertexTable.d.ts +45 -0
  506. package/lib/esm/common/render/primitives/VertexTable.d.ts.map +1 -0
  507. package/lib/esm/common/render/primitives/VertexTable.js +34 -0
  508. package/lib/esm/common/render/primitives/VertexTable.js.map +1 -0
  509. package/lib/esm/{render → common/render}/primitives/VertexTableSplitter.d.ts +23 -2
  510. package/lib/esm/common/render/primitives/VertexTableSplitter.d.ts.map +1 -0
  511. package/lib/esm/{render → common/render}/primitives/VertexTableSplitter.js +44 -33
  512. package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +1 -0
  513. package/lib/esm/core-frontend.d.ts +26 -6
  514. package/lib/esm/core-frontend.d.ts.map +1 -1
  515. package/lib/esm/core-frontend.js +26 -6
  516. package/lib/esm/core-frontend.js.map +1 -1
  517. package/lib/esm/extension/ExtensionAdmin.js +1 -1
  518. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  519. package/lib/esm/quantity-formatting/QuantityFormatter.js +1 -1
  520. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  521. package/lib/esm/render/CreateRenderMaterialArgs.d.ts +24 -0
  522. package/lib/esm/render/CreateRenderMaterialArgs.d.ts.map +1 -0
  523. package/lib/esm/render/CreateRenderMaterialArgs.js +9 -0
  524. package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -0
  525. package/lib/{cjs/render/RenderTexture.d.ts → esm/render/CreateTextureArgs.d.ts} +4 -28
  526. package/lib/esm/render/CreateTextureArgs.d.ts.map +1 -0
  527. package/lib/esm/render/CreateTextureArgs.js +9 -0
  528. package/lib/esm/render/CreateTextureArgs.js.map +1 -0
  529. package/lib/esm/render/GraphicBranch.d.ts +1 -7
  530. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  531. package/lib/esm/render/GraphicBranch.js +0 -8
  532. package/lib/esm/render/GraphicBranch.js.map +1 -1
  533. package/lib/esm/render/MockRender.d.ts +4 -4
  534. package/lib/esm/render/MockRender.d.ts.map +1 -1
  535. package/lib/esm/render/MockRender.js +1 -1
  536. package/lib/esm/render/MockRender.js.map +1 -1
  537. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  538. package/lib/esm/render/ParticleCollectionBuilder.js +5 -5
  539. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  540. package/lib/esm/render/RealityMeshParams.js +2 -2
  541. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  542. package/lib/esm/render/RenderSystem.d.ts +7 -6
  543. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  544. package/lib/esm/render/RenderSystem.js +7 -7
  545. package/lib/esm/render/RenderSystem.js.map +1 -1
  546. package/lib/esm/render/RenderTarget.d.ts +1 -1
  547. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  548. package/lib/esm/render/RenderTarget.js.map +1 -1
  549. package/lib/esm/render/VisibleFeature.d.ts +1 -1
  550. package/lib/esm/render/VisibleFeature.d.ts.map +1 -1
  551. package/lib/esm/render/VisibleFeature.js.map +1 -1
  552. package/lib/esm/render/primitives/EdgeParams.d.ts +2 -89
  553. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -1
  554. package/lib/esm/render/primitives/EdgeParams.js +29 -65
  555. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  556. package/lib/esm/render/primitives/PointStringParams.d.ts +2 -11
  557. package/lib/esm/render/primitives/PointStringParams.d.ts.map +1 -1
  558. package/lib/esm/render/primitives/PointStringParams.js +24 -28
  559. package/lib/esm/render/primitives/PointStringParams.js.map +1 -1
  560. package/lib/esm/render/primitives/Polyface.d.ts +1 -1
  561. package/lib/esm/render/primitives/Polyface.d.ts.map +1 -1
  562. package/lib/esm/render/primitives/Polyface.js.map +1 -1
  563. package/lib/esm/render/primitives/PolylineParams.d.ts +4 -36
  564. package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -1
  565. package/lib/esm/render/primitives/PolylineParams.js +24 -36
  566. package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
  567. package/lib/esm/render/primitives/Strokes.d.ts +1 -1
  568. package/lib/esm/render/primitives/Strokes.d.ts.map +1 -1
  569. package/lib/esm/render/primitives/Strokes.js.map +1 -1
  570. package/lib/esm/render/primitives/VertexTableBuilder.d.ts +28 -0
  571. package/lib/esm/render/primitives/VertexTableBuilder.d.ts.map +1 -0
  572. package/lib/esm/render/primitives/{VertexTable.js → VertexTableBuilder.js} +60 -171
  573. package/lib/esm/render/primitives/VertexTableBuilder.js.map +1 -0
  574. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +1 -1
  575. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  576. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  577. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +1 -1
  578. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  579. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +1 -1
  580. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  581. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts +1 -1
  582. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
  583. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js +1 -1
  584. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  585. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts +1 -1
  586. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  587. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  588. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts +6 -5
  589. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  590. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js +4 -3
  591. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  592. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +4 -25
  593. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  594. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +9 -14
  595. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  596. package/lib/esm/render/webgl/CachedGeometry.d.ts +1 -1
  597. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  598. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  599. package/lib/esm/render/webgl/ColorInfo.d.ts +1 -1
  600. package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
  601. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  602. package/lib/esm/render/webgl/EdgeGeometry.d.ts +2 -2
  603. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
  604. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  605. package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
  606. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  607. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  608. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  609. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  610. package/lib/esm/render/webgl/Material.d.ts +1 -1
  611. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  612. package/lib/esm/render/webgl/Material.js.map +1 -1
  613. package/lib/esm/render/webgl/Mesh.d.ts +2 -2
  614. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  615. package/lib/esm/render/webgl/Mesh.js +1 -1
  616. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  617. package/lib/esm/render/webgl/MeshData.d.ts +2 -2
  618. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
  619. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  620. package/lib/esm/render/webgl/MeshGeometry.d.ts +1 -1
  621. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -1
  622. package/lib/esm/render/webgl/PointString.d.ts +1 -1
  623. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  624. package/lib/esm/render/webgl/PointString.js.map +1 -1
  625. package/lib/esm/render/webgl/Polyline.d.ts +1 -1
  626. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  627. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  628. package/lib/esm/render/webgl/RenderCommands.js +1 -1
  629. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  630. package/lib/esm/render/webgl/SceneCompositor.d.ts +1 -1
  631. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  632. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  633. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +1 -1
  634. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  635. package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
  636. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  637. package/lib/esm/render/webgl/System.d.ts +7 -6
  638. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  639. package/lib/esm/render/webgl/System.js +1 -1
  640. package/lib/esm/render/webgl/System.js.map +1 -1
  641. package/lib/esm/render/webgl/Target.d.ts +1 -1
  642. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  643. package/lib/esm/render/webgl/Target.js +3 -3
  644. package/lib/esm/render/webgl/Target.js.map +1 -1
  645. package/lib/esm/render/webgl/Texture.d.ts +1 -1
  646. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  647. package/lib/esm/render/webgl/Texture.js +1 -1
  648. package/lib/esm/render/webgl/Texture.js.map +1 -1
  649. package/lib/esm/render/webgl/UniformHandle.js +1 -1
  650. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  651. package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
  652. package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
  653. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  654. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  655. package/lib/esm/render-primitives.d.ts +1 -4
  656. package/lib/esm/render-primitives.d.ts.map +1 -1
  657. package/lib/esm/render-primitives.js +1 -4
  658. package/lib/esm/render-primitives.js.map +1 -1
  659. package/lib/esm/tile/B3dmReader.d.ts +1 -1
  660. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  661. package/lib/esm/tile/B3dmReader.js +1 -1
  662. package/lib/esm/tile/B3dmReader.js.map +1 -1
  663. package/lib/esm/tile/GltfReader.d.ts +3 -3
  664. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  665. package/lib/esm/tile/GltfReader.js +12 -21
  666. package/lib/esm/tile/GltfReader.js.map +1 -1
  667. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  668. package/lib/esm/tile/IModelTile.js +12 -18
  669. package/lib/esm/tile/IModelTile.js.map +1 -1
  670. package/lib/esm/tile/IModelTileTree.d.ts +3 -1
  671. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  672. package/lib/esm/tile/IModelTileTree.js +15 -1
  673. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  674. package/lib/esm/tile/ImdlDecoder.d.ts +52 -0
  675. package/lib/esm/tile/ImdlDecoder.d.ts.map +1 -0
  676. package/lib/esm/tile/ImdlDecoder.js +31 -0
  677. package/lib/esm/tile/ImdlDecoder.js.map +1 -0
  678. package/lib/esm/tile/ImdlGraphicsCreator.d.ts +19 -0
  679. package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -0
  680. package/lib/esm/tile/ImdlGraphicsCreator.js +324 -0
  681. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -0
  682. package/lib/esm/tile/ImdlParser.d.ts +26 -0
  683. package/lib/esm/tile/ImdlParser.d.ts.map +1 -0
  684. package/lib/esm/tile/ImdlParser.js +68 -0
  685. package/lib/esm/tile/ImdlParser.js.map +1 -0
  686. package/lib/esm/tile/ImdlReader.d.ts +16 -420
  687. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  688. package/lib/esm/tile/ImdlReader.js +71 -903
  689. package/lib/esm/tile/ImdlReader.js.map +1 -1
  690. package/lib/esm/tile/OPCFormatInterpreter.js +1 -1
  691. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  692. package/lib/esm/tile/PntsReader.js +1 -1
  693. package/lib/esm/tile/PntsReader.js.map +1 -1
  694. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  695. package/lib/esm/tile/PrimaryTileTree.js +2 -1
  696. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  697. package/lib/esm/tile/RealityTileLoader.js +1 -1
  698. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  699. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +1 -1
  700. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  701. package/lib/esm/tile/TileAdmin.d.ts +7 -0
  702. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  703. package/lib/esm/tile/TileAdmin.js +1 -0
  704. package/lib/esm/tile/TileAdmin.js.map +1 -1
  705. package/lib/esm/tile/internal.d.ts +3 -0
  706. package/lib/esm/tile/internal.d.ts.map +1 -1
  707. package/lib/esm/tile/internal.js +3 -0
  708. package/lib/esm/tile/internal.js.map +1 -1
  709. package/lib/esm/tile/map/ArcGisUtilities.d.ts +8 -1
  710. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  711. package/lib/esm/tile/map/ArcGisUtilities.js +21 -0
  712. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  713. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  714. package/lib/esm/tile/map/MapLayerImageryFormats.js +3 -0
  715. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  716. package/lib/esm/tile/map/MapLayerSources.d.ts +4 -1
  717. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  718. package/lib/esm/tile/map/MapLayerSources.js +3 -0
  719. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  720. package/lib/esm/tile/map/MapTile.d.ts +6 -1
  721. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  722. package/lib/esm/tile/map/MapTile.js +8 -7
  723. package/lib/esm/tile/map/MapTile.js.map +1 -1
  724. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  725. package/lib/esm/tile/map/MapTileTree.js +8 -2
  726. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  727. package/lib/esm/tools/ElementSetTool.js +1 -1
  728. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  729. package/lib/esm/tools/SelectTool.js +1 -1
  730. package/lib/esm/tools/SelectTool.js.map +1 -1
  731. package/lib/esm/tools/ToolAdmin.js +1 -1
  732. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  733. package/lib/esm/tools/ViewTool.js +1 -1
  734. package/lib/esm/tools/ViewTool.js.map +1 -1
  735. package/lib/esm/workers/ImdlParser/Worker.d.ts +20 -0
  736. package/lib/esm/workers/ImdlParser/Worker.d.ts.map +1 -0
  737. package/lib/esm/workers/ImdlParser/Worker.js +30 -0
  738. package/lib/esm/workers/ImdlParser/Worker.js.map +1 -0
  739. package/lib/esm/workers/ImdlParser/webpack.config.js +40 -0
  740. package/lib/esm/workers/RegisterWorker.d.ts +9 -0
  741. package/lib/esm/workers/RegisterWorker.d.ts.map +1 -0
  742. package/lib/esm/workers/RegisterWorker.js +32 -0
  743. package/lib/esm/workers/RegisterWorker.js.map +1 -0
  744. package/lib/public/scripts/parse-imdl-worker.js +1 -0
  745. package/lib/workers/webpack/parse-imdl-worker.js +1 -0
  746. package/package.json +23 -20
  747. package/lib/cjs/FrontendLoggerCategory.d.ts.map +0 -1
  748. package/lib/cjs/FrontendLoggerCategory.js.map +0 -1
  749. package/lib/cjs/ImageUtil.d.ts.map +0 -1
  750. package/lib/cjs/ImageUtil.js.map +0 -1
  751. package/lib/cjs/ViewRect.d.ts.map +0 -1
  752. package/lib/cjs/ViewRect.js.map +0 -1
  753. package/lib/cjs/WebWorkerManager.d.ts +0 -49
  754. package/lib/cjs/WebWorkerManager.d.ts.map +0 -1
  755. package/lib/cjs/WebWorkerManager.js +0 -155
  756. package/lib/cjs/WebWorkerManager.js.map +0 -1
  757. package/lib/cjs/gltf/GltfModel.d.ts.map +0 -1
  758. package/lib/cjs/gltf/GltfModel.js.map +0 -1
  759. package/lib/cjs/gltf/GltfParser.d.ts.map +0 -1
  760. package/lib/cjs/gltf/GltfParser.js.map +0 -1
  761. package/lib/cjs/gltf/GltfSchema.d.ts.map +0 -1
  762. package/lib/cjs/gltf/GltfSchema.js.map +0 -1
  763. package/lib/cjs/render/RenderMaterial.d.ts.map +0 -1
  764. package/lib/cjs/render/RenderMaterial.js.map +0 -1
  765. package/lib/cjs/render/RenderTexture.d.ts.map +0 -1
  766. package/lib/cjs/render/RenderTexture.js.map +0 -1
  767. package/lib/cjs/render/primitives/AuxChannelTable.d.ts.map +0 -1
  768. package/lib/cjs/render/primitives/AuxChannelTable.js.map +0 -1
  769. package/lib/cjs/render/primitives/DisplayParams.d.ts.map +0 -1
  770. package/lib/cjs/render/primitives/DisplayParams.js.map +0 -1
  771. package/lib/cjs/render/primitives/SurfaceParams.d.ts.map +0 -1
  772. package/lib/cjs/render/primitives/SurfaceParams.js.map +0 -1
  773. package/lib/cjs/render/primitives/VertexTable.d.ts +0 -152
  774. package/lib/cjs/render/primitives/VertexTable.d.ts.map +0 -1
  775. package/lib/cjs/render/primitives/VertexTable.js.map +0 -1
  776. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  777. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +0 -1
  778. package/lib/esm/FrontendLoggerCategory.d.ts.map +0 -1
  779. package/lib/esm/FrontendLoggerCategory.js.map +0 -1
  780. package/lib/esm/ImageUtil.d.ts.map +0 -1
  781. package/lib/esm/ImageUtil.js.map +0 -1
  782. package/lib/esm/ViewRect.d.ts.map +0 -1
  783. package/lib/esm/ViewRect.js.map +0 -1
  784. package/lib/esm/WebWorkerManager.d.ts +0 -49
  785. package/lib/esm/WebWorkerManager.d.ts.map +0 -1
  786. package/lib/esm/WebWorkerManager.js +0 -150
  787. package/lib/esm/WebWorkerManager.js.map +0 -1
  788. package/lib/esm/gltf/GltfModel.d.ts.map +0 -1
  789. package/lib/esm/gltf/GltfModel.js.map +0 -1
  790. package/lib/esm/gltf/GltfParser.d.ts.map +0 -1
  791. package/lib/esm/gltf/GltfParser.js.map +0 -1
  792. package/lib/esm/gltf/GltfSchema.d.ts.map +0 -1
  793. package/lib/esm/gltf/GltfSchema.js.map +0 -1
  794. package/lib/esm/render/RenderMaterial.d.ts.map +0 -1
  795. package/lib/esm/render/RenderMaterial.js.map +0 -1
  796. package/lib/esm/render/RenderTexture.d.ts.map +0 -1
  797. package/lib/esm/render/RenderTexture.js.map +0 -1
  798. package/lib/esm/render/primitives/AuxChannelTable.d.ts.map +0 -1
  799. package/lib/esm/render/primitives/AuxChannelTable.js.map +0 -1
  800. package/lib/esm/render/primitives/DisplayParams.d.ts.map +0 -1
  801. package/lib/esm/render/primitives/DisplayParams.js.map +0 -1
  802. package/lib/esm/render/primitives/SurfaceParams.d.ts.map +0 -1
  803. package/lib/esm/render/primitives/SurfaceParams.js.map +0 -1
  804. package/lib/esm/render/primitives/VertexTable.d.ts +0 -152
  805. package/lib/esm/render/primitives/VertexTable.d.ts.map +0 -1
  806. package/lib/esm/render/primitives/VertexTable.js.map +0 -1
  807. package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  808. package/lib/esm/render/primitives/VertexTableSplitter.js.map +0 -1
  809. /package/lib/cjs/{FrontendLoggerCategory.d.ts → common/FrontendLoggerCategory.d.ts} +0 -0
  810. /package/lib/cjs/{FrontendLoggerCategory.js → common/FrontendLoggerCategory.js} +0 -0
  811. /package/lib/cjs/{ImageUtil.d.ts → common/ImageUtil.d.ts} +0 -0
  812. /package/lib/cjs/{ViewRect.d.ts → common/ViewRect.d.ts} +0 -0
  813. /package/lib/cjs/{ViewRect.js → common/ViewRect.js} +0 -0
  814. /package/lib/cjs/{gltf → common/gltf}/GltfModel.js +0 -0
  815. /package/lib/cjs/{gltf → common/gltf}/GltfParser.d.ts +0 -0
  816. /package/lib/cjs/{gltf → common/gltf}/GltfParser.js +0 -0
  817. /package/lib/cjs/{gltf → common/gltf}/GltfSchema.d.ts +0 -0
  818. /package/lib/cjs/{gltf → common/gltf}/GltfSchema.js +0 -0
  819. /package/lib/cjs/{render → common/render}/primitives/DisplayParams.d.ts +0 -0
  820. /package/lib/cjs/{render → common/render}/primitives/DisplayParams.js +0 -0
  821. /package/lib/cjs/{render → common/render}/primitives/SurfaceParams.js +0 -0
  822. /package/lib/esm/{FrontendLoggerCategory.d.ts → common/FrontendLoggerCategory.d.ts} +0 -0
  823. /package/lib/esm/{FrontendLoggerCategory.js → common/FrontendLoggerCategory.js} +0 -0
  824. /package/lib/esm/{ImageUtil.d.ts → common/ImageUtil.d.ts} +0 -0
  825. /package/lib/esm/{ViewRect.d.ts → common/ViewRect.d.ts} +0 -0
  826. /package/lib/esm/{ViewRect.js → common/ViewRect.js} +0 -0
  827. /package/lib/esm/{gltf → common/gltf}/GltfModel.js +0 -0
  828. /package/lib/esm/{gltf → common/gltf}/GltfParser.d.ts +0 -0
  829. /package/lib/esm/{gltf → common/gltf}/GltfParser.js +0 -0
  830. /package/lib/esm/{gltf → common/gltf}/GltfSchema.d.ts +0 -0
  831. /package/lib/esm/{gltf → common/gltf}/GltfSchema.js +0 -0
  832. /package/lib/esm/{render → common/render}/primitives/DisplayParams.d.ts +0 -0
  833. /package/lib/esm/{render → common/render}/primitives/DisplayParams.js +0 -0
  834. /package/lib/esm/{render → common/render}/primitives/SurfaceParams.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"VertexTableSplitter.js","sourceRoot":"","sources":["../../../../src/render/primitives/VertexTableSplitter.ts"],"names":[],"mappings":"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","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 Rendering\r\n */\r\n\r\nimport { assert, Uint32ArrayBuilder, Uint8ArrayBuilder } from \"@itwin/core-bentley\";\r\nimport { ColorDef, RenderFeatureTable } from \"@itwin/core-common\";\r\nimport {\r\n computeDimensions, MeshParams, VertexIndices, VertexTable, VertexTableProps, VertexTableWithIndices,\r\n} from \"./VertexTable\";\r\nimport { PointStringParams } from \"./PointStringParams\";\r\nimport { PolylineParams, TesselatedPolyline } from \"./PolylineParams\";\r\nimport { calculateEdgeTableParams, EdgeParams, EdgeTable, IndexedEdgeParams } from \"./EdgeParams\";\r\nimport { createSurfaceMaterial, SurfaceMaterial } from \"./SurfaceParams\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { CreateRenderMaterialArgs } from \"../RenderMaterial\";\r\n\r\n/** Builds up a [[VertexIndices]].\r\n * Exported strictly for tests.\r\n */\r\nexport class IndexBuffer {\r\n private readonly _builder: Uint8ArrayBuilder;\r\n private readonly _index32 = new Uint32Array(1);\r\n private readonly _index8 = new Uint8Array(this._index32.buffer, 0, 3);\r\n\r\n public constructor(initialCapacity = 3) {\r\n this._builder = new Uint8ArrayBuilder({ initialCapacity: initialCapacity * 3 });\r\n }\r\n\r\n public get numIndices(): number {\r\n assert((this._builder.length % 3) === 0);\r\n return this._builder.length / 3;\r\n }\r\n\r\n public push(index: number): void {\r\n this._index32[0] = index;\r\n this._builder.append(this._index8);\r\n }\r\n\r\n public toVertexIndices(): VertexIndices {\r\n return new VertexIndices(this._builder.toTypedArray());\r\n }\r\n}\r\n\r\n/** Builds up a [[VertexTable]]. */\r\nclass VertexBuffer {\r\n private readonly _builder: Uint32ArrayBuilder;\r\n private readonly _source: VertexTable;\r\n\r\n /** `source` is the original table containing the vertex data from which individual vertices will be obtained. */\r\n public constructor(source: VertexTable) {\r\n this._source = source;\r\n this._builder = new Uint32ArrayBuilder({ initialCapacity: 3 * source.numRgbaPerVertex });\r\n }\r\n\r\n /** The number of vertices currently in the table. */\r\n public get length(): number {\r\n assert((this._builder.length % this.vertexSize) === 0);\r\n return this._builder.length / this.vertexSize;\r\n }\r\n\r\n /** The number of 32-bit unsigned integers (RGBA values) per vertex. */\r\n public get vertexSize(): number {\r\n return this._source.numRgbaPerVertex;\r\n }\r\n\r\n /** Append a vertex. `vertex` must be of size [[vertexSize]]. */\r\n public push(vertex: Uint32Array): void {\r\n assert(vertex.length === this.vertexSize);\r\n this._builder.append(vertex);\r\n }\r\n\r\n /** Construct the finished vertex table. */\r\n public buildVertexTable(maxDimension: number, colorTable: ColorTable | undefined, materialAtlasTable: MaterialAtlasTable): VertexTable {\r\n const source = this._source;\r\n colorTable = colorTable ?? source.uniformColor;\r\n assert(undefined !== colorTable);\r\n\r\n const colorTableLength = colorTable instanceof Uint32Array ? colorTable.length : 0;\r\n const materialAtlasTableLength = materialAtlasTable instanceof Uint32Array ? materialAtlasTable.length : 0;\r\n const dimensions = computeDimensions(this.length, this.vertexSize, colorTableLength + materialAtlasTableLength, maxDimension);\r\n\r\n let rgbaData = this._builder.toTypedArray();\r\n if (dimensions.width * dimensions.height > rgbaData.length) {\r\n const prevData = rgbaData;\r\n rgbaData = new Uint32Array(dimensions.width * dimensions.height);\r\n rgbaData.set(prevData, 0);\r\n }\r\n\r\n let tableSize = this.vertexSize * this.length;\r\n if (colorTable instanceof Uint32Array) {\r\n rgbaData.set(colorTable, tableSize);\r\n tableSize += colorTable.length;\r\n }\r\n\r\n if (materialAtlasTable instanceof Uint32Array)\r\n rgbaData.set(materialAtlasTable, tableSize);\r\n\r\n const tableProps: VertexTableProps = {\r\n data: new Uint8Array(rgbaData.buffer, rgbaData.byteOffset, rgbaData.byteLength),\r\n usesUnquantizedPositions: source.usesUnquantizedPositions,\r\n qparams: source.qparams,\r\n width: dimensions.width,\r\n height: dimensions.height,\r\n hasTranslucency: source.hasTranslucency,\r\n uniformColor: colorTable instanceof ColorDef ? colorTable : undefined,\r\n featureIndexType: source.featureIndexType,\r\n uniformFeatureID: source.uniformFeatureID,\r\n numVertices: this.length,\r\n numRgbaPerVertex: source.numRgbaPerVertex,\r\n uvParams: source.uvParams,\r\n };\r\n\r\n return new VertexTable(tableProps);\r\n }\r\n}\r\n\r\ntype ColorTable = Uint32Array | ColorDef;\r\n\r\n/** Remaps portions of a source color table into a filtered target color table. */\r\nclass ColorTableRemapper {\r\n private readonly _remappedIndices = new Map<number, number>();\r\n private readonly _colorTable: Uint32Array;\r\n public readonly colors: number[] = [];\r\n private readonly _32 = new Uint32Array(1);\r\n private readonly _16 = new Uint16Array(this._32.buffer);\r\n\r\n public constructor(colorTable: Uint32Array) {\r\n this._colorTable = colorTable;\r\n }\r\n\r\n /** Extract the color index stored in `vertex`, ensure it is present in the remapped color table, and return its index in that table. */\r\n public remap(vertex: Uint32Array, usesUnquantizedPositions: boolean | undefined): void {\r\n const vertIndex = usesUnquantizedPositions ? 4 : 1;\r\n const shortIndex = usesUnquantizedPositions ? 0 : 1;\r\n this._32[0] = vertex[vertIndex];\r\n const oldIndex = this._16[shortIndex];\r\n let newIndex = this._remappedIndices.get(oldIndex);\r\n if (undefined === newIndex) {\r\n newIndex = this.colors.length;\r\n this._remappedIndices.set(oldIndex, newIndex);\r\n const color = this._colorTable[oldIndex];\r\n this.colors.push(color);\r\n }\r\n\r\n this._16[shortIndex] = newIndex;\r\n vertex[vertIndex] = this._32[0];\r\n }\r\n\r\n /** Construct the finished color table. */\r\n public buildColorTable(): ColorTable {\r\n assert(this.colors.length > 0);\r\n return this.colors.length > 1 ? new Uint32Array(this.colors) : ColorDef.fromAbgr(this.colors[0]);\r\n }\r\n}\r\n\r\ntype MaterialAtlasTable = Uint32Array | SurfaceMaterial | undefined;\r\n\r\nclass MaterialAtlasRemapper {\r\n private readonly _remappedIndices = new Map<number, number>();\r\n private readonly _atlasTable: Uint32Array;\r\n public readonly materials: number[] = [];\r\n private readonly _32 = new Uint32Array(1);\r\n private readonly _8 = new Uint8Array(this._32.buffer);\r\n\r\n public constructor(_atlasTable: Uint32Array) {\r\n this._atlasTable = _atlasTable;\r\n }\r\n\r\n /** Extract the mat index stored in `vertex`, ensure it is present in the remapped atlas table, and return its index in that table. */\r\n public remap(vertex: Uint32Array, usesUnquantizedPositions: boolean | undefined): void {\r\n const vertIndex = usesUnquantizedPositions ? 3 : 2;\r\n this._32[0] = vertex[vertIndex];\r\n const oldIndex = this._8[3];\r\n let newIndex = this._remappedIndices.get(oldIndex);\r\n if (undefined === newIndex) {\r\n newIndex = this.materials.length / 4;\r\n this._remappedIndices.set(oldIndex, newIndex);\r\n let index = oldIndex * 4;\r\n this.materials.push(this._atlasTable[index++]);\r\n this.materials.push(this._atlasTable[index++]);\r\n this.materials.push(this._atlasTable[index++]);\r\n this.materials.push(this._atlasTable[index]);\r\n }\r\n\r\n this._8[3] = newIndex;\r\n vertex[vertIndex] = this._32[0];\r\n }\r\n\r\n private unpackFloat(value: number): number {\r\n this._32[0] = value;\r\n const valUint32 = this._32[0];\r\n const bias = 38.0;\r\n const temp = (valUint32 >>> 24) / 2.0;\r\n let exponent = Math.floor(temp);\r\n let sign = (temp - exponent) * 2.0;\r\n sign = -(sign * 2.0 - 1.0);\r\n const base = sign * (valUint32 & 0xffffff) / 16777216.0;\r\n exponent = exponent - bias;\r\n return base * Math.pow(10.0, exponent);\r\n }\r\n\r\n private materialFromAtlasEntry(entry: Uint32Array): SurfaceMaterial | undefined {\r\n const rgbOverridden = (entry[1] & 0x1000000) !== 0;\r\n const alphaOverridden = (entry[1] & 0x2000000) !== 0;\r\n const args: CreateRenderMaterialArgs = {\r\n alpha: alphaOverridden ? (entry[0] >>> 24) / 255.0 : undefined,\r\n diffuse: {\r\n color: rgbOverridden ? ColorDef.fromTbgr(entry[0] & 0xffffff) : undefined,\r\n weight: (entry[1] >>> 8) / 255.0,\r\n },\r\n specular: {\r\n color: ColorDef.fromTbgr(entry[2]),\r\n weight: ((entry[1] >>> 16) & 0xff) / 255.0,\r\n exponent: this.unpackFloat(entry[3]),\r\n },\r\n };\r\n const material = IModelApp.renderSystem.createRenderMaterial(args);\r\n return createSurfaceMaterial(material);\r\n }\r\n\r\n /** Construct the finished color table. */\r\n public buildAtlasTable(): MaterialAtlasTable {\r\n assert(this.materials.length > 0);\r\n const m = new Uint32Array(this.materials);\r\n return this.materials.length > 4 ? m : this.materialFromAtlasEntry(m);\r\n }\r\n}\r\n\r\n/** A node in a split vertex table. Each node corresponds to one or more elements. */\r\nclass Node {\r\n public readonly vertices: VertexBuffer;\r\n public readonly remappedIndices = new Map<number, number>();\r\n public readonly indices = new IndexBuffer();\r\n public readonly colors?: ColorTableRemapper;\r\n public readonly atlas?: MaterialAtlasRemapper;\r\n public readonly usesUnquantizedPositions?: boolean;\r\n\r\n /** `vertexTable` is the source table containing vertex data for all nodes, from which this node will extract the vertices belong to it. */\r\n public constructor(vertexTable: VertexTable, numColorsPrecedingAtlas: number | undefined) {\r\n this.vertices = new VertexBuffer(vertexTable);\r\n if (undefined === vertexTable.uniformColor)\r\n this.colors = new ColorTableRemapper(new Uint32Array(vertexTable.data.buffer, vertexTable.data.byteOffset + 4 * vertexTable.numVertices * vertexTable.numRgbaPerVertex));\r\n\r\n if (undefined !== numColorsPrecedingAtlas) {\r\n const atlasOffset = (vertexTable.numVertices * vertexTable.numRgbaPerVertex + numColorsPrecedingAtlas) * 4;\r\n this.atlas = new MaterialAtlasRemapper(new Uint32Array(vertexTable.data.buffer, vertexTable.data.byteOffset + atlasOffset));\r\n }\r\n\r\n this.usesUnquantizedPositions = vertexTable.usesUnquantizedPositions;\r\n }\r\n\r\n public addVertex(originalIndex: number, vertex: Uint32Array): void {\r\n let newIndex = this.remappedIndices.get(originalIndex);\r\n if (undefined === newIndex) {\r\n newIndex = this.vertices.length;\r\n this.remappedIndices.set(originalIndex, newIndex);\r\n\r\n this.colors?.remap(vertex, this.usesUnquantizedPositions);\r\n this.atlas?.remap(vertex, this.usesUnquantizedPositions);\r\n this.vertices.push(vertex);\r\n }\r\n\r\n this.indices.push(newIndex);\r\n }\r\n\r\n public buildOutput(maxDimension: number): VertexTableWithIndices {\r\n const materialAtlas = this.atlas?.buildAtlasTable();\r\n const material: SurfaceMaterial | undefined = (materialAtlas instanceof Uint32Array) ? undefined : materialAtlas;\r\n return {\r\n indices: this.indices.toVertexIndices(),\r\n vertices: this.vertices.buildVertexTable(maxDimension, this.colors?.buildColorTable(), materialAtlas),\r\n material,\r\n };\r\n }\r\n}\r\n\r\ninterface VertexTableSplitArgs extends VertexTableWithIndices {\r\n featureTable: RenderFeatureTable;\r\n atlasOffset?: number;\r\n}\r\n\r\nexport type ComputeAnimationNodeId = (featureIndex: number) => number;\r\n\r\nclass VertexTableSplitter {\r\n private readonly _input: VertexTableSplitArgs;\r\n private readonly _computeNodeId: ComputeAnimationNodeId;\r\n private readonly _nodes = new Map<number, Node>();\r\n\r\n private constructor(input: VertexTableSplitArgs, computeNodeId: ComputeAnimationNodeId) {\r\n this._input = input;\r\n this._computeNodeId = computeNodeId;\r\n }\r\n\r\n /** Split the source into one or more output nodes, returning a mapping of integer node Id to node. */\r\n public static split(source: VertexTableSplitArgs, computeNodeId: ComputeAnimationNodeId): Map<number, Node> {\r\n const splitter = new VertexTableSplitter(source, computeNodeId);\r\n splitter.split();\r\n return splitter._nodes;\r\n }\r\n\r\n private split(): void {\r\n // Track the most recent feature and corresponding node to avoid repeated lookups - vertices for\r\n // individual features are largely contiguous.\r\n const curState = {\r\n featureIndex: -1,\r\n node: undefined as unknown as Node,\r\n };\r\n\r\n const vertSize = this._input.vertices.numRgbaPerVertex;\r\n const vertex = new Uint32Array(vertSize);\r\n const vertexTable = new Uint32Array(this._input.vertices.data.buffer, this._input.vertices.data.byteOffset, this._input.vertices.numVertices * vertSize);\r\n\r\n for (const index of this._input.indices) {\r\n // Extract the data for this vertex without allocating new typed arrays.\r\n const vertexOffset = index * vertSize;\r\n for (let i = 0; i < vertex.length; i++)\r\n vertex[i] = vertexTable[vertexOffset + i];\r\n\r\n // Determine to which element the vertex belongs and find the corresponding Node.\r\n const featureIndex = vertex[2] & 0x00ffffff;\r\n if (curState.featureIndex !== featureIndex) {\r\n curState.featureIndex = featureIndex;\r\n const nodeId = this._computeNodeId(featureIndex);\r\n let node = this._nodes.get(nodeId);\r\n if (undefined === node)\r\n this._nodes.set(nodeId, node = new Node(this._input.vertices, this._input.atlasOffset));\r\n\r\n curState.node = node;\r\n }\r\n\r\n // Add the vertex to the appropriate node.\r\n curState.node.addVertex(index, vertex);\r\n }\r\n }\r\n}\r\n\r\nexport interface SplitVertexTableArgs {\r\n featureTable: RenderFeatureTable;\r\n maxDimension: number;\r\n computeNodeId: ComputeAnimationNodeId;\r\n}\r\n\r\nexport interface SplitPointStringArgs extends SplitVertexTableArgs {\r\n params: PointStringParams;\r\n}\r\n\r\n/** Given a PointStringParams and a function that can associate a node Id with an element Id, produce a mapping of nodes to PointStringParams, splitting up\r\n * the input params as needed.\r\n * @internal\r\n */\r\nexport function splitPointStringParams(args: SplitPointStringArgs): Map<number, PointStringParams> {\r\n const nodes = VertexTableSplitter.split({\r\n indices: args.params.indices,\r\n vertices: args.params.vertices,\r\n featureTable: args.featureTable,\r\n }, args.computeNodeId);\r\n\r\n const result = new Map<number, PointStringParams>();\r\n for (const [id, node] of nodes) {\r\n const { vertices, indices } = node.buildOutput(args.maxDimension);\r\n result.set(id, new PointStringParams(vertices, indices, args.params.weight));\r\n }\r\n\r\n return result;\r\n}\r\n\r\ninterface RemappedSegmentEdges {\r\n indices: IndexBuffer;\r\n endPointAndQuadIndices: Uint32ArrayBuilder;\r\n}\r\n\r\ninterface RemappedSilhouetteEdges extends RemappedSegmentEdges {\r\n normalPairs: Uint32ArrayBuilder;\r\n}\r\n\r\nclass RemappedPolylineEdges {\r\n public readonly indices = new IndexBuffer();\r\n public readonly prevIndices = new IndexBuffer();\r\n public readonly nextIndicesAndParams = new Uint32ArrayBuilder();\r\n}\r\n\r\ninterface RemappedIndexEdges {\r\n edges: Uint8ArrayBuilder;\r\n silhouettes: Uint8ArrayBuilder;\r\n}\r\n\r\ninterface RemappedEdges {\r\n segments?: RemappedSegmentEdges;\r\n silhouettes?: RemappedSilhouetteEdges;\r\n polylines?: RemappedPolylineEdges;\r\n indexed?: RemappedIndexEdges;\r\n}\r\n\r\ninterface RemappedIndex {\r\n node: Node;\r\n id: number;\r\n index: number;\r\n}\r\n\r\nfunction remapIndex(out: RemappedIndex, srcIndex: number, nodes: Map<number, Node>): boolean {\r\n for (const [id, node] of nodes) {\r\n const index = node.remappedIndices.get(srcIndex);\r\n if (undefined !== index) {\r\n out.index = index;\r\n out.node = node;\r\n out.id = id;\r\n return true;\r\n }\r\n }\r\n\r\n assert(false);\r\n return false;\r\n}\r\n\r\nfunction remapSegmentEdges(type: \"segments\" | \"silhouettes\", source: EdgeParams, nodes: Map<number, Node>, edges: Map<number, RemappedEdges>): void {\r\n const src = source[type];\r\n if (!src)\r\n return;\r\n\r\n const srcEndPts = new Uint32Array(src.endPointAndQuadIndices.buffer, src.endPointAndQuadIndices.byteOffset, src.endPointAndQuadIndices.length / 4);\r\n let srcNormalPairs;\r\n if (type === \"silhouettes\") {\r\n assert(undefined !== source.silhouettes);\r\n srcNormalPairs = new Uint32Array(source.silhouettes.normalPairs.buffer, source.silhouettes.normalPairs.byteOffset, source.silhouettes.normalPairs.length / 4);\r\n }\r\n\r\n let curIndexIndex = 0;\r\n const remappedIndex = { } as unknown as RemappedIndex;\r\n for (const srcIndex of src.indices) {\r\n if (remapIndex(remappedIndex, srcIndex, nodes)) {\r\n let endPointAndQuad = srcEndPts[curIndexIndex];\r\n const otherIndex = (endPointAndQuad & 0x00ffffff) >>> 0;\r\n const newOtherIndex = remappedIndex.node.remappedIndices.get(otherIndex);\r\n assert(undefined !== newOtherIndex);\r\n endPointAndQuad = (endPointAndQuad & 0xff000000) | newOtherIndex;\r\n\r\n let entry = edges.get(remappedIndex.id);\r\n if (!entry)\r\n edges.set(remappedIndex.id, entry = { });\r\n\r\n if (srcNormalPairs) {\r\n if (!entry.silhouettes)\r\n entry.silhouettes = { indices: new IndexBuffer(), endPointAndQuadIndices: new Uint32ArrayBuilder(), normalPairs: new Uint32ArrayBuilder() };\r\n\r\n entry.silhouettes.normalPairs.push(srcNormalPairs[curIndexIndex]);\r\n } else if (!entry.segments) {\r\n entry.segments = { indices: new IndexBuffer(), endPointAndQuadIndices: new Uint32ArrayBuilder() };\r\n }\r\n\r\n const segments = entry[type];\r\n assert(undefined !== segments);\r\n\r\n segments.indices.push(remappedIndex.index);\r\n segments.endPointAndQuadIndices.push(endPointAndQuad);\r\n }\r\n\r\n ++curIndexIndex;\r\n }\r\n}\r\n\r\nfunction remapPolylineEdges(src: TesselatedPolyline, nodes: Map<number, Node>, edges: Map<number, RemappedEdges>): void {\r\n const srcNextAndParam = new Uint32Array(src.nextIndicesAndParams.buffer, src.nextIndicesAndParams.byteOffset, src.nextIndicesAndParams.length / 4);\r\n const prevIter = src.prevIndices[Symbol.iterator]();\r\n let curIndexIndex = 0;\r\n const remappedIndex = { } as unknown as RemappedIndex;\r\n for (const srcIndex of src.indices) {\r\n if (remapIndex(remappedIndex, srcIndex, nodes)) {\r\n const prevIndex = prevIter.next().value;\r\n assert(undefined !== prevIndex);\r\n const newPrevIndex = remappedIndex.node.remappedIndices.get(prevIndex);\r\n assert(undefined !== newPrevIndex);\r\n\r\n let nextAndParam = srcNextAndParam[curIndexIndex];\r\n const nextIndex = (nextAndParam & 0x00ffffff) >>> 0;\r\n const newNextIndex = remappedIndex.node.remappedIndices.get(nextIndex);\r\n assert(undefined !== newNextIndex);\r\n nextAndParam = (nextAndParam & 0xff000000) | newNextIndex;\r\n\r\n let entry = edges.get(remappedIndex.id);\r\n if (!entry)\r\n edges.set(remappedIndex.id, entry = { });\r\n\r\n if (!entry.polylines)\r\n entry.polylines = new RemappedPolylineEdges();\r\n\r\n entry.polylines.indices.push(remappedIndex.index);\r\n entry.polylines.prevIndices.push(newPrevIndex);\r\n entry.polylines.nextIndicesAndParams.push(nextAndParam);\r\n }\r\n\r\n ++curIndexIndex;\r\n }\r\n}\r\n\r\nfunction remapIndexedEdges(src: IndexedEdgeParams, nodes: Map<number, Node>, edges: Map<number, RemappedEdges>): void {\r\n const srcEdgeData = src.edges.data;\r\n const numSegments = src.edges.numSegments;\r\n const silhouetteStartByteIndex = numSegments * 6 + src.edges.silhouettePadding;\r\n\r\n function getUint24EdgePair(byteIndex: number): [number, number] {\r\n return [srcEdgeData[byteIndex + 0] | (srcEdgeData[byteIndex + 1] << 8) | srcEdgeData[byteIndex + 2] << 16,\r\n srcEdgeData[byteIndex + 3] | (srcEdgeData[byteIndex + 4] << 8) | srcEdgeData[byteIndex + 5] << 16];\r\n }\r\n\r\n function setUint24EdgePair(indEdges: RemappedIndexEdges, value1: number, value2: number): void {\r\n indEdges.edges.push(value1 & 0x0000ff);\r\n indEdges.edges.push((value1 & 0x00ff00) >>> 8);\r\n indEdges.edges.push((value1 & 0xff0000) >>> 16);\r\n indEdges.edges.push(value2 & 0x0000ff);\r\n indEdges.edges.push((value2 & 0x00ff00) >>> 8);\r\n indEdges.edges.push((value2 & 0xff0000) >>> 16);\r\n }\r\n\r\n function getUint24SilPair(byteIndex: number): [number, number, number, number] {\r\n return [srcEdgeData[byteIndex + 0] | (srcEdgeData[byteIndex + 1] << 8) | srcEdgeData[byteIndex + 2] << 16,\r\n srcEdgeData[byteIndex + 3] | (srcEdgeData[byteIndex + 4] << 8) | srcEdgeData[byteIndex + 5] << 16,\r\n srcEdgeData[byteIndex + 6] | (srcEdgeData[byteIndex + 7] << 8), srcEdgeData[byteIndex + 8] | (srcEdgeData[byteIndex + 9] << 8)];\r\n }\r\n\r\n function setUint24SilPair(indSil: RemappedIndexEdges, value1: number, value2: number, norm1: number, norm2: number): void {\r\n indSil.silhouettes.push(value1 & 0x0000ff);\r\n indSil.silhouettes.push((value1 & 0x00ff00) >>> 8);\r\n indSil.silhouettes.push((value1 & 0xff0000) >>> 16);\r\n indSil.silhouettes.push(value2 & 0x0000ff);\r\n indSil.silhouettes.push((value2 & 0x00ff00) >>> 8);\r\n indSil.silhouettes.push((value2 & 0xff0000) >>> 16);\r\n indSil.silhouettes.push(norm1 & 0x0000ff);\r\n indSil.silhouettes.push((norm1 & 0x00ff00) >>> 8);\r\n indSil.silhouettes.push(norm2 & 0x0000ff);\r\n indSil.silhouettes.push((norm2 & 0x00ff00) >>> 8);\r\n }\r\n\r\n let maxIndex = 0;\r\n for (const srcIndex of src.indices)\r\n maxIndex = Math.max (srcIndex, maxIndex);\r\n\r\n const remappedIndex = { } as unknown as RemappedIndex;\r\n let es1Index = 0, es2Index = 0, n1 = 0, n2 = 0;\r\n for (let curSegment = 0, byteIndex = 0; curSegment <= maxIndex; ++curSegment) {\r\n if (curSegment < numSegments) { // edges\r\n [es1Index, es2Index] = getUint24EdgePair(byteIndex);\r\n byteIndex += 6;\r\n } else { // silhouettes\r\n byteIndex = silhouetteStartByteIndex + (curSegment - numSegments) * 10;\r\n [es1Index, es2Index, n1, n2] = getUint24SilPair(byteIndex);\r\n }\r\n\r\n if (remapIndex(remappedIndex, es1Index, nodes)) {\r\n let entry = edges.get(remappedIndex.id);\r\n if (!entry)\r\n edges.set(remappedIndex.id, entry = { });\r\n\r\n if (!entry.indexed)\r\n entry.indexed = { edges: new Uint8ArrayBuilder(), silhouettes: new Uint8ArrayBuilder() };\r\n\r\n if (curSegment < numSegments) { // edges\r\n const newE1Index = remappedIndex.node.remappedIndices.get(es1Index);\r\n assert(undefined !== newE1Index);\r\n const newE2Index = remappedIndex.node.remappedIndices.get(es2Index);\r\n assert(undefined !== newE2Index);\r\n setUint24EdgePair(entry.indexed, newE1Index, newE2Index);\r\n } else { // silhouettes\r\n const newS1Index = remappedIndex.node.remappedIndices.get(es1Index);\r\n assert(undefined !== newS1Index);\r\n const newS2Index = remappedIndex.node.remappedIndices.get(es2Index);\r\n assert(undefined !== newS2Index);\r\n setUint24SilPair(entry.indexed, newS1Index, newS2Index, n1, n2);\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction splitEdges(source: EdgeParams, nodes: Map<number, Node>): Map<number, EdgeParams> {\r\n const edges = new Map<number, RemappedEdges>();\r\n remapSegmentEdges(\"segments\", source, nodes, edges);\r\n remapSegmentEdges(\"silhouettes\", source, nodes, edges);\r\n\r\n if (source.polylines)\r\n remapPolylineEdges(source.polylines, nodes, edges);\r\n\r\n if (source.indexed)\r\n remapIndexedEdges(source.indexed, nodes, edges);\r\n\r\n const result = new Map<number, EdgeParams>();\r\n for (const [id, remappedEdges] of edges) {\r\n if (!remappedEdges.segments && !remappedEdges.silhouettes && !remappedEdges.indexed)\r\n continue;\r\n\r\n let edgeTable = { } as unknown as EdgeTable;\r\n let edgeIndices = { } as unknown as VertexIndices;\r\n if (remappedEdges.indexed) {\r\n const numSegmentEdges = remappedEdges.indexed.edges.length / 6;\r\n const numSilhouettes = remappedEdges.indexed.silhouettes.length / 10;\r\n const { width, height, silhouettePadding, silhouetteStartByteIndex } = calculateEdgeTableParams(numSegmentEdges, numSilhouettes, IModelApp.renderSystem.maxTextureSize);\r\n const data = new Uint8Array(width * height * 4);\r\n data.set(remappedEdges.indexed.edges.toTypedArray(), 0);\r\n if (numSilhouettes > 0)\r\n data.set(remappedEdges.indexed.silhouettes.toTypedArray(), silhouetteStartByteIndex + silhouettePadding);\r\n\r\n const numTotalEdges = numSegmentEdges + numSilhouettes;\r\n edgeIndices = new VertexIndices(new Uint8Array(numTotalEdges * 6 * 3));\r\n for (let i = 0; i < numTotalEdges; i++)\r\n for (let j = 0; j < 6; j++)\r\n edgeIndices.setNthIndex(i * 6 + j, i);\r\n\r\n edgeTable = {\r\n data,\r\n width,\r\n height,\r\n numSegments: numSegmentEdges,\r\n silhouettePadding,\r\n };\r\n }\r\n\r\n result.set(id, {\r\n weight: source.weight,\r\n linePixels: source.linePixels,\r\n segments: remappedEdges.segments ? {\r\n indices: remappedEdges.segments.indices.toVertexIndices(),\r\n endPointAndQuadIndices: remappedEdges.segments.endPointAndQuadIndices.toUint8Array(),\r\n } : undefined,\r\n silhouettes: remappedEdges.silhouettes ? {\r\n indices: remappedEdges.silhouettes.indices.toVertexIndices(),\r\n endPointAndQuadIndices: remappedEdges.silhouettes.endPointAndQuadIndices.toUint8Array(),\r\n normalPairs: remappedEdges.silhouettes.normalPairs.toUint8Array(),\r\n } : undefined,\r\n polylines: remappedEdges.polylines ? {\r\n indices: remappedEdges.polylines.indices.toVertexIndices(),\r\n prevIndices: remappedEdges.polylines.prevIndices.toVertexIndices(),\r\n nextIndicesAndParams: remappedEdges.polylines.nextIndicesAndParams.toUint8Array(),\r\n } : undefined,\r\n indexed: remappedEdges.indexed ? {\r\n indices: edgeIndices,\r\n edges: edgeTable,\r\n } : undefined,\r\n });\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport interface SplitMeshArgs extends SplitVertexTableArgs {\r\n params: MeshParams;\r\n}\r\n\r\nexport function splitMeshParams(args: SplitMeshArgs): Map<number, MeshParams> {\r\n const result = new Map<number, MeshParams>();\r\n\r\n const mat = args.params.surface.material;\r\n const atlasOffset = undefined !== mat && mat.isAtlas ? mat.vertexTableOffset : undefined;\r\n\r\n const nodes = VertexTableSplitter.split({\r\n indices: args.params.surface.indices,\r\n vertices: args.params.vertices,\r\n featureTable: args.featureTable,\r\n atlasOffset,\r\n }, args.computeNodeId);\r\n\r\n const edges = args.params.edges ? splitEdges(args.params.edges, nodes) : undefined;\r\n\r\n for (const [id, node] of nodes) {\r\n const { vertices, indices, material } = node.buildOutput(args.maxDimension);\r\n const params = new MeshParams(\r\n vertices, {\r\n type: args.params.surface.type,\r\n indices,\r\n fillFlags: args.params.surface.fillFlags,\r\n hasBakedLighting: args.params.surface.hasBakedLighting,\r\n textureMapping: args.params.surface.textureMapping,\r\n material: material !== undefined ? material : args.params.surface.material,\r\n },\r\n edges?.get(id),\r\n args.params.isPlanar,\r\n // ###TODO handle aux channels.......\r\n args.params.auxChannels,\r\n );\r\n\r\n result.set(id, params);\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport interface SplitPolylineArgs extends SplitVertexTableArgs {\r\n params: PolylineParams;\r\n}\r\n\r\ninterface PolylineNode extends Node {\r\n prevIndices?: IndexBuffer;\r\n nextIndicesAndParams?: Uint32ArrayBuilder;\r\n}\r\n\r\nexport function splitPolylineParams(args: SplitPolylineArgs): Map<number, PolylineParams> {\r\n const nodes = VertexTableSplitter.split({\r\n indices: args.params.polyline.indices,\r\n vertices: args.params.vertices,\r\n featureTable: args.featureTable,\r\n }, args.computeNodeId) as Map<number, PolylineNode>;\r\n\r\n const src = args.params.polyline;\r\n const srcNextAndParam = new Uint32Array(src.nextIndicesAndParams.buffer, src.nextIndicesAndParams.byteOffset, src.nextIndicesAndParams.length / 4);\r\n let curIndexIndex = 0;\r\n const remappedIndex = { } as unknown as RemappedIndex;\r\n for (const prevIndex of src.prevIndices) {\r\n if (remapIndex(remappedIndex, prevIndex, nodes)) {\r\n const node = remappedIndex.node as PolylineNode;\r\n if (!node.prevIndices) {\r\n assert(undefined === node.nextIndicesAndParams);\r\n node.prevIndices = new IndexBuffer(node.indices.numIndices);\r\n node.nextIndicesAndParams = new Uint32ArrayBuilder({ initialCapacity: node.indices.numIndices });\r\n } else {\r\n assert(undefined !== node.nextIndicesAndParams);\r\n }\r\n\r\n node.prevIndices.push(remappedIndex.index);\r\n\r\n let nextAndParam = srcNextAndParam[curIndexIndex];\r\n const nextIndex = (nextAndParam & 0x00ffffff) >>> 0;\r\n const newNextIndex = remappedIndex.node.remappedIndices.get(nextIndex);\r\n assert(undefined !== newNextIndex);\r\n nextAndParam = (nextAndParam & 0xff000000) | newNextIndex;\r\n node.nextIndicesAndParams.push(nextAndParam);\r\n }\r\n\r\n ++curIndexIndex;\r\n }\r\n\r\n const result = new Map<number, PolylineParams>();\r\n for (const [id, node] of nodes) {\r\n assert(undefined !== node.prevIndices && undefined !== node.nextIndicesAndParams);\r\n const { vertices, indices } = node.buildOutput(args.maxDimension);\r\n const params = new PolylineParams(\r\n vertices, {\r\n indices,\r\n prevIndices: node.prevIndices.toVertexIndices(),\r\n nextIndicesAndParams: node.nextIndicesAndParams.toUint8Array(),\r\n },\r\n args.params.weight,\r\n args.params.linePixels,\r\n args.params.isPlanar,\r\n args.params.type);\r\n\r\n result.set(id, params);\r\n }\r\n\r\n return result;\r\n}\r\n"]}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes