@itwin/core-frontend 4.8.0-dev.32 → 4.8.0-dev.34

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 (814) hide show
  1. package/README.md +9 -1
  2. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  3. package/lib/cjs/AccuDraw.js +4 -4
  4. package/lib/cjs/AccuDraw.js.map +1 -1
  5. package/lib/cjs/AccuSnap.js +1 -1
  6. package/lib/cjs/AccuSnap.js.map +1 -1
  7. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  8. package/lib/cjs/AuxCoordSys.js +2 -2
  9. package/lib/cjs/AuxCoordSys.js.map +1 -1
  10. package/lib/cjs/DecorationsCache.d.ts +1 -1
  11. package/lib/cjs/DecorationsCache.d.ts.map +1 -1
  12. package/lib/cjs/DecorationsCache.js.map +1 -1
  13. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
  14. package/lib/cjs/EnvironmentDecorations.js +2 -2
  15. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  16. package/lib/cjs/HitDetail.d.ts.map +1 -1
  17. package/lib/cjs/HitDetail.js +3 -3
  18. package/lib/cjs/HitDetail.js.map +1 -1
  19. package/lib/cjs/IModelConnection.d.ts +1 -1
  20. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  21. package/lib/cjs/IModelConnection.js +1 -1
  22. package/lib/cjs/IModelConnection.js.map +1 -1
  23. package/lib/cjs/IpcApp.d.ts +1 -1
  24. package/lib/cjs/IpcApp.d.ts.map +1 -1
  25. package/lib/cjs/IpcApp.js +1 -1
  26. package/lib/cjs/IpcApp.js.map +1 -1
  27. package/lib/cjs/LocalhostIpcApp.js +1 -1
  28. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  29. package/lib/cjs/NativeApp.js +1 -1
  30. package/lib/cjs/NativeApp.js.map +1 -1
  31. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  32. package/lib/cjs/SheetViewState.js +3 -3
  33. package/lib/cjs/SheetViewState.js.map +1 -1
  34. package/lib/cjs/ViewContext.d.ts +2 -1
  35. package/lib/cjs/ViewContext.d.ts.map +1 -1
  36. package/lib/cjs/ViewContext.js +8 -8
  37. package/lib/cjs/ViewContext.js.map +1 -1
  38. package/lib/cjs/Viewport.d.ts.map +1 -1
  39. package/lib/cjs/Viewport.js +2 -2
  40. package/lib/cjs/Viewport.js.map +1 -1
  41. package/lib/cjs/common/WorkerProxy.d.ts +7 -25
  42. package/lib/cjs/common/WorkerProxy.d.ts.map +1 -1
  43. package/lib/cjs/common/WorkerProxy.js +2 -1
  44. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  45. package/lib/cjs/common/imdl/CompactEdges.d.ts +1 -1
  46. package/lib/cjs/common/imdl/CompactEdges.d.ts.map +1 -1
  47. package/lib/cjs/common/imdl/CompactEdges.js +2 -2
  48. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  49. package/lib/cjs/common/imdl/ImdlModel.d.ts +5 -3
  50. package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -1
  51. package/lib/cjs/common/imdl/ImdlModel.js +49 -42
  52. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  53. package/lib/cjs/common/imdl/ImdlSchema.d.ts +4 -4
  54. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -1
  55. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  56. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts +4 -2
  57. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  58. package/lib/cjs/common/imdl/ParseImdlDocument.js +10 -8
  59. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  60. package/lib/{esm → cjs/common}/internal/Symbols.d.ts +2 -0
  61. package/lib/cjs/common/internal/Symbols.d.ts.map +1 -0
  62. package/lib/cjs/{internal → common/internal}/Symbols.js +3 -1
  63. package/lib/cjs/common/internal/Symbols.js.map +1 -0
  64. package/lib/cjs/common/internal/render/AnimationNodeId.d.ts.map +1 -0
  65. package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -0
  66. package/lib/cjs/common/internal/render/AuxChannelTable.d.ts.map +1 -0
  67. package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -0
  68. package/lib/cjs/common/internal/render/ColorMap.d.ts.map +1 -0
  69. package/lib/cjs/common/internal/render/ColorMap.js.map +1 -0
  70. package/lib/cjs/common/internal/render/DisplayParams.d.ts.map +1 -0
  71. package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -0
  72. package/lib/cjs/common/{render/primitives → internal/render}/EdgeParams.d.ts +7 -0
  73. package/lib/cjs/common/internal/render/EdgeParams.d.ts.map +1 -0
  74. package/lib/cjs/{render/primitives → common/internal/render}/EdgeParams.js +50 -16
  75. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -0
  76. package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.d.ts +4 -18
  77. package/lib/cjs/common/internal/render/GeometryAccumulator.d.ts.map +1 -0
  78. package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.js +2 -70
  79. package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -0
  80. package/lib/cjs/common/internal/render/GeometryList.d.ts.map +1 -0
  81. package/lib/cjs/common/internal/render/GeometryList.js.map +1 -0
  82. package/lib/{esm/render/primitives/geometry → cjs/common/internal/render}/GeometryPrimitives.d.ts +3 -3
  83. package/lib/cjs/common/internal/render/GeometryPrimitives.d.ts.map +1 -0
  84. package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryPrimitives.js +3 -3
  85. package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -0
  86. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts +64 -0
  87. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
  88. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js +270 -0
  89. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -0
  90. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilder.d.ts +4 -4
  91. package/lib/{esm/render/primitives/mesh → cjs/common/internal/render}/MeshBuilder.d.ts.map +1 -1
  92. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilder.js +2 -2
  93. package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -0
  94. package/lib/{esm/render/primitives/mesh → cjs/common/internal/render}/MeshBuilderMap.d.ts +7 -8
  95. package/lib/cjs/common/internal/render/MeshBuilderMap.d.ts.map +1 -0
  96. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilderMap.js +4 -6
  97. package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -0
  98. package/lib/cjs/common/internal/render/MeshParams.d.ts.map +1 -0
  99. package/lib/cjs/common/internal/render/MeshParams.js.map +1 -0
  100. package/lib/cjs/common/internal/render/MeshPrimitive.d.ts.map +1 -0
  101. package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -0
  102. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshPrimitives.d.ts +5 -9
  103. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts.map +1 -0
  104. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +4 -11
  105. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -0
  106. package/lib/cjs/common/internal/render/PointCloudPrimitive.d.ts.map +1 -0
  107. package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -0
  108. package/lib/{esm/common/render/primitives → cjs/common/internal/render}/PointStringParams.d.ts +3 -0
  109. package/lib/cjs/common/internal/render/PointStringParams.d.ts.map +1 -0
  110. package/lib/cjs/{render/primitives → common/internal/render}/PointStringParams.js +3 -4
  111. package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -0
  112. package/lib/{esm/render/primitives → cjs/common/internal/render}/Polyface.d.ts +1 -1
  113. package/lib/cjs/common/internal/render/Polyface.d.ts.map +1 -0
  114. package/lib/cjs/common/internal/render/Polyface.js.map +1 -0
  115. package/lib/cjs/common/{render/primitives → internal/render}/PolylineParams.d.ts +10 -1
  116. package/lib/cjs/common/internal/render/PolylineParams.d.ts.map +1 -0
  117. package/lib/cjs/{render/primitives → common/internal/render}/PolylineParams.js +5 -6
  118. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -0
  119. package/lib/{esm/render/primitives → cjs/common/internal/render}/Primitives.d.ts +3 -34
  120. package/lib/cjs/common/internal/render/Primitives.d.ts.map +1 -0
  121. package/lib/cjs/{render/primitives → common/internal/render}/Primitives.js +1 -44
  122. package/lib/cjs/common/internal/render/Primitives.js.map +1 -0
  123. package/lib/{esm/render/primitives → cjs/common/internal/render}/Strokes.d.ts +1 -1
  124. package/lib/cjs/common/internal/render/Strokes.d.ts.map +1 -0
  125. package/lib/cjs/common/internal/render/Strokes.js.map +1 -0
  126. package/lib/cjs/common/internal/render/SurfaceParams.d.ts.map +1 -0
  127. package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -0
  128. package/lib/cjs/common/internal/render/VertexIndices.d.ts.map +1 -0
  129. package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -0
  130. package/lib/cjs/common/internal/render/VertexKey.d.ts.map +1 -0
  131. package/lib/cjs/common/internal/render/VertexKey.js.map +1 -0
  132. package/lib/cjs/common/internal/render/VertexTable.d.ts.map +1 -0
  133. package/lib/cjs/common/internal/render/VertexTable.js.map +1 -0
  134. package/lib/{esm/render/primitives → cjs/common/internal/render}/VertexTableBuilder.d.ts +4 -4
  135. package/lib/cjs/common/internal/render/VertexTableBuilder.d.ts.map +1 -0
  136. package/lib/cjs/{render/primitives → common/internal/render}/VertexTableBuilder.js +6 -6
  137. package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -0
  138. package/lib/cjs/common/{render/primitives → internal/render}/VertexTableSplitter.d.ts +1 -1
  139. package/lib/cjs/common/internal/render/VertexTableSplitter.d.ts.map +1 -0
  140. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -0
  141. package/lib/cjs/common/render/BatchOptions.d.ts +46 -0
  142. package/lib/cjs/common/render/BatchOptions.d.ts.map +1 -0
  143. package/lib/cjs/common/render/{primitives/PolylineParams.js → BatchOptions.js} +1 -1
  144. package/lib/cjs/common/render/BatchOptions.js.map +1 -0
  145. package/lib/cjs/common/render/GraphicAssembler.d.ts +197 -0
  146. package/lib/cjs/common/render/GraphicAssembler.d.ts.map +1 -0
  147. package/lib/cjs/common/render/GraphicAssembler.js +386 -0
  148. package/lib/cjs/common/render/GraphicAssembler.js.map +1 -0
  149. package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts +154 -0
  150. package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
  151. package/lib/cjs/common/render/GraphicDescriptionBuilder.js +43 -0
  152. package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -0
  153. package/lib/cjs/common/render/GraphicPrimitive.d.ts.map +1 -0
  154. package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -0
  155. package/lib/cjs/common/render/GraphicType.d.ts +62 -0
  156. package/lib/cjs/common/render/GraphicType.d.ts.map +1 -0
  157. package/lib/cjs/common/render/GraphicType.js +70 -0
  158. package/lib/cjs/common/render/GraphicType.js.map +1 -0
  159. package/lib/cjs/common/render/InstancedGraphicParams.d.ts.map +1 -0
  160. package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -0
  161. package/lib/cjs/common.d.ts +13 -0
  162. package/lib/cjs/common.d.ts.map +1 -0
  163. package/lib/cjs/common.js +34 -0
  164. package/lib/cjs/common.js.map +1 -0
  165. package/lib/cjs/core-frontend.d.ts +2 -43
  166. package/lib/cjs/core-frontend.d.ts.map +1 -1
  167. package/lib/cjs/core-frontend.js +2 -43
  168. package/lib/cjs/core-frontend.js.map +1 -1
  169. package/lib/cjs/extension/ExtensionRuntime.js +1 -0
  170. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  171. package/lib/cjs/internal/cross-package.d.ts +3 -1
  172. package/lib/cjs/internal/cross-package.d.ts.map +1 -1
  173. package/lib/cjs/internal/cross-package.js +6 -2
  174. package/lib/cjs/internal/cross-package.js.map +1 -1
  175. package/lib/cjs/internal/render/PrimitiveBuilder.d.ts +33 -0
  176. package/lib/cjs/internal/render/PrimitiveBuilder.d.ts.map +1 -0
  177. package/lib/cjs/internal/render/PrimitiveBuilder.js +140 -0
  178. package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -0
  179. package/lib/cjs/render/GraphicBranch.d.ts +1 -1
  180. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  181. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  182. package/lib/cjs/render/GraphicBuilder.d.ts +7 -258
  183. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  184. package/lib/cjs/render/GraphicBuilder.js +18 -284
  185. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  186. package/lib/cjs/render/MockRender.d.ts +5 -5
  187. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  188. package/lib/cjs/render/MockRender.js +2 -2
  189. package/lib/cjs/render/MockRender.js.map +1 -1
  190. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  191. package/lib/cjs/render/ParticleCollectionBuilder.js +4 -3
  192. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  193. package/lib/cjs/render/RealityMeshParams.js +1 -1
  194. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  195. package/lib/cjs/render/RenderSystem.d.ts +33 -7
  196. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  197. package/lib/cjs/render/RenderSystem.js +55 -6
  198. package/lib/cjs/render/RenderSystem.js.map +1 -1
  199. package/lib/cjs/render/webgl/CachedGeometry.d.ts +1 -1
  200. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  201. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  202. package/lib/cjs/render/webgl/ColorInfo.d.ts +1 -1
  203. package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
  204. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  205. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +2 -2
  206. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
  207. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  208. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +1 -1
  209. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  210. package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
  211. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  212. package/lib/cjs/render/webgl/Graphic.d.ts +1 -1
  213. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  214. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  215. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  216. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  217. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  218. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +1 -1
  219. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  220. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  221. package/lib/cjs/render/webgl/Material.d.ts +1 -1
  222. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  223. package/lib/cjs/render/webgl/Material.js.map +1 -1
  224. package/lib/cjs/render/webgl/Mesh.d.ts +6 -3
  225. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  226. package/lib/cjs/render/webgl/Mesh.js +3 -1
  227. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  228. package/lib/cjs/render/webgl/MeshData.d.ts +2 -2
  229. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
  230. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  231. package/lib/cjs/render/webgl/MeshGeometry.d.ts +1 -1
  232. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -1
  233. package/lib/cjs/render/webgl/PointCloud.d.ts +1 -1
  234. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  235. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  236. package/lib/cjs/render/webgl/PointString.d.ts +1 -1
  237. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  238. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  239. package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
  240. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  241. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  242. package/lib/cjs/render/webgl/Primitive.d.ts +1 -1
  243. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  244. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  245. package/lib/cjs/render/webgl/RenderCommands.js +1 -1
  246. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  247. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +1 -1
  248. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  249. package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
  250. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  251. package/lib/cjs/render/webgl/System.d.ts +7 -6
  252. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  253. package/lib/cjs/render/webgl/System.js +2 -2
  254. package/lib/cjs/render/webgl/System.js.map +1 -1
  255. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  256. package/lib/cjs/render/webgl/Target.js +1 -1
  257. package/lib/cjs/render/webgl/Target.js.map +1 -1
  258. package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
  259. package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
  260. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  261. package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
  262. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  263. package/lib/cjs/tile/B3dmReader.d.ts +1 -1
  264. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  265. package/lib/cjs/tile/GltfReader.d.ts +5 -5
  266. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  267. package/lib/cjs/tile/GltfReader.js +6 -6
  268. package/lib/cjs/tile/GltfReader.js.map +1 -1
  269. package/lib/cjs/tile/I3dmReader.d.ts +1 -1
  270. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  271. package/lib/cjs/tile/ImdlDecoder.d.ts +1 -1
  272. package/lib/cjs/tile/ImdlDecoder.d.ts.map +1 -1
  273. package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
  274. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +3 -0
  275. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  276. package/lib/cjs/tile/ImdlGraphicsCreator.js +87 -5
  277. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
  278. package/lib/cjs/tile/ImdlReader.d.ts +1 -1
  279. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  280. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  281. package/lib/cjs/tile/OrbitGtTileTree.js +1 -1
  282. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  283. package/lib/cjs/tile/PntsReader.js +1 -1
  284. package/lib/cjs/tile/PntsReader.js.map +1 -1
  285. package/lib/cjs/tile/PrimaryTileTree.js +1 -1
  286. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  287. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +1 -1
  288. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -1
  289. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  290. package/lib/cjs/tile/map/MapFeatureInfo.d.ts +1 -1
  291. package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -1
  292. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  293. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  294. package/lib/cjs/tools/ClipViewTool.js +16 -16
  295. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  296. package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
  297. package/lib/cjs/tools/MeasureTool.js +9 -9
  298. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  299. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  300. package/lib/cjs/tools/ViewTool.js +8 -8
  301. package/lib/cjs/tools/ViewTool.js.map +1 -1
  302. package/lib/cjs/workers/RegisterWorker.d.ts +2 -1
  303. package/lib/cjs/workers/RegisterWorker.d.ts.map +1 -1
  304. package/lib/cjs/workers/RegisterWorker.js +2 -1
  305. package/lib/cjs/workers/RegisterWorker.js.map +1 -1
  306. package/lib/esm/AccuDraw.d.ts.map +1 -1
  307. package/lib/esm/AccuDraw.js +1 -1
  308. package/lib/esm/AccuDraw.js.map +1 -1
  309. package/lib/esm/AccuSnap.js +1 -1
  310. package/lib/esm/AccuSnap.js.map +1 -1
  311. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  312. package/lib/esm/AuxCoordSys.js +1 -1
  313. package/lib/esm/AuxCoordSys.js.map +1 -1
  314. package/lib/esm/DecorationsCache.d.ts +1 -1
  315. package/lib/esm/DecorationsCache.d.ts.map +1 -1
  316. package/lib/esm/DecorationsCache.js.map +1 -1
  317. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
  318. package/lib/esm/EnvironmentDecorations.js +1 -1
  319. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  320. package/lib/esm/HitDetail.d.ts.map +1 -1
  321. package/lib/esm/HitDetail.js +1 -1
  322. package/lib/esm/HitDetail.js.map +1 -1
  323. package/lib/esm/IModelConnection.d.ts +1 -1
  324. package/lib/esm/IModelConnection.d.ts.map +1 -1
  325. package/lib/esm/IModelConnection.js +1 -1
  326. package/lib/esm/IModelConnection.js.map +1 -1
  327. package/lib/esm/IpcApp.d.ts +1 -1
  328. package/lib/esm/IpcApp.d.ts.map +1 -1
  329. package/lib/esm/IpcApp.js +1 -1
  330. package/lib/esm/IpcApp.js.map +1 -1
  331. package/lib/esm/LocalhostIpcApp.js +1 -1
  332. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  333. package/lib/esm/NativeApp.js +1 -1
  334. package/lib/esm/NativeApp.js.map +1 -1
  335. package/lib/esm/SheetViewState.d.ts.map +1 -1
  336. package/lib/esm/SheetViewState.js +1 -1
  337. package/lib/esm/SheetViewState.js.map +1 -1
  338. package/lib/esm/ViewContext.d.ts +2 -1
  339. package/lib/esm/ViewContext.d.ts.map +1 -1
  340. package/lib/esm/ViewContext.js +1 -1
  341. package/lib/esm/ViewContext.js.map +1 -1
  342. package/lib/esm/Viewport.d.ts.map +1 -1
  343. package/lib/esm/Viewport.js +1 -1
  344. package/lib/esm/Viewport.js.map +1 -1
  345. package/lib/esm/common/WorkerProxy.d.ts +7 -25
  346. package/lib/esm/common/WorkerProxy.d.ts.map +1 -1
  347. package/lib/esm/common/WorkerProxy.js +2 -1
  348. package/lib/esm/common/WorkerProxy.js.map +1 -1
  349. package/lib/esm/common/imdl/CompactEdges.d.ts +1 -1
  350. package/lib/esm/common/imdl/CompactEdges.d.ts.map +1 -1
  351. package/lib/esm/common/imdl/CompactEdges.js +2 -2
  352. package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
  353. package/lib/esm/common/imdl/ImdlModel.d.ts +5 -3
  354. package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -1
  355. package/lib/esm/common/imdl/ImdlModel.js +47 -41
  356. package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
  357. package/lib/esm/common/imdl/ImdlSchema.d.ts +4 -4
  358. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -1
  359. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  360. package/lib/esm/common/imdl/ParseImdlDocument.d.ts +4 -2
  361. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  362. package/lib/esm/common/imdl/ParseImdlDocument.js +9 -8
  363. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  364. package/lib/{cjs → esm/common}/internal/Symbols.d.ts +2 -0
  365. package/lib/esm/common/internal/Symbols.d.ts.map +1 -0
  366. package/lib/esm/{internal → common/internal}/Symbols.js +2 -0
  367. package/lib/esm/common/internal/Symbols.js.map +1 -0
  368. package/lib/esm/common/internal/render/AnimationNodeId.d.ts.map +1 -0
  369. package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -0
  370. package/lib/esm/common/internal/render/AuxChannelTable.d.ts.map +1 -0
  371. package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -0
  372. package/lib/esm/common/internal/render/ColorMap.d.ts.map +1 -0
  373. package/lib/esm/common/internal/render/ColorMap.js.map +1 -0
  374. package/lib/esm/common/internal/render/DisplayParams.d.ts.map +1 -0
  375. package/lib/esm/common/internal/render/DisplayParams.js.map +1 -0
  376. package/lib/esm/common/{render/primitives → internal/render}/EdgeParams.d.ts +7 -0
  377. package/lib/esm/common/internal/render/EdgeParams.d.ts.map +1 -0
  378. package/lib/esm/{render/primitives → common/internal/render}/EdgeParams.js +47 -14
  379. package/lib/esm/common/internal/render/EdgeParams.js.map +1 -0
  380. package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.d.ts +4 -18
  381. package/lib/esm/common/internal/render/GeometryAccumulator.d.ts.map +1 -0
  382. package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.js +2 -70
  383. package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -0
  384. package/lib/esm/common/internal/render/GeometryList.d.ts.map +1 -0
  385. package/lib/esm/common/internal/render/GeometryList.js.map +1 -0
  386. package/lib/{cjs/render/primitives/geometry → esm/common/internal/render}/GeometryPrimitives.d.ts +3 -3
  387. package/lib/esm/common/internal/render/GeometryPrimitives.d.ts.map +1 -0
  388. package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryPrimitives.js +3 -3
  389. package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -0
  390. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts +64 -0
  391. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
  392. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js +263 -0
  393. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -0
  394. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilder.d.ts +4 -4
  395. package/lib/{cjs/render/primitives/mesh → esm/common/internal/render}/MeshBuilder.d.ts.map +1 -1
  396. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilder.js +2 -2
  397. package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -0
  398. package/lib/{cjs/render/primitives/mesh → esm/common/internal/render}/MeshBuilderMap.d.ts +7 -8
  399. package/lib/esm/common/internal/render/MeshBuilderMap.d.ts.map +1 -0
  400. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilderMap.js +4 -6
  401. package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -0
  402. package/lib/esm/common/internal/render/MeshParams.d.ts.map +1 -0
  403. package/lib/esm/common/internal/render/MeshParams.js.map +1 -0
  404. package/lib/esm/common/internal/render/MeshPrimitive.d.ts.map +1 -0
  405. package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -0
  406. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshPrimitives.d.ts +5 -9
  407. package/lib/esm/common/internal/render/MeshPrimitives.d.ts.map +1 -0
  408. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +4 -11
  409. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -0
  410. package/lib/esm/common/internal/render/PointCloudPrimitive.d.ts.map +1 -0
  411. package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -0
  412. package/lib/{cjs/common/render/primitives → esm/common/internal/render}/PointStringParams.d.ts +3 -0
  413. package/lib/esm/common/internal/render/PointStringParams.d.ts.map +1 -0
  414. package/lib/esm/{render/primitives → common/internal/render}/PointStringParams.js +3 -4
  415. package/lib/esm/common/internal/render/PointStringParams.js.map +1 -0
  416. package/lib/{cjs/render/primitives → esm/common/internal/render}/Polyface.d.ts +1 -1
  417. package/lib/esm/common/internal/render/Polyface.d.ts.map +1 -0
  418. package/lib/esm/common/internal/render/Polyface.js.map +1 -0
  419. package/lib/esm/common/{render/primitives → internal/render}/PolylineParams.d.ts +10 -1
  420. package/lib/esm/common/internal/render/PolylineParams.d.ts.map +1 -0
  421. package/lib/esm/{render/primitives → common/internal/render}/PolylineParams.js +5 -6
  422. package/lib/esm/common/internal/render/PolylineParams.js.map +1 -0
  423. package/lib/{cjs/render/primitives → esm/common/internal/render}/Primitives.d.ts +3 -34
  424. package/lib/esm/common/internal/render/Primitives.d.ts.map +1 -0
  425. package/lib/esm/{render/primitives → common/internal/render}/Primitives.js +0 -42
  426. package/lib/esm/common/internal/render/Primitives.js.map +1 -0
  427. package/lib/{cjs/render/primitives → esm/common/internal/render}/Strokes.d.ts +1 -1
  428. package/lib/esm/common/internal/render/Strokes.d.ts.map +1 -0
  429. package/lib/esm/common/internal/render/Strokes.js.map +1 -0
  430. package/lib/esm/common/internal/render/SurfaceParams.d.ts.map +1 -0
  431. package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -0
  432. package/lib/esm/common/internal/render/VertexIndices.d.ts.map +1 -0
  433. package/lib/esm/common/internal/render/VertexIndices.js.map +1 -0
  434. package/lib/esm/common/internal/render/VertexKey.d.ts.map +1 -0
  435. package/lib/esm/common/internal/render/VertexKey.js.map +1 -0
  436. package/lib/esm/common/internal/render/VertexTable.d.ts.map +1 -0
  437. package/lib/esm/common/internal/render/VertexTable.js.map +1 -0
  438. package/lib/{cjs/render/primitives → esm/common/internal/render}/VertexTableBuilder.d.ts +4 -4
  439. package/lib/esm/common/internal/render/VertexTableBuilder.d.ts.map +1 -0
  440. package/lib/esm/{render/primitives → common/internal/render}/VertexTableBuilder.js +6 -6
  441. package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -0
  442. package/lib/esm/common/{render/primitives → internal/render}/VertexTableSplitter.d.ts +1 -1
  443. package/lib/esm/common/internal/render/VertexTableSplitter.d.ts.map +1 -0
  444. package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -0
  445. package/lib/esm/common/render/BatchOptions.d.ts +46 -0
  446. package/lib/esm/common/render/BatchOptions.d.ts.map +1 -0
  447. package/lib/esm/common/render/{primitives/PolylineParams.js → BatchOptions.js} +1 -1
  448. package/lib/esm/common/render/BatchOptions.js.map +1 -0
  449. package/lib/esm/common/render/GraphicAssembler.d.ts +197 -0
  450. package/lib/esm/common/render/GraphicAssembler.d.ts.map +1 -0
  451. package/lib/esm/common/render/GraphicAssembler.js +382 -0
  452. package/lib/esm/common/render/GraphicAssembler.js.map +1 -0
  453. package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts +154 -0
  454. package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
  455. package/lib/esm/common/render/GraphicDescriptionBuilder.js +40 -0
  456. package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -0
  457. package/lib/esm/common/render/GraphicPrimitive.d.ts.map +1 -0
  458. package/lib/esm/common/render/GraphicPrimitive.js.map +1 -0
  459. package/lib/esm/common/render/GraphicType.d.ts +62 -0
  460. package/lib/esm/common/render/GraphicType.d.ts.map +1 -0
  461. package/lib/esm/common/render/GraphicType.js +67 -0
  462. package/lib/esm/common/render/GraphicType.js.map +1 -0
  463. package/lib/esm/common/render/InstancedGraphicParams.d.ts.map +1 -0
  464. package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -0
  465. package/lib/esm/common.d.ts +13 -0
  466. package/lib/esm/common.d.ts.map +1 -0
  467. package/lib/esm/common.js +18 -0
  468. package/lib/esm/common.js.map +1 -0
  469. package/lib/esm/core-frontend.d.ts +2 -43
  470. package/lib/esm/core-frontend.d.ts.map +1 -1
  471. package/lib/esm/core-frontend.js +2 -43
  472. package/lib/esm/core-frontend.js.map +1 -1
  473. package/lib/esm/extension/ExtensionRuntime.js +2 -1
  474. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  475. package/lib/esm/internal/cross-package.d.ts +3 -1
  476. package/lib/esm/internal/cross-package.d.ts.map +1 -1
  477. package/lib/esm/internal/cross-package.js +3 -1
  478. package/lib/esm/internal/cross-package.js.map +1 -1
  479. package/lib/esm/internal/render/PrimitiveBuilder.d.ts +33 -0
  480. package/lib/esm/internal/render/PrimitiveBuilder.d.ts.map +1 -0
  481. package/lib/esm/internal/render/PrimitiveBuilder.js +136 -0
  482. package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -0
  483. package/lib/esm/render/GraphicBranch.d.ts +1 -1
  484. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  485. package/lib/esm/render/GraphicBranch.js.map +1 -1
  486. package/lib/esm/render/GraphicBuilder.d.ts +7 -258
  487. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  488. package/lib/esm/render/GraphicBuilder.js +18 -284
  489. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  490. package/lib/esm/render/MockRender.d.ts +5 -5
  491. package/lib/esm/render/MockRender.d.ts.map +1 -1
  492. package/lib/esm/render/MockRender.js +1 -1
  493. package/lib/esm/render/MockRender.js.map +1 -1
  494. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  495. package/lib/esm/render/ParticleCollectionBuilder.js +4 -3
  496. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  497. package/lib/esm/render/RealityMeshParams.js +1 -1
  498. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  499. package/lib/esm/render/RenderSystem.d.ts +33 -7
  500. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  501. package/lib/esm/render/RenderSystem.js +55 -6
  502. package/lib/esm/render/RenderSystem.js.map +1 -1
  503. package/lib/esm/render/webgl/CachedGeometry.d.ts +1 -1
  504. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  505. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  506. package/lib/esm/render/webgl/ColorInfo.d.ts +1 -1
  507. package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
  508. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  509. package/lib/esm/render/webgl/EdgeGeometry.d.ts +2 -2
  510. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
  511. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  512. package/lib/esm/render/webgl/FeatureOverrides.d.ts +1 -1
  513. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  514. package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
  515. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  516. package/lib/esm/render/webgl/Graphic.d.ts +1 -1
  517. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  518. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  519. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  520. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  521. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  522. package/lib/esm/render/webgl/InstancedGeometry.d.ts +1 -1
  523. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  524. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  525. package/lib/esm/render/webgl/Material.d.ts +1 -1
  526. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  527. package/lib/esm/render/webgl/Material.js.map +1 -1
  528. package/lib/esm/render/webgl/Mesh.d.ts +6 -3
  529. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  530. package/lib/esm/render/webgl/Mesh.js +3 -1
  531. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  532. package/lib/esm/render/webgl/MeshData.d.ts +2 -2
  533. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
  534. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  535. package/lib/esm/render/webgl/MeshGeometry.d.ts +1 -1
  536. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -1
  537. package/lib/esm/render/webgl/PointCloud.d.ts +1 -1
  538. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  539. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  540. package/lib/esm/render/webgl/PointString.d.ts +1 -1
  541. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  542. package/lib/esm/render/webgl/PointString.js.map +1 -1
  543. package/lib/esm/render/webgl/Polyline.d.ts +1 -1
  544. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  545. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  546. package/lib/esm/render/webgl/Primitive.d.ts +1 -1
  547. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  548. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  549. package/lib/esm/render/webgl/RenderCommands.js +1 -1
  550. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  551. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +1 -1
  552. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  553. package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
  554. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  555. package/lib/esm/render/webgl/System.d.ts +7 -6
  556. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  557. package/lib/esm/render/webgl/System.js +1 -1
  558. package/lib/esm/render/webgl/System.js.map +1 -1
  559. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  560. package/lib/esm/render/webgl/Target.js +1 -1
  561. package/lib/esm/render/webgl/Target.js.map +1 -1
  562. package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
  563. package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
  564. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  565. package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
  566. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  567. package/lib/esm/tile/B3dmReader.d.ts +1 -1
  568. package/lib/esm/tile/B3dmReader.js.map +1 -1
  569. package/lib/esm/tile/GltfReader.d.ts +5 -5
  570. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  571. package/lib/esm/tile/GltfReader.js +6 -6
  572. package/lib/esm/tile/GltfReader.js.map +1 -1
  573. package/lib/esm/tile/I3dmReader.d.ts +1 -1
  574. package/lib/esm/tile/I3dmReader.js.map +1 -1
  575. package/lib/esm/tile/ImdlDecoder.d.ts +1 -1
  576. package/lib/esm/tile/ImdlDecoder.d.ts.map +1 -1
  577. package/lib/esm/tile/ImdlDecoder.js.map +1 -1
  578. package/lib/esm/tile/ImdlGraphicsCreator.d.ts +3 -0
  579. package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  580. package/lib/esm/tile/ImdlGraphicsCreator.js +87 -6
  581. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
  582. package/lib/esm/tile/ImdlReader.d.ts +1 -1
  583. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  584. package/lib/esm/tile/ImdlReader.js.map +1 -1
  585. package/lib/esm/tile/OrbitGtTileTree.js +1 -1
  586. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  587. package/lib/esm/tile/PntsReader.js +1 -1
  588. package/lib/esm/tile/PntsReader.js.map +1 -1
  589. package/lib/esm/tile/PrimaryTileTree.js +1 -1
  590. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  591. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +1 -1
  592. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -1
  593. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  594. package/lib/esm/tile/map/MapFeatureInfo.d.ts +1 -1
  595. package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -1
  596. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  597. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  598. package/lib/esm/tools/ClipViewTool.js +1 -1
  599. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  600. package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
  601. package/lib/esm/tools/MeasureTool.js +1 -1
  602. package/lib/esm/tools/MeasureTool.js.map +1 -1
  603. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  604. package/lib/esm/tools/ViewTool.js +1 -1
  605. package/lib/esm/tools/ViewTool.js.map +1 -1
  606. package/lib/esm/workers/RegisterWorker.d.ts +2 -1
  607. package/lib/esm/workers/RegisterWorker.d.ts.map +1 -1
  608. package/lib/esm/workers/RegisterWorker.js +2 -1
  609. package/lib/esm/workers/RegisterWorker.js.map +1 -1
  610. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  611. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  612. package/package.json +18 -18
  613. package/lib/cjs/common/render/AnimationNodeId.d.ts.map +0 -1
  614. package/lib/cjs/common/render/AnimationNodeId.js.map +0 -1
  615. package/lib/cjs/common/render/primitives/AuxChannelTable.d.ts.map +0 -1
  616. package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +0 -1
  617. package/lib/cjs/common/render/primitives/DisplayParams.d.ts.map +0 -1
  618. package/lib/cjs/common/render/primitives/DisplayParams.js.map +0 -1
  619. package/lib/cjs/common/render/primitives/EdgeParams.d.ts.map +0 -1
  620. package/lib/cjs/common/render/primitives/EdgeParams.js +0 -46
  621. package/lib/cjs/common/render/primitives/EdgeParams.js.map +0 -1
  622. package/lib/cjs/common/render/primitives/MeshParams.d.ts.map +0 -1
  623. package/lib/cjs/common/render/primitives/MeshParams.js.map +0 -1
  624. package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts.map +0 -1
  625. package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +0 -1
  626. package/lib/cjs/common/render/primitives/PointStringParams.d.ts.map +0 -1
  627. package/lib/cjs/common/render/primitives/PointStringParams.js +0 -10
  628. package/lib/cjs/common/render/primitives/PointStringParams.js.map +0 -1
  629. package/lib/cjs/common/render/primitives/PolylineParams.d.ts.map +0 -1
  630. package/lib/cjs/common/render/primitives/PolylineParams.js.map +0 -1
  631. package/lib/cjs/common/render/primitives/SurfaceParams.d.ts.map +0 -1
  632. package/lib/cjs/common/render/primitives/SurfaceParams.js.map +0 -1
  633. package/lib/cjs/common/render/primitives/VertexIndices.d.ts.map +0 -1
  634. package/lib/cjs/common/render/primitives/VertexIndices.js.map +0 -1
  635. package/lib/cjs/common/render/primitives/VertexTable.d.ts.map +0 -1
  636. package/lib/cjs/common/render/primitives/VertexTable.js.map +0 -1
  637. package/lib/cjs/common/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  638. package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +0 -1
  639. package/lib/cjs/internal/Symbols.d.ts.map +0 -1
  640. package/lib/cjs/internal/Symbols.js.map +0 -1
  641. package/lib/cjs/render/GraphicPrimitive.d.ts.map +0 -1
  642. package/lib/cjs/render/GraphicPrimitive.js.map +0 -1
  643. package/lib/cjs/render/InstancedGraphicParams.d.ts.map +0 -1
  644. package/lib/cjs/render/InstancedGraphicParams.js.map +0 -1
  645. package/lib/cjs/render/primitives/ColorMap.d.ts.map +0 -1
  646. package/lib/cjs/render/primitives/ColorMap.js.map +0 -1
  647. package/lib/cjs/render/primitives/EdgeParams.d.ts +0 -8
  648. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +0 -1
  649. package/lib/cjs/render/primitives/EdgeParams.js.map +0 -1
  650. package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts.map +0 -1
  651. package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +0 -1
  652. package/lib/cjs/render/primitives/PointStringParams.d.ts +0 -8
  653. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +0 -1
  654. package/lib/cjs/render/primitives/PointStringParams.js.map +0 -1
  655. package/lib/cjs/render/primitives/Polyface.d.ts.map +0 -1
  656. package/lib/cjs/render/primitives/Polyface.js.map +0 -1
  657. package/lib/cjs/render/primitives/PolylineParams.d.ts +0 -15
  658. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +0 -1
  659. package/lib/cjs/render/primitives/PolylineParams.js.map +0 -1
  660. package/lib/cjs/render/primitives/Primitives.d.ts.map +0 -1
  661. package/lib/cjs/render/primitives/Primitives.js.map +0 -1
  662. package/lib/cjs/render/primitives/Strokes.d.ts.map +0 -1
  663. package/lib/cjs/render/primitives/Strokes.js.map +0 -1
  664. package/lib/cjs/render/primitives/VertexKey.d.ts.map +0 -1
  665. package/lib/cjs/render/primitives/VertexKey.js.map +0 -1
  666. package/lib/cjs/render/primitives/VertexTableBuilder.d.ts.map +0 -1
  667. package/lib/cjs/render/primitives/VertexTableBuilder.js.map +0 -1
  668. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +0 -1
  669. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +0 -1
  670. package/lib/cjs/render/primitives/geometry/GeometryList.d.ts.map +0 -1
  671. package/lib/cjs/render/primitives/geometry/GeometryList.js.map +0 -1
  672. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +0 -50
  673. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +0 -1
  674. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +0 -176
  675. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +0 -1
  676. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +0 -1
  677. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +0 -1
  678. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +0 -1
  679. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +0 -1
  680. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +0 -1
  681. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +0 -1
  682. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +0 -1
  683. package/lib/esm/common/render/AnimationNodeId.d.ts.map +0 -1
  684. package/lib/esm/common/render/AnimationNodeId.js.map +0 -1
  685. package/lib/esm/common/render/primitives/AuxChannelTable.d.ts.map +0 -1
  686. package/lib/esm/common/render/primitives/AuxChannelTable.js.map +0 -1
  687. package/lib/esm/common/render/primitives/DisplayParams.d.ts.map +0 -1
  688. package/lib/esm/common/render/primitives/DisplayParams.js.map +0 -1
  689. package/lib/esm/common/render/primitives/EdgeParams.d.ts.map +0 -1
  690. package/lib/esm/common/render/primitives/EdgeParams.js +0 -42
  691. package/lib/esm/common/render/primitives/EdgeParams.js.map +0 -1
  692. package/lib/esm/common/render/primitives/MeshParams.d.ts.map +0 -1
  693. package/lib/esm/common/render/primitives/MeshParams.js.map +0 -1
  694. package/lib/esm/common/render/primitives/MeshPrimitive.d.ts.map +0 -1
  695. package/lib/esm/common/render/primitives/MeshPrimitive.js.map +0 -1
  696. package/lib/esm/common/render/primitives/PointStringParams.d.ts.map +0 -1
  697. package/lib/esm/common/render/primitives/PointStringParams.js +0 -9
  698. package/lib/esm/common/render/primitives/PointStringParams.js.map +0 -1
  699. package/lib/esm/common/render/primitives/PolylineParams.d.ts.map +0 -1
  700. package/lib/esm/common/render/primitives/PolylineParams.js.map +0 -1
  701. package/lib/esm/common/render/primitives/SurfaceParams.d.ts.map +0 -1
  702. package/lib/esm/common/render/primitives/SurfaceParams.js.map +0 -1
  703. package/lib/esm/common/render/primitives/VertexIndices.d.ts.map +0 -1
  704. package/lib/esm/common/render/primitives/VertexIndices.js.map +0 -1
  705. package/lib/esm/common/render/primitives/VertexTable.d.ts.map +0 -1
  706. package/lib/esm/common/render/primitives/VertexTable.js.map +0 -1
  707. package/lib/esm/common/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  708. package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +0 -1
  709. package/lib/esm/internal/Symbols.d.ts.map +0 -1
  710. package/lib/esm/internal/Symbols.js.map +0 -1
  711. package/lib/esm/render/GraphicPrimitive.d.ts.map +0 -1
  712. package/lib/esm/render/GraphicPrimitive.js.map +0 -1
  713. package/lib/esm/render/InstancedGraphicParams.d.ts.map +0 -1
  714. package/lib/esm/render/InstancedGraphicParams.js.map +0 -1
  715. package/lib/esm/render/primitives/ColorMap.d.ts.map +0 -1
  716. package/lib/esm/render/primitives/ColorMap.js.map +0 -1
  717. package/lib/esm/render/primitives/EdgeParams.d.ts +0 -8
  718. package/lib/esm/render/primitives/EdgeParams.d.ts.map +0 -1
  719. package/lib/esm/render/primitives/EdgeParams.js.map +0 -1
  720. package/lib/esm/render/primitives/PointCloudPrimitive.d.ts.map +0 -1
  721. package/lib/esm/render/primitives/PointCloudPrimitive.js.map +0 -1
  722. package/lib/esm/render/primitives/PointStringParams.d.ts +0 -8
  723. package/lib/esm/render/primitives/PointStringParams.d.ts.map +0 -1
  724. package/lib/esm/render/primitives/PointStringParams.js.map +0 -1
  725. package/lib/esm/render/primitives/Polyface.d.ts.map +0 -1
  726. package/lib/esm/render/primitives/Polyface.js.map +0 -1
  727. package/lib/esm/render/primitives/PolylineParams.d.ts +0 -15
  728. package/lib/esm/render/primitives/PolylineParams.d.ts.map +0 -1
  729. package/lib/esm/render/primitives/PolylineParams.js.map +0 -1
  730. package/lib/esm/render/primitives/Primitives.d.ts.map +0 -1
  731. package/lib/esm/render/primitives/Primitives.js.map +0 -1
  732. package/lib/esm/render/primitives/Strokes.d.ts.map +0 -1
  733. package/lib/esm/render/primitives/Strokes.js.map +0 -1
  734. package/lib/esm/render/primitives/VertexKey.d.ts.map +0 -1
  735. package/lib/esm/render/primitives/VertexKey.js.map +0 -1
  736. package/lib/esm/render/primitives/VertexTableBuilder.d.ts.map +0 -1
  737. package/lib/esm/render/primitives/VertexTableBuilder.js.map +0 -1
  738. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +0 -1
  739. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +0 -1
  740. package/lib/esm/render/primitives/geometry/GeometryList.d.ts.map +0 -1
  741. package/lib/esm/render/primitives/geometry/GeometryList.js.map +0 -1
  742. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +0 -50
  743. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +0 -1
  744. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +0 -171
  745. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +0 -1
  746. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +0 -1
  747. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +0 -1
  748. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +0 -1
  749. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +0 -1
  750. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +0 -1
  751. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +0 -1
  752. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +0 -1
  753. /package/lib/cjs/common/{render → internal/render}/AnimationNodeId.d.ts +0 -0
  754. /package/lib/cjs/common/{render → internal/render}/AnimationNodeId.js +0 -0
  755. /package/lib/cjs/common/{render/primitives → internal/render}/AuxChannelTable.d.ts +0 -0
  756. /package/lib/cjs/common/{render/primitives → internal/render}/AuxChannelTable.js +0 -0
  757. /package/lib/cjs/{render/primitives → common/internal/render}/ColorMap.d.ts +0 -0
  758. /package/lib/cjs/{render/primitives → common/internal/render}/ColorMap.js +0 -0
  759. /package/lib/cjs/common/{render/primitives → internal/render}/DisplayParams.d.ts +0 -0
  760. /package/lib/cjs/common/{render/primitives → internal/render}/DisplayParams.js +0 -0
  761. /package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryList.d.ts +0 -0
  762. /package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryList.js +0 -0
  763. /package/lib/cjs/common/{render/primitives → internal/render}/MeshParams.d.ts +0 -0
  764. /package/lib/cjs/common/{render/primitives → internal/render}/MeshParams.js +0 -0
  765. /package/lib/cjs/common/{render/primitives → internal/render}/MeshPrimitive.d.ts +0 -0
  766. /package/lib/cjs/common/{render/primitives → internal/render}/MeshPrimitive.js +0 -0
  767. /package/lib/cjs/{render/primitives → common/internal/render}/PointCloudPrimitive.d.ts +0 -0
  768. /package/lib/cjs/{render/primitives → common/internal/render}/PointCloudPrimitive.js +0 -0
  769. /package/lib/cjs/{render/primitives → common/internal/render}/Polyface.js +0 -0
  770. /package/lib/cjs/{render/primitives → common/internal/render}/Strokes.js +0 -0
  771. /package/lib/cjs/common/{render/primitives → internal/render}/SurfaceParams.d.ts +0 -0
  772. /package/lib/cjs/common/{render/primitives → internal/render}/SurfaceParams.js +0 -0
  773. /package/lib/cjs/common/{render/primitives → internal/render}/VertexIndices.d.ts +0 -0
  774. /package/lib/cjs/common/{render/primitives → internal/render}/VertexIndices.js +0 -0
  775. /package/lib/cjs/{render/primitives → common/internal/render}/VertexKey.d.ts +0 -0
  776. /package/lib/cjs/{render/primitives → common/internal/render}/VertexKey.js +0 -0
  777. /package/lib/cjs/common/{render/primitives → internal/render}/VertexTable.d.ts +0 -0
  778. /package/lib/cjs/common/{render/primitives → internal/render}/VertexTable.js +0 -0
  779. /package/lib/cjs/common/{render/primitives → internal/render}/VertexTableSplitter.js +0 -0
  780. /package/lib/cjs/{render → common/render}/GraphicPrimitive.d.ts +0 -0
  781. /package/lib/cjs/{render → common/render}/GraphicPrimitive.js +0 -0
  782. /package/lib/cjs/{render → common/render}/InstancedGraphicParams.d.ts +0 -0
  783. /package/lib/cjs/{render → common/render}/InstancedGraphicParams.js +0 -0
  784. /package/lib/esm/common/{render → internal/render}/AnimationNodeId.d.ts +0 -0
  785. /package/lib/esm/common/{render → internal/render}/AnimationNodeId.js +0 -0
  786. /package/lib/esm/common/{render/primitives → internal/render}/AuxChannelTable.d.ts +0 -0
  787. /package/lib/esm/common/{render/primitives → internal/render}/AuxChannelTable.js +0 -0
  788. /package/lib/esm/{render/primitives → common/internal/render}/ColorMap.d.ts +0 -0
  789. /package/lib/esm/{render/primitives → common/internal/render}/ColorMap.js +0 -0
  790. /package/lib/esm/common/{render/primitives → internal/render}/DisplayParams.d.ts +0 -0
  791. /package/lib/esm/common/{render/primitives → internal/render}/DisplayParams.js +0 -0
  792. /package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryList.d.ts +0 -0
  793. /package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryList.js +0 -0
  794. /package/lib/esm/common/{render/primitives → internal/render}/MeshParams.d.ts +0 -0
  795. /package/lib/esm/common/{render/primitives → internal/render}/MeshParams.js +0 -0
  796. /package/lib/esm/common/{render/primitives → internal/render}/MeshPrimitive.d.ts +0 -0
  797. /package/lib/esm/common/{render/primitives → internal/render}/MeshPrimitive.js +0 -0
  798. /package/lib/esm/{render/primitives → common/internal/render}/PointCloudPrimitive.d.ts +0 -0
  799. /package/lib/esm/{render/primitives → common/internal/render}/PointCloudPrimitive.js +0 -0
  800. /package/lib/esm/{render/primitives → common/internal/render}/Polyface.js +0 -0
  801. /package/lib/esm/{render/primitives → common/internal/render}/Strokes.js +0 -0
  802. /package/lib/esm/common/{render/primitives → internal/render}/SurfaceParams.d.ts +0 -0
  803. /package/lib/esm/common/{render/primitives → internal/render}/SurfaceParams.js +0 -0
  804. /package/lib/esm/common/{render/primitives → internal/render}/VertexIndices.d.ts +0 -0
  805. /package/lib/esm/common/{render/primitives → internal/render}/VertexIndices.js +0 -0
  806. /package/lib/esm/{render/primitives → common/internal/render}/VertexKey.d.ts +0 -0
  807. /package/lib/esm/{render/primitives → common/internal/render}/VertexKey.js +0 -0
  808. /package/lib/esm/common/{render/primitives → internal/render}/VertexTable.d.ts +0 -0
  809. /package/lib/esm/common/{render/primitives → internal/render}/VertexTable.js +0 -0
  810. /package/lib/esm/common/{render/primitives → internal/render}/VertexTableSplitter.js +0 -0
  811. /package/lib/esm/{render → common/render}/GraphicPrimitive.d.ts +0 -0
  812. /package/lib/esm/{render → common/render}/GraphicPrimitive.js +0 -0
  813. /package/lib/esm/{render → common/render}/InstancedGraphicParams.d.ts +0 -0
  814. /package/lib/esm/{render → common/render}/InstancedGraphicParams.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"GeometryPrimitives.js","sourceRoot":"","sources":["../../../../../src/render/primitives/geometry/GeometryPrimitives.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 {\r\n CurveChain, IndexedPolyface, Loop, Path, Point3d, PolyfaceBuilder, PolyfaceQuery, Range3d, SolidPrimitive, StrokeOptions, SweepContour, Transform,\r\n} from \"@itwin/core-geometry\";\r\nimport { Feature } from \"@itwin/core-common\";\r\nimport { DisplayParams } from \"../../../common/render/primitives/DisplayParams\";\r\nimport { PolyfacePrimitive, PolyfacePrimitiveList } from \"../Polyface\";\r\nimport { StrokesPrimitive, StrokesPrimitiveList, StrokesPrimitivePointList, StrokesPrimitivePointLists } from \"../Strokes\";\r\n\r\n/** @internal */\r\nexport type PrimitiveGeometryType = Loop | Path | IndexedPolyface | SolidPrimitive;\r\n\r\n/** @internal */\r\nexport abstract class Geometry {\r\n public readonly transform: Transform;\r\n public readonly tileRange: Range3d;\r\n public readonly displayParams: DisplayParams;\r\n public readonly feature?: Feature;\r\n\r\n public constructor(transform: Transform, tileRange: Range3d, displayParams: DisplayParams, feature: Feature | undefined) {\r\n this.transform = transform;\r\n this.tileRange = tileRange;\r\n this.displayParams = displayParams;\r\n this.feature = feature;\r\n }\r\n\r\n public static createFromPointString(pts: Point3d[], tf: Transform, tileRange: Range3d, params: DisplayParams, feature: Feature | undefined): Geometry {\r\n return new PrimitivePointStringGeometry(pts, tf, tileRange, params, feature);\r\n }\r\n\r\n public static createFromLineString(pts: Point3d[], tf: Transform, tileRange: Range3d, params: DisplayParams, feature: Feature | undefined): Geometry {\r\n return new PrimitiveLineStringGeometry(pts, tf, tileRange, params, feature);\r\n }\r\n\r\n public static createFromLoop(loop: Loop, tf: Transform, tileRange: Range3d, params: DisplayParams, disjoint: boolean, feature: Feature | undefined): Geometry {\r\n return new PrimitiveLoopGeometry(loop, tf, tileRange, params, disjoint, feature);\r\n }\r\n\r\n public static createFromSolidPrimitive(primitive: SolidPrimitive, tf: Transform, tileRange: Range3d, params: DisplayParams, feature: Feature | undefined): Geometry {\r\n return new SolidPrimitiveGeometry(primitive, tf, tileRange, params, feature);\r\n }\r\n\r\n public static createFromPath(path: Path, tf: Transform, tileRange: Range3d, params: DisplayParams, disjoint: boolean, feature: Feature | undefined): Geometry {\r\n return new PrimitivePathGeometry(path, tf, tileRange, params, disjoint, feature);\r\n }\r\n\r\n public static createFromPolyface(ipf: IndexedPolyface, tf: Transform, tileRange: Range3d, params: DisplayParams, feature: Feature | undefined): Geometry {\r\n return new PrimitivePolyfaceGeometry(ipf, tf, tileRange, params, feature);\r\n }\r\n\r\n protected abstract _getPolyfaces(facetOptions: StrokeOptions): PolyfacePrimitiveList | undefined;\r\n protected abstract _getStrokes(facetOptions: StrokeOptions): StrokesPrimitiveList | undefined;\r\n\r\n public getPolyfaces(tolerance: number): PolyfacePrimitiveList | undefined {\r\n const facetOptions = StrokeOptions.createForFacets();\r\n facetOptions.chordTol = tolerance;\r\n if (this.displayParams.isTextured)\r\n facetOptions.needParams = true;\r\n\r\n if (!this.displayParams.ignoreLighting) // ###TODO don't generate normals for 2d views.\r\n facetOptions.needNormals = true;\r\n\r\n return this._getPolyfaces(facetOptions);\r\n }\r\n\r\n public getStrokes(tolerance: number): StrokesPrimitiveList | undefined {\r\n const strokeOptions = StrokeOptions.createForCurves();\r\n strokeOptions.chordTol = tolerance;\r\n return this._getStrokes(strokeOptions);\r\n }\r\n\r\n public get hasTexture() { return this.displayParams.isTextured; }\r\n public doDecimate() { return false; }\r\n public doVertexCluster() { return true; }\r\n public part() { return undefined; }\r\n}\r\n\r\n/** @internal */\r\nexport class PrimitivePathGeometry extends Geometry {\r\n public readonly path: Path;\r\n public readonly isDisjoint: boolean;\r\n\r\n public constructor(path: Path, tf: Transform, range: Range3d, params: DisplayParams, isDisjoint: boolean, feature: Feature | undefined) {\r\n super(tf, range, params, feature);\r\n this.path = path;\r\n this.isDisjoint = isDisjoint;\r\n }\r\n\r\n protected _getPolyfaces(_facetOptions: StrokeOptions): PolyfacePrimitiveList | undefined { return undefined; }\r\n\r\n protected _getStrokes(facetOptions: StrokeOptions): StrokesPrimitiveList | undefined {\r\n return PrimitivePathGeometry.getStrokesForLoopOrPath(this.path, facetOptions, this.displayParams, this.isDisjoint, this.transform);\r\n }\r\n\r\n public static getStrokesForLoopOrPath(loopOrPath: Loop | Path, facetOptions: StrokeOptions, params: DisplayParams, isDisjoint: boolean, transform: Transform): StrokesPrimitiveList | undefined {\r\n const strksList = new StrokesPrimitiveList();\r\n\r\n if (!loopOrPath.isAnyRegionType || params.wantRegionOutline) {\r\n const strksPts: StrokesPrimitivePointLists = new StrokesPrimitivePointLists();\r\n PrimitivePathGeometry.collectCurveStrokes(strksPts, loopOrPath, facetOptions, transform);\r\n\r\n if (strksPts.length > 0) {\r\n const isPlanar = loopOrPath.isAnyRegionType;\r\n assert(isPlanar === params.wantRegionOutline);\r\n const strksPrim: StrokesPrimitive = StrokesPrimitive.create(params, isDisjoint, isPlanar);\r\n strksPrim.strokes = strksPts;\r\n strksList.push(strksPrim);\r\n }\r\n }\r\n\r\n return strksList;\r\n }\r\n\r\n private static collectCurveStrokes(strksPts: StrokesPrimitivePointLists, loopOrPath: CurveChain, facetOptions: StrokeOptions, trans: Transform) {\r\n const strokes = loopOrPath.getPackedStrokes(facetOptions);\r\n if (undefined !== strokes) {\r\n const pts = strokes.getPoint3dArray();\r\n trans.multiplyPoint3dArrayInPlace(pts);\r\n strksPts.push(new StrokesPrimitivePointList(pts));\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PrimitivePointStringGeometry extends Geometry {\r\n public readonly pts: Point3d[];\r\n\r\n public constructor(pts: Point3d[], tf: Transform, range: Range3d, params: DisplayParams, feature: Feature | undefined) {\r\n super(tf, range, params, feature);\r\n this.pts = pts;\r\n }\r\n\r\n protected _getPolyfaces(_facetOptions: StrokeOptions): PolyfacePrimitiveList | undefined {\r\n return undefined;\r\n }\r\n\r\n protected _getStrokes(_facetOptions: StrokeOptions): StrokesPrimitiveList | undefined {\r\n const strksList = new StrokesPrimitiveList();\r\n const strksPts = new StrokesPrimitivePointLists(new StrokesPrimitivePointList(this.pts));\r\n\r\n const strksPrim: StrokesPrimitive = StrokesPrimitive.create(this.displayParams, true, false);\r\n strksPrim.strokes = strksPts;\r\n strksPrim.transform(this.transform);\r\n strksList.push(strksPrim);\r\n\r\n return strksList;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PrimitiveLineStringGeometry extends Geometry {\r\n public readonly pts: Point3d[];\r\n\r\n public constructor(pts: Point3d[], tf: Transform, range: Range3d, params: DisplayParams, feature: Feature | undefined) {\r\n super(tf, range, params, feature);\r\n this.pts = pts;\r\n }\r\n\r\n protected _getPolyfaces(_facetOptions: StrokeOptions): PolyfacePrimitiveList | undefined {\r\n return undefined;\r\n }\r\n\r\n protected _getStrokes(_facetOptions: StrokeOptions): StrokesPrimitiveList | undefined {\r\n const strksList = new StrokesPrimitiveList();\r\n const strksPts = new StrokesPrimitivePointLists(new StrokesPrimitivePointList(this.pts));\r\n\r\n const strksPrim: StrokesPrimitive = StrokesPrimitive.create(this.displayParams, false, false);\r\n strksPrim.strokes = strksPts;\r\n strksPrim.transform(this.transform);\r\n strksList.push(strksPrim);\r\n\r\n return strksList;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PrimitiveLoopGeometry extends Geometry {\r\n public readonly loop: Loop;\r\n public readonly isDisjoint: boolean;\r\n\r\n public constructor(loop: Loop, tf: Transform, range: Range3d, params: DisplayParams, isDisjoint: boolean, feature: Feature | undefined) {\r\n super(tf, range, params, feature);\r\n this.loop = loop;\r\n this.isDisjoint = isDisjoint;\r\n }\r\n\r\n protected _getPolyfaces(facetOptions: StrokeOptions): PolyfacePrimitiveList | undefined {\r\n if (!this.loop.isAnyRegionType) {\r\n return undefined;\r\n }\r\n\r\n // The following is good for single loop things according to Earlin.\r\n const contour = SweepContour.createForLinearSweep(this.loop);\r\n if (contour !== undefined) {\r\n const pfBuilder: PolyfaceBuilder = PolyfaceBuilder.create(facetOptions);\r\n contour.emitFacets(pfBuilder, false, this.transform); // build facets and emit them to the builder\r\n const polyface = pfBuilder.claimPolyface();\r\n const wantEdges = DisplayParams.RegionEdgeType.Default === this.displayParams.regionEdgeType;\r\n const isPlanar = true;\r\n return new PolyfacePrimitiveList(PolyfacePrimitive.create(this.displayParams, polyface, wantEdges, isPlanar));\r\n } // ###TODO: this approach might not work with holes\r\n\r\n return undefined;\r\n }\r\n\r\n protected _getStrokes(facetOptions: StrokeOptions): StrokesPrimitiveList | undefined {\r\n return PrimitivePathGeometry.getStrokesForLoopOrPath(this.loop, facetOptions, this.displayParams, this.isDisjoint, this.transform);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PrimitivePolyfaceGeometry extends Geometry {\r\n public readonly polyface: IndexedPolyface;\r\n\r\n public constructor(polyface: IndexedPolyface, tf: Transform, range: Range3d, params: DisplayParams, feature: Feature | undefined) {\r\n super(tf, range, params, feature);\r\n this.polyface = tf.isIdentity ? polyface : polyface.cloneTransformed(tf);\r\n }\r\n\r\n protected _getPolyfaces(facetOptions: StrokeOptions): PolyfacePrimitiveList | undefined {\r\n if (!this.hasTexture) {\r\n if (this.polyface.data.param)\r\n this.polyface.data.param.clear();\r\n\r\n if (this.polyface.data.paramIndex)\r\n this.polyface.data.paramIndex = [];\r\n }\r\n\r\n if (!facetOptions.needNormals) {\r\n if (this.polyface.data.normal)\r\n this.polyface.data.normal.clear();\r\n\r\n if (this.polyface.data.normalIndex)\r\n this.polyface.data.normalIndex = [];\r\n } else if (!this.polyface.data.normal || 0 === this.polyface.data.normal.length) {\r\n PolyfaceQuery.buildAverageNormals(this.polyface);\r\n }\r\n\r\n return new PolyfacePrimitiveList(PolyfacePrimitive.create(this.displayParams, this.polyface));\r\n }\r\n\r\n protected _getStrokes(_facetOptions: StrokeOptions): StrokesPrimitiveList | undefined { return undefined; }\r\n}\r\n\r\nclass SolidPrimitiveGeometry extends Geometry {\r\n private readonly _primitive: SolidPrimitive;\r\n\r\n public constructor(primitive: SolidPrimitive, tf: Transform, range: Range3d, params: DisplayParams, feature: Feature | undefined) {\r\n super(tf, range, params, feature);\r\n const xformPrim = tf.isIdentity ? primitive : primitive.cloneTransformed(tf);\r\n this._primitive = xformPrim !== undefined ? xformPrim as SolidPrimitive : primitive;\r\n }\r\n\r\n protected _getStrokes() { return undefined; }\r\n\r\n protected _getPolyfaces(opts: StrokeOptions): PolyfacePrimitiveList {\r\n const builder = PolyfaceBuilder.create(opts);\r\n builder.addGeometryQuery(this._primitive);\r\n return new PolyfacePrimitiveList(PolyfacePrimitive.create(this.displayParams, builder.claimPolyface()));\r\n }\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MeshBuilder.js","sourceRoot":"","sources":["../../../../../src/render/primitives/mesh/MeshBuilder.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, Dictionary } from \"@itwin/core-bentley\";\r\nimport { Angle, IndexedPolyface, Point2d, Point3d, Polyface, PolyfaceVisitor, Range3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { Feature, MeshEdge, MeshEdges, MeshPolyline, OctEncodedNormal, OctEncodedNormalPair, QPoint3dList, TextureMapping } from \"@itwin/core-common\";\r\nimport { DisplayParams } from \"../../../common/render/primitives/DisplayParams\";\r\nimport { Triangle, TriangleKey, TriangleSet } from \"../Primitives\";\r\nimport { StrokesPrimitivePointLists } from \"../Strokes\";\r\nimport { VertexKey, VertexKeyProps, VertexMap } from \"../VertexKey\";\r\nimport { Mesh } from \"./MeshPrimitives\";\r\n\r\n// Describes a vertex along with the index of the source vertex in the source PolyfaceVisitor.\r\ntype VertexKeyPropsWithIndex = VertexKeyProps & { sourceIndex: number };\r\n\r\n/** @internal */\r\nexport class MeshBuilder {\r\n public readonly vertexMap: VertexMap;\r\n private _triangleSet?: TriangleSet;\r\n private _currentPolyface?: MeshBuilderPolyface;\r\n public readonly mesh: Mesh;\r\n public readonly tolerance: number;\r\n public readonly areaTolerance: number;\r\n public readonly tileRange: Range3d;\r\n public get currentPolyface(): MeshBuilderPolyface | undefined { return this._currentPolyface; }\r\n public get displayParams(): DisplayParams { return this.mesh.displayParams; }\r\n public set displayParams(params: DisplayParams) { this.mesh.displayParams = params; }\r\n\r\n /** create reference for triangleSet on demand */\r\n public get triangleSet(): TriangleSet {\r\n if (undefined === this._triangleSet)\r\n this._triangleSet = new TriangleSet();\r\n\r\n return this._triangleSet;\r\n }\r\n\r\n private constructor(mesh: Mesh, tolerance: number, areaTolerance: number, tileRange: Range3d) {\r\n this.mesh = mesh;\r\n this.tolerance = tolerance;\r\n this.areaTolerance = areaTolerance;\r\n this.tileRange = tileRange;\r\n\r\n let vertexTolerance;\r\n if (mesh.points instanceof QPoint3dList) {\r\n const p0 = mesh.points.params.unquantize(0, 0, 0);\r\n const p1 = mesh.points.params.unquantize(1, 1, 1);\r\n vertexTolerance = p1.minus(p0, p0);\r\n } else {\r\n vertexTolerance = { x: tolerance, y: tolerance, z: tolerance };\r\n }\r\n\r\n this.vertexMap = new VertexMap(vertexTolerance);\r\n }\r\n\r\n /** create a new MeshBuilder */\r\n public static create(props: MeshBuilder.Props): MeshBuilder {\r\n const mesh = Mesh.create(props);\r\n const { tolerance, areaTolerance, range } = props;\r\n return new MeshBuilder(mesh, tolerance, areaTolerance, range);\r\n }\r\n\r\n /**\r\n * iterate through each point list of the strokes primitive and either load the point string or polyline into builder\r\n * @param strokes lists of stroke primitive point lists to iterate\r\n * @param isDisjoint if true add point string, else add polyline\r\n * @param fillColor\r\n */\r\n public addStrokePointLists(strokes: StrokesPrimitivePointLists, isDisjoint: boolean, fillColor: number, feature: Feature | undefined): void {\r\n for (const strokePoints of strokes) {\r\n if (isDisjoint)\r\n this.addPointString(strokePoints.points, fillColor, feature);\r\n else\r\n this.addPolyline(strokePoints.points, fillColor, feature);\r\n }\r\n }\r\n\r\n /**\r\n * add data from polyface into mesh builder\r\n * @param polyface the indexed polyface to iterate the facets of to load each facet's triangles' vertices\r\n * @param props the properties required for this operation\r\n */\r\n public addFromPolyface(polyface: IndexedPolyface, props: MeshBuilder.PolyfaceOptions, feature: Feature | undefined): void {\r\n this.beginPolyface(polyface, props.edgeOptions);\r\n const visitor = polyface.createVisitor();\r\n\r\n while (visitor.moveToNextFacet()) {\r\n this.addFromPolyfaceVisitor(visitor, props, feature);\r\n }\r\n\r\n this.endPolyface();\r\n }\r\n\r\n /**\r\n * @param visitor the PolyfaceVisitor containing the face data to be added\r\n * @param props the properties required for this operation:\r\n */\r\n public addFromPolyfaceVisitor(visitor: PolyfaceVisitor, options: MeshBuilder.PolyfaceOptions, feature: Feature | undefined): void {\r\n const { pointCount, normalCount, paramCount, requireNormals } = visitor;\r\n const { includeParams, mappedTexture } = options;\r\n\r\n const isDegenerate = requireNormals && normalCount < pointCount; // TFS#790263: Degenerate triangle - no normals.\r\n\r\n // a triangle must have at least 3 points\r\n if (pointCount < 3 || isDegenerate)\r\n return;\r\n\r\n const haveParam = includeParams && paramCount > 0;\r\n const triangleCount = pointCount - 2;\r\n\r\n assert(!includeParams || paramCount > 0);\r\n assert(!haveParam || undefined !== mappedTexture);\r\n\r\n // The face represented by this visitor should be convex (we request that in facet options) - so we do a simple fan triangulation.\r\n const polyfaceVisitorOptions = { ...options, triangleCount, haveParam };\r\n for (let triangleIndex = 0; triangleIndex < triangleCount; triangleIndex++) {\r\n const triangle = this.createTriangle(triangleIndex, visitor, polyfaceVisitorOptions, feature);\r\n if (undefined !== triangle)\r\n this.addTriangle(triangle);\r\n }\r\n }\r\n\r\n public createTriangleVertices(triangleIndex: number, visitor: PolyfaceVisitor, options: MeshBuilder.PolyfaceVisitorOptions, feature: Feature | undefined): VertexKeyPropsWithIndex[] | undefined {\r\n const { point, requireNormals } = visitor;\r\n const { fillColor, haveParam } = options;\r\n\r\n // If we do not have UVParams stored on the IndexedPolyface, compute them now\r\n let params: Point2d[] | undefined;\r\n if (haveParam && options.mappedTexture) {\r\n assert(this.mesh.points.length === 0 || this.mesh.uvParams.length !== 0);\r\n const mappedTexture = options.mappedTexture;\r\n const transformToImodel = mappedTexture.params.textureMatrix.transform;\r\n if (transformToImodel)\r\n params = mappedTexture.computeUVParams(visitor, transformToImodel);\r\n assert(params !== undefined);\r\n }\r\n\r\n const vertices = [];\r\n for (let i = 0; i < 3; ++i) {\r\n const vertexIndex = 0 === i ? 0 : triangleIndex + i;\r\n const position = point.getPoint3dAtUncheckedPointIndex(vertexIndex);\r\n const normal = requireNormals ? OctEncodedNormal.fromVector(visitor.getNormal(vertexIndex)!) : undefined;\r\n const uvParam: Point2d | undefined = params ? params[vertexIndex] : undefined;\r\n vertices[i] = { position, fillColor, normal, uvParam, sourceIndex: vertexIndex, feature };\r\n }\r\n\r\n // Previously we would add all 3 vertices to our map, then detect degenerate triangles in AddTriangle().\r\n // This led to unused vertex data, and caused mismatch in # of vertices when recreating the MeshBuilder from the data in the tile cache.\r\n // Detect beforehand instead.\r\n if (this.vertexMap.arePositionsAlmostEqual(vertices[0], vertices[1])\r\n || this.vertexMap.arePositionsAlmostEqual(vertices[0], vertices[2])\r\n || this.vertexMap.arePositionsAlmostEqual(vertices[1], vertices[2]))\r\n return undefined;\r\n\r\n return vertices;\r\n }\r\n\r\n public createTriangle(triangleIndex: number, visitor: PolyfaceVisitor, options: MeshBuilder.PolyfaceVisitorOptions, feature: Feature | undefined): Triangle | undefined {\r\n // generate vertex key properties for each of the three sides of the triangle\r\n const vertices = this.createTriangleVertices(triangleIndex, visitor, options, feature);\r\n\r\n // avoid creating degenerate triangles\r\n if (undefined === vertices)\r\n return undefined;\r\n\r\n const { edgeVisible } = visitor;\r\n\r\n const triangle = new Triangle();\r\n\r\n triangle.setEdgeVisibility(\r\n 0 === triangleIndex ? edgeVisible[0] : false,\r\n edgeVisible[triangleIndex + 1],\r\n triangleIndex === options.triangleCount - 1 ? edgeVisible[triangleIndex + 2] : false,\r\n );\r\n\r\n // set each triangle index to the index associated with the vertex key location in the vertex map\r\n vertices.forEach((vertexProps, i: number) => {\r\n let vertexKeyIndex;\r\n if (visitor.auxData) {\r\n // No deduplication with auxData (for now...)\r\n vertexKeyIndex = this.mesh.addVertex(vertexProps);\r\n this.mesh.addAuxChannels(visitor.auxData.channels, vertexProps.sourceIndex);\r\n } else {\r\n vertexKeyIndex = this.addVertex(vertexProps);\r\n }\r\n\r\n triangle.indices[i] = vertexKeyIndex;\r\n\r\n // if the current polyface exists, map the vertex key index to the visitor's client point index\r\n if (this.currentPolyface !== undefined)\r\n this.currentPolyface.vertexIndexMap.set(vertexKeyIndex, visitor.clientPointIndex(vertexProps.sourceIndex));\r\n });\r\n\r\n return triangle;\r\n }\r\n\r\n /** removed Feature for now */\r\n public addPolyline(points: Point3d[], fillColor: number, feature: Feature | undefined): void {\r\n const { mesh } = this;\r\n\r\n const poly = new MeshPolyline();\r\n for (const position of points)\r\n poly.addIndex(this.addVertex({ position, fillColor, feature }));\r\n\r\n mesh.addPolyline(poly);\r\n }\r\n\r\n /** removed Feature for now */\r\n public addPointString(points: Point3d[], fillColor: number, feature: Feature | undefined): void {\r\n const { mesh } = this;\r\n const poly = new MeshPolyline();\r\n\r\n for (const position of points)\r\n poly.addIndex(this.addVertex({ position, fillColor, feature }));\r\n\r\n mesh.addPolyline(poly);\r\n }\r\n\r\n public beginPolyface(polyface: Polyface, options: MeshEdgeCreationOptions): void {\r\n if (!options.generateNoEdges) {\r\n const triangles = this.mesh.triangles;\r\n this._currentPolyface = new MeshBuilderPolyface(polyface, options, triangles === undefined ? 0 : triangles.length);\r\n }\r\n }\r\n\r\n public endPolyface(): void {\r\n const { currentPolyface, mesh } = this;\r\n if (undefined === currentPolyface)\r\n return;\r\n\r\n this._currentPolyface = undefined;\r\n buildMeshEdges(mesh, currentPolyface);\r\n }\r\n\r\n public addVertex(vertex: VertexKeyProps, addToMeshOnInsert = true): number {\r\n // if vertex key isn't duplicate, then also insert properties into mesh\r\n const onInsert = (vk: VertexKey) => this.mesh.addVertex(vk);\r\n return this.vertexMap.insertKey(vertex, addToMeshOnInsert ? onInsert : undefined);\r\n }\r\n\r\n public addTriangle(triangle: Triangle): void {\r\n // Attempt to avoid adding vertices originating from degenerate triangles before we get here.\r\n // Removed assert and just return if degenerate at this point because uncommon cases (not worth testing for) can still occur.\r\n if (triangle.isDegenerate)\r\n return;\r\n\r\n const onInsert = (_vk: TriangleKey) => this.mesh.addTriangle(triangle);\r\n this.triangleSet.insertKey(triangle, onInsert);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport namespace MeshBuilder { // eslint-disable-line no-redeclare\r\n export interface Props extends Mesh.Props {\r\n tolerance: number;\r\n areaTolerance: number;\r\n }\r\n export interface PolyfaceOptions {\r\n includeParams: boolean;\r\n fillColor: number;\r\n mappedTexture?: TextureMapping;\r\n edgeOptions: MeshEdgeCreationOptions;\r\n }\r\n\r\n export interface PolyfaceVisitorOptions extends PolyfaceOptions {\r\n triangleCount: number;\r\n haveParam: boolean;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class MeshEdgeCreationOptions {\r\n public readonly type: MeshEdgeCreationOptions.Type;\r\n public readonly minCreaseAngle = 20.0 * Angle.radiansPerDegree;\r\n public get generateAllEdges(): boolean { return this.type === MeshEdgeCreationOptions.Type.AllEdges; }\r\n public get generateNoEdges(): boolean { return this.type === MeshEdgeCreationOptions.Type.NoEdges; }\r\n public get generateCreaseEdges(): boolean { return 0 !== (this.type & MeshEdgeCreationOptions.Type.CreaseEdges); }\r\n /** Create edge chains for polyfaces that do not already have them. */\r\n public get createEdgeChains(): boolean { return 0 !== (this.type & MeshEdgeCreationOptions.Type.CreateChains); }\r\n constructor(type = MeshEdgeCreationOptions.Type.NoEdges) { this.type = type; }\r\n}\r\n\r\n/** @internal */\r\nexport namespace MeshEdgeCreationOptions { // eslint-disable-line no-redeclare\r\n export enum Type {\r\n NoEdges = 0x0000,\r\n CreaseEdges = 0x0001 << 1,\r\n SmoothEdges = 0x0001 << 2,\r\n CreateChains = 0x0001 << 3,\r\n DefaultEdges = CreaseEdges,\r\n AllEdges = CreaseEdges | SmoothEdges,\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class MeshBuilderPolyface {\r\n public readonly polyface: Polyface;\r\n public readonly edgeOptions: MeshEdgeCreationOptions;\r\n public readonly vertexIndexMap: Map<number, number> = new Map<number, number>();\r\n public readonly baseTriangleIndex: number;\r\n constructor(polyface: Polyface, edgeOptions: MeshEdgeCreationOptions, baseTriangleIndex: number) {\r\n this.polyface = polyface;\r\n this.edgeOptions = edgeOptions;\r\n this.baseTriangleIndex = baseTriangleIndex;\r\n }\r\n}\r\n\r\nclass EdgeInfo {\r\n public faceIndex1?: number;\r\n\r\n public constructor(\r\n public visible: boolean,\r\n public faceIndex0: number,\r\n public edge: MeshEdge,\r\n public point0: Point3d,\r\n public point1: Point3d) {\r\n }\r\n\r\n public addFace(visible: boolean, faceIndex: number) {\r\n if (undefined === this.faceIndex1) {\r\n this.visible ||= visible;\r\n this.faceIndex1 = faceIndex;\r\n }\r\n }\r\n}\r\n\r\nfunction buildMeshEdges(mesh: Mesh, polyface: MeshBuilderPolyface): void {\r\n if (!mesh.triangles)\r\n return;\r\n\r\n const edgeMap = new Dictionary<MeshEdge, EdgeInfo>((lhs, rhs) => lhs.compareTo(rhs));\r\n const triangleNormals: Vector3d[] = [];\r\n\r\n // We need to detect the edge pairs -- Can't do that from the Mesh indices as these are not shared - so we'll\r\n // assume that the polyface indices are properly shared, this should be true as a seperate index array is used\r\n // for Polyfaces.\r\n const triangle = new Triangle();\r\n const polyfacePoints = [new Point3d(), new Point3d(), new Point3d()];\r\n const polyfaceIndices = [0, 0, 0];\r\n\r\n for (let triangleIndex = polyface.baseTriangleIndex; triangleIndex < mesh.triangles.length; triangleIndex++) {\r\n let indexNotFound = false;\r\n mesh.triangles.getTriangle(triangleIndex, triangle);\r\n for (let j = 0; j < 3; j++) {\r\n const foundPolyfaceIndex = polyface.vertexIndexMap.get(triangle.indices[j]);\r\n assert(undefined !== foundPolyfaceIndex);\r\n if (undefined === foundPolyfaceIndex) {\r\n indexNotFound = true;\r\n continue;\r\n }\r\n\r\n polyfaceIndices[j] = foundPolyfaceIndex;\r\n polyface.polyface.data.getPoint(foundPolyfaceIndex, polyfacePoints[j]);\r\n }\r\n\r\n if (indexNotFound)\r\n continue;\r\n\r\n for (let j = 0; j < 3; j++) {\r\n const jNext = (j + 1) % 3;\r\n const triangleNormalIndex = triangleNormals.length;\r\n const meshEdge = new MeshEdge(triangle.indices[j], triangle.indices[jNext]);\r\n const polyfaceEdge = new MeshEdge(polyfaceIndices[j], polyfaceIndices[jNext]);\r\n const edgeInfo = new EdgeInfo(triangle.isEdgeVisible(j), triangleNormalIndex, meshEdge, polyfacePoints[j], polyfacePoints[jNext]);\r\n\r\n const findOrInsert = edgeMap.findOrInsert(polyfaceEdge, edgeInfo);\r\n if (!findOrInsert.inserted)\r\n findOrInsert.value.addFace(edgeInfo.visible, triangleNormalIndex);\r\n }\r\n\r\n const normal = Vector3d.createCrossProductToPoints(polyfacePoints[0], polyfacePoints[1], polyfacePoints[2]);\r\n normal.normalizeInPlace();\r\n triangleNormals.push(normal);\r\n }\r\n\r\n // If there is no visibility indication in the mesh, infer from the mesh geometry.\r\n if (!polyface.edgeOptions.generateAllEdges) {\r\n const minEdgeDot = Math.cos(polyface.edgeOptions.minCreaseAngle);\r\n for (const edgeInfo of edgeMap.values()) {\r\n if (undefined !== edgeInfo.faceIndex1) {\r\n const normal0 = triangleNormals[edgeInfo.faceIndex0];\r\n const normal1 = triangleNormals[edgeInfo.faceIndex1];\r\n if (Math.abs(normal0.dotProduct(normal1)) > minEdgeDot)\r\n edgeInfo.visible = false;\r\n }\r\n }\r\n }\r\n\r\n // Now populate the MeshEdges.\r\n // ###TODO edge chains?\r\n if (undefined === mesh.edges)\r\n mesh.edges = new MeshEdges();\r\n\r\n const maxPlanarDot = 0.999999;\r\n for (const edgeInfo of edgeMap.values()) {\r\n if (edgeInfo.visible) {\r\n mesh.edges.visible.push(edgeInfo.edge);\r\n } else if (undefined !== edgeInfo.faceIndex1) {\r\n const normal0 = triangleNormals[edgeInfo.faceIndex0];\r\n const normal1 = triangleNormals[edgeInfo.faceIndex1];\r\n if (Math.abs(normal0.dotProduct(normal1)) < maxPlanarDot) {\r\n mesh.edges.silhouette.push(edgeInfo.edge);\r\n mesh.edges.silhouetteNormals.push(new OctEncodedNormalPair(OctEncodedNormal.fromVector(normal0), OctEncodedNormal.fromVector(normal1)));\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MeshBuilderMap.d.ts","sourceRoot":"","sources":["../../../../../src/render/primitives/mesh/MeshBuilderMap.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MeshBuilderMap.js","sourceRoot":"","sources":["../../../../../src/render/primitives/mesh/MeshBuilderMap.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 { compareBooleans, compareNumbers, Dictionary, Id64String } from \"@itwin/core-bentley\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport { Feature, FeatureTable } from \"@itwin/core-common\";\r\nimport { DisplayParams } from \"../../../common/render/primitives/DisplayParams\";\r\nimport { MeshPrimitiveType } from \"../../../common/render/primitives/MeshPrimitive\";\r\nimport { GeometryList } from \"../geometry/GeometryList\";\r\nimport { Geometry } from \"../geometry/GeometryPrimitives\";\r\nimport { PolyfacePrimitive } from \"../Polyface\";\r\nimport { GeometryOptions, ToleranceRatio } from \"../Primitives\";\r\nimport { StrokesPrimitive } from \"../Strokes\";\r\nimport { MeshBuilder, MeshEdgeCreationOptions } from \"./MeshBuilder\";\r\nimport { Mesh, MeshList } from \"./MeshPrimitives\";\r\n\r\n/** @internal */\r\nexport class MeshBuilderMap extends Dictionary<MeshBuilderMap.Key, MeshBuilder> {\r\n public readonly range: Range3d;\r\n public readonly vertexTolerance: number;\r\n public readonly facetAreaTolerance: number;\r\n public readonly tolerance: number;\r\n public readonly is2d: boolean;\r\n public readonly features?: FeatureTable;\r\n public readonly options: GeometryOptions;\r\n private readonly _isVolumeClassifier: boolean;\r\n private _keyOrder = 0;\r\n\r\n constructor(tolerance: number, range: Range3d, is2d: boolean, options: GeometryOptions, pickable: { isVolumeClassifier?: boolean, modelId?: Id64String } | undefined) {\r\n super((lhs: MeshBuilderMap.Key, rhs: MeshBuilderMap.Key) => lhs.compare(rhs));\r\n this.tolerance = tolerance;\r\n this.vertexTolerance = tolerance * ToleranceRatio.vertex;\r\n this.facetAreaTolerance = tolerance * ToleranceRatio.facetArea;\r\n this.range = range;\r\n this.is2d = is2d;\r\n this.options = options;\r\n this._isVolumeClassifier = pickable?.isVolumeClassifier ?? false;\r\n\r\n if (pickable)\r\n this.features = new FeatureTable(2048 * 1024, pickable.modelId);\r\n }\r\n\r\n public static createFromGeometries(geometries: GeometryList, tolerance: number, range: Range3d, is2d: boolean, options: GeometryOptions, pickable: { isVolumeClassifier?: boolean, modelId?: Id64String } | undefined): MeshBuilderMap {\r\n const map = new MeshBuilderMap(tolerance, range, is2d, options, pickable);\r\n\r\n for (const geom of geometries)\r\n map.loadGeometry(geom);\r\n\r\n return map;\r\n }\r\n\r\n public toMeshes(): MeshList {\r\n const meshes = new MeshList(this.features, this.range);\r\n for (const builder of this._values) {\r\n if (builder.mesh.points.length > 0)\r\n meshes.push(builder.mesh);\r\n }\r\n return meshes;\r\n }\r\n\r\n /**\r\n * extract polyfaces and strokes from geometry into MeshBuilder stored in builderMap\r\n * @param geom Geometry instance to extract polyfaces and strokes from\r\n * @param wantSurfacesOnly if true prevent strokes from being loaded into builders\r\n */\r\n public loadGeometry(geom: Geometry): void {\r\n this.loadPolyfacePrimitiveList(geom);\r\n\r\n if (!this.options.wantSurfacesOnly)\r\n this.loadStrokePrimitiveList(geom);\r\n }\r\n\r\n /**\r\n * extract polyface primitives from geometry in meshBuilder stored in builderMap\r\n * @param geom Geometry instance to extract polyfaces from\r\n */\r\n public loadPolyfacePrimitiveList(geom: Geometry): void {\r\n const polyfaces = geom.getPolyfaces(this.tolerance);\r\n\r\n if (polyfaces !== undefined)\r\n for (const polyface of polyfaces)\r\n this.loadIndexedPolyface(polyface, geom.feature);\r\n }\r\n\r\n /**\r\n * extract indexed polyfaces into meshBuilder stored in builderMap\r\n * @param polyface PolyfacePrimitive to extract indexed polyfaces from\r\n */\r\n public loadIndexedPolyface(polyface: PolyfacePrimitive, feature: Feature | undefined): void {\r\n const { indexedPolyface, displayParams, isPlanar } = polyface;\r\n const { pointCount, normalCount } = indexedPolyface;\r\n const { fillColor, isTextured } = displayParams;\r\n const textureMapping = displayParams.textureMapping;\r\n\r\n if (pointCount === 0)\r\n return;\r\n\r\n const builder = this.getBuilder(displayParams, MeshPrimitiveType.Mesh, normalCount > 0, isPlanar);\r\n const edgeOptions = new MeshEdgeCreationOptions(polyface.displayEdges && this.options.edges ? MeshEdgeCreationOptions.Type.DefaultEdges : MeshEdgeCreationOptions.Type.NoEdges);\r\n builder.addFromPolyface(indexedPolyface, { edgeOptions, includeParams: isTextured, fillColor: fillColor.tbgr, mappedTexture: textureMapping }, feature);\r\n }\r\n\r\n /**\r\n * extract stroke primitives from geometry in meshBuilder stored in builderMap\r\n * @param geom Geometry instance to extract strokes from\r\n */\r\n public loadStrokePrimitiveList(geom: Geometry): void {\r\n const strokes = geom.getStrokes(this.tolerance);\r\n\r\n if (undefined !== strokes)\r\n for (const stroke of strokes)\r\n this.loadStrokesPrimitive(stroke, geom.feature);\r\n }\r\n\r\n /**\r\n * extract strokes primitive into meshBuilder stored in builderMap\r\n * @param strokePrimitive StrokesPrimitive instance to extractfrom\r\n */\r\n public loadStrokesPrimitive(strokePrimitive: StrokesPrimitive, feature: Feature | undefined): void {\r\n const { displayParams, isDisjoint, isPlanar, strokes } = strokePrimitive;\r\n\r\n const type = isDisjoint ? MeshPrimitiveType.Point : MeshPrimitiveType.Polyline;\r\n const builder = this.getBuilder(displayParams, type, false, isPlanar);\r\n builder.addStrokePointLists(strokes, isDisjoint, displayParams.fillColor.tbgr, feature);\r\n }\r\n\r\n public getBuilder(displayParams: DisplayParams, type: MeshPrimitiveType, hasNormals: boolean, isPlanar: boolean): MeshBuilder {\r\n const { facetAreaTolerance, tolerance, is2d, range } = this;\r\n const key = this.getKey(displayParams, type, hasNormals, isPlanar);\r\n\r\n const quantizePositions = false; // ###TODO should this be configurable?\r\n return this.getBuilderFromKey(key, {\r\n displayParams,\r\n type,\r\n range,\r\n quantizePositions,\r\n is2d,\r\n isPlanar,\r\n tolerance,\r\n areaTolerance: facetAreaTolerance,\r\n features: this.features,\r\n isVolumeClassifier: this._isVolumeClassifier,\r\n });\r\n }\r\n\r\n public getKey(displayParams: DisplayParams, type: MeshPrimitiveType, hasNormals: boolean, isPlanar: boolean): MeshBuilderMap.Key {\r\n const key = new MeshBuilderMap.Key(displayParams, type, hasNormals, isPlanar);\r\n\r\n if (this.options.preserveOrder)\r\n key.order = ++this._keyOrder;\r\n\r\n return key;\r\n }\r\n\r\n /**\r\n * gets builder associated with key if defined, otherwise creates a new builder and sets that with key\r\n * @param key MeshBuilderMap.Key to associate with builder\r\n * @param props MeshBuilder.Props required to create builder if it does not already exist\r\n * @returns builder reference, changes will update instance stored in builderMap\r\n */\r\n public getBuilderFromKey(key: MeshBuilderMap.Key, props: MeshBuilder.Props): MeshBuilder {\r\n let builder = this.get(key);\r\n if (undefined === builder) {\r\n builder = MeshBuilder.create(props);\r\n this.set(key, builder);\r\n }\r\n return builder;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport namespace MeshBuilderMap { // eslint-disable-line no-redeclare\r\n export class Key {\r\n public order: number = 0;\r\n public readonly params: DisplayParams;\r\n public readonly type: MeshPrimitiveType;\r\n public readonly hasNormals: boolean;\r\n public readonly isPlanar: boolean;\r\n\r\n constructor(params: DisplayParams, type: MeshPrimitiveType, hasNormals: boolean, isPlanar: boolean) {\r\n this.params = params;\r\n this.type = type;\r\n this.hasNormals = hasNormals;\r\n this.isPlanar = isPlanar;\r\n }\r\n\r\n public static createFromMesh(mesh: Mesh): Key {\r\n return new Key(mesh.displayParams, mesh.type, mesh.normals.length !== 0, mesh.isPlanar);\r\n }\r\n\r\n public compare(rhs: Key): number {\r\n let diff = compareNumbers(this.order, rhs.order);\r\n if (0 === diff) {\r\n diff = compareNumbers(this.type, rhs.type);\r\n if (0 === diff) {\r\n diff = compareBooleans(this.isPlanar, rhs.isPlanar);\r\n if (0 === diff) {\r\n diff = compareBooleans(this.hasNormals, rhs.hasNormals);\r\n if (0 === diff) {\r\n diff = this.params.compareForMerge(rhs.params);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return diff;\r\n }\r\n\r\n public equals(rhs: Key): boolean { return 0 === this.compare(rhs); }\r\n }\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MeshPrimitives.d.ts","sourceRoot":"","sources":["../../../../../src/render/primitives/mesh/MeshPrimitives.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MeshPrimitives.js","sourceRoot":"","sources":["../../../../../src/render/primitives/mesh/MeshPrimitives.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 { AuxChannel, AuxChannelData, Point2d, Point3d, Range3d } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorIndex, EdgeArgs, Feature, FeatureIndex, FeatureIndexType, FeatureTable, FillFlags, LinePixels, MeshEdges, MeshPolyline, MeshPolylineList,\r\n OctEncodedNormal, PolylineEdgeArgs, PolylineFlags, PolylineIndices, PolylineTypeFlags, QParams3d, QPoint3dList, RenderMaterial,\r\n RenderTexture, SilhouetteEdgeArgs,\r\n} from \"@itwin/core-common\";\r\nimport { InstancedGraphicParams } from \"../../InstancedGraphicParams\";\r\nimport { RenderGraphic } from \"../../RenderGraphic\";\r\nimport { RenderSystem } from \"../../RenderSystem\";\r\nimport { ColorMap } from \"../ColorMap\";\r\nimport { DisplayParams } from \"../../../common/render/primitives/DisplayParams\";\r\nimport { MeshPointList, MeshPrimitiveType, Point3dList } from \"../../../common/render/primitives/MeshPrimitive\";\r\nimport { Triangle, TriangleList } from \"../Primitives\";\r\nimport { VertexKeyProps } from \"../VertexKey\";\r\n\r\n/** Arguments supplied to [[RenderSystem.createIndexedPolylines]] describing a set of \"polylines\" (i.e., line strings or point strings).\r\n * Line strings consist of two or more points, connected by segments between them with a width specified in pixels.\r\n * Point strings consist of one or more disconnected points, drawn as dots with a radius specified in pixels.\r\n * @public\r\n */\r\nexport interface PolylineArgs {\r\n /** The color(s) of the vertices. */\r\n colors: ColorIndex;\r\n /** The [Feature]($common)(s) contained in the [[polylines]]. */\r\n features: FeatureIndex;\r\n /** The width of the lines or radius of the points, in pixels. */\r\n width: number;\r\n /** The pixel pattern to apply to the line strings. */\r\n linePixels: LinePixels;\r\n /** Flags describing how to draw the [[polylines]]. */\r\n flags: PolylineFlags;\r\n /** The positions of the [[polylines]]' vertices. If the positions are not quantized, they must include\r\n * a precomputed [Range3d]($core-geometry) encompassing all of the points.\r\n */\r\n points: QPoint3dList | (Array<Point3d> & { range: Range3d });\r\n /** The set of polylines. Each entry in the array describes a separate line string or point string as a series of indices into [[points]]. */\r\n polylines: PolylineIndices[];\r\n}\r\n\r\n/** @public */\r\nexport namespace PolylineArgs {\r\n /** @internal */\r\n export function fromMesh(mesh: Mesh): PolylineArgs | undefined {\r\n if (!mesh.polylines || mesh.polylines.length === 0)\r\n return undefined;\r\n\r\n const polylines = [];\r\n for (const polyline of mesh.polylines)\r\n if (polyline.indices.length > 0)\r\n polylines.push(polyline.indices);\r\n\r\n if (polylines.length === 0)\r\n return undefined;\r\n\r\n const flags: PolylineFlags = {\r\n is2d: mesh.is2d,\r\n isPlanar: mesh.isPlanar,\r\n isDisjoint: mesh.type === MeshPrimitiveType.Point,\r\n };\r\n\r\n if (mesh.displayParams.regionEdgeType === DisplayParams.RegionEdgeType.Outline) {\r\n // This polyline is behaving as the edges of a region surface.\r\n if (!mesh.displayParams.gradient || mesh.displayParams.gradient.isOutlined)\r\n flags.type = PolylineTypeFlags.Edge;\r\n else\r\n flags.type = PolylineTypeFlags.Outline; // edges only displayed if fill undisplayed\r\n }\r\n\r\n const colors = new ColorIndex();\r\n mesh.colorMap.toColorIndex(colors, mesh.colors);\r\n\r\n const features = new FeatureIndex();\r\n mesh.toFeatureIndex(features);\r\n\r\n return {\r\n width: mesh.displayParams.width,\r\n linePixels: mesh.displayParams.linePixels,\r\n flags,\r\n polylines,\r\n points: mesh.points,\r\n colors,\r\n features,\r\n };\r\n }\r\n}\r\n\r\n/** The vertices of the edges are shared with those of the surface\r\n * @internal\r\n */\r\nexport class MeshArgsEdges {\r\n public edges = new EdgeArgs();\r\n public silhouettes = new SilhouetteEdgeArgs();\r\n public polylines = new PolylineEdgeArgs();\r\n public width = 0;\r\n public linePixels = LinePixels.Solid;\r\n\r\n public clear(): void {\r\n this.edges.clear();\r\n this.silhouettes.clear();\r\n this.polylines.clear();\r\n this.width = 0;\r\n this.linePixels = LinePixels.Solid;\r\n }\r\n public get isValid(): boolean { return this.edges.isValid || this.silhouettes.isValid || this.polylines.isValid; }\r\n}\r\n\r\n/** Arguments supplied to [[RenderSystem.createTriMesh]] describing a triangle mesh.\r\n * @public\r\n */\r\nexport interface MeshArgs {\r\n /** @internal */\r\n edges?: MeshArgsEdges;\r\n /** The indices of the triangles. Each consecutive set of three indices represents one triangle.\r\n * The indices are used to index into the vertex attribute arrays like [[points]] and [[normals]].\r\n * Their values must be 32-bit unsigned integers.\r\n */\r\n vertIndices: number[];\r\n /** The positions of the mesh's vertices, indexed by [[vertIndices]]. If the positions are not quantized, they must include\r\n * a precomputed [Range3d]($core-geometry) encompassing all of the points.\r\n */\r\n points: QPoint3dList | (Array<Point3d> & { range: Range3d });\r\n /** The per-vertex normal vectors, indexed by [[vertIndices]].\r\n * Normal vectors are required if the mesh is to be lit or have [ThematicDisplay]($common) applied to it.\r\n */\r\n normals?: OctEncodedNormal[];\r\n /** The color(s) of the mesh. */\r\n colors: ColorIndex;\r\n /** The [Feature]($common)(s) contained in the mesh. */\r\n features: FeatureIndex;\r\n /** If [[isPlanar]] is `true`, describes how fill is applied to planar region interiors in wireframe mode.\r\n * Default: [FillFlags.ByView]($common).\r\n */\r\n fillFlags?: FillFlags;\r\n /** If `true`, indicates that the mesh represents a planar region. Default: false. */\r\n isPlanar?: boolean;\r\n /** If `true`, indicates that the mesh is two-dimensional - i.e., all [[points]] have the same z coordinate. */\r\n is2d?: boolean;\r\n /** If `true`, indicates that the mesh has a texture that includes static lighting - e.g., from photogrammetry. */\r\n hasBakedLighting?: boolean;\r\n /** @internal */\r\n isVolumeClassifier?: boolean;\r\n /** Auxiliary data associated with the mesh. */\r\n auxChannels?: ReadonlyArray<AuxChannel>;\r\n /** The material applied to the mesh. */\r\n material?: RenderMaterial;\r\n /** A texture mapping to be applied to the mesh. */\r\n textureMapping?: {\r\n /** The texture image. */\r\n texture: RenderTexture;\r\n /** The per-vertex texture coordinates, indexed by [[vertIndices]]. */\r\n uvParams: Point2d[];\r\n };\r\n}\r\n\r\n/** @public */\r\nexport namespace MeshArgs {\r\n /** @internal */\r\n export function fromMesh(mesh: Mesh): MeshArgs | undefined {\r\n if (!mesh.triangles || mesh.triangles.isEmpty || mesh.points.length === 0)\r\n return undefined;\r\n\r\n const texture = mesh.displayParams.textureMapping?.texture;\r\n const textureMapping = texture && mesh.uvParams.length > 0 ? { texture, uvParams: mesh.uvParams } : undefined;\r\n\r\n const colors = new ColorIndex();\r\n mesh.colorMap.toColorIndex(colors, mesh.colors);\r\n\r\n const features = new FeatureIndex();\r\n mesh.toFeatureIndex(features);\r\n\r\n let edges;\r\n if (mesh.edges) {\r\n edges = new MeshArgsEdges();\r\n edges.width = mesh.displayParams.width;\r\n edges.linePixels = mesh.displayParams.linePixels;\r\n edges.edges.init(mesh.edges);\r\n edges.silhouettes.init(mesh.edges);\r\n\r\n const polylines = [];\r\n for (const meshPolyline of mesh.edges.polylines)\r\n if (meshPolyline.indices.length > 0)\r\n polylines.push(meshPolyline.indices);\r\n\r\n edges.polylines.init(polylines);\r\n }\r\n\r\n return {\r\n vertIndices: mesh.triangles.indices,\r\n points: mesh.points,\r\n normals: !mesh.displayParams.ignoreLighting && mesh.normals.length > 0 ? mesh.normals : undefined,\r\n textureMapping,\r\n colors,\r\n features,\r\n material: mesh.displayParams.material,\r\n fillFlags: mesh.displayParams.fillFlags,\r\n isPlanar: mesh.isPlanar,\r\n is2d: mesh.is2d,\r\n hasBakedLighting: true === mesh.hasBakedLighting,\r\n isVolumeClassifier: true === mesh.isVolumeClassifier,\r\n edges,\r\n auxChannels: mesh.auxChannels,\r\n };\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class Mesh {\r\n private readonly _data: TriangleList | MeshPolylineList;\r\n public readonly points: MeshPointList;\r\n public readonly normals: OctEncodedNormal[] = [];\r\n public readonly uvParams: Point2d[] = [];\r\n public readonly colorMap: ColorMap = new ColorMap(); // used to be called ColorTable\r\n public colors: number[] = [];\r\n public edges?: MeshEdges;\r\n public readonly features?: Mesh.Features;\r\n public readonly type: MeshPrimitiveType;\r\n public readonly is2d: boolean;\r\n public readonly isPlanar: boolean;\r\n public readonly hasBakedLighting: boolean;\r\n public readonly isVolumeClassifier: boolean;\r\n public displayParams: DisplayParams;\r\n private _auxChannels?: AuxChannel[];\r\n\r\n private constructor(props: Mesh.Props) {\r\n const { displayParams, features, type, range, is2d, isPlanar } = props;\r\n this._data = MeshPrimitiveType.Mesh === type ? new TriangleList() : new MeshPolylineList();\r\n this.displayParams = displayParams;\r\n this.features = features ? new Mesh.Features(features) : undefined;\r\n this.type = type;\r\n this.is2d = is2d;\r\n this.isPlanar = isPlanar;\r\n this.hasBakedLighting = (true === props.hasBakedLighting);\r\n this.isVolumeClassifier = (true === props.isVolumeClassifier);\r\n if (props.quantizePositions) {\r\n this.points = new QPoint3dList(QParams3d.fromRange(range));\r\n } else {\r\n const points = [] as unknown as Point3dList;\r\n points.range = range;\r\n const center = range.center;\r\n points.add = (pt: Point3d) => {\r\n // assert(range.containsPoint(pt)); rounding error triggers this sometimes...\r\n points.push(pt.minus(center));\r\n };\r\n this.points = points;\r\n }\r\n }\r\n\r\n public static create(props: Mesh.Props): Mesh { return new Mesh(props); }\r\n\r\n public get triangles(): TriangleList | undefined {\r\n return MeshPrimitiveType.Mesh === this.type ? this._data as TriangleList : undefined;\r\n }\r\n\r\n public get polylines(): MeshPolylineList | undefined {\r\n return MeshPrimitiveType.Mesh !== this.type ? this._data as MeshPolylineList : undefined;\r\n }\r\n\r\n public get auxChannels(): ReadonlyArray<AuxChannel> | undefined {\r\n return this._auxChannels;\r\n }\r\n\r\n public addAuxChannels(channels: ReadonlyArray<AuxChannel>, srcIndex: number): void {\r\n // The native version of this function appears to assume that all polyfaces added to the Mesh will have\r\n // the same number + type of aux channels.\r\n // ###TODO We should really produce a separate Mesh for each unique combination. For now just bail on mismatch.\r\n if (this._auxChannels) {\r\n if (this._auxChannels.length !== channels.length)\r\n return;\r\n\r\n for (let i = 0; i < channels.length; i++) {\r\n const src = channels[i];\r\n const dst = this._auxChannels[i];\r\n if (src.dataType !== dst.dataType || src.name !== dst.name || src.inputName !== dst.inputName)\r\n return;\r\n }\r\n }\r\n\r\n if (!this._auxChannels) {\r\n // Copy the channels, leaving each AuxData's values array empty.\r\n this._auxChannels = channels.map((x) => new AuxChannel(x.data.map((y) => new AuxChannelData(y.input, [])), x.dataType, x.name, x.inputName));\r\n }\r\n\r\n // Append the value at srcIndex from each source channel's data to our channels.\r\n for (let channelIndex = 0; channelIndex < channels.length; channelIndex++) {\r\n const srcChannel = channels[channelIndex];\r\n const dstChannel = this._auxChannels[channelIndex];\r\n const dstIndex = dstChannel.valueCount;\r\n for (let dataIndex = 0; dataIndex < srcChannel.data.length; dataIndex++) {\r\n const dstData = dstChannel.data[dataIndex];\r\n dstData.copyValues(srcChannel.data[dataIndex], dstIndex, srcIndex, dstChannel.entriesPerValue);\r\n }\r\n }\r\n }\r\n\r\n public toFeatureIndex(index: FeatureIndex): void {\r\n if (undefined !== this.features)\r\n this.features.toFeatureIndex(index);\r\n }\r\n\r\n public toMeshArgs(): MeshArgs | undefined {\r\n return MeshArgs.fromMesh(this);\r\n }\r\n\r\n public toPolylineArgs(): PolylineArgs | undefined {\r\n return PolylineArgs.fromMesh(this);\r\n }\r\n\r\n public getGraphics(system: RenderSystem, instancesOrViewIndependentOrigin?: InstancedGraphicParams | Point3d): RenderGraphic | undefined {\r\n const meshArgs = this.toMeshArgs();\r\n if (meshArgs)\r\n return system.createTriMesh(meshArgs, instancesOrViewIndependentOrigin);\r\n\r\n const plArgs = this.toPolylineArgs();\r\n return plArgs ? system.createIndexedPolylines(plArgs, instancesOrViewIndependentOrigin) : undefined;\r\n }\r\n\r\n public addPolyline(poly: MeshPolyline): void {\r\n const { type, polylines } = this;\r\n\r\n assert(MeshPrimitiveType.Polyline === type || MeshPrimitiveType.Point === type);\r\n assert(undefined !== polylines);\r\n\r\n if (MeshPrimitiveType.Polyline === type && poly.indices.length < 2)\r\n return;\r\n\r\n if (undefined !== polylines)\r\n polylines.push(poly);\r\n }\r\n\r\n public addTriangle(triangle: Triangle): void {\r\n const { triangles, type } = this;\r\n\r\n assert(MeshPrimitiveType.Mesh === type);\r\n assert(undefined !== triangles);\r\n\r\n if (undefined !== triangles)\r\n triangles.addTriangle(triangle);\r\n }\r\n\r\n public addVertex(props: VertexKeyProps): number {\r\n const { feature, position, normal, uvParam, fillColor } = props;\r\n\r\n this.points.add(position);\r\n\r\n if (undefined !== normal)\r\n this.normals.push(normal);\r\n\r\n if (undefined !== uvParam)\r\n this.uvParams.push(uvParam);\r\n\r\n if (feature) {\r\n assert(undefined !== this.features);\r\n this.features.add(feature, this.points.length);\r\n }\r\n\r\n // Don't allocate color indices until we have non-uniform colors\r\n if (0 === this.colorMap.length) {\r\n this.colorMap.insert(fillColor);\r\n assert(this.colorMap.isUniform);\r\n assert(0 === this.colorMap.indexOf(fillColor));\r\n } else if (!this.colorMap.isUniform || !this.colorMap.hasColor(fillColor)) {\r\n // Back-fill uniform value (index=0) for existing vertices if previously uniform\r\n if (0 === this.colors.length)\r\n this.colors.length = this.points.length - 1;\r\n\r\n this.colors.push(this.colorMap.insert(fillColor));\r\n assert(!this.colorMap.isUniform);\r\n }\r\n\r\n return this.points.length - 1;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport namespace Mesh { // eslint-disable-line no-redeclare\r\n export class Features {\r\n public readonly table: FeatureTable;\r\n public indices: number[] = [];\r\n public uniform = 0;\r\n public initialized = false;\r\n\r\n public constructor(table: FeatureTable) { this.table = table; }\r\n\r\n public add(feat: Feature, numVerts: number): void {\r\n const index = this.table.insert(feat);\r\n if (!this.initialized) {\r\n // First feature - uniform.\r\n this.uniform = index;\r\n this.initialized = true;\r\n } else if (0 < this.indices.length) {\r\n // Already non-uniform\r\n this.indices.push(index);\r\n } else {\r\n // Second feature - back-fill uniform for existing verts\r\n while (this.indices.length < numVerts - 1)\r\n this.indices.push(this.uniform);\r\n\r\n this.indices.push(index);\r\n }\r\n }\r\n\r\n public setIndices(indices: number[]) {\r\n this.indices.length = 0;\r\n this.uniform = 0;\r\n this.initialized = 0 < indices.length;\r\n\r\n assert(0 < indices.length);\r\n if (1 === indices.length)\r\n this.uniform = indices[0];\r\n else if (1 < indices.length)\r\n this.indices = indices;\r\n }\r\n\r\n public toFeatureIndex(output?: FeatureIndex): FeatureIndex {\r\n const index = output ?? new FeatureIndex();\r\n if (!this.initialized) {\r\n index.type = FeatureIndexType.Empty;\r\n } else if (this.indices.length === 0) {\r\n index.type = FeatureIndexType.Uniform;\r\n index.featureID = this.uniform;\r\n } else {\r\n index.type = FeatureIndexType.NonUniform;\r\n index.featureIDs = new Uint32Array(this.indices);\r\n }\r\n\r\n return index;\r\n }\r\n }\r\n\r\n export interface Props {\r\n displayParams: DisplayParams;\r\n features?: FeatureTable;\r\n type: MeshPrimitiveType;\r\n range: Range3d;\r\n quantizePositions: boolean;\r\n is2d: boolean;\r\n isPlanar: boolean;\r\n hasBakedLighting?: boolean;\r\n isVolumeClassifier?: boolean;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class MeshList extends Array<Mesh> {\r\n public readonly features?: FeatureTable;\r\n public readonly range?: Range3d;\r\n constructor(features?: FeatureTable, range?: Range3d) {\r\n super();\r\n this.features = features;\r\n this.range = range;\r\n }\r\n}\r\n"]}