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

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 (1172) hide show
  1. package/CHANGELOG.md +78 -1
  2. package/lib/cjs/AccuDraw.d.ts +3 -4
  3. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  4. package/lib/cjs/AccuDraw.js +6 -7
  5. package/lib/cjs/AccuDraw.js.map +1 -1
  6. package/lib/cjs/AccuSnap.d.ts +7 -1
  7. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  8. package/lib/cjs/AccuSnap.js +24 -6
  9. package/lib/cjs/AccuSnap.js.map +1 -1
  10. package/lib/cjs/BackgroundMapGeometry.d.ts +3 -2
  11. package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
  12. package/lib/cjs/BackgroundMapGeometry.js +47 -7
  13. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  14. package/lib/cjs/BriefcaseConnection.d.ts +3 -3
  15. package/lib/cjs/BriefcaseConnection.js +3 -3
  16. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  17. package/lib/cjs/BriefcaseTxns.d.ts +2 -2
  18. package/lib/cjs/BriefcaseTxns.d.ts.map +1 -1
  19. package/lib/cjs/BriefcaseTxns.js +3 -3
  20. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  21. package/lib/cjs/ChangeFlags.d.ts +25 -12
  22. package/lib/cjs/ChangeFlags.d.ts.map +1 -1
  23. package/lib/cjs/ChangeFlags.js +24 -11
  24. package/lib/cjs/ChangeFlags.js.map +1 -1
  25. package/lib/cjs/CheckpointConnection.js +1 -1
  26. package/lib/cjs/CheckpointConnection.js.map +1 -1
  27. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  28. package/lib/cjs/DisplayStyleState.js +2 -1
  29. package/lib/cjs/DisplayStyleState.js.map +1 -1
  30. package/lib/cjs/DrawingViewState.d.ts +2 -2
  31. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  32. package/lib/cjs/DrawingViewState.js +3 -3
  33. package/lib/cjs/DrawingViewState.js.map +1 -1
  34. package/lib/cjs/ElementLocateManager.d.ts +0 -1
  35. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  36. package/lib/cjs/ElementLocateManager.js +11 -19
  37. package/lib/cjs/ElementLocateManager.js.map +1 -1
  38. package/lib/cjs/EnvironmentDecorations.js +1 -1
  39. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  40. package/lib/cjs/GeoServices.d.ts +37 -7
  41. package/lib/cjs/GeoServices.d.ts.map +1 -1
  42. package/lib/cjs/GeoServices.js +75 -25
  43. package/lib/cjs/GeoServices.js.map +1 -1
  44. package/lib/cjs/GraphicalEditingScope.d.ts +2 -2
  45. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  46. package/lib/cjs/GraphicalEditingScope.js +1 -1
  47. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  48. package/lib/cjs/HitDetail.d.ts +100 -29
  49. package/lib/cjs/HitDetail.d.ts.map +1 -1
  50. package/lib/cjs/HitDetail.js +89 -36
  51. package/lib/cjs/HitDetail.js.map +1 -1
  52. package/lib/cjs/IModelApp.d.ts +18 -14
  53. package/lib/cjs/IModelApp.d.ts.map +1 -1
  54. package/lib/cjs/IModelApp.js +17 -13
  55. package/lib/cjs/IModelApp.js.map +1 -1
  56. package/lib/cjs/IModelConnection.d.ts +64 -19
  57. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  58. package/lib/cjs/IModelConnection.js +131 -20
  59. package/lib/cjs/IModelConnection.js.map +1 -1
  60. package/lib/cjs/IpcApp.d.ts +1 -1
  61. package/lib/cjs/IpcApp.d.ts.map +1 -1
  62. package/lib/cjs/IpcApp.js +4 -4
  63. package/lib/cjs/IpcApp.js.map +1 -1
  64. package/lib/cjs/LocalhostIpcApp.js +1 -1
  65. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  66. package/lib/cjs/Marker.d.ts +1 -1
  67. package/lib/cjs/Marker.d.ts.map +1 -1
  68. package/lib/cjs/Marker.js +3 -3
  69. package/lib/cjs/Marker.js.map +1 -1
  70. package/lib/cjs/NativeApp.d.ts.map +1 -1
  71. package/lib/cjs/NativeApp.js +4 -4
  72. package/lib/cjs/NativeApp.js.map +1 -1
  73. package/lib/cjs/NoRenderApp.d.ts +1 -1
  74. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  75. package/lib/cjs/NoRenderApp.js +1 -1
  76. package/lib/cjs/NoRenderApp.js.map +1 -1
  77. package/lib/cjs/RealityDataSource.js +1 -1
  78. package/lib/cjs/RealityDataSource.js.map +1 -1
  79. package/lib/cjs/RealityDataSourceContextShareImpl.js +1 -1
  80. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  81. package/lib/cjs/SheetViewState.d.ts +9 -7
  82. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  83. package/lib/cjs/SheetViewState.js +22 -7
  84. package/lib/cjs/SheetViewState.js.map +1 -1
  85. package/lib/cjs/SpatialViewState.d.ts +20 -5
  86. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  87. package/lib/cjs/SpatialViewState.js +13 -5
  88. package/lib/cjs/SpatialViewState.js.map +1 -1
  89. package/lib/cjs/Sprites.js +2 -2
  90. package/lib/cjs/Sprites.js.map +1 -1
  91. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  92. package/lib/cjs/TentativePoint.js +10 -1
  93. package/lib/cjs/TentativePoint.js.map +1 -1
  94. package/lib/cjs/ViewContext.d.ts +19 -0
  95. package/lib/cjs/ViewContext.d.ts.map +1 -1
  96. package/lib/cjs/ViewContext.js +9 -0
  97. package/lib/cjs/ViewContext.js.map +1 -1
  98. package/lib/cjs/ViewCreator3d.d.ts +3 -6
  99. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  100. package/lib/cjs/ViewCreator3d.js +12 -33
  101. package/lib/cjs/ViewCreator3d.js.map +1 -1
  102. package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
  103. package/lib/cjs/ViewGlobalLocation.js +4 -3
  104. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  105. package/lib/cjs/ViewManager.d.ts +4 -2
  106. package/lib/cjs/ViewManager.d.ts.map +1 -1
  107. package/lib/cjs/ViewManager.js +4 -2
  108. package/lib/cjs/ViewManager.js.map +1 -1
  109. package/lib/cjs/ViewPose.d.ts +11 -11
  110. package/lib/cjs/ViewPose.d.ts.map +1 -1
  111. package/lib/cjs/ViewPose.js +17 -11
  112. package/lib/cjs/ViewPose.js.map +1 -1
  113. package/lib/cjs/ViewState.d.ts +44 -26
  114. package/lib/cjs/ViewState.d.ts.map +1 -1
  115. package/lib/cjs/ViewState.js +52 -25
  116. package/lib/cjs/ViewState.js.map +1 -1
  117. package/lib/cjs/ViewingSpace.js +1 -1
  118. package/lib/cjs/ViewingSpace.js.map +1 -1
  119. package/lib/cjs/Viewport.d.ts +59 -21
  120. package/lib/cjs/Viewport.d.ts.map +1 -1
  121. package/lib/cjs/Viewport.js +67 -24
  122. package/lib/cjs/Viewport.js.map +1 -1
  123. package/lib/cjs/ViewportSync.d.ts +2 -2
  124. package/lib/cjs/ViewportSync.d.ts.map +1 -1
  125. package/lib/cjs/ViewportSync.js +2 -2
  126. package/lib/cjs/ViewportSync.js.map +1 -1
  127. package/lib/cjs/common/FrontendLoggerCategory.d.ts.map +1 -0
  128. package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -0
  129. package/lib/cjs/common/ImageUtil.d.ts.map +1 -0
  130. package/lib/cjs/{ImageUtil.js → common/ImageUtil.js} +2 -0
  131. package/lib/cjs/common/ImageUtil.js.map +1 -0
  132. package/lib/cjs/common/ViewRect.d.ts.map +1 -0
  133. package/lib/cjs/common/ViewRect.js.map +1 -0
  134. package/lib/cjs/common/WorkerProxy.d.ts +73 -0
  135. package/lib/cjs/common/WorkerProxy.d.ts.map +1 -0
  136. package/lib/cjs/common/WorkerProxy.js +54 -0
  137. package/lib/cjs/common/WorkerProxy.js.map +1 -0
  138. package/lib/{esm → cjs/common}/gltf/GltfModel.d.ts +1 -1
  139. package/lib/cjs/common/gltf/GltfModel.d.ts.map +1 -0
  140. package/lib/cjs/common/gltf/GltfModel.js.map +1 -0
  141. package/lib/cjs/common/gltf/GltfParser.d.ts.map +1 -0
  142. package/lib/cjs/common/gltf/GltfParser.js.map +1 -0
  143. package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -0
  144. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -0
  145. package/lib/cjs/common/imdl/CompactEdges.d.ts +27 -0
  146. package/lib/cjs/common/imdl/CompactEdges.d.ts.map +1 -0
  147. package/lib/cjs/common/imdl/CompactEdges.js +96 -0
  148. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -0
  149. package/lib/cjs/common/imdl/ImdlModel.d.ts +186 -0
  150. package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -0
  151. package/lib/cjs/common/imdl/ImdlModel.js +71 -0
  152. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -0
  153. package/lib/cjs/common/imdl/ImdlSchema.d.ts +412 -0
  154. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -0
  155. package/lib/cjs/common/imdl/ImdlSchema.js +23 -0
  156. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -0
  157. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts +45 -0
  158. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -0
  159. package/lib/cjs/common/imdl/ParseImdlDocument.js +1011 -0
  160. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -0
  161. package/lib/cjs/common/render/AnimationNodeId.d.ts +11 -0
  162. package/lib/cjs/common/render/AnimationNodeId.d.ts.map +1 -0
  163. package/lib/cjs/common/render/AnimationNodeId.js +19 -0
  164. package/lib/cjs/common/render/AnimationNodeId.js.map +1 -0
  165. package/lib/{esm/render/RenderMaterial.d.ts → cjs/common/render/MaterialParams.d.ts} +7 -20
  166. package/lib/cjs/common/render/MaterialParams.d.ts.map +1 -0
  167. package/lib/cjs/{render/RenderMaterial.js → common/render/MaterialParams.js} +1 -1
  168. package/lib/cjs/common/render/MaterialParams.js.map +1 -0
  169. package/lib/cjs/common/render/TextureParams.d.ts +30 -0
  170. package/lib/cjs/common/render/TextureParams.d.ts.map +1 -0
  171. package/lib/cjs/{render/RenderTexture.js → common/render/TextureParams.js} +1 -1
  172. package/lib/cjs/common/render/TextureParams.js.map +1 -0
  173. package/lib/{esm → cjs/common}/render/primitives/AuxChannelTable.d.ts +12 -8
  174. package/lib/cjs/common/render/primitives/AuxChannelTable.d.ts.map +1 -0
  175. package/lib/cjs/{render → common/render}/primitives/AuxChannelTable.js +42 -9
  176. package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +1 -0
  177. package/lib/cjs/common/render/primitives/DisplayParams.d.ts.map +1 -0
  178. package/lib/cjs/common/render/primitives/DisplayParams.js.map +1 -0
  179. package/lib/cjs/common/render/primitives/EdgeParams.d.ts +94 -0
  180. package/lib/cjs/common/render/primitives/EdgeParams.d.ts.map +1 -0
  181. package/lib/cjs/common/render/primitives/EdgeParams.js +46 -0
  182. package/lib/cjs/common/render/primitives/EdgeParams.js.map +1 -0
  183. package/lib/cjs/common/render/primitives/MeshParams.d.ts +20 -0
  184. package/lib/cjs/common/render/primitives/MeshParams.d.ts.map +1 -0
  185. package/lib/cjs/common/render/primitives/MeshParams.js +10 -0
  186. package/lib/cjs/common/render/primitives/MeshParams.js.map +1 -0
  187. package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts +29 -0
  188. package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts.map +1 -0
  189. package/lib/cjs/common/render/primitives/MeshPrimitive.js +18 -0
  190. package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +1 -0
  191. package/lib/cjs/common/render/primitives/PointStringParams.d.ts +14 -0
  192. package/lib/cjs/common/render/primitives/PointStringParams.d.ts.map +1 -0
  193. package/lib/cjs/common/render/primitives/PointStringParams.js +10 -0
  194. package/lib/cjs/common/render/primitives/PointStringParams.js.map +1 -0
  195. package/lib/cjs/common/render/primitives/PolylineParams.d.ts +29 -0
  196. package/lib/cjs/common/render/primitives/PolylineParams.d.ts.map +1 -0
  197. package/lib/cjs/common/render/primitives/PolylineParams.js +10 -0
  198. package/lib/cjs/common/render/primitives/PolylineParams.js.map +1 -0
  199. package/lib/{esm → cjs/common}/render/primitives/SurfaceParams.d.ts +1 -1
  200. package/lib/cjs/common/render/primitives/SurfaceParams.d.ts.map +1 -0
  201. package/lib/cjs/common/render/primitives/SurfaceParams.js.map +1 -0
  202. package/lib/cjs/common/render/primitives/VertexIndices.d.ts +26 -0
  203. package/lib/cjs/common/render/primitives/VertexIndices.d.ts.map +1 -0
  204. package/lib/cjs/common/render/primitives/VertexIndices.js +64 -0
  205. package/lib/cjs/common/render/primitives/VertexIndices.js.map +1 -0
  206. package/lib/cjs/common/render/primitives/VertexTable.d.ts +45 -0
  207. package/lib/cjs/common/render/primitives/VertexTable.d.ts.map +1 -0
  208. package/lib/cjs/common/render/primitives/VertexTable.js +38 -0
  209. package/lib/cjs/common/render/primitives/VertexTable.js.map +1 -0
  210. package/lib/cjs/{render → common/render}/primitives/VertexTableSplitter.d.ts +23 -2
  211. package/lib/cjs/common/render/primitives/VertexTableSplitter.d.ts.map +1 -0
  212. package/lib/cjs/{render → common/render}/primitives/VertexTableSplitter.js +46 -35
  213. package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +1 -0
  214. package/lib/cjs/core-frontend.d.ts +45 -8
  215. package/lib/cjs/core-frontend.d.ts.map +1 -1
  216. package/lib/cjs/core-frontend.js +45 -8
  217. package/lib/cjs/core-frontend.js.map +1 -1
  218. package/lib/cjs/extension/ExtensionAdmin.js +1 -1
  219. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  220. package/lib/cjs/quantity-formatting/QuantityFormatter.js +1 -1
  221. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  222. package/lib/cjs/render/CreateRenderMaterialArgs.d.ts +24 -0
  223. package/lib/cjs/render/CreateRenderMaterialArgs.d.ts.map +1 -0
  224. package/lib/cjs/render/CreateRenderMaterialArgs.js +10 -0
  225. package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -0
  226. package/lib/{esm/render/RenderTexture.d.ts → cjs/render/CreateTextureArgs.d.ts} +4 -28
  227. package/lib/cjs/render/CreateTextureArgs.d.ts.map +1 -0
  228. package/lib/cjs/render/CreateTextureArgs.js +10 -0
  229. package/lib/cjs/render/CreateTextureArgs.js.map +1 -0
  230. package/lib/cjs/render/GraphicBranch.d.ts +5 -7
  231. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  232. package/lib/cjs/render/GraphicBranch.js +1 -9
  233. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  234. package/lib/cjs/render/InstancedGraphicParams.d.ts +3 -4
  235. package/lib/cjs/render/InstancedGraphicParams.d.ts.map +1 -1
  236. package/lib/cjs/render/InstancedGraphicParams.js.map +1 -1
  237. package/lib/cjs/render/MockRender.d.ts +4 -4
  238. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  239. package/lib/cjs/render/MockRender.js +1 -1
  240. package/lib/cjs/render/MockRender.js.map +1 -1
  241. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  242. package/lib/cjs/render/ParticleCollectionBuilder.js +5 -5
  243. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  244. package/lib/cjs/render/Pixel.d.ts +57 -0
  245. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  246. package/lib/cjs/render/Pixel.js +41 -0
  247. package/lib/cjs/render/Pixel.js.map +1 -1
  248. package/lib/cjs/render/RealityMeshParams.js +2 -2
  249. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  250. package/lib/cjs/render/RenderSystem.d.ts +24 -10
  251. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  252. package/lib/cjs/render/RenderSystem.js +7 -8
  253. package/lib/cjs/render/RenderSystem.js.map +1 -1
  254. package/lib/cjs/render/RenderTarget.d.ts +1 -1
  255. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  256. package/lib/cjs/render/RenderTarget.js.map +1 -1
  257. package/lib/cjs/render/VisibleFeature.d.ts +1 -1
  258. package/lib/cjs/render/VisibleFeature.d.ts.map +1 -1
  259. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  260. package/lib/cjs/render/primitives/EdgeParams.d.ts +2 -89
  261. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -1
  262. package/lib/cjs/render/primitives/EdgeParams.js +44 -80
  263. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  264. package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts +1 -0
  265. package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts.map +1 -1
  266. package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +1 -1
  267. package/lib/cjs/render/primitives/PointStringParams.d.ts +3 -11
  268. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +1 -1
  269. package/lib/cjs/render/primitives/PointStringParams.js +27 -30
  270. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -1
  271. package/lib/cjs/render/primitives/Polyface.d.ts +1 -1
  272. package/lib/cjs/render/primitives/Polyface.d.ts.map +1 -1
  273. package/lib/cjs/render/primitives/Polyface.js.map +1 -1
  274. package/lib/cjs/render/primitives/PolylineParams.d.ts +8 -37
  275. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -1
  276. package/lib/cjs/render/primitives/PolylineParams.js +40 -48
  277. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
  278. package/lib/cjs/render/primitives/Strokes.d.ts +1 -1
  279. package/lib/cjs/render/primitives/Strokes.d.ts.map +1 -1
  280. package/lib/cjs/render/primitives/Strokes.js.map +1 -1
  281. package/lib/cjs/render/primitives/VertexTableBuilder.d.ts +31 -0
  282. package/lib/cjs/render/primitives/VertexTableBuilder.d.ts.map +1 -0
  283. package/lib/cjs/render/primitives/{VertexTable.js → VertexTableBuilder.js} +62 -173
  284. package/lib/cjs/render/primitives/VertexTableBuilder.js.map +1 -0
  285. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +1 -1
  286. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  287. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  288. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +1 -1
  289. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  290. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +1 -1
  291. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  292. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts +1 -1
  293. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
  294. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js +1 -1
  295. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  296. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts +2 -1
  297. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  298. package/lib/cjs/render/primitives/mesh/MeshBuilder.js +5 -2
  299. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  300. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts +6 -5
  301. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  302. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js +7 -4
  303. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  304. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +58 -31
  305. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  306. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +25 -29
  307. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  308. package/lib/cjs/render/webgl/BatchState.js +1 -1
  309. package/lib/cjs/render/webgl/BatchState.js.map +1 -1
  310. package/lib/cjs/render/webgl/BranchState.d.ts +3 -0
  311. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  312. package/lib/cjs/render/webgl/BranchState.js +2 -0
  313. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  314. package/lib/cjs/render/webgl/CachedGeometry.d.ts +1 -1
  315. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  316. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  317. package/lib/cjs/render/webgl/ColorInfo.d.ts +1 -1
  318. package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
  319. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  320. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +2 -2
  321. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
  322. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  323. package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
  324. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  325. package/lib/cjs/render/webgl/Graphic.d.ts +7 -1
  326. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  327. package/lib/cjs/render/webgl/Graphic.js +7 -2
  328. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  329. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  330. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  331. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  332. package/lib/cjs/render/webgl/Material.d.ts +1 -1
  333. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  334. package/lib/cjs/render/webgl/Material.js.map +1 -1
  335. package/lib/cjs/render/webgl/Mesh.d.ts +2 -2
  336. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  337. package/lib/cjs/render/webgl/Mesh.js +1 -1
  338. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  339. package/lib/cjs/render/webgl/MeshData.d.ts +2 -2
  340. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
  341. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  342. package/lib/cjs/render/webgl/MeshGeometry.d.ts +1 -1
  343. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -1
  344. package/lib/cjs/render/webgl/PointString.d.ts +1 -1
  345. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  346. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  347. package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
  348. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  349. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  350. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  351. package/lib/cjs/render/webgl/RenderCommands.js +1 -1
  352. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  353. package/lib/cjs/render/webgl/SceneCompositor.d.ts +2 -1
  354. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  355. package/lib/cjs/render/webgl/SceneCompositor.js +5 -2
  356. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  357. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +1 -1
  358. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  359. package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
  360. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  361. package/lib/cjs/render/webgl/System.d.ts +7 -6
  362. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  363. package/lib/cjs/render/webgl/System.js +1 -1
  364. package/lib/cjs/render/webgl/System.js.map +1 -1
  365. package/lib/cjs/render/webgl/Target.d.ts +1 -1
  366. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  367. package/lib/cjs/render/webgl/Target.js +14 -12
  368. package/lib/cjs/render/webgl/Target.js.map +1 -1
  369. package/lib/cjs/render/webgl/Texture.d.ts +1 -1
  370. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  371. package/lib/cjs/render/webgl/Texture.js +1 -1
  372. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  373. package/lib/cjs/render/webgl/UniformHandle.js +1 -1
  374. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  375. package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
  376. package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
  377. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  378. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  379. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  380. package/lib/cjs/render/webgl/glsl/RealityMesh.js +32 -19
  381. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  382. package/lib/cjs/tile/B3dmReader.d.ts +1 -1
  383. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  384. package/lib/cjs/tile/B3dmReader.js +1 -1
  385. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  386. package/lib/cjs/tile/DynamicIModelTile.js +1 -1
  387. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  388. package/lib/cjs/tile/FetchCloudStorage.d.ts +15 -0
  389. package/lib/cjs/tile/FetchCloudStorage.d.ts.map +1 -0
  390. package/lib/cjs/tile/FetchCloudStorage.js +35 -0
  391. package/lib/cjs/tile/FetchCloudStorage.js.map +1 -0
  392. package/lib/cjs/tile/GltfReader.d.ts +3 -3
  393. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  394. package/lib/cjs/tile/GltfReader.js +15 -22
  395. package/lib/cjs/tile/GltfReader.js.map +1 -1
  396. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  397. package/lib/cjs/tile/IModelTile.js +11 -17
  398. package/lib/cjs/tile/IModelTile.js.map +1 -1
  399. package/lib/cjs/tile/IModelTileTree.d.ts +4 -1
  400. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  401. package/lib/cjs/tile/IModelTileTree.js +15 -0
  402. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  403. package/lib/cjs/tile/ImdlDecoder.d.ts +52 -0
  404. package/lib/cjs/tile/ImdlDecoder.d.ts.map +1 -0
  405. package/lib/cjs/tile/ImdlDecoder.js +35 -0
  406. package/lib/cjs/tile/ImdlDecoder.js.map +1 -0
  407. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +19 -0
  408. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -0
  409. package/lib/cjs/tile/ImdlGraphicsCreator.js +328 -0
  410. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -0
  411. package/lib/cjs/tile/ImdlParser.d.ts +26 -0
  412. package/lib/cjs/tile/ImdlParser.d.ts.map +1 -0
  413. package/lib/cjs/tile/ImdlParser.js +72 -0
  414. package/lib/cjs/tile/ImdlParser.js.map +1 -0
  415. package/lib/cjs/tile/ImdlReader.d.ts +16 -420
  416. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  417. package/lib/cjs/tile/ImdlReader.js +69 -902
  418. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  419. package/lib/cjs/tile/OPCFormatInterpreter.js +1 -1
  420. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  421. package/lib/cjs/tile/PntsReader.js +1 -1
  422. package/lib/cjs/tile/PntsReader.js.map +1 -1
  423. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  424. package/lib/cjs/tile/PrimaryTileTree.js +2 -1
  425. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  426. package/lib/cjs/tile/RealityTile.d.ts +8 -3
  427. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  428. package/lib/cjs/tile/RealityTile.js +4 -1
  429. package/lib/cjs/tile/RealityTile.js.map +1 -1
  430. package/lib/cjs/tile/RealityTileLoader.js +1 -1
  431. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  432. package/lib/cjs/tile/RealityTileTree.js +1 -1
  433. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  434. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +1 -1
  435. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  436. package/lib/cjs/tile/TileAdmin.d.ts +14 -11
  437. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  438. package/lib/cjs/tile/TileAdmin.js +9 -52
  439. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  440. package/lib/cjs/tile/internal.d.ts +8 -0
  441. package/lib/cjs/tile/internal.d.ts.map +1 -1
  442. package/lib/cjs/tile/internal.js +8 -0
  443. package/lib/cjs/tile/internal.js.map +1 -1
  444. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +8 -1
  445. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  446. package/lib/cjs/tile/map/ArcGisUtilities.js +21 -0
  447. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  448. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts +6 -4
  449. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  450. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js +6 -4
  451. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  452. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +2 -0
  453. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  454. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +4 -2
  455. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  456. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +55 -2
  457. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  458. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +96 -23
  459. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  460. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +15 -0
  461. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +1 -0
  462. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +59 -0
  463. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -0
  464. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts +44 -0
  465. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts.map +1 -0
  466. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.js +126 -0
  467. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.js.map +1 -0
  468. package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts +26 -0
  469. package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts.map +1 -0
  470. package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js +134 -0
  471. package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js.map +1 -0
  472. package/lib/cjs/tile/map/ImageryProviders/WebMercator.d.ts +6 -0
  473. package/lib/cjs/tile/map/ImageryProviders/WebMercator.d.ts.map +1 -0
  474. package/lib/cjs/tile/map/ImageryProviders/WebMercator.js +22 -0
  475. package/lib/cjs/tile/map/ImageryProviders/WebMercator.js.map +1 -0
  476. package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -1
  477. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  478. package/lib/cjs/tile/map/ImageryTileTree.js +16 -9
  479. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  480. package/lib/cjs/tile/map/MapFeatureInfo.d.ts +67 -7
  481. package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -1
  482. package/lib/cjs/tile/map/MapFeatureInfo.js +16 -2
  483. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  484. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  485. package/lib/cjs/tile/map/MapLayerImageryFormats.js +3 -0
  486. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  487. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +4 -1
  488. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  489. package/lib/cjs/tile/map/MapLayerImageryProvider.js +3 -1
  490. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  491. package/lib/cjs/tile/map/MapLayerSources.d.ts +4 -1
  492. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  493. package/lib/cjs/tile/map/MapLayerSources.js +3 -0
  494. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  495. package/lib/cjs/tile/map/MapTile.d.ts +6 -1
  496. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  497. package/lib/cjs/tile/map/MapTile.js +17 -8
  498. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  499. package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
  500. package/lib/cjs/tile/map/MapTileLoader.js +1 -15
  501. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  502. package/lib/cjs/tile/map/MapTileTree.d.ts +12 -3
  503. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  504. package/lib/cjs/tile/map/MapTileTree.js +41 -22
  505. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  506. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +2 -3
  507. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  508. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +3 -4
  509. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  510. package/lib/cjs/tile/map/MapTilingScheme.d.ts +4 -4
  511. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  512. package/lib/cjs/tile/map/MapTilingScheme.js +4 -4
  513. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  514. package/lib/cjs/tools/ElementSetTool.js +1 -1
  515. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  516. package/lib/cjs/tools/SelectTool.js +1 -1
  517. package/lib/cjs/tools/SelectTool.js.map +1 -1
  518. package/lib/cjs/tools/ToolAdmin.d.ts +8 -6
  519. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  520. package/lib/cjs/tools/ToolAdmin.js +9 -7
  521. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  522. package/lib/cjs/tools/ToolAssistance.d.ts +18 -0
  523. package/lib/cjs/tools/ToolAssistance.d.ts.map +1 -1
  524. package/lib/cjs/tools/ToolAssistance.js +8 -0
  525. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  526. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  527. package/lib/cjs/tools/ViewTool.js +3 -2
  528. package/lib/cjs/tools/ViewTool.js.map +1 -1
  529. package/lib/cjs/workers/ImdlParser/Worker.d.ts +20 -0
  530. package/lib/cjs/workers/ImdlParser/Worker.d.ts.map +1 -0
  531. package/lib/cjs/workers/ImdlParser/Worker.js +32 -0
  532. package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -0
  533. package/lib/cjs/workers/ImdlParser/webpack.config.js +40 -0
  534. package/lib/cjs/workers/RegisterWorker.d.ts +9 -0
  535. package/lib/cjs/workers/RegisterWorker.d.ts.map +1 -0
  536. package/lib/cjs/workers/RegisterWorker.js +36 -0
  537. package/lib/cjs/workers/RegisterWorker.js.map +1 -0
  538. package/lib/esm/AccuDraw.d.ts +3 -4
  539. package/lib/esm/AccuDraw.d.ts.map +1 -1
  540. package/lib/esm/AccuDraw.js +6 -7
  541. package/lib/esm/AccuDraw.js.map +1 -1
  542. package/lib/esm/AccuSnap.d.ts +7 -1
  543. package/lib/esm/AccuSnap.d.ts.map +1 -1
  544. package/lib/esm/AccuSnap.js +24 -6
  545. package/lib/esm/AccuSnap.js.map +1 -1
  546. package/lib/esm/BackgroundMapGeometry.d.ts +3 -2
  547. package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
  548. package/lib/esm/BackgroundMapGeometry.js +47 -7
  549. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  550. package/lib/esm/BriefcaseConnection.d.ts +3 -3
  551. package/lib/esm/BriefcaseConnection.js +3 -3
  552. package/lib/esm/BriefcaseConnection.js.map +1 -1
  553. package/lib/esm/BriefcaseTxns.d.ts +2 -2
  554. package/lib/esm/BriefcaseTxns.d.ts.map +1 -1
  555. package/lib/esm/BriefcaseTxns.js +3 -3
  556. package/lib/esm/BriefcaseTxns.js.map +1 -1
  557. package/lib/esm/ChangeFlags.d.ts +25 -12
  558. package/lib/esm/ChangeFlags.d.ts.map +1 -1
  559. package/lib/esm/ChangeFlags.js +24 -11
  560. package/lib/esm/ChangeFlags.js.map +1 -1
  561. package/lib/esm/CheckpointConnection.js +1 -1
  562. package/lib/esm/CheckpointConnection.js.map +1 -1
  563. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  564. package/lib/esm/DisplayStyleState.js +2 -1
  565. package/lib/esm/DisplayStyleState.js.map +1 -1
  566. package/lib/esm/DrawingViewState.d.ts +2 -2
  567. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  568. package/lib/esm/DrawingViewState.js +3 -3
  569. package/lib/esm/DrawingViewState.js.map +1 -1
  570. package/lib/esm/ElementLocateManager.d.ts +0 -1
  571. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  572. package/lib/esm/ElementLocateManager.js +12 -20
  573. package/lib/esm/ElementLocateManager.js.map +1 -1
  574. package/lib/esm/EnvironmentDecorations.js +1 -1
  575. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  576. package/lib/esm/GeoServices.d.ts +37 -7
  577. package/lib/esm/GeoServices.d.ts.map +1 -1
  578. package/lib/esm/GeoServices.js +75 -25
  579. package/lib/esm/GeoServices.js.map +1 -1
  580. package/lib/esm/GraphicalEditingScope.d.ts +2 -2
  581. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  582. package/lib/esm/GraphicalEditingScope.js +2 -2
  583. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  584. package/lib/esm/HitDetail.d.ts +100 -29
  585. package/lib/esm/HitDetail.d.ts.map +1 -1
  586. package/lib/esm/HitDetail.js +90 -37
  587. package/lib/esm/HitDetail.js.map +1 -1
  588. package/lib/esm/IModelApp.d.ts +18 -14
  589. package/lib/esm/IModelApp.d.ts.map +1 -1
  590. package/lib/esm/IModelApp.js +17 -13
  591. package/lib/esm/IModelApp.js.map +1 -1
  592. package/lib/esm/IModelConnection.d.ts +64 -19
  593. package/lib/esm/IModelConnection.d.ts.map +1 -1
  594. package/lib/esm/IModelConnection.js +132 -21
  595. package/lib/esm/IModelConnection.js.map +1 -1
  596. package/lib/esm/IpcApp.d.ts +1 -1
  597. package/lib/esm/IpcApp.d.ts.map +1 -1
  598. package/lib/esm/IpcApp.js +5 -5
  599. package/lib/esm/IpcApp.js.map +1 -1
  600. package/lib/esm/LocalhostIpcApp.js +2 -2
  601. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  602. package/lib/esm/Marker.d.ts +1 -1
  603. package/lib/esm/Marker.d.ts.map +1 -1
  604. package/lib/esm/Marker.js +3 -3
  605. package/lib/esm/Marker.js.map +1 -1
  606. package/lib/esm/NativeApp.d.ts.map +1 -1
  607. package/lib/esm/NativeApp.js +5 -5
  608. package/lib/esm/NativeApp.js.map +1 -1
  609. package/lib/esm/NoRenderApp.d.ts +1 -1
  610. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  611. package/lib/esm/NoRenderApp.js +1 -1
  612. package/lib/esm/NoRenderApp.js.map +1 -1
  613. package/lib/esm/RealityDataSource.js +1 -1
  614. package/lib/esm/RealityDataSource.js.map +1 -1
  615. package/lib/esm/RealityDataSourceContextShareImpl.js +1 -1
  616. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  617. package/lib/esm/SheetViewState.d.ts +9 -7
  618. package/lib/esm/SheetViewState.d.ts.map +1 -1
  619. package/lib/esm/SheetViewState.js +22 -7
  620. package/lib/esm/SheetViewState.js.map +1 -1
  621. package/lib/esm/SpatialViewState.d.ts +20 -5
  622. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  623. package/lib/esm/SpatialViewState.js +13 -5
  624. package/lib/esm/SpatialViewState.js.map +1 -1
  625. package/lib/esm/Sprites.js +2 -2
  626. package/lib/esm/Sprites.js.map +1 -1
  627. package/lib/esm/TentativePoint.d.ts.map +1 -1
  628. package/lib/esm/TentativePoint.js +10 -1
  629. package/lib/esm/TentativePoint.js.map +1 -1
  630. package/lib/esm/ViewContext.d.ts +19 -0
  631. package/lib/esm/ViewContext.d.ts.map +1 -1
  632. package/lib/esm/ViewContext.js +9 -0
  633. package/lib/esm/ViewContext.js.map +1 -1
  634. package/lib/esm/ViewCreator3d.d.ts +3 -6
  635. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  636. package/lib/esm/ViewCreator3d.js +14 -35
  637. package/lib/esm/ViewCreator3d.js.map +1 -1
  638. package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
  639. package/lib/esm/ViewGlobalLocation.js +4 -3
  640. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  641. package/lib/esm/ViewManager.d.ts +4 -2
  642. package/lib/esm/ViewManager.d.ts.map +1 -1
  643. package/lib/esm/ViewManager.js +4 -2
  644. package/lib/esm/ViewManager.js.map +1 -1
  645. package/lib/esm/ViewPose.d.ts +11 -11
  646. package/lib/esm/ViewPose.d.ts.map +1 -1
  647. package/lib/esm/ViewPose.js +17 -11
  648. package/lib/esm/ViewPose.js.map +1 -1
  649. package/lib/esm/ViewState.d.ts +44 -26
  650. package/lib/esm/ViewState.d.ts.map +1 -1
  651. package/lib/esm/ViewState.js +52 -25
  652. package/lib/esm/ViewState.js.map +1 -1
  653. package/lib/esm/ViewingSpace.js +1 -1
  654. package/lib/esm/ViewingSpace.js.map +1 -1
  655. package/lib/esm/Viewport.d.ts +59 -21
  656. package/lib/esm/Viewport.d.ts.map +1 -1
  657. package/lib/esm/Viewport.js +67 -24
  658. package/lib/esm/Viewport.js.map +1 -1
  659. package/lib/esm/ViewportSync.d.ts +2 -2
  660. package/lib/esm/ViewportSync.d.ts.map +1 -1
  661. package/lib/esm/ViewportSync.js +2 -2
  662. package/lib/esm/ViewportSync.js.map +1 -1
  663. package/lib/esm/common/FrontendLoggerCategory.d.ts.map +1 -0
  664. package/lib/esm/common/FrontendLoggerCategory.js.map +1 -0
  665. package/lib/esm/common/ImageUtil.d.ts.map +1 -0
  666. package/lib/esm/{ImageUtil.js → common/ImageUtil.js} +2 -0
  667. package/lib/esm/common/ImageUtil.js.map +1 -0
  668. package/lib/esm/common/ViewRect.d.ts.map +1 -0
  669. package/lib/esm/common/ViewRect.js.map +1 -0
  670. package/lib/esm/common/WorkerProxy.d.ts +73 -0
  671. package/lib/esm/common/WorkerProxy.d.ts.map +1 -0
  672. package/lib/esm/common/WorkerProxy.js +50 -0
  673. package/lib/esm/common/WorkerProxy.js.map +1 -0
  674. package/lib/{cjs → esm/common}/gltf/GltfModel.d.ts +1 -1
  675. package/lib/esm/common/gltf/GltfModel.d.ts.map +1 -0
  676. package/lib/esm/common/gltf/GltfModel.js.map +1 -0
  677. package/lib/esm/common/gltf/GltfParser.d.ts.map +1 -0
  678. package/lib/esm/common/gltf/GltfParser.js.map +1 -0
  679. package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -0
  680. package/lib/esm/common/gltf/GltfSchema.js.map +1 -0
  681. package/lib/esm/common/imdl/CompactEdges.d.ts +27 -0
  682. package/lib/esm/common/imdl/CompactEdges.d.ts.map +1 -0
  683. package/lib/esm/common/imdl/CompactEdges.js +92 -0
  684. package/lib/esm/common/imdl/CompactEdges.js.map +1 -0
  685. package/lib/esm/common/imdl/ImdlModel.d.ts +186 -0
  686. package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -0
  687. package/lib/esm/common/imdl/ImdlModel.js +67 -0
  688. package/lib/esm/common/imdl/ImdlModel.js.map +1 -0
  689. package/lib/esm/common/imdl/ImdlSchema.d.ts +412 -0
  690. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -0
  691. package/lib/esm/common/imdl/ImdlSchema.js +20 -0
  692. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -0
  693. package/lib/esm/common/imdl/ParseImdlDocument.d.ts +45 -0
  694. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -0
  695. package/lib/esm/common/imdl/ParseImdlDocument.js +1003 -0
  696. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -0
  697. package/lib/esm/common/render/AnimationNodeId.d.ts +11 -0
  698. package/lib/esm/common/render/AnimationNodeId.d.ts.map +1 -0
  699. package/lib/esm/common/render/AnimationNodeId.js +16 -0
  700. package/lib/esm/common/render/AnimationNodeId.js.map +1 -0
  701. package/lib/{cjs/render/RenderMaterial.d.ts → esm/common/render/MaterialParams.d.ts} +7 -20
  702. package/lib/esm/common/render/MaterialParams.d.ts.map +1 -0
  703. package/lib/esm/{render/RenderMaterial.js → common/render/MaterialParams.js} +1 -1
  704. package/lib/esm/common/render/MaterialParams.js.map +1 -0
  705. package/lib/esm/common/render/TextureParams.d.ts +30 -0
  706. package/lib/esm/common/render/TextureParams.d.ts.map +1 -0
  707. package/lib/esm/{render/RenderTexture.js → common/render/TextureParams.js} +1 -1
  708. package/lib/esm/common/render/TextureParams.js.map +1 -0
  709. package/lib/{cjs → esm/common}/render/primitives/AuxChannelTable.d.ts +12 -8
  710. package/lib/esm/common/render/primitives/AuxChannelTable.d.ts.map +1 -0
  711. package/lib/esm/{render → common/render}/primitives/AuxChannelTable.js +42 -9
  712. package/lib/esm/common/render/primitives/AuxChannelTable.js.map +1 -0
  713. package/lib/esm/common/render/primitives/DisplayParams.d.ts.map +1 -0
  714. package/lib/esm/common/render/primitives/DisplayParams.js.map +1 -0
  715. package/lib/esm/common/render/primitives/EdgeParams.d.ts +94 -0
  716. package/lib/esm/common/render/primitives/EdgeParams.d.ts.map +1 -0
  717. package/lib/esm/common/render/primitives/EdgeParams.js +42 -0
  718. package/lib/esm/common/render/primitives/EdgeParams.js.map +1 -0
  719. package/lib/esm/common/render/primitives/MeshParams.d.ts +20 -0
  720. package/lib/esm/common/render/primitives/MeshParams.d.ts.map +1 -0
  721. package/lib/esm/common/render/primitives/MeshParams.js +9 -0
  722. package/lib/esm/common/render/primitives/MeshParams.js.map +1 -0
  723. package/lib/esm/common/render/primitives/MeshPrimitive.d.ts +29 -0
  724. package/lib/esm/common/render/primitives/MeshPrimitive.d.ts.map +1 -0
  725. package/lib/esm/common/render/primitives/MeshPrimitive.js +15 -0
  726. package/lib/esm/common/render/primitives/MeshPrimitive.js.map +1 -0
  727. package/lib/esm/common/render/primitives/PointStringParams.d.ts +14 -0
  728. package/lib/esm/common/render/primitives/PointStringParams.d.ts.map +1 -0
  729. package/lib/esm/common/render/primitives/PointStringParams.js +9 -0
  730. package/lib/esm/common/render/primitives/PointStringParams.js.map +1 -0
  731. package/lib/esm/common/render/primitives/PolylineParams.d.ts +29 -0
  732. package/lib/esm/common/render/primitives/PolylineParams.d.ts.map +1 -0
  733. package/lib/esm/common/render/primitives/PolylineParams.js +9 -0
  734. package/lib/esm/common/render/primitives/PolylineParams.js.map +1 -0
  735. package/lib/{cjs → esm/common}/render/primitives/SurfaceParams.d.ts +1 -1
  736. package/lib/esm/common/render/primitives/SurfaceParams.d.ts.map +1 -0
  737. package/lib/esm/common/render/primitives/SurfaceParams.js.map +1 -0
  738. package/lib/esm/common/render/primitives/VertexIndices.d.ts +26 -0
  739. package/lib/esm/common/render/primitives/VertexIndices.d.ts.map +1 -0
  740. package/lib/esm/common/render/primitives/VertexIndices.js +60 -0
  741. package/lib/esm/common/render/primitives/VertexIndices.js.map +1 -0
  742. package/lib/esm/common/render/primitives/VertexTable.d.ts +45 -0
  743. package/lib/esm/common/render/primitives/VertexTable.d.ts.map +1 -0
  744. package/lib/esm/common/render/primitives/VertexTable.js +34 -0
  745. package/lib/esm/common/render/primitives/VertexTable.js.map +1 -0
  746. package/lib/esm/{render → common/render}/primitives/VertexTableSplitter.d.ts +23 -2
  747. package/lib/esm/common/render/primitives/VertexTableSplitter.d.ts.map +1 -0
  748. package/lib/esm/{render → common/render}/primitives/VertexTableSplitter.js +44 -33
  749. package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +1 -0
  750. package/lib/esm/core-frontend.d.ts +45 -8
  751. package/lib/esm/core-frontend.d.ts.map +1 -1
  752. package/lib/esm/core-frontend.js +45 -8
  753. package/lib/esm/core-frontend.js.map +1 -1
  754. package/lib/esm/extension/ExtensionAdmin.js +1 -1
  755. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  756. package/lib/esm/quantity-formatting/QuantityFormatter.js +1 -1
  757. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  758. package/lib/esm/render/CreateRenderMaterialArgs.d.ts +24 -0
  759. package/lib/esm/render/CreateRenderMaterialArgs.d.ts.map +1 -0
  760. package/lib/esm/render/CreateRenderMaterialArgs.js +9 -0
  761. package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -0
  762. package/lib/{cjs/render/RenderTexture.d.ts → esm/render/CreateTextureArgs.d.ts} +4 -28
  763. package/lib/esm/render/CreateTextureArgs.d.ts.map +1 -0
  764. package/lib/esm/render/CreateTextureArgs.js +9 -0
  765. package/lib/esm/render/CreateTextureArgs.js.map +1 -0
  766. package/lib/esm/render/GraphicBranch.d.ts +5 -7
  767. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  768. package/lib/esm/render/GraphicBranch.js +0 -8
  769. package/lib/esm/render/GraphicBranch.js.map +1 -1
  770. package/lib/esm/render/InstancedGraphicParams.d.ts +3 -4
  771. package/lib/esm/render/InstancedGraphicParams.d.ts.map +1 -1
  772. package/lib/esm/render/InstancedGraphicParams.js.map +1 -1
  773. package/lib/esm/render/MockRender.d.ts +4 -4
  774. package/lib/esm/render/MockRender.d.ts.map +1 -1
  775. package/lib/esm/render/MockRender.js +1 -1
  776. package/lib/esm/render/MockRender.js.map +1 -1
  777. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  778. package/lib/esm/render/ParticleCollectionBuilder.js +5 -5
  779. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  780. package/lib/esm/render/Pixel.d.ts +57 -0
  781. package/lib/esm/render/Pixel.d.ts.map +1 -1
  782. package/lib/esm/render/Pixel.js +41 -0
  783. package/lib/esm/render/Pixel.js.map +1 -1
  784. package/lib/esm/render/RealityMeshParams.js +2 -2
  785. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  786. package/lib/esm/render/RenderSystem.d.ts +24 -10
  787. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  788. package/lib/esm/render/RenderSystem.js +8 -9
  789. package/lib/esm/render/RenderSystem.js.map +1 -1
  790. package/lib/esm/render/RenderTarget.d.ts +1 -1
  791. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  792. package/lib/esm/render/RenderTarget.js.map +1 -1
  793. package/lib/esm/render/VisibleFeature.d.ts +1 -1
  794. package/lib/esm/render/VisibleFeature.d.ts.map +1 -1
  795. package/lib/esm/render/VisibleFeature.js.map +1 -1
  796. package/lib/esm/render/primitives/EdgeParams.d.ts +2 -89
  797. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -1
  798. package/lib/esm/render/primitives/EdgeParams.js +38 -74
  799. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  800. package/lib/esm/render/primitives/PointCloudPrimitive.d.ts +1 -0
  801. package/lib/esm/render/primitives/PointCloudPrimitive.d.ts.map +1 -1
  802. package/lib/esm/render/primitives/PointCloudPrimitive.js.map +1 -1
  803. package/lib/esm/render/primitives/PointStringParams.d.ts +3 -11
  804. package/lib/esm/render/primitives/PointStringParams.d.ts.map +1 -1
  805. package/lib/esm/render/primitives/PointStringParams.js +25 -28
  806. package/lib/esm/render/primitives/PointStringParams.js.map +1 -1
  807. package/lib/esm/render/primitives/Polyface.d.ts +1 -1
  808. package/lib/esm/render/primitives/Polyface.d.ts.map +1 -1
  809. package/lib/esm/render/primitives/Polyface.js.map +1 -1
  810. package/lib/esm/render/primitives/PolylineParams.d.ts +8 -37
  811. package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -1
  812. package/lib/esm/render/primitives/PolylineParams.js +34 -43
  813. package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
  814. package/lib/esm/render/primitives/Strokes.d.ts +1 -1
  815. package/lib/esm/render/primitives/Strokes.d.ts.map +1 -1
  816. package/lib/esm/render/primitives/Strokes.js.map +1 -1
  817. package/lib/esm/render/primitives/VertexTableBuilder.d.ts +31 -0
  818. package/lib/esm/render/primitives/VertexTableBuilder.d.ts.map +1 -0
  819. package/lib/esm/render/primitives/{VertexTable.js → VertexTableBuilder.js} +62 -170
  820. package/lib/esm/render/primitives/VertexTableBuilder.js.map +1 -0
  821. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +1 -1
  822. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  823. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  824. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +1 -1
  825. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  826. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +1 -1
  827. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  828. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts +1 -1
  829. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
  830. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js +1 -1
  831. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  832. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts +2 -1
  833. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  834. package/lib/esm/render/primitives/mesh/MeshBuilder.js +5 -2
  835. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  836. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts +6 -5
  837. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  838. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js +8 -5
  839. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  840. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +58 -31
  841. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  842. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +26 -30
  843. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  844. package/lib/esm/render/webgl/BatchState.js +1 -1
  845. package/lib/esm/render/webgl/BatchState.js.map +1 -1
  846. package/lib/esm/render/webgl/BranchState.d.ts +3 -0
  847. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  848. package/lib/esm/render/webgl/BranchState.js +2 -0
  849. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  850. package/lib/esm/render/webgl/CachedGeometry.d.ts +1 -1
  851. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  852. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  853. package/lib/esm/render/webgl/ColorInfo.d.ts +1 -1
  854. package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
  855. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  856. package/lib/esm/render/webgl/EdgeGeometry.d.ts +2 -2
  857. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
  858. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  859. package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
  860. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  861. package/lib/esm/render/webgl/Graphic.d.ts +7 -1
  862. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  863. package/lib/esm/render/webgl/Graphic.js +7 -2
  864. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  865. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  866. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  867. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  868. package/lib/esm/render/webgl/Material.d.ts +1 -1
  869. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  870. package/lib/esm/render/webgl/Material.js.map +1 -1
  871. package/lib/esm/render/webgl/Mesh.d.ts +2 -2
  872. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  873. package/lib/esm/render/webgl/Mesh.js +1 -1
  874. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  875. package/lib/esm/render/webgl/MeshData.d.ts +2 -2
  876. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
  877. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  878. package/lib/esm/render/webgl/MeshGeometry.d.ts +1 -1
  879. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -1
  880. package/lib/esm/render/webgl/PointString.d.ts +1 -1
  881. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  882. package/lib/esm/render/webgl/PointString.js.map +1 -1
  883. package/lib/esm/render/webgl/Polyline.d.ts +1 -1
  884. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  885. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  886. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  887. package/lib/esm/render/webgl/RenderCommands.js +1 -1
  888. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  889. package/lib/esm/render/webgl/SceneCompositor.d.ts +2 -1
  890. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  891. package/lib/esm/render/webgl/SceneCompositor.js +5 -2
  892. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  893. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +1 -1
  894. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  895. package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
  896. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  897. package/lib/esm/render/webgl/System.d.ts +7 -6
  898. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  899. package/lib/esm/render/webgl/System.js +1 -1
  900. package/lib/esm/render/webgl/System.js.map +1 -1
  901. package/lib/esm/render/webgl/Target.d.ts +1 -1
  902. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  903. package/lib/esm/render/webgl/Target.js +13 -11
  904. package/lib/esm/render/webgl/Target.js.map +1 -1
  905. package/lib/esm/render/webgl/Texture.d.ts +1 -1
  906. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  907. package/lib/esm/render/webgl/Texture.js +1 -1
  908. package/lib/esm/render/webgl/Texture.js.map +1 -1
  909. package/lib/esm/render/webgl/UniformHandle.js +1 -1
  910. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  911. package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
  912. package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
  913. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  914. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  915. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  916. package/lib/esm/render/webgl/glsl/RealityMesh.js +32 -19
  917. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  918. package/lib/esm/tile/B3dmReader.d.ts +1 -1
  919. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  920. package/lib/esm/tile/B3dmReader.js +1 -1
  921. package/lib/esm/tile/B3dmReader.js.map +1 -1
  922. package/lib/esm/tile/DynamicIModelTile.js +1 -1
  923. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  924. package/lib/esm/tile/FetchCloudStorage.d.ts +15 -0
  925. package/lib/esm/tile/FetchCloudStorage.d.ts.map +1 -0
  926. package/lib/esm/tile/FetchCloudStorage.js +31 -0
  927. package/lib/esm/tile/FetchCloudStorage.js.map +1 -0
  928. package/lib/esm/tile/GltfReader.d.ts +3 -3
  929. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  930. package/lib/esm/tile/GltfReader.js +15 -22
  931. package/lib/esm/tile/GltfReader.js.map +1 -1
  932. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  933. package/lib/esm/tile/IModelTile.js +12 -18
  934. package/lib/esm/tile/IModelTile.js.map +1 -1
  935. package/lib/esm/tile/IModelTileTree.d.ts +4 -1
  936. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  937. package/lib/esm/tile/IModelTileTree.js +16 -1
  938. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  939. package/lib/esm/tile/ImdlDecoder.d.ts +52 -0
  940. package/lib/esm/tile/ImdlDecoder.d.ts.map +1 -0
  941. package/lib/esm/tile/ImdlDecoder.js +31 -0
  942. package/lib/esm/tile/ImdlDecoder.js.map +1 -0
  943. package/lib/esm/tile/ImdlGraphicsCreator.d.ts +19 -0
  944. package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -0
  945. package/lib/esm/tile/ImdlGraphicsCreator.js +324 -0
  946. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -0
  947. package/lib/esm/tile/ImdlParser.d.ts +26 -0
  948. package/lib/esm/tile/ImdlParser.d.ts.map +1 -0
  949. package/lib/esm/tile/ImdlParser.js +68 -0
  950. package/lib/esm/tile/ImdlParser.js.map +1 -0
  951. package/lib/esm/tile/ImdlReader.d.ts +16 -420
  952. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  953. package/lib/esm/tile/ImdlReader.js +71 -903
  954. package/lib/esm/tile/ImdlReader.js.map +1 -1
  955. package/lib/esm/tile/OPCFormatInterpreter.js +1 -1
  956. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  957. package/lib/esm/tile/PntsReader.js +1 -1
  958. package/lib/esm/tile/PntsReader.js.map +1 -1
  959. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  960. package/lib/esm/tile/PrimaryTileTree.js +2 -1
  961. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  962. package/lib/esm/tile/RealityTile.d.ts +8 -3
  963. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  964. package/lib/esm/tile/RealityTile.js +4 -1
  965. package/lib/esm/tile/RealityTile.js.map +1 -1
  966. package/lib/esm/tile/RealityTileLoader.js +1 -1
  967. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  968. package/lib/esm/tile/RealityTileTree.js +1 -1
  969. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  970. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +1 -1
  971. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  972. package/lib/esm/tile/TileAdmin.d.ts +14 -11
  973. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  974. package/lib/esm/tile/TileAdmin.js +10 -30
  975. package/lib/esm/tile/TileAdmin.js.map +1 -1
  976. package/lib/esm/tile/internal.d.ts +8 -0
  977. package/lib/esm/tile/internal.d.ts.map +1 -1
  978. package/lib/esm/tile/internal.js +8 -0
  979. package/lib/esm/tile/internal.js.map +1 -1
  980. package/lib/esm/tile/map/ArcGisUtilities.d.ts +8 -1
  981. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  982. package/lib/esm/tile/map/ArcGisUtilities.js +21 -0
  983. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  984. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts +6 -4
  985. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  986. package/lib/esm/tile/map/EllipsoidTerrainProvider.js +6 -4
  987. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  988. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +2 -0
  989. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  990. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +4 -2
  991. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  992. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +55 -2
  993. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  994. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +96 -24
  995. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  996. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +15 -0
  997. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +1 -0
  998. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +55 -0
  999. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -0
  1000. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts +44 -0
  1001. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts.map +1 -0
  1002. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.js +122 -0
  1003. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.js.map +1 -0
  1004. package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts +26 -0
  1005. package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts.map +1 -0
  1006. package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js +130 -0
  1007. package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js.map +1 -0
  1008. package/lib/esm/tile/map/ImageryProviders/WebMercator.d.ts +6 -0
  1009. package/lib/esm/tile/map/ImageryProviders/WebMercator.d.ts.map +1 -0
  1010. package/lib/esm/tile/map/ImageryProviders/WebMercator.js +18 -0
  1011. package/lib/esm/tile/map/ImageryProviders/WebMercator.js.map +1 -0
  1012. package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -1
  1013. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  1014. package/lib/esm/tile/map/ImageryTileTree.js +16 -9
  1015. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  1016. package/lib/esm/tile/map/MapFeatureInfo.d.ts +67 -7
  1017. package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -1
  1018. package/lib/esm/tile/map/MapFeatureInfo.js +14 -1
  1019. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  1020. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  1021. package/lib/esm/tile/map/MapLayerImageryFormats.js +3 -0
  1022. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  1023. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +4 -1
  1024. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  1025. package/lib/esm/tile/map/MapLayerImageryProvider.js +3 -1
  1026. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  1027. package/lib/esm/tile/map/MapLayerSources.d.ts +4 -1
  1028. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  1029. package/lib/esm/tile/map/MapLayerSources.js +3 -0
  1030. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  1031. package/lib/esm/tile/map/MapTile.d.ts +6 -1
  1032. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  1033. package/lib/esm/tile/map/MapTile.js +17 -8
  1034. package/lib/esm/tile/map/MapTile.js.map +1 -1
  1035. package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
  1036. package/lib/esm/tile/map/MapTileLoader.js +1 -15
  1037. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  1038. package/lib/esm/tile/map/MapTileTree.d.ts +12 -3
  1039. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  1040. package/lib/esm/tile/map/MapTileTree.js +42 -23
  1041. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  1042. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +2 -3
  1043. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  1044. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +3 -4
  1045. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  1046. package/lib/esm/tile/map/MapTilingScheme.d.ts +4 -4
  1047. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  1048. package/lib/esm/tile/map/MapTilingScheme.js +4 -4
  1049. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  1050. package/lib/esm/tools/ElementSetTool.js +1 -1
  1051. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  1052. package/lib/esm/tools/SelectTool.js +1 -1
  1053. package/lib/esm/tools/SelectTool.js.map +1 -1
  1054. package/lib/esm/tools/ToolAdmin.d.ts +8 -6
  1055. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  1056. package/lib/esm/tools/ToolAdmin.js +9 -7
  1057. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  1058. package/lib/esm/tools/ToolAssistance.d.ts +18 -0
  1059. package/lib/esm/tools/ToolAssistance.d.ts.map +1 -1
  1060. package/lib/esm/tools/ToolAssistance.js +8 -0
  1061. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  1062. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  1063. package/lib/esm/tools/ViewTool.js +3 -2
  1064. package/lib/esm/tools/ViewTool.js.map +1 -1
  1065. package/lib/esm/workers/ImdlParser/Worker.d.ts +20 -0
  1066. package/lib/esm/workers/ImdlParser/Worker.d.ts.map +1 -0
  1067. package/lib/esm/workers/ImdlParser/Worker.js +30 -0
  1068. package/lib/esm/workers/ImdlParser/Worker.js.map +1 -0
  1069. package/lib/esm/workers/ImdlParser/webpack.config.js +40 -0
  1070. package/lib/esm/workers/RegisterWorker.d.ts +9 -0
  1071. package/lib/esm/workers/RegisterWorker.d.ts.map +1 -0
  1072. package/lib/esm/workers/RegisterWorker.js +32 -0
  1073. package/lib/esm/workers/RegisterWorker.js.map +1 -0
  1074. package/lib/public/scripts/parse-imdl-worker.js +1 -0
  1075. package/lib/workers/webpack/parse-imdl-worker.js +1 -0
  1076. package/package.json +30 -29
  1077. package/lib/cjs/FrontendLoggerCategory.d.ts.map +0 -1
  1078. package/lib/cjs/FrontendLoggerCategory.js.map +0 -1
  1079. package/lib/cjs/ImageUtil.d.ts.map +0 -1
  1080. package/lib/cjs/ImageUtil.js.map +0 -1
  1081. package/lib/cjs/ViewRect.d.ts.map +0 -1
  1082. package/lib/cjs/ViewRect.js.map +0 -1
  1083. package/lib/cjs/WebWorkerManager.d.ts +0 -49
  1084. package/lib/cjs/WebWorkerManager.d.ts.map +0 -1
  1085. package/lib/cjs/WebWorkerManager.js +0 -155
  1086. package/lib/cjs/WebWorkerManager.js.map +0 -1
  1087. package/lib/cjs/gltf/GltfModel.d.ts.map +0 -1
  1088. package/lib/cjs/gltf/GltfModel.js.map +0 -1
  1089. package/lib/cjs/gltf/GltfParser.d.ts.map +0 -1
  1090. package/lib/cjs/gltf/GltfParser.js.map +0 -1
  1091. package/lib/cjs/gltf/GltfSchema.d.ts.map +0 -1
  1092. package/lib/cjs/gltf/GltfSchema.js.map +0 -1
  1093. package/lib/cjs/render/RenderMaterial.d.ts.map +0 -1
  1094. package/lib/cjs/render/RenderMaterial.js.map +0 -1
  1095. package/lib/cjs/render/RenderTexture.d.ts.map +0 -1
  1096. package/lib/cjs/render/RenderTexture.js.map +0 -1
  1097. package/lib/cjs/render/primitives/AuxChannelTable.d.ts.map +0 -1
  1098. package/lib/cjs/render/primitives/AuxChannelTable.js.map +0 -1
  1099. package/lib/cjs/render/primitives/DisplayParams.d.ts.map +0 -1
  1100. package/lib/cjs/render/primitives/DisplayParams.js.map +0 -1
  1101. package/lib/cjs/render/primitives/SurfaceParams.d.ts.map +0 -1
  1102. package/lib/cjs/render/primitives/SurfaceParams.js.map +0 -1
  1103. package/lib/cjs/render/primitives/VertexTable.d.ts +0 -152
  1104. package/lib/cjs/render/primitives/VertexTable.d.ts.map +0 -1
  1105. package/lib/cjs/render/primitives/VertexTable.js.map +0 -1
  1106. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  1107. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +0 -1
  1108. package/lib/cjs/render-primitives.d.ts +0 -21
  1109. package/lib/cjs/render-primitives.d.ts.map +0 -1
  1110. package/lib/cjs/render-primitives.js +0 -41
  1111. package/lib/cjs/render-primitives.js.map +0 -1
  1112. package/lib/esm/FrontendLoggerCategory.d.ts.map +0 -1
  1113. package/lib/esm/FrontendLoggerCategory.js.map +0 -1
  1114. package/lib/esm/ImageUtil.d.ts.map +0 -1
  1115. package/lib/esm/ImageUtil.js.map +0 -1
  1116. package/lib/esm/ViewRect.d.ts.map +0 -1
  1117. package/lib/esm/ViewRect.js.map +0 -1
  1118. package/lib/esm/WebWorkerManager.d.ts +0 -49
  1119. package/lib/esm/WebWorkerManager.d.ts.map +0 -1
  1120. package/lib/esm/WebWorkerManager.js +0 -150
  1121. package/lib/esm/WebWorkerManager.js.map +0 -1
  1122. package/lib/esm/gltf/GltfModel.d.ts.map +0 -1
  1123. package/lib/esm/gltf/GltfModel.js.map +0 -1
  1124. package/lib/esm/gltf/GltfParser.d.ts.map +0 -1
  1125. package/lib/esm/gltf/GltfParser.js.map +0 -1
  1126. package/lib/esm/gltf/GltfSchema.d.ts.map +0 -1
  1127. package/lib/esm/gltf/GltfSchema.js.map +0 -1
  1128. package/lib/esm/render/RenderMaterial.d.ts.map +0 -1
  1129. package/lib/esm/render/RenderMaterial.js.map +0 -1
  1130. package/lib/esm/render/RenderTexture.d.ts.map +0 -1
  1131. package/lib/esm/render/RenderTexture.js.map +0 -1
  1132. package/lib/esm/render/primitives/AuxChannelTable.d.ts.map +0 -1
  1133. package/lib/esm/render/primitives/AuxChannelTable.js.map +0 -1
  1134. package/lib/esm/render/primitives/DisplayParams.d.ts.map +0 -1
  1135. package/lib/esm/render/primitives/DisplayParams.js.map +0 -1
  1136. package/lib/esm/render/primitives/SurfaceParams.d.ts.map +0 -1
  1137. package/lib/esm/render/primitives/SurfaceParams.js.map +0 -1
  1138. package/lib/esm/render/primitives/VertexTable.d.ts +0 -152
  1139. package/lib/esm/render/primitives/VertexTable.d.ts.map +0 -1
  1140. package/lib/esm/render/primitives/VertexTable.js.map +0 -1
  1141. package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  1142. package/lib/esm/render/primitives/VertexTableSplitter.js.map +0 -1
  1143. package/lib/esm/render-primitives.d.ts +0 -21
  1144. package/lib/esm/render-primitives.d.ts.map +0 -1
  1145. package/lib/esm/render-primitives.js +0 -25
  1146. package/lib/esm/render-primitives.js.map +0 -1
  1147. /package/lib/cjs/{FrontendLoggerCategory.d.ts → common/FrontendLoggerCategory.d.ts} +0 -0
  1148. /package/lib/cjs/{FrontendLoggerCategory.js → common/FrontendLoggerCategory.js} +0 -0
  1149. /package/lib/cjs/{ImageUtil.d.ts → common/ImageUtil.d.ts} +0 -0
  1150. /package/lib/cjs/{ViewRect.d.ts → common/ViewRect.d.ts} +0 -0
  1151. /package/lib/cjs/{ViewRect.js → common/ViewRect.js} +0 -0
  1152. /package/lib/cjs/{gltf → common/gltf}/GltfModel.js +0 -0
  1153. /package/lib/cjs/{gltf → common/gltf}/GltfParser.d.ts +0 -0
  1154. /package/lib/cjs/{gltf → common/gltf}/GltfParser.js +0 -0
  1155. /package/lib/cjs/{gltf → common/gltf}/GltfSchema.d.ts +0 -0
  1156. /package/lib/cjs/{gltf → common/gltf}/GltfSchema.js +0 -0
  1157. /package/lib/cjs/{render → common/render}/primitives/DisplayParams.d.ts +0 -0
  1158. /package/lib/cjs/{render → common/render}/primitives/DisplayParams.js +0 -0
  1159. /package/lib/cjs/{render → common/render}/primitives/SurfaceParams.js +0 -0
  1160. /package/lib/esm/{FrontendLoggerCategory.d.ts → common/FrontendLoggerCategory.d.ts} +0 -0
  1161. /package/lib/esm/{FrontendLoggerCategory.js → common/FrontendLoggerCategory.js} +0 -0
  1162. /package/lib/esm/{ImageUtil.d.ts → common/ImageUtil.d.ts} +0 -0
  1163. /package/lib/esm/{ViewRect.d.ts → common/ViewRect.d.ts} +0 -0
  1164. /package/lib/esm/{ViewRect.js → common/ViewRect.js} +0 -0
  1165. /package/lib/esm/{gltf → common/gltf}/GltfModel.js +0 -0
  1166. /package/lib/esm/{gltf → common/gltf}/GltfParser.d.ts +0 -0
  1167. /package/lib/esm/{gltf → common/gltf}/GltfParser.js +0 -0
  1168. /package/lib/esm/{gltf → common/gltf}/GltfSchema.d.ts +0 -0
  1169. /package/lib/esm/{gltf → common/gltf}/GltfSchema.js +0 -0
  1170. /package/lib/esm/{render → common/render}/primitives/DisplayParams.d.ts +0 -0
  1171. /package/lib/esm/{render → common/render}/primitives/DisplayParams.js +0 -0
  1172. /package/lib/esm/{render → common/render}/primitives/SurfaceParams.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"PolylineParams.js","sourceRoot":"","sources":["../../../../src/render/primitives/PolylineParams.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAW,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAA4B,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE/F,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA6B3D,MAAM,KAAW,kBAAkB,CAKlC;AALD,WAAiB,kBAAkB;IACjC,SAAgB,QAAQ,CAAC,IAAc;QACrC,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,UAAU,EAAE,SAAS,EAAE,CAAC;IACjC,CAAC;IAHe,2BAAQ,WAGvB,CAAA;AACH,CAAC,EALgB,kBAAkB,KAAlB,kBAAkB,QAKlC;AAED,MAAM,cAAc;IAOlB;QANO,mBAAc,GAAY,KAAK,CAAC;QAChC,yBAAoB,GAAY,KAAK,CAAC;QACtC,gBAAW,GAAW,CAAC,CAAC;QACxB,cAAS,GAAW,CAAC,CAAC;QACtB,cAAS,GAAW,CAAC,CAAC;IAEN,CAAC;IAEjB,IAAI,CAAC,cAAuB,EAAE,oBAA6B,EAAE,WAAmB,EAAE,SAAiB,EAAE,SAAiB;QAC3H,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEM,YAAY,CAAC,UAAmB,EAAE,kBAA2B,KAAK,EAAE,QAAiB,KAAK,EAAE,iBAA0B,KAAK;QAChI,IAAI,KAAK;YACP,yCAAgC;QAElC,IAAI,KAAoB,CAAC;QACzB,IAAI,cAAc;YAChB,KAAK,2CAAkC,CAAC,CAAC,iDAAiD;aACvF,IAAI,eAAe;YACtB,KAAK,yCAAiC,CAAC;;YAEvC,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,+BAAuB,CAAC,6BAAqB,CAAC;QAEnF,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,UAAU;YACZ,MAAM,qCAA4B,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,cAAc;YACtB,MAAM,uCAA8B,CAAC;QAEvC,OAAO,KAAK,GAAG,MAAM,CAAC;IACxB,CAAC;CACF;AAED,MAAM,kBAAkB;IAUtB,YAAmB,SAAyB,EAAE,MAAgC,EAAE,gBAAyB;QAPjG,gBAAW,GAAG,CAAC,CAAC;QAChB,eAAU,GAAa,EAAE,CAAC;QAC1B,eAAU,GAAa,EAAE,CAAC;QAC1B,eAAU,GAAa,EAAE,CAAC;QAC1B,eAAU,GAAa,EAAE,CAAC;QAC1B,cAAS,GAAc,EAAE,CAAC;QAGhC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,MAAM,YAAY,YAAY,EAAE;YAClC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI;gBACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;SACpD;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;SACzB;QAED,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,IAAkB;QAC3C,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9G,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAc;QACnC,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM;YACxE,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnI,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,SAAS;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,MAAM,iBAAiB,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;YACvD,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;SAC5D;QAED,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,SAAS;YACtB,oBAAoB,EAAE,iBAAiB;SACxC,CAAC;IACJ,CAAC;IAEO,UAAU;QAChB,MAAM,EAAE,GAAG,IAAI,cAAc,EAAE,EAAE,EAAE,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC;QAEzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;YAClC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC;gBACrB,SAAS;YAEX,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAY,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAEzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrC,MAAM,OAAO,GAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnC,MAAM,KAAK,GAAY,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpG,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE3F,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC1D,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAEzD,MAAM,QAAQ,GAAY,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC;gBACzG,MAAM,QAAQ,GAAY,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC;gBAEvG,IAAI,QAAQ,IAAI,QAAQ,EAAE;oBACxB,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBACnE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;oBACnE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;oBACnE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;oBACnE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;oBACnE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;oBACnE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;oBACnE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBAEnE,IAAI,QAAQ;wBACV,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;oBAE5E,IAAI,QAAQ;wBACV,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;iBAC7E;qBAAM;oBACL,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC5C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC5C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC5C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC5C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;iBAC5C;aACF;SACF;IACH,CAAC;IAEO,iBAAiB,CAAC,EAAkB,EAAE,EAAU,EAAE,EAAkB;QAC1E,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;SAChC;IACH,CAAC;IAEO,WAAW,CAAC,CAAiB;QACnC,MAAM,GAAG,GAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,OAAO,GAAa,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;QACpF,MAAM,OAAO,GAAa,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;QACpF,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAEO,UAAU,CAAC,MAAsB,EAAE,KAAa;QACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;QAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACF;AAED,oCAAoC;AACpC,MAAM,UAAU,iBAAiB,CAAC,SAAyB,EAAE,MAAoB,EAAE,gBAAyB;IAC1G,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC/E,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,cAAc;IAQzB,iGAAiG;IACjG,YAAmB,QAAqB,EAAE,QAA4B,EAAE,MAAc,EAAE,UAAsB,EAAE,QAAiB,EAAE,OAA0B,iBAAiB,CAAC,MAAM;QACnL,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,sCAAsC;IAC/B,MAAM,CAAC,MAAM,CAAC,IAAkB;QACrC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,SAAS,KAAK,QAAQ;YACxB,OAAO,SAAS,CAAC;QAEnB,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,SAAS,KAAK,UAAU;YAC1B,OAAO,SAAS,CAAC;QAEnB,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjI,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,IAAa;IAC9D,yHAAyH;IACzH,MAAM,mBAAmB,GAAG,CAAC,CAAC;IAC9B,OAAO,IAAI,IAAI,MAAM,IAAI,mBAAmB,CAAC;AAC/C,CAAC","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 } from \"@itwin/core-bentley\";\r\nimport { Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { LinePixels, PolylineData, PolylineTypeFlags, QPoint3dList } from \"@itwin/core-common\";\r\nimport { MeshArgs, PolylineArgs } from \"./mesh/MeshPrimitives\";\r\nimport { VertexIndices, VertexTable } from \"./VertexTable\";\r\n\r\n/** Parameter associated with each vertex index of a tesselated polyline. */\r\nconst enum PolylineParam { // eslint-disable-line no-restricted-syntax\r\n kNone = 0,\r\n kSquare = 1 * 3,\r\n kMiter = 2 * 3,\r\n kMiterInsideOnly = 3 * 3,\r\n kJointBase = 4 * 3,\r\n kNegatePerp = 8 * 3,\r\n kNegateAlong = 16 * 3,\r\n kNoneAdjustWeight = 32 * 3,\r\n}\r\n\r\n/**\r\n * Represents a tesselated polyline.\r\n * Given a polyline as a line string, each segment of the line string is triangulated into a quad.\r\n * Based on the angle between two segments, additional joint triangles may be inserted in between to enable smoothly-rounded corners.\r\n * @internal\r\n */\r\nexport interface TesselatedPolyline {\r\n /** 24-bit index of each vertex. */\r\n readonly indices: VertexIndices;\r\n /** 24-bit index of the previous vertex in the polyline. */\r\n readonly prevIndices: VertexIndices;\r\n /** 24-bit index of the next vertex in the polyline, plus 8-bit parameter describing the semantics of this vertex. */\r\n readonly nextIndicesAndParams: Uint8Array;\r\n}\r\n\r\nexport namespace TesselatedPolyline {\r\n export function fromMesh(args: MeshArgs): TesselatedPolyline | undefined {\r\n const tesselator = PolylineTesselator.fromMesh(args);\r\n return tesselator?.tesselate();\r\n }\r\n}\r\n\r\nclass PolylineVertex {\r\n public isSegmentStart: boolean = false;\r\n public isPolylineStartOrEnd: boolean = false;\r\n public vertexIndex: number = 0;\r\n public prevIndex: number = 0;\r\n public nextIndex: number = 0;\r\n\r\n public constructor() { }\r\n\r\n public init(isSegmentStart: boolean, isPolylineStartOrEnd: boolean, vertexIndex: number, prevIndex: number, nextIndex: number) {\r\n this.isSegmentStart = isSegmentStart;\r\n this.isPolylineStartOrEnd = isPolylineStartOrEnd;\r\n this.vertexIndex = vertexIndex;\r\n this.prevIndex = prevIndex;\r\n this.nextIndex = nextIndex;\r\n }\r\n\r\n public computeParam(negatePerp: boolean, adjacentToJoint: boolean = false, joint: boolean = false, noDisplacement: boolean = false): number {\r\n if (joint)\r\n return PolylineParam.kJointBase;\r\n\r\n let param: PolylineParam;\r\n if (noDisplacement)\r\n param = PolylineParam.kNoneAdjustWeight; // prevent getting tossed before width adjustment\r\n else if (adjacentToJoint)\r\n param = PolylineParam.kMiterInsideOnly;\r\n else\r\n param = this.isPolylineStartOrEnd ? PolylineParam.kSquare : PolylineParam.kMiter;\r\n\r\n let adjust = 0;\r\n if (negatePerp)\r\n adjust = PolylineParam.kNegatePerp;\r\n if (!this.isSegmentStart)\r\n adjust += PolylineParam.kNegateAlong;\r\n\r\n return param + adjust;\r\n }\r\n}\r\n\r\nclass PolylineTesselator {\r\n private _polylines: PolylineData[];\r\n private _doJoints: boolean;\r\n private _numIndices = 0;\r\n private _vertIndex: number[] = [];\r\n private _prevIndex: number[] = [];\r\n private _nextIndex: number[] = [];\r\n private _nextParam: number[] = [];\r\n private _position: Point3d[] = [];\r\n\r\n public constructor(polylines: PolylineData[], points: QPoint3dList | Point3d[], doJointTriangles: boolean) {\r\n this._polylines = polylines;\r\n if (points instanceof QPoint3dList) {\r\n for (const p of points.list)\r\n this._position.push(p.unquantize(points.params));\r\n } else {\r\n this._position = points;\r\n }\r\n\r\n this._doJoints = doJointTriangles;\r\n }\r\n\r\n public static fromPolyline(args: PolylineArgs): PolylineTesselator {\r\n return new PolylineTesselator(args.polylines, args.points, wantJointTriangles(args.width, args.flags.is2d));\r\n }\r\n\r\n public static fromMesh(args: MeshArgs): PolylineTesselator | undefined {\r\n if (undefined !== args.edges?.polylines.lines && undefined !== args.points)\r\n return new PolylineTesselator(args.edges.polylines.lines, args.points, wantJointTriangles(args.edges.width, true === args.is2d));\r\n\r\n return undefined;\r\n }\r\n\r\n public tesselate(): TesselatedPolyline {\r\n this._tesselate();\r\n\r\n const vertIndex = VertexIndices.fromArray(this._vertIndex);\r\n const prevIndex = VertexIndices.fromArray(this._prevIndex);\r\n\r\n const nextIndexAndParam = new Uint8Array(this._numIndices * 4);\r\n for (let i = 0; i < this._numIndices; i++) {\r\n const index = this._nextIndex[i];\r\n const j = i * 4;\r\n VertexIndices.encodeIndex(index, nextIndexAndParam, j);\r\n nextIndexAndParam[j + 3] = this._nextParam[i] & 0x000000ff;\r\n }\r\n\r\n return {\r\n indices: vertIndex,\r\n prevIndices: prevIndex,\r\n nextIndicesAndParams: nextIndexAndParam,\r\n };\r\n }\r\n\r\n private _tesselate() {\r\n const v0 = new PolylineVertex(), v1 = new PolylineVertex();\r\n const maxJointDot = -0.7;\r\n\r\n for (const line of this._polylines) {\r\n if (line.numIndices < 2)\r\n continue;\r\n\r\n const last = line.numIndices - 1;\r\n const isClosed: boolean = line.vertIndices[0] === line.vertIndices[last];\r\n\r\n for (let i = 0; i < last; ++i) {\r\n const idx0 = line.vertIndices[i];\r\n const idx1 = line.vertIndices[i + 1];\r\n const isStart: boolean = (0 === i);\r\n const isEnd: boolean = (last - 1 === i);\r\n const prevIdx0 = isStart ? (isClosed ? line.vertIndices[last - 1] : idx0) : line.vertIndices[i - 1];\r\n const nextIdx1 = isEnd ? (isClosed ? line.vertIndices[1] : idx1) : line.vertIndices[i + 2];\r\n\r\n v0.init(true, isStart && !isClosed, idx0, prevIdx0, idx1);\r\n v1.init(false, isEnd && !isClosed, idx1, nextIdx1, idx0);\r\n\r\n const jointAt0: boolean = this._doJoints && (isClosed || !isStart) && this._dotProduct(v0) > maxJointDot;\r\n const jointAt1: boolean = this._doJoints && (isClosed || !isEnd) && this._dotProduct(v1) > maxJointDot;\r\n\r\n if (jointAt0 || jointAt1) {\r\n this._addVertex(v0, v0.computeParam(true, jointAt0, false, false));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, false));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, true));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, true));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, false));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, true));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, true));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, true));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, false));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, false));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, true));\r\n this._addVertex(v1, v1.computeParam(true, jointAt1, false, false));\r\n\r\n if (jointAt0)\r\n this.addJointTriangles(v0, v0.computeParam(false, true, false, true), v0);\r\n\r\n if (jointAt1)\r\n this.addJointTriangles(v1, v1.computeParam(false, true, false, true), v1);\r\n } else {\r\n this._addVertex(v0, v0.computeParam(true));\r\n this._addVertex(v1, v1.computeParam(false));\r\n this._addVertex(v0, v0.computeParam(false));\r\n this._addVertex(v0, v0.computeParam(false));\r\n this._addVertex(v1, v1.computeParam(false));\r\n this._addVertex(v1, v1.computeParam(true));\r\n }\r\n }\r\n }\r\n }\r\n\r\n private addJointTriangles(v0: PolylineVertex, p0: number, v1: PolylineVertex): void {\r\n const param = v1.computeParam(false, false, true);\r\n for (let i = 0; i < 3; i++) {\r\n this._addVertex(v0, p0);\r\n this._addVertex(v1, param + i + 1);\r\n this._addVertex(v1, param + i);\r\n }\r\n }\r\n\r\n private _dotProduct(v: PolylineVertex): number {\r\n const pos: Point3d = this._position[v.vertexIndex];\r\n const prevDir: Vector3d = Vector3d.createStartEnd(this._position[v.prevIndex], pos);\r\n const nextDir: Vector3d = Vector3d.createStartEnd(this._position[v.nextIndex], pos);\r\n return prevDir.dotProduct(nextDir);\r\n }\r\n\r\n private _addVertex(vertex: PolylineVertex, param: number): void {\r\n this._vertIndex[this._numIndices] = vertex.vertexIndex;\r\n this._prevIndex[this._numIndices] = vertex.prevIndex;\r\n this._nextIndex[this._numIndices] = vertex.nextIndex;\r\n this._nextParam[this._numIndices] = param;\r\n this._numIndices++;\r\n }\r\n}\r\n\r\n/** Strictly for tests. @internal */\r\nexport function tesselatePolyline(polylines: PolylineData[], points: QPoint3dList, doJointTriangles: boolean): TesselatedPolyline {\r\n const tesselator = new PolylineTesselator(polylines, points, doJointTriangles);\r\n return tesselator.tesselate();\r\n}\r\n\r\n/**\r\n * Describes a set of tesselated polylines.\r\n * Each segment of each polyline is triangulated into a quad. Additional triangles may be inserted\r\n * between segments to enable rounded corners.\r\n */\r\nexport class PolylineParams {\r\n public readonly vertices: VertexTable;\r\n public readonly polyline: TesselatedPolyline;\r\n public readonly isPlanar: boolean;\r\n public readonly type: PolylineTypeFlags;\r\n public readonly weight: number;\r\n public readonly linePixels: LinePixels;\r\n\r\n /** Directly construct a PolylineParams. The PolylineParams takes ownership of all input data. */\r\n public constructor(vertices: VertexTable, polyline: TesselatedPolyline, weight: number, linePixels: LinePixels, isPlanar: boolean, type: PolylineTypeFlags = PolylineTypeFlags.Normal) {\r\n this.vertices = vertices;\r\n this.polyline = polyline;\r\n this.isPlanar = isPlanar;\r\n this.weight = weight;\r\n this.linePixels = linePixels;\r\n this.type = type;\r\n }\r\n\r\n /** Construct from an PolylineArgs. */\r\n public static create(args: PolylineArgs): PolylineParams | undefined {\r\n assert(!args.flags.isDisjoint);\r\n const vertices = VertexTable.createForPolylines(args);\r\n if (undefined === vertices)\r\n return undefined;\r\n\r\n const tesselator = PolylineTesselator.fromPolyline(args);\r\n if (undefined === tesselator)\r\n return undefined;\r\n\r\n return new PolylineParams(vertices, tesselator.tesselate(), args.width, args.linePixels, args.flags.isPlanar, args.flags.type);\r\n }\r\n}\r\n\r\nexport function wantJointTriangles(weight: number, is2d: boolean): boolean {\r\n // Joints are incredibly expensive. In 3d, only generate them if the line is sufficiently wide for them to be noticeable.\r\n const jointWidthThreshold = 3;\r\n return is2d || weight >= jointWidthThreshold;\r\n}\r\n"]}
1
+ {"version":3,"file":"PolylineParams.js","sourceRoot":"","sources":["../../../../src/render/primitives/PolylineParams.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 } from \"@itwin/core-bentley\";\r\nimport { Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { PolylineIndices, PolylineTypeFlags, QPoint3dList } from \"@itwin/core-common\";\r\nimport { MeshArgs, PolylineArgs } from \"./mesh/MeshPrimitives\";\r\nimport { VertexTableBuilder } from \"./VertexTableBuilder\";\r\nimport { PolylineParams, TesselatedPolyline } from \"../../common/render/primitives/PolylineParams\";\r\nimport { VertexIndices } from \"../../common/render/primitives/VertexIndices\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\n\r\n/** Parameter associated with each vertex index of a tesselated polyline. */\r\nconst enum PolylineParam { // eslint-disable-line no-restricted-syntax\r\n kNone = 0,\r\n kSquare = 1 * 3,\r\n kMiter = 2 * 3,\r\n kMiterInsideOnly = 3 * 3,\r\n kJointBase = 4 * 3,\r\n kNegatePerp = 8 * 3,\r\n kNegateAlong = 16 * 3,\r\n kNoneAdjustWeight = 32 * 3,\r\n}\r\n\r\n/** @internal */\r\nexport function tesselatePolylineFromMesh(args: MeshArgs): TesselatedPolyline | undefined {\r\n const tesselator = PolylineTesselator.fromMesh(args);\r\n return tesselator?.tesselate();\r\n}\r\n\r\nclass PolylineVertex {\r\n public isSegmentStart: boolean = false;\r\n public isPolylineStartOrEnd: boolean = false;\r\n public vertexIndex: number = 0;\r\n public prevIndex: number = 0;\r\n public nextIndex: number = 0;\r\n\r\n public constructor() { }\r\n\r\n public init(isSegmentStart: boolean, isPolylineStartOrEnd: boolean, vertexIndex: number, prevIndex: number, nextIndex: number) {\r\n this.isSegmentStart = isSegmentStart;\r\n this.isPolylineStartOrEnd = isPolylineStartOrEnd;\r\n this.vertexIndex = vertexIndex;\r\n this.prevIndex = prevIndex;\r\n this.nextIndex = nextIndex;\r\n }\r\n\r\n public computeParam(negatePerp: boolean, adjacentToJoint: boolean = false, joint: boolean = false, noDisplacement: boolean = false): number {\r\n if (joint)\r\n return PolylineParam.kJointBase;\r\n\r\n let param: PolylineParam;\r\n if (noDisplacement)\r\n param = PolylineParam.kNoneAdjustWeight; // prevent getting tossed before width adjustment\r\n else if (adjacentToJoint)\r\n param = PolylineParam.kMiterInsideOnly;\r\n else\r\n param = this.isPolylineStartOrEnd ? PolylineParam.kSquare : PolylineParam.kMiter;\r\n\r\n let adjust = 0;\r\n if (negatePerp)\r\n adjust = PolylineParam.kNegatePerp;\r\n if (!this.isSegmentStart)\r\n adjust += PolylineParam.kNegateAlong;\r\n\r\n return param + adjust;\r\n }\r\n}\r\n\r\nclass PolylineTesselator {\r\n private _polylines: PolylineIndices[];\r\n private _doJoints: boolean;\r\n private _numIndices = 0;\r\n private _vertIndex: number[] = [];\r\n private _prevIndex: number[] = [];\r\n private _nextIndex: number[] = [];\r\n private _nextParam: number[] = [];\r\n private _position: Point3d[] = [];\r\n\r\n public constructor(polylines: PolylineIndices[], points: QPoint3dList | Point3d[], doJointTriangles: boolean) {\r\n this._polylines = polylines;\r\n if (points instanceof QPoint3dList) {\r\n for (const p of points.list)\r\n this._position.push(p.unquantize(points.params));\r\n } else {\r\n this._position = points;\r\n }\r\n\r\n this._doJoints = doJointTriangles;\r\n }\r\n\r\n public static fromPolyline(args: PolylineArgs): PolylineTesselator {\r\n return new PolylineTesselator(args.polylines, args.points, wantJointTriangles(args.width, !!args.flags.is2d));\r\n }\r\n\r\n public static fromMesh(args: MeshArgs): PolylineTesselator | undefined {\r\n if (undefined !== args.edges?.polylines.lines && undefined !== args.points)\r\n return new PolylineTesselator(args.edges.polylines.lines, args.points, wantJointTriangles(args.edges.width, true === args.is2d));\r\n\r\n return undefined;\r\n }\r\n\r\n public tesselate(): TesselatedPolyline {\r\n this._tesselate();\r\n\r\n const vertIndex = VertexIndices.fromArray(this._vertIndex);\r\n const prevIndex = VertexIndices.fromArray(this._prevIndex);\r\n\r\n const nextIndexAndParam = new Uint8Array(this._numIndices * 4);\r\n for (let i = 0; i < this._numIndices; i++) {\r\n const index = this._nextIndex[i];\r\n const j = i * 4;\r\n VertexIndices.encodeIndex(index, nextIndexAndParam, j);\r\n nextIndexAndParam[j + 3] = this._nextParam[i] & 0x000000ff;\r\n }\r\n\r\n return {\r\n indices: vertIndex,\r\n prevIndices: prevIndex,\r\n nextIndicesAndParams: nextIndexAndParam,\r\n };\r\n }\r\n\r\n private _tesselate() {\r\n const v0 = new PolylineVertex(), v1 = new PolylineVertex();\r\n const maxJointDot = -0.7;\r\n\r\n for (const line of this._polylines) {\r\n if (line.length < 2)\r\n continue;\r\n\r\n const last = line.length - 1;\r\n const isClosed: boolean = line[0] === line[last];\r\n\r\n for (let i = 0; i < last; ++i) {\r\n const idx0 = line[i];\r\n const idx1 = line[i + 1];\r\n const isStart: boolean = (0 === i);\r\n const isEnd: boolean = (last - 1 === i);\r\n const prevIdx0 = isStart ? (isClosed ? line[last - 1] : idx0) : line[i - 1];\r\n const nextIdx1 = isEnd ? (isClosed ? line[1] : idx1) : line[i + 2];\r\n\r\n v0.init(true, isStart && !isClosed, idx0, prevIdx0, idx1);\r\n v1.init(false, isEnd && !isClosed, idx1, nextIdx1, idx0);\r\n\r\n const jointAt0: boolean = this._doJoints && (isClosed || !isStart) && this._dotProduct(v0) > maxJointDot;\r\n const jointAt1: boolean = this._doJoints && (isClosed || !isEnd) && this._dotProduct(v1) > maxJointDot;\r\n\r\n if (jointAt0 || jointAt1) {\r\n this._addVertex(v0, v0.computeParam(true, jointAt0, false, false));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, false));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, true));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, true));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, false));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, true));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, true));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, true));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, false));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, false));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, true));\r\n this._addVertex(v1, v1.computeParam(true, jointAt1, false, false));\r\n\r\n if (jointAt0)\r\n this.addJointTriangles(v0, v0.computeParam(false, true, false, true), v0);\r\n\r\n if (jointAt1)\r\n this.addJointTriangles(v1, v1.computeParam(false, true, false, true), v1);\r\n } else {\r\n this._addVertex(v0, v0.computeParam(true));\r\n this._addVertex(v1, v1.computeParam(false));\r\n this._addVertex(v0, v0.computeParam(false));\r\n this._addVertex(v0, v0.computeParam(false));\r\n this._addVertex(v1, v1.computeParam(false));\r\n this._addVertex(v1, v1.computeParam(true));\r\n }\r\n }\r\n }\r\n }\r\n\r\n private addJointTriangles(v0: PolylineVertex, p0: number, v1: PolylineVertex): void {\r\n const param = v1.computeParam(false, false, true);\r\n for (let i = 0; i < 3; i++) {\r\n this._addVertex(v0, p0);\r\n this._addVertex(v1, param + i + 1);\r\n this._addVertex(v1, param + i);\r\n }\r\n }\r\n\r\n private _dotProduct(v: PolylineVertex): number {\r\n const pos: Point3d = this._position[v.vertexIndex];\r\n const prevDir: Vector3d = Vector3d.createStartEnd(this._position[v.prevIndex], pos);\r\n const nextDir: Vector3d = Vector3d.createStartEnd(this._position[v.nextIndex], pos);\r\n return prevDir.dotProduct(nextDir);\r\n }\r\n\r\n private _addVertex(vertex: PolylineVertex, param: number): void {\r\n this._vertIndex[this._numIndices] = vertex.vertexIndex;\r\n this._prevIndex[this._numIndices] = vertex.prevIndex;\r\n this._nextIndex[this._numIndices] = vertex.nextIndex;\r\n this._nextParam[this._numIndices] = param;\r\n this._numIndices++;\r\n }\r\n}\r\n\r\n/** Strictly for tests. @internal */\r\nexport function tesselatePolyline(polylines: PolylineIndices[], points: QPoint3dList, doJointTriangles: boolean): TesselatedPolyline {\r\n const tesselator = new PolylineTesselator(polylines, points, doJointTriangles);\r\n return tesselator.tesselate();\r\n}\r\n\r\n/** @internal */\r\nexport function createPolylineParams(args: PolylineArgs): PolylineParams | undefined {\r\n assert(!args.flags.isDisjoint);\r\n const vertices = VertexTableBuilder.buildFromPolylines(args, IModelApp.renderSystem.maxTextureSize);\r\n if (undefined === vertices)\r\n return undefined;\r\n\r\n const tesselator = PolylineTesselator.fromPolyline(args);\r\n if (undefined === tesselator)\r\n return undefined;\r\n\r\n return {\r\n vertices,\r\n polyline: tesselator.tesselate(),\r\n isPlanar: !!args.flags.isPlanar,\r\n type: args.flags.type ?? PolylineTypeFlags.Normal,\r\n weight: args.width,\r\n linePixels: args.linePixels,\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function wantJointTriangles(weight: number, is2d: boolean): boolean {\r\n // Joints are incredibly expensive. In 3d, only generate them if the line is sufficiently wide for them to be noticeable.\r\n const jointWidthThreshold = 3;\r\n return is2d || weight >= jointWidthThreshold;\r\n}\r\n"]}
@@ -2,7 +2,7 @@
2
2
  * @module Rendering
3
3
  */
4
4
  import { Point3d, Transform } from "@itwin/core-geometry";
5
- import { DisplayParams } from "./DisplayParams";
5
+ import { DisplayParams } from "../../common/render/primitives/DisplayParams";
6
6
  /** @internal */
7
7
  export declare class StrokesPrimitivePointList {
8
8
  points: Point3d[];
@@ -1 +1 @@
1
- {"version":3,"file":"Strokes.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/Strokes.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,gBAAgB;AAChB,qBAAa,yBAAyB;IAC7B,MAAM,EAAE,OAAO,EAAE,CAAC;gBACb,MAAM,GAAE,OAAO,EAAO;CACnC;AAED,gBAAgB;AAChB,qBAAa,0BAA2B,SAAQ,KAAK,CAAC,yBAAyB,CAAC;gBAClE,GAAG,IAAI,EAAE,yBAAyB,EAAE;CAGjD;AAED,gBAAgB;AAChB,qBAAa,gBAAgB;IAC3B,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,SAAgB,QAAQ,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,0BAA0B,CAAC;WAE7B,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IAIlF,OAAO;IAOA,SAAS,CAAC,KAAK,EAAE,SAAS;CAKlC;AAED,gBAAgB;AAChB,qBAAa,oBAAqB,SAAQ,KAAK,CAAC,gBAAgB,CAAC;gBACnD,GAAG,IAAI,EAAE,gBAAgB,EAAE;CAGxC"}
1
+ {"version":3,"file":"Strokes.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/Strokes.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAE7E,gBAAgB;AAChB,qBAAa,yBAAyB;IAC7B,MAAM,EAAE,OAAO,EAAE,CAAC;gBACb,MAAM,GAAE,OAAO,EAAO;CACnC;AAED,gBAAgB;AAChB,qBAAa,0BAA2B,SAAQ,KAAK,CAAC,yBAAyB,CAAC;gBAClE,GAAG,IAAI,EAAE,yBAAyB,EAAE;CAGjD;AAED,gBAAgB;AAChB,qBAAa,gBAAgB;IAC3B,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,SAAgB,QAAQ,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,0BAA0B,CAAC;WAE7B,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IAIlF,OAAO;IAOA,SAAS,CAAC,KAAK,EAAE,SAAS;CAKlC;AAED,gBAAgB;AAChB,qBAAa,oBAAqB,SAAQ,KAAK,CAAC,gBAAgB,CAAC;gBACnD,GAAG,IAAI,EAAE,gBAAgB,EAAE;CAGxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Strokes.js","sourceRoot":"","sources":["../../../../src/render/primitives/Strokes.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAKH,gBAAgB;AAChB,MAAM,OAAO,yBAAyB;IAEpC,YAAY,SAAoB,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;CACnE;AAED,gBAAgB;AAChB,MAAM,OAAO,0BAA2B,SAAQ,KAAgC;IAC9E,YAAY,GAAG,IAAiC;QAC9C,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACjB,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,OAAO,gBAAgB;IAMpB,MAAM,CAAC,MAAM,CAAC,MAAqB,EAAE,UAAmB,EAAE,QAAiB;QAChF,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,YAAoB,MAAqB,EAAE,UAAmB,EAAE,QAAiB;QAC/E,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,0BAA0B,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,SAAS,CAAC,KAAgB;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,KAAK,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAChD;IACH,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,OAAO,oBAAqB,SAAQ,KAAuB;IAC/D,YAAY,GAAG,IAAwB;QACrC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACjB,CAAC;CACF","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 { Point3d, Transform } from \"@itwin/core-geometry\";\r\nimport { DisplayParams } from \"./DisplayParams\";\r\n\r\n/** @internal */\r\nexport class StrokesPrimitivePointList {\r\n public points: Point3d[];\r\n constructor(points: Point3d[] = []) { this.points = [...points]; }\r\n}\r\n\r\n/** @internal */\r\nexport class StrokesPrimitivePointLists extends Array<StrokesPrimitivePointList> {\r\n constructor(...args: StrokesPrimitivePointList[]) {\r\n super(...args);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class StrokesPrimitive {\r\n public readonly displayParams: DisplayParams;\r\n public readonly isDisjoint: boolean;\r\n public readonly isPlanar: boolean;\r\n public strokes: StrokesPrimitivePointLists;\r\n\r\n public static create(params: DisplayParams, isDisjoint: boolean, isPlanar: boolean) {\r\n return new StrokesPrimitive(params, isDisjoint, isPlanar);\r\n }\r\n\r\n private constructor(params: DisplayParams, isDisjoint: boolean, isPlanar: boolean) {\r\n this.displayParams = params;\r\n this.strokes = new StrokesPrimitivePointLists();\r\n this.isDisjoint = isDisjoint;\r\n this.isPlanar = isPlanar;\r\n }\r\n\r\n public transform(trans: Transform) {\r\n for (const strk of this.strokes) {\r\n trans.multiplyPoint3dArrayInPlace(strk.points);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class StrokesPrimitiveList extends Array<StrokesPrimitive> {\r\n constructor(...args: StrokesPrimitive[]) {\r\n super(...args);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Strokes.js","sourceRoot":"","sources":["../../../../src/render/primitives/Strokes.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAKH,gBAAgB;AAChB,MAAM,OAAO,yBAAyB;IAEpC,YAAY,SAAoB,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;CACnE;AAED,gBAAgB;AAChB,MAAM,OAAO,0BAA2B,SAAQ,KAAgC;IAC9E,YAAY,GAAG,IAAiC;QAC9C,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACjB,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,OAAO,gBAAgB;IAMpB,MAAM,CAAC,MAAM,CAAC,MAAqB,EAAE,UAAmB,EAAE,QAAiB;QAChF,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,YAAoB,MAAqB,EAAE,UAAmB,EAAE,QAAiB;QAC/E,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,0BAA0B,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,SAAS,CAAC,KAAgB;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,KAAK,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAChD;IACH,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,OAAO,oBAAqB,SAAQ,KAAuB;IAC/D,YAAY,GAAG,IAAwB;QACrC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACjB,CAAC;CACF","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 { Point3d, Transform } from \"@itwin/core-geometry\";\r\nimport { DisplayParams } from \"../../common/render/primitives/DisplayParams\";\r\n\r\n/** @internal */\r\nexport class StrokesPrimitivePointList {\r\n public points: Point3d[];\r\n constructor(points: Point3d[] = []) { this.points = [...points]; }\r\n}\r\n\r\n/** @internal */\r\nexport class StrokesPrimitivePointLists extends Array<StrokesPrimitivePointList> {\r\n constructor(...args: StrokesPrimitivePointList[]) {\r\n super(...args);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class StrokesPrimitive {\r\n public readonly displayParams: DisplayParams;\r\n public readonly isDisjoint: boolean;\r\n public readonly isPlanar: boolean;\r\n public strokes: StrokesPrimitivePointLists;\r\n\r\n public static create(params: DisplayParams, isDisjoint: boolean, isPlanar: boolean) {\r\n return new StrokesPrimitive(params, isDisjoint, isPlanar);\r\n }\r\n\r\n private constructor(params: DisplayParams, isDisjoint: boolean, isPlanar: boolean) {\r\n this.displayParams = params;\r\n this.strokes = new StrokesPrimitivePointLists();\r\n this.isDisjoint = isDisjoint;\r\n this.isPlanar = isPlanar;\r\n }\r\n\r\n public transform(trans: Transform) {\r\n for (const strk of this.strokes) {\r\n trans.multiplyPoint3dArrayInPlace(strk.points);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class StrokesPrimitiveList extends Array<StrokesPrimitive> {\r\n constructor(...args: StrokesPrimitive[]) {\r\n super(...args);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,31 @@
1
+ /** @packageDocumentation
2
+ * @module Rendering
3
+ */
4
+ import { ColorIndex, FeatureIndex, QParams2d, QParams3d } from "@itwin/core-common";
5
+ import { VertexTable } from "../../common/render/primitives/VertexTable";
6
+ import { MeshParams } from "../../common/render/primitives/MeshParams";
7
+ import { MeshArgs, PolylineArgs } from "./mesh/MeshPrimitives";
8
+ /** @internal */
9
+ export declare function createMeshParams(args: MeshArgs, maxDimension: number): MeshParams;
10
+ /** Builds a VertexTable from some data type supplying the vertex data.
11
+ * @internal
12
+ */
13
+ export declare abstract class VertexTableBuilder {
14
+ data?: Uint8Array;
15
+ private _curIndex;
16
+ abstract get numVertices(): number;
17
+ abstract get numRgbaPerVertex(): number;
18
+ abstract get qparams(): QParams3d;
19
+ abstract get usesUnquantizedPositions(): boolean;
20
+ get uvParams(): QParams2d | undefined;
21
+ abstract appendVertex(vertIndex: number): void;
22
+ appendColorTable(colorIndex: ColorIndex): void;
23
+ protected advance(nBytes: number): void;
24
+ protected append8(val: number): void;
25
+ protected append16(val: number): void;
26
+ protected append32(val: number): void;
27
+ private appendColor;
28
+ build(colorIndex: ColorIndex, featureIndex: FeatureIndex, maxDimension: number): VertexTable;
29
+ static buildFromPolylines(args: PolylineArgs, maxDimension: number): VertexTable | undefined;
30
+ }
31
+ //# sourceMappingURL=VertexTableBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VertexTableBuilder.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/VertexTableBuilder.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EACK,UAAU,EAAE,YAAY,EAA+B,SAAS,EAAE,SAAS,EACtF,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAqB,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAE5F,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAGvE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG/D,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,UAAU,CAwBjF;AAED;;GAEG;AACH,8BAAsB,kBAAkB;IAC/B,IAAI,CAAC,EAAE,UAAU,CAAC;IACzB,OAAO,CAAC,SAAS,CAAa;IAE9B,aAAoB,WAAW,IAAI,MAAM,CAAC;IAC1C,aAAoB,gBAAgB,IAAI,MAAM,CAAC;IAC/C,aAAoB,OAAO,IAAI,SAAS,CAAC;IACzC,aAAoB,wBAAwB,IAAI,OAAO,CAAC;IACxD,IAAW,QAAQ,IAAI,SAAS,GAAG,SAAS,CAAsB;aAClD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAE9C,gBAAgB,CAAC,UAAU,EAAE,UAAU;IAQ9C,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;IAKhC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM;IAQ7B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM;IAI9B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM;IAK9B,OAAO,CAAC,WAAW;IA6BZ,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW;WAgCrF,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CAQpG"}
@@ -7,179 +7,38 @@
7
7
  */
8
8
  import { assert } from "@itwin/core-bentley";
9
9
  import { Point2d, Range2d } from "@itwin/core-geometry";
10
- import { ColorDef, FeatureIndexType, QParams2d, QParams3d, QPoint2d, QPoint3dList, } from "@itwin/core-common";
11
- import { IModelApp } from "../../IModelApp";
12
- import { AuxChannelTable } from "./AuxChannelTable";
13
- import { createSurfaceMaterial, SurfaceType } from "./SurfaceParams";
14
- import { EdgeParams } from "./EdgeParams";
15
- /**
16
- * Holds an array of indices into a VertexTable. Each index is a 24-bit unsigned integer.
17
- * The order of the indices specifies the order in which vertices are drawn.
18
- * @internal
19
- */
20
- export class VertexIndices {
21
- /**
22
- * Directly construct from an array of bytes in which each index occupies 3 contiguous bytes.
23
- * The length of the array must be a multiple of 3. This object takes ownership of the array.
24
- */
25
- constructor(data) {
26
- this.data = data;
27
- assert(0 === this.data.length % 3);
28
- }
29
- /** Get the number of 24-bit indices. */
30
- get length() { return this.data.length / 3; }
31
- /** Convert an array of 24-bit unsigned integer values into a VertexIndices object. */
32
- static fromArray(indices) {
33
- const bytes = new Uint8Array(indices.length * 3);
34
- for (let i = 0; i < indices.length; i++)
35
- this.encodeIndex(indices[i], bytes, i * 3);
36
- return new VertexIndices(bytes);
37
- }
38
- static encodeIndex(index, bytes, byteIndex) {
39
- assert(byteIndex + 2 < bytes.length);
40
- bytes[byteIndex + 0] = index & 0x000000ff;
41
- bytes[byteIndex + 1] = (index & 0x0000ff00) >> 8;
42
- bytes[byteIndex + 2] = (index & 0x00ff0000) >> 16;
43
- }
44
- setNthIndex(n, value) {
45
- VertexIndices.encodeIndex(value, this.data, n * 3);
46
- }
47
- decodeIndex(index) {
48
- assert(index < this.length);
49
- const byteIndex = index * 3;
50
- return this.data[byteIndex] | (this.data[byteIndex + 1] << 8) | (this.data[byteIndex + 2] << 16);
51
- }
52
- decodeIndices() {
53
- const indices = [];
54
- for (let i = 0; i < this.length; i++)
55
- indices.push(this.decodeIndex(i));
56
- return indices;
57
- }
58
- [Symbol.iterator]() {
59
- function* iterator(indices) {
60
- for (let i = 0; i < indices.length; i++)
61
- yield indices.decodeIndex(i);
62
- }
63
- return iterator(this);
64
- }
65
- }
10
+ import { ColorDef, FeatureIndexType, FillFlags, QParams2d, QParams3d, QPoint2d, QPoint3dList, } from "@itwin/core-common";
11
+ import { AuxChannelTable } from "../../common/render/primitives/AuxChannelTable";
12
+ import { computeDimensions } from "../../common/render/primitives/VertexTable";
13
+ import { createSurfaceMaterial, SurfaceType } from "../../common/render/primitives/SurfaceParams";
14
+ import { VertexIndices } from "../../common/render/primitives/VertexIndices";
15
+ import { createEdgeParams } from "./EdgeParams";
66
16
  /** @internal */
67
- export function computeDimensions(nEntries, nRgbaPerEntry, nExtraRgba, maxSize) {
68
- maxSize = maxSize ?? IModelApp.renderSystem.maxTextureSize;
69
- const nRgba = nEntries * nRgbaPerEntry + nExtraRgba;
70
- if (nRgba < maxSize)
71
- return { width: nRgba, height: 1 };
72
- // Make roughly square to reduce unused space in last row
73
- let width = Math.ceil(Math.sqrt(nRgba));
74
- // Ensure a given entry's RGBA values all fit on the same row.
75
- const remainder = width % nRgbaPerEntry;
76
- if (0 !== remainder) {
77
- width += nRgbaPerEntry - remainder;
78
- }
79
- // Compute height
80
- let height = Math.ceil(nRgba / width);
81
- if (width * height < nRgba)
82
- ++height;
83
- assert(height <= maxSize);
84
- assert(width <= maxSize);
85
- assert(width * height >= nRgba);
86
- assert(Math.floor(height) === height);
87
- assert(Math.floor(width) === width);
88
- // Row padding should never be necessary...
89
- assert(0 === width % nRgbaPerEntry);
90
- return { width, height };
17
+ export function createMeshParams(args, maxDimension) {
18
+ const builder = createMeshBuilder(args);
19
+ const vertices = builder.build(args.colors, args.features, maxDimension);
20
+ const surfaceIndices = VertexIndices.fromArray(args.vertIndices);
21
+ const surface = {
22
+ type: builder.type,
23
+ indices: surfaceIndices,
24
+ fillFlags: args.fillFlags ?? FillFlags.ByView,
25
+ hasBakedLighting: true === args.hasBakedLighting,
26
+ textureMapping: undefined !== args.textureMapping ? { texture: args.textureMapping.texture, alwaysDisplayed: false } : undefined,
27
+ material: createSurfaceMaterial(args.material),
28
+ };
29
+ const channels = undefined !== args.auxChannels ? AuxChannelTable.fromChannels(args.auxChannels, vertices.numVertices, maxDimension) : undefined;
30
+ const edges = createEdgeParams(args);
31
+ return {
32
+ vertices,
33
+ surface,
34
+ edges,
35
+ isPlanar: !!args.isPlanar,
36
+ auxChannels: channels,
37
+ };
91
38
  }
92
- /**
93
- * Represents vertex data (position, color, normal, UV params, etc) in a rectangular array.
94
- * Each vertex is described by one or more contiguous 4-byte ('RGBA') values.
95
- * This allows vertex data to be uploaded to the GPU as a texture and vertex data to be sampled
96
- * from that texture using a single vertex ID representing an index into the array.
97
- * Vertex color is identified by a 16-bit index into a color table appended to the vertex data.
39
+ /** Builds a VertexTable from some data type supplying the vertex data.
98
40
  * @internal
99
41
  */
100
- export class VertexTable {
101
- /** Construct a VertexTable. The VertexTable takes ownership of all input data - it must not be later modified by the caller. */
102
- constructor(props) {
103
- this.data = props.data;
104
- this.qparams = props.qparams;
105
- this.usesUnquantizedPositions = !!props.usesUnquantizedPositions;
106
- this.width = props.width;
107
- this.height = props.height;
108
- this.hasTranslucency = true === props.hasTranslucency;
109
- this.uniformColor = props.uniformColor;
110
- this.featureIndexType = props.featureIndexType;
111
- this.uniformFeatureID = props.uniformFeatureID;
112
- this.numVertices = props.numVertices;
113
- this.numRgbaPerVertex = props.numRgbaPerVertex;
114
- this.uvParams = props.uvParams;
115
- }
116
- static buildFrom(builder, colorIndex, featureIndex) {
117
- const { numVertices, numRgbaPerVertex } = builder;
118
- const numColors = colorIndex.isUniform ? 0 : colorIndex.numColors;
119
- const dimensions = computeDimensions(numVertices, numRgbaPerVertex, numColors);
120
- assert(0 === dimensions.width % numRgbaPerVertex || (0 < numColors && 1 === dimensions.height));
121
- const data = new Uint8Array(dimensions.width * dimensions.height * 4);
122
- builder.data = data;
123
- for (let i = 0; i < numVertices; i++)
124
- builder.appendVertex(i);
125
- builder.appendColorTable(colorIndex);
126
- builder.data = undefined;
127
- return new VertexTable({
128
- data,
129
- qparams: builder.qparams,
130
- usesUnquantizedPositions: builder.usesUnquantizedPositions,
131
- width: dimensions.width,
132
- height: dimensions.height,
133
- hasTranslucency: colorIndex.hasAlpha,
134
- uniformColor: colorIndex.uniform,
135
- numVertices,
136
- numRgbaPerVertex,
137
- uvParams: builder.uvParams,
138
- featureIndexType: featureIndex.type,
139
- uniformFeatureID: featureIndex.type === FeatureIndexType.Uniform ? featureIndex.featureID : undefined,
140
- });
141
- }
142
- static createForPolylines(args) {
143
- const polylines = args.polylines;
144
- if (0 < polylines.length)
145
- return this.buildFrom(createPolylineBuilder(args), args.colors, args.features);
146
- else
147
- return undefined;
148
- }
149
- }
150
- /**
151
- * Describes mesh geometry to be submitted to the rendering system.
152
- * A mesh consists of a surface and its edges, which may include any combination of silhouettes, polylines, and single segments.
153
- * The surface and edges all refer to the same vertex table.
154
- */
155
- export class MeshParams {
156
- /** Directly construct a MeshParams. The MeshParams takes ownership of all input data. */
157
- constructor(vertices, surface, edges, isPlanar, auxChannels) {
158
- this.vertices = vertices;
159
- this.surface = surface;
160
- this.edges = edges;
161
- this.isPlanar = !!isPlanar;
162
- this.auxChannels = auxChannels;
163
- }
164
- /** Construct from a MeshArgs. */
165
- static create(args) {
166
- const builder = createMeshBuilder(args);
167
- const vertices = VertexTable.buildFrom(builder, args.colors, args.features);
168
- const surfaceIndices = VertexIndices.fromArray(args.vertIndices);
169
- const surface = {
170
- type: builder.type,
171
- indices: surfaceIndices,
172
- fillFlags: args.fillFlags,
173
- hasBakedLighting: true === args.hasBakedLighting,
174
- textureMapping: undefined !== args.textureMapping ? { texture: args.textureMapping.texture, alwaysDisplayed: false } : undefined,
175
- material: createSurfaceMaterial(args.material),
176
- };
177
- const channels = undefined !== args.auxChannels ? AuxChannelTable.fromChannels(args.auxChannels, vertices.numVertices) : undefined;
178
- const edges = EdgeParams.fromMeshArgs(args);
179
- return new MeshParams(vertices, surface, edges, args.isPlanar, channels);
180
- }
181
- }
182
- /** Builds a VertexTable from some data type supplying the vertex data. */
183
42
  export class VertexTableBuilder {
184
43
  constructor() {
185
44
  this._curIndex = 0;
@@ -236,6 +95,39 @@ export class VertexTableBuilder {
236
95
  this.append8(colors.b);
237
96
  this.append8(colors.t);
238
97
  }
98
+ build(colorIndex, featureIndex, maxDimension) {
99
+ const { numVertices, numRgbaPerVertex } = this;
100
+ const numColors = colorIndex.isUniform ? 0 : colorIndex.numColors;
101
+ const dimensions = computeDimensions(numVertices, numRgbaPerVertex, numColors, maxDimension);
102
+ assert(0 === dimensions.width % numRgbaPerVertex || (0 < numColors && 1 === dimensions.height));
103
+ const data = new Uint8Array(dimensions.width * dimensions.height * 4);
104
+ this.data = data;
105
+ for (let i = 0; i < numVertices; i++)
106
+ this.appendVertex(i);
107
+ this.appendColorTable(colorIndex);
108
+ this.data = undefined;
109
+ return {
110
+ data,
111
+ qparams: this.qparams,
112
+ usesUnquantizedPositions: this.usesUnquantizedPositions,
113
+ width: dimensions.width,
114
+ height: dimensions.height,
115
+ hasTranslucency: colorIndex.hasAlpha,
116
+ uniformColor: colorIndex.uniform,
117
+ numVertices,
118
+ numRgbaPerVertex,
119
+ uvParams: this.uvParams,
120
+ featureIndexType: featureIndex.type,
121
+ uniformFeatureID: featureIndex.type === FeatureIndexType.Uniform ? featureIndex.featureID : undefined,
122
+ };
123
+ }
124
+ static buildFromPolylines(args, maxDimension) {
125
+ const polylines = args.polylines;
126
+ if (polylines.length === 0)
127
+ return undefined;
128
+ const builder = createPolylineBuilder(args);
129
+ return builder.build(args.colors, args.features, maxDimension);
130
+ }
239
131
  }
240
132
  var Quantized;
241
133
  (function (Quantized) {
@@ -547,4 +439,4 @@ function createPolylineBuilder(args) {
547
439
  else
548
440
  return new Unquantized.SimpleBuilder(args);
549
441
  }
550
- //# sourceMappingURL=VertexTable.js.map
442
+ //# sourceMappingURL=VertexTableBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VertexTableBuilder.js","sourceRoot":"","sources":["../../../../src/render/primitives/VertexTableBuilder.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 } from \"@itwin/core-bentley\";\r\nimport { Point2d, Point3d, Range2d } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, ColorIndex, FeatureIndex, FeatureIndexType, FillFlags, QParams2d, QParams3d, QPoint2d, QPoint3dList,\r\n} from \"@itwin/core-common\";\r\nimport { AuxChannelTable } from \"../../common/render/primitives/AuxChannelTable\";\r\nimport { computeDimensions, VertexTable } from \"../../common/render/primitives/VertexTable\";\r\nimport { createSurfaceMaterial, SurfaceParams, SurfaceType } from \"../../common/render/primitives/SurfaceParams\";\r\nimport { MeshParams } from \"../../common/render/primitives/MeshParams\";\r\nimport { Point3dList } from \"../../common/render/primitives/MeshPrimitive\";\r\nimport { VertexIndices } from \"../../common/render/primitives/VertexIndices\";\r\nimport { MeshArgs, PolylineArgs } from \"./mesh/MeshPrimitives\";\r\nimport { createEdgeParams } from \"./EdgeParams\";\r\n\r\n/** @internal */\r\nexport function createMeshParams(args: MeshArgs, maxDimension: number): MeshParams {\r\n const builder = createMeshBuilder(args);\r\n const vertices = builder.build(args.colors, args.features, maxDimension);\r\n\r\n const surfaceIndices = VertexIndices.fromArray(args.vertIndices);\r\n\r\n const surface: SurfaceParams = {\r\n type: builder.type,\r\n indices: surfaceIndices,\r\n fillFlags: args.fillFlags ?? FillFlags.ByView,\r\n hasBakedLighting: true === args.hasBakedLighting,\r\n textureMapping: undefined !== args.textureMapping ? { texture: args.textureMapping.texture, alwaysDisplayed: false } : undefined,\r\n material: createSurfaceMaterial(args.material),\r\n };\r\n\r\n const channels = undefined !== args.auxChannels ? AuxChannelTable.fromChannels(args.auxChannels, vertices.numVertices, maxDimension) : undefined;\r\n const edges = createEdgeParams(args);\r\n return {\r\n vertices,\r\n surface,\r\n edges,\r\n isPlanar: !!args.isPlanar,\r\n auxChannels: channels,\r\n };\r\n}\r\n\r\n/** Builds a VertexTable from some data type supplying the vertex data.\r\n * @internal\r\n */\r\nexport abstract class VertexTableBuilder {\r\n public data?: Uint8Array;\r\n private _curIndex: number = 0;\r\n\r\n public abstract get numVertices(): number;\r\n public abstract get numRgbaPerVertex(): number;\r\n public abstract get qparams(): QParams3d;\r\n public abstract get usesUnquantizedPositions(): boolean;\r\n public get uvParams(): QParams2d | undefined { return undefined; }\r\n public abstract appendVertex(vertIndex: number): void;\r\n\r\n public appendColorTable(colorIndex: ColorIndex) {\r\n if (undefined !== colorIndex.nonUniform) {\r\n for (const color of colorIndex.nonUniform.colors) {\r\n this.appendColor(color);\r\n }\r\n }\r\n }\r\n\r\n protected advance(nBytes: number) {\r\n this._curIndex += nBytes;\r\n assert(this._curIndex <= this.data!.length);\r\n }\r\n\r\n protected append8(val: number) {\r\n assert(0 <= val);\r\n assert(val <= 0xff);\r\n assert(val === Math.floor(val));\r\n\r\n this.data![this._curIndex] = val;\r\n this.advance(1);\r\n }\r\n protected append16(val: number) {\r\n this.append8(val & 0x00ff);\r\n this.append8(val >>> 8);\r\n }\r\n protected append32(val: number) {\r\n this.append16(val & 0x0000ffff);\r\n this.append16(val >>> 16);\r\n }\r\n\r\n private appendColor(tbgr: number) {\r\n const colors = ColorDef.getColors(tbgr);\r\n\r\n // invert transparency => alpha\r\n colors.t = 255 - colors.t;\r\n\r\n // premultiply alpha...\r\n switch (colors.t) {\r\n case 0:\r\n colors.r = colors.g = colors.b = 0;\r\n break;\r\n case 255:\r\n break;\r\n default: {\r\n const f = colors.t / 255.0;\r\n colors.r = Math.floor(colors.r * f + 0.5);\r\n colors.g = Math.floor(colors.g * f + 0.5);\r\n colors.b = Math.floor(colors.b * f + 0.5);\r\n break;\r\n }\r\n }\r\n\r\n // Store 32-bit value in little-endian order (red first)\r\n this.append8(colors.r);\r\n this.append8(colors.g);\r\n this.append8(colors.b);\r\n this.append8(colors.t);\r\n }\r\n\r\n public build(colorIndex: ColorIndex, featureIndex: FeatureIndex, maxDimension: number): VertexTable {\r\n const { numVertices, numRgbaPerVertex } = this;\r\n const numColors = colorIndex.isUniform ? 0 : colorIndex.numColors;\r\n const dimensions = computeDimensions(numVertices, numRgbaPerVertex, numColors, maxDimension);\r\n assert(0 === dimensions.width % numRgbaPerVertex || (0 < numColors && 1 === dimensions.height));\r\n\r\n const data = new Uint8Array(dimensions.width * dimensions.height * 4);\r\n\r\n this.data = data;\r\n for (let i = 0; i < numVertices; i++)\r\n this.appendVertex(i);\r\n\r\n this.appendColorTable(colorIndex);\r\n\r\n this.data = undefined;\r\n\r\n return {\r\n data,\r\n qparams: this.qparams,\r\n usesUnquantizedPositions: this.usesUnquantizedPositions,\r\n width: dimensions.width,\r\n height: dimensions.height,\r\n hasTranslucency: colorIndex.hasAlpha,\r\n uniformColor: colorIndex.uniform,\r\n numVertices,\r\n numRgbaPerVertex,\r\n uvParams: this.uvParams,\r\n featureIndexType: featureIndex.type,\r\n uniformFeatureID: featureIndex.type === FeatureIndexType.Uniform ? featureIndex.featureID : undefined,\r\n };\r\n }\r\n\r\n public static buildFromPolylines(args: PolylineArgs, maxDimension: number): VertexTable | undefined {\r\n const polylines = args.polylines;\r\n if (polylines.length === 0)\r\n return undefined;\r\n\r\n const builder = createPolylineBuilder(args);\r\n return builder.build(args.colors, args.features, maxDimension);\r\n }\r\n}\r\n\r\ntype VertexData = PolylineArgs | MeshArgs;\r\ntype Quantized<T extends VertexData> = Omit<T, \"points\"> & { points: QPoint3dList };\r\ntype Unquantized<T extends VertexData> = Omit<T, \"points\"> & { points: Omit<Point3dList, \"add\"> };\r\n\r\nnamespace Quantized { // eslint-disable-line @typescript-eslint/no-redeclare\r\n /**\r\n * Supplies vertex data from a PolylineArgs or MeshArgs. Each vertex consists of 12 bytes:\r\n * pos.x 00\r\n * pos.y 02\r\n * pos.z 04\r\n * colorIndex 06\r\n * featureIndex 08 (24 bits)\r\n * materialIndex 0B (for meshes that use a material atlas; otherwise unused). NOTE: Currently front-end code does not produce material atlases.\r\n */\r\n export class SimpleBuilder<T extends Quantized<VertexData>> extends VertexTableBuilder {\r\n public args: T;\r\n protected _qpoints: QPoint3dList;\r\n\r\n public constructor(args: T) {\r\n super();\r\n this._qpoints = args.points;\r\n this.args = args;\r\n assert(undefined !== this.args.points);\r\n }\r\n\r\n public get numVertices() { return this.args.points.length; }\r\n public get numRgbaPerVertex() { return 3; }\r\n public get usesUnquantizedPositions() { return false; }\r\n public get qparams() {\r\n return this._qpoints.params;\r\n }\r\n\r\n public appendVertex(vertIndex: number): void {\r\n this.appendPosition(vertIndex);\r\n this.appendColorIndex(vertIndex);\r\n this.appendFeatureIndex(vertIndex);\r\n }\r\n\r\n protected appendPosition(vertIndex: number) {\r\n this.append16(this._qpoints.list[vertIndex].x);\r\n this.append16(this._qpoints.list[vertIndex].y);\r\n this.append16(this._qpoints.list[vertIndex].z);\r\n }\r\n\r\n protected appendColorIndex(vertIndex: number) {\r\n if (undefined !== this.args.colors.nonUniform) {\r\n this.append16(this.args.colors.nonUniform.indices[vertIndex]);\r\n } else {\r\n this.advance(2);\r\n }\r\n }\r\n\r\n protected appendFeatureIndex(vertIndex: number) {\r\n if (undefined !== this.args.features.featureIDs) {\r\n this.append32(this.args.features.featureIDs[vertIndex]);\r\n } else {\r\n this.advance(4);\r\n }\r\n }\r\n }\r\n\r\n /** Supplies vertex data from a MeshArgs. */\r\n export class MeshBuilder extends SimpleBuilder<Quantized<MeshArgs>> {\r\n public readonly type: SurfaceType;\r\n\r\n protected constructor(args: Quantized<MeshArgs>, type: SurfaceType) {\r\n super(args);\r\n this.type = type;\r\n }\r\n\r\n public static create(args: Quantized<MeshArgs>): MeshBuilder {\r\n if (args.isVolumeClassifier)\r\n return new MeshBuilder(args, SurfaceType.VolumeClassifier);\r\n\r\n const isLit = undefined !== args.normals && 0 < args.normals.length;\r\n const isTextured = undefined !== args.textureMapping;\r\n\r\n let uvParams: QParams2d | undefined;\r\n\r\n if (args.textureMapping) {\r\n const uvRange = Range2d.createNull();\r\n const fpts = args.textureMapping.uvParams;\r\n const pt2d = new Point2d();\r\n if (undefined !== fpts && fpts.length > 0)\r\n for (let i = 0; i < args.points.length; i++)\r\n uvRange.extendPoint(Point2d.create(fpts[i].x, fpts[i].y, pt2d));\r\n\r\n uvParams = QParams2d.fromRange(uvRange);\r\n }\r\n\r\n if (isLit)\r\n return isTextured ? new TexturedLitMeshBuilder(args, uvParams!) : new LitMeshBuilder(args);\r\n else\r\n return isTextured ? new TexturedMeshBuilder(args, uvParams!) : new MeshBuilder(args, SurfaceType.Unlit);\r\n }\r\n }\r\n\r\n /** Supplies vertex data from a MeshArgs where each vertex consists of 16 bytes.\r\n * In addition to the SimpleBuilder data, the final 4 bytes hold the quantized UV params\r\n * The color index is left uninitialized as it is unused.\r\n */\r\n class TexturedMeshBuilder extends MeshBuilder {\r\n private _qparams: QParams2d;\r\n private _qpoint = new QPoint2d();\r\n\r\n public constructor(args: Quantized<MeshArgs>, qparams: QParams2d, type: SurfaceType = SurfaceType.Textured) {\r\n super(args, type);\r\n this._qparams = qparams;\r\n assert(undefined !== args.textureMapping);\r\n }\r\n\r\n public override get numRgbaPerVertex() { return 4; }\r\n public override get uvParams() { return this._qparams; }\r\n\r\n public override appendVertex(vertIndex: number) {\r\n this.appendPosition(vertIndex);\r\n this.appendNormal(vertIndex);\r\n this.appendFeatureIndex(vertIndex);\r\n this.appendUVParams(vertIndex);\r\n }\r\n\r\n protected appendNormal(_vertIndex: number): void { this.advance(2); } // no normal for unlit meshes\r\n\r\n protected appendUVParams(vertIndex: number) {\r\n this._qpoint.init(this.args.textureMapping!.uvParams[vertIndex], this._qparams);\r\n this.append16(this._qpoint.x);\r\n this.append16(this._qpoint.y);\r\n }\r\n }\r\n\r\n /** As with TexturedMeshBuilder, but the color index is replaced with the oct-encoded normal value. */\r\n class TexturedLitMeshBuilder extends TexturedMeshBuilder {\r\n public constructor(args: Quantized<MeshArgs>, qparams: QParams2d) {\r\n super(args, qparams, SurfaceType.TexturedLit);\r\n assert(undefined !== args.normals);\r\n }\r\n\r\n protected override appendNormal(vertIndex: number) { this.append16(this.args.normals![vertIndex].value); }\r\n }\r\n\r\n /** 16 bytes. The last 2 bytes are unused; the 2 immediately preceding it hold the oct-encoded normal value. */\r\n class LitMeshBuilder extends MeshBuilder {\r\n public constructor(args: Quantized<MeshArgs>) {\r\n super(args, SurfaceType.Lit);\r\n assert(undefined !== args.normals);\r\n }\r\n\r\n public override get numRgbaPerVertex() { return 4; }\r\n\r\n public override appendVertex(vertIndex: number) {\r\n super.appendVertex(vertIndex);\r\n this.append16(this.args.normals![vertIndex].value);\r\n this.advance(2); // 2 unused bytes\r\n }\r\n }\r\n}\r\n\r\n/** Builders in this namespace store vertex positions as 32-bit floats instead of quantizing to 16-bit unsigned integers.\r\n * This is preferred for decoration graphics, which might contain ranges of positions that exceed the limits for quantization; if quantized,\r\n * they could produce visual artifacts.\r\n * Each builder produces a VertexTable that starts with the following layout:\r\n * pos.x: 00\r\n * pos.y: 04\r\n * pos.z: 08\r\n * featureIndex: 0C\r\n * materialIndex:0F (NOTE: frontend code currently doesn't produce material atlases, so this is always zero).\r\n * Followed (by default) by:\r\n * colorIndex: 10\r\n * unused: 12\r\n * Subclasses may add 4 more bytes and/or overwrite the final 4 bytes above.\r\n */\r\nnamespace Unquantized { // eslint-disable-line @typescript-eslint/no-redeclare\r\n const u32Array = new Uint32Array(1);\r\n const f32Array = new Float32Array(u32Array.buffer);\r\n\r\n // colorIndex: 10\r\n // unused: 12\r\n export class SimpleBuilder<T extends Unquantized<VertexData>> extends VertexTableBuilder {\r\n public args: T;\r\n protected _points: Point3d[];\r\n private _qparams3d: QParams3d;\r\n\r\n public constructor(args: T) {\r\n super();\r\n assert(!(args.points instanceof QPoint3dList));\r\n this._qparams3d = QParams3d.fromRange(args.points.range);\r\n this.args = args;\r\n this._points = args.points;\r\n }\r\n\r\n public get numVertices() { return this._points.length; }\r\n public get numRgbaPerVertex() { return 5; }\r\n public get usesUnquantizedPositions() { return true; }\r\n public get qparams() { return this._qparams3d; }\r\n\r\n public appendVertex(vertIndex: number): void {\r\n this.appendTransposePosAndFeatureNdx(vertIndex);\r\n this.appendColorIndex(vertIndex);\r\n }\r\n\r\n private appendFloat32(val: number) {\r\n f32Array[0] = val;\r\n this.append32(u32Array[0]);\r\n }\r\n\r\n private convertFloat32(val: number): number {\r\n f32Array[0] = val;\r\n return u32Array[0];\r\n }\r\n\r\n protected appendTransposePosAndFeatureNdx(vertIndex: number) {\r\n // transpose position xyz vals into [0].xyz - [3].xyz, and add feature index at .w\r\n // this is to order things to let shader code access much more efficiently\r\n const pt = this._points[vertIndex];\r\n const x = this.convertFloat32 (pt.x);\r\n const y = this.convertFloat32 (pt.y);\r\n const z = this.convertFloat32 (pt.z);\r\n const featID = (this.args.features.featureIDs) ? this.args.features.featureIDs[vertIndex] : 0;\r\n this.append8(x & 0x000000ff);\r\n this.append8(y & 0x000000ff);\r\n this.append8(z & 0x000000ff);\r\n this.append8(featID & 0x000000ff);\r\n this.append8((x >>> 8) & 0x000000ff);\r\n this.append8((y >>> 8) & 0x000000ff);\r\n this.append8((z >>> 8) & 0x000000ff);\r\n this.append8((featID >>> 8) & 0x000000ff);\r\n this.append8((x >>> 16) & 0x000000ff);\r\n this.append8((y >>> 16) & 0x000000ff);\r\n this.append8((z >>> 16) & 0x000000ff);\r\n this.append8((featID >>> 16) & 0x000000ff);\r\n this.append8(x >>> 24);\r\n this.append8(y >>> 24);\r\n this.append8(z >>> 24);\r\n this.append8(featID >>> 24);\r\n }\r\n\r\n protected appendPosition(vertIndex: number) {\r\n const pt = this._points[vertIndex];\r\n this.appendFloat32(pt.x);\r\n this.appendFloat32(pt.y);\r\n this.appendFloat32(pt.z);\r\n }\r\n\r\n protected appendFeatureIndex(vertIndex: number) {\r\n if (this.args.features.featureIDs)\r\n this.append32(this.args.features.featureIDs[vertIndex]);\r\n else\r\n this.advance(4);\r\n }\r\n\r\n protected _appendColorIndex(vertIndex: number) {\r\n if (undefined !== this.args.colors.nonUniform)\r\n this.append16(this.args.colors.nonUniform.indices[vertIndex]);\r\n else\r\n this.advance(2);\r\n }\r\n\r\n protected appendColorIndex(vertIndex: number) {\r\n this._appendColorIndex(vertIndex);\r\n this.advance(2);\r\n }\r\n }\r\n\r\n export class MeshBuilder extends SimpleBuilder<Unquantized<MeshArgs>> {\r\n public readonly type: SurfaceType;\r\n\r\n protected constructor(args: Unquantized<MeshArgs>, type: SurfaceType) {\r\n super(args);\r\n this.type = type;\r\n }\r\n\r\n public static create(args: Unquantized<MeshArgs>): MeshBuilder {\r\n if (args.isVolumeClassifier)\r\n return new MeshBuilder(args, SurfaceType.VolumeClassifier);\r\n\r\n const isLit = undefined !== args.normals && 0 < args.normals.length;\r\n const isTextured = undefined !== args.textureMapping;\r\n\r\n let uvParams: QParams2d | undefined;\r\n\r\n if (args.textureMapping) {\r\n const uvRange = Range2d.createNull();\r\n const fpts = args.textureMapping.uvParams;\r\n const pt2d = new Point2d();\r\n if (undefined !== fpts && fpts.length > 0)\r\n for (let i = 0; i < args.points.length; i++)\r\n uvRange.extendPoint(Point2d.create(fpts[i].x, fpts[i].y, pt2d));\r\n\r\n uvParams = QParams2d.fromRange(uvRange);\r\n }\r\n\r\n if (isLit)\r\n return isTextured ? new TexturedLitMeshBuilder(args, uvParams!) : new LitMeshBuilder(args);\r\n else\r\n return isTextured ? new TexturedMeshBuilder(args, uvParams!) : new MeshBuilder(args, SurfaceType.Unlit);\r\n }\r\n }\r\n\r\n // u: 10\r\n // v: 12\r\n class TexturedMeshBuilder extends MeshBuilder {\r\n private _qparams: QParams2d;\r\n private _qpoint = new QPoint2d();\r\n\r\n public constructor(args: Unquantized<MeshArgs>, qparams: QParams2d, type = SurfaceType.Textured) {\r\n super(args, type);\r\n this._qparams = qparams;\r\n assert(undefined !== args.textureMapping);\r\n }\r\n\r\n public override get uvParams() { return this._qparams; }\r\n\r\n public override appendVertex(vertIndex: number) {\r\n super.appendVertex(vertIndex);\r\n\r\n this._qpoint.init(this.args.textureMapping!.uvParams[vertIndex], this._qparams);\r\n this.append16(this._qpoint.x);\r\n this.append16(this._qpoint.y);\r\n }\r\n\r\n protected override appendColorIndex() { }\r\n }\r\n\r\n // u: 10\r\n // v: 12\r\n // normal: 14\r\n // unused: 16\r\n class TexturedLitMeshBuilder extends TexturedMeshBuilder {\r\n public constructor(args: Unquantized<MeshArgs>, qparams: QParams2d) {\r\n super(args, qparams, SurfaceType.TexturedLit);\r\n assert(undefined !== args.normals);\r\n }\r\n\r\n public override get numRgbaPerVertex() { return 6; }\r\n\r\n public override appendVertex(vertIndex: number) {\r\n super.appendVertex(vertIndex);\r\n this.append16(this.args.normals![vertIndex].value);\r\n this.advance(2);\r\n }\r\n }\r\n\r\n // color: 10\r\n // normal: 12\r\n class LitMeshBuilder extends MeshBuilder {\r\n public constructor(args: Unquantized<MeshArgs>) {\r\n super(args, SurfaceType.Lit);\r\n assert(undefined !== args.normals);\r\n }\r\n\r\n protected override appendColorIndex(vertIndex: number) {\r\n super._appendColorIndex(vertIndex);\r\n }\r\n\r\n public override appendVertex(vertIndex: number) {\r\n super.appendVertex(vertIndex);\r\n this.append16(this.args.normals![vertIndex].value);\r\n }\r\n }\r\n}\r\n\r\nfunction createMeshBuilder(args: MeshArgs): VertexTableBuilder & { type: SurfaceType } {\r\n if (args.points instanceof QPoint3dList)\r\n return Quantized.MeshBuilder.create(args as Quantized<MeshArgs>);\r\n else\r\n return Unquantized.MeshBuilder.create(args as Unquantized<MeshArgs>);\r\n}\r\n\r\nfunction createPolylineBuilder(args: PolylineArgs): VertexTableBuilder {\r\n if (args.points instanceof QPoint3dList)\r\n return new Quantized.SimpleBuilder(args as Quantized<PolylineArgs>);\r\n else\r\n return new Unquantized.SimpleBuilder(args as Unquantized<PolylineArgs>);\r\n}\r\n"]}
@@ -5,7 +5,7 @@ import { IndexedPolyface, Loop, Path, Point3d, Range3d, SolidPrimitive, Transfor
5
5
  import { AnalysisStyleDisplacement, Feature } from "@itwin/core-common";
6
6
  import { RenderGraphic } from "../../RenderGraphic";
7
7
  import { RenderSystem } from "../../RenderSystem";
8
- import { DisplayParams } from "../DisplayParams";
8
+ import { DisplayParams } from "../../../common/render/primitives/DisplayParams";
9
9
  import { MeshBuilderMap } from "../mesh/MeshBuilderMap";
10
10
  import { MeshList } from "../mesh/MeshPrimitives";
11
11
  import { GeometryOptions } from "../Primitives";
@@ -1 +1 @@
1
- {"version":3,"file":"GeometryAccumulator.d.ts","sourceRoot":"","sources":["../../../../../src/render/primitives/geometry/GeometryAccumulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeometryAccumulator.d.ts","sourceRoot":"","sources":["../../../../../src/render/primitives/geometry/GeometryAccumulator.ts"],"names":[],"mappings":"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"}