@itwin/core-frontend 4.0.0-dev.85 → 4.0.0-dev.87

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 (841) hide show
  1. package/lib/cjs/AccuDraw.js.map +1 -1
  2. package/lib/cjs/AccuSnap.js.map +1 -1
  3. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  4. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
  5. package/lib/cjs/AuxCoordSys.js.map +1 -1
  6. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  7. package/lib/cjs/BingLocation.js.map +1 -1
  8. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  9. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  10. package/lib/cjs/CategorySelectorState.js.map +1 -1
  11. package/lib/cjs/ChangeFlags.js.map +1 -1
  12. package/lib/cjs/CheckpointConnection.js.map +1 -1
  13. package/lib/cjs/CoordSystem.js.map +1 -1
  14. package/lib/cjs/DecorationsCache.js.map +1 -1
  15. package/lib/cjs/DevTools.js.map +1 -1
  16. package/lib/cjs/DisplayStyleState.js.map +1 -1
  17. package/lib/cjs/DrawingViewState.js +5 -5
  18. package/lib/cjs/DrawingViewState.js.map +1 -1
  19. package/lib/cjs/ElementLocateManager.js.map +1 -1
  20. package/lib/cjs/EmphasizeElements.js.map +1 -1
  21. package/lib/cjs/EntityState.js.map +1 -1
  22. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  23. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  24. package/lib/cjs/FlashSettings.js.map +1 -1
  25. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  26. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  27. package/lib/cjs/Frustum2d.js.map +1 -1
  28. package/lib/cjs/FrustumAnimator.js.map +1 -1
  29. package/lib/cjs/FuzzySearch.js.map +1 -1
  30. package/lib/cjs/GeoServices.js.map +1 -1
  31. package/lib/cjs/GlobeAnimator.js.map +1 -1
  32. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  33. package/lib/cjs/HitDetail.js.map +1 -1
  34. package/lib/cjs/IModelApp.js.map +1 -1
  35. package/lib/cjs/IModelConnection.js +23 -23
  36. package/lib/cjs/IModelConnection.js.map +1 -1
  37. package/lib/cjs/IModelRoutingContext.js.map +1 -1
  38. package/lib/cjs/IModeljs-css.js +133 -133
  39. package/lib/cjs/IModeljs-css.js.map +1 -1
  40. package/lib/cjs/ImageUtil.js.map +1 -1
  41. package/lib/cjs/IpcApp.js.map +1 -1
  42. package/lib/cjs/LinePlaneIntersect.js.map +1 -1
  43. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  44. package/lib/cjs/MarginPercent.js.map +1 -1
  45. package/lib/cjs/Marker.js.map +1 -1
  46. package/lib/cjs/ModelSelectorState.js.map +1 -1
  47. package/lib/cjs/NativeApp.js.map +1 -1
  48. package/lib/cjs/NativeAppLogger.js.map +1 -1
  49. package/lib/cjs/NoRenderApp.js.map +1 -1
  50. package/lib/cjs/NotificationManager.js.map +1 -1
  51. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  52. package/lib/cjs/PlanarClipMaskState.js.map +1 -1
  53. package/lib/cjs/RealityDataSource.js.map +1 -1
  54. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  55. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  56. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  57. package/lib/cjs/SelectionSet.js.map +1 -1
  58. package/lib/cjs/SheetViewState.js.map +1 -1
  59. package/lib/cjs/SpatialViewState.js.map +1 -1
  60. package/lib/cjs/Sprites.js.map +1 -1
  61. package/lib/cjs/StandardView.js.map +1 -1
  62. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  63. package/lib/cjs/TentativePoint.js.map +1 -1
  64. package/lib/cjs/Tiles.js.map +1 -1
  65. package/lib/cjs/UserPreferences.js.map +1 -1
  66. package/lib/cjs/ViewAnimation.js.map +1 -1
  67. package/lib/cjs/ViewContext.js.map +1 -1
  68. package/lib/cjs/ViewCreator2d.js.map +1 -1
  69. package/lib/cjs/ViewCreator3d.js.map +1 -1
  70. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  71. package/lib/cjs/ViewManager.js.map +1 -1
  72. package/lib/cjs/ViewPose.js.map +1 -1
  73. package/lib/cjs/ViewRect.js.map +1 -1
  74. package/lib/cjs/ViewState.js.map +1 -1
  75. package/lib/cjs/ViewStatus.js.map +1 -1
  76. package/lib/cjs/ViewingSpace.js.map +1 -1
  77. package/lib/cjs/Viewport.js.map +1 -1
  78. package/lib/cjs/ViewportSync.js.map +1 -1
  79. package/lib/cjs/WebWorkerManager.js.map +1 -1
  80. package/lib/cjs/core-frontend.js.map +1 -1
  81. package/lib/cjs/extension/Extension.js.map +1 -1
  82. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  83. package/lib/cjs/extension/ExtensionHost.js.map +1 -1
  84. package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
  85. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  86. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  87. package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -1
  88. package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
  89. package/lib/cjs/gltf/GltfModel.js.map +1 -1
  90. package/lib/cjs/gltf/GltfParser.js.map +1 -1
  91. package/lib/cjs/gltf/GltfSchema.js.map +1 -1
  92. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  93. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  94. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  95. package/lib/cjs/public/scripts/checkbrowser.js +24 -24
  96. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  97. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  98. package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  99. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  100. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  101. package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -1
  102. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  103. package/lib/cjs/render/Decorations.js.map +1 -1
  104. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  105. package/lib/cjs/render/FrameStats.js.map +1 -1
  106. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  107. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  108. package/lib/cjs/render/GraphicPrimitive.js.map +1 -1
  109. package/lib/cjs/render/InstancedGraphicParams.js.map +1 -1
  110. package/lib/cjs/render/MockRender.js.map +1 -1
  111. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  112. package/lib/cjs/render/Pixel.js.map +1 -1
  113. package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -1
  114. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  115. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  116. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  117. package/lib/cjs/render/RenderMaterial.d.ts +8 -0
  118. package/lib/cjs/render/RenderMaterial.d.ts.map +1 -1
  119. package/lib/cjs/render/RenderMaterial.js.map +1 -1
  120. package/lib/cjs/render/RenderMemory.js.map +1 -1
  121. package/lib/cjs/render/RenderPlan.js.map +1 -1
  122. package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
  123. package/lib/cjs/render/RenderSystem.js.map +1 -1
  124. package/lib/cjs/render/RenderTarget.js.map +1 -1
  125. package/lib/cjs/render/RenderTexture.js.map +1 -1
  126. package/lib/cjs/render/Scene.js.map +1 -1
  127. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  128. package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -1
  129. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  130. package/lib/cjs/render/primitives/AuxChannelTable.js.map +1 -1
  131. package/lib/cjs/render/primitives/ColorMap.js.map +1 -1
  132. package/lib/cjs/render/primitives/DisplayParams.js.map +1 -1
  133. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  134. package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +1 -1
  135. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -1
  136. package/lib/cjs/render/primitives/Polyface.js.map +1 -1
  137. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
  138. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  139. package/lib/cjs/render/primitives/Strokes.js.map +1 -1
  140. package/lib/cjs/render/primitives/SurfaceParams.js.map +1 -1
  141. package/lib/cjs/render/primitives/VertexKey.js.map +1 -1
  142. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  143. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -1
  144. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  145. package/lib/cjs/render/primitives/geometry/GeometryList.js.map +1 -1
  146. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  147. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  148. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  149. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  150. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  151. package/lib/cjs/render/webgl/AtmosphereUniforms.js.map +1 -1
  152. package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
  153. package/lib/cjs/render/webgl/AttributeMap.js.map +1 -1
  154. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  155. package/lib/cjs/render/webgl/BatchState.js.map +1 -1
  156. package/lib/cjs/render/webgl/BatchUniforms.js.map +1 -1
  157. package/lib/cjs/render/webgl/BranchStack.js.map +1 -1
  158. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  159. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  160. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  161. package/lib/cjs/render/webgl/ClipStack.js.map +1 -1
  162. package/lib/cjs/render/webgl/ClipVolume.js.map +1 -1
  163. package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
  164. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  165. package/lib/cjs/render/webgl/Diagnostics.js.map +1 -1
  166. package/lib/cjs/render/webgl/Disposable.js.map +1 -1
  167. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  168. package/lib/cjs/render/webgl/EDL.js.map +1 -1
  169. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  170. package/lib/cjs/render/webgl/EdgeSettings.js.map +1 -1
  171. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  172. package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
  173. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  174. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  175. package/lib/cjs/render/webgl/GL.js.map +1 -1
  176. package/lib/cjs/render/webgl/GLTimer.js.map +1 -1
  177. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  178. package/lib/cjs/render/webgl/HiliteUniforms.js.map +1 -1
  179. package/lib/cjs/render/webgl/IModelFrameLifecycle.js.map +1 -1
  180. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  181. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  182. package/lib/cjs/render/webgl/Layer.js.map +1 -1
  183. package/lib/cjs/render/webgl/LayerCommands.js.map +1 -1
  184. package/lib/cjs/render/webgl/LightingUniforms.js.map +1 -1
  185. package/lib/cjs/render/webgl/LineCode.js.map +1 -1
  186. package/lib/cjs/render/webgl/Material.js.map +1 -1
  187. package/lib/cjs/render/webgl/Matrix.js.map +1 -1
  188. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  189. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  190. package/lib/cjs/render/webgl/MeshGeometry.js.map +1 -1
  191. package/lib/cjs/render/webgl/PerformanceMetrics.js.map +1 -1
  192. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  193. package/lib/cjs/render/webgl/PlanarGrid.js.map +1 -1
  194. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  195. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  196. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  197. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  198. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  199. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  200. package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -1
  201. package/lib/cjs/render/webgl/RenderBuffer.js.map +1 -1
  202. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  203. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  204. package/lib/cjs/render/webgl/RenderState.js.map +1 -1
  205. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  206. package/lib/cjs/render/webgl/ScratchDrawParams.js.map +1 -1
  207. package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
  208. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  209. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  210. package/lib/cjs/render/webgl/ShadowUniforms.js.map +1 -1
  211. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  212. package/lib/cjs/render/webgl/StyleUniforms.js.map +1 -1
  213. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  214. package/lib/cjs/render/webgl/Sync.js.map +1 -1
  215. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  216. package/lib/cjs/render/webgl/System.js +2 -0
  217. package/lib/cjs/render/webgl/System.js.map +1 -1
  218. package/lib/cjs/render/webgl/Target.js.map +1 -1
  219. package/lib/cjs/render/webgl/TargetGraphics.js.map +1 -1
  220. package/lib/cjs/render/webgl/TargetUniforms.js.map +1 -1
  221. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  222. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  223. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  224. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  225. package/lib/cjs/render/webgl/TextureDrape.js.map +1 -1
  226. package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
  227. package/lib/cjs/render/webgl/ThematicUniforms.js.map +1 -1
  228. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  229. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  230. package/lib/cjs/render/webgl/ViewRectUniforms.js.map +1 -1
  231. package/lib/cjs/render/webgl/VisibleTileFeatures.js.map +1 -1
  232. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +154 -154
  233. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  234. package/lib/cjs/render/webgl/glsl/Animation.js +83 -83
  235. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  236. package/lib/cjs/render/webgl/glsl/Atmosphere.js +266 -266
  237. package/lib/cjs/render/webgl/glsl/Atmosphere.js.map +1 -1
  238. package/lib/cjs/render/webgl/glsl/Blur.js +37 -37
  239. package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
  240. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +4 -4
  241. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  242. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +3 -3
  243. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  244. package/lib/cjs/render/webgl/glsl/Clipping.js +60 -60
  245. package/lib/cjs/render/webgl/glsl/Clipping.js.map +1 -1
  246. package/lib/cjs/render/webgl/glsl/Color.js +12 -12
  247. package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
  248. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +7 -7
  249. package/lib/cjs/render/webgl/glsl/Combine3Textures.js.map +1 -1
  250. package/lib/cjs/render/webgl/glsl/CombineTextures.js +5 -5
  251. package/lib/cjs/render/webgl/glsl/CombineTextures.js.map +1 -1
  252. package/lib/cjs/render/webgl/glsl/Common.js +16 -16
  253. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  254. package/lib/cjs/render/webgl/glsl/Composite.js +71 -71
  255. package/lib/cjs/render/webgl/glsl/Composite.js.map +1 -1
  256. package/lib/cjs/render/webgl/glsl/CopyColor.js +6 -6
  257. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  258. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +3 -3
  259. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  260. package/lib/cjs/render/webgl/glsl/CopyStencil.js +4 -4
  261. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  262. package/lib/cjs/render/webgl/glsl/Decode.js +65 -65
  263. package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
  264. package/lib/cjs/render/webgl/glsl/EDL.js +103 -103
  265. package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -1
  266. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +25 -25
  267. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  268. package/lib/cjs/render/webgl/glsl/Edge.js +146 -146
  269. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  270. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +232 -232
  271. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  272. package/lib/cjs/render/webgl/glsl/Fragment.js +41 -41
  273. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  274. package/lib/cjs/render/webgl/glsl/Instancing.js +21 -21
  275. package/lib/cjs/render/webgl/glsl/Instancing.js.map +1 -1
  276. package/lib/cjs/render/webgl/glsl/Lighting.js +92 -92
  277. package/lib/cjs/render/webgl/glsl/Lighting.js.map +1 -1
  278. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  279. package/lib/cjs/render/webgl/glsl/LookupTable.js +19 -19
  280. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  281. package/lib/cjs/render/webgl/glsl/Monochrome.js +13 -13
  282. package/lib/cjs/render/webgl/glsl/Monochrome.js.map +1 -1
  283. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +188 -188
  284. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  285. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +22 -22
  286. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  287. package/lib/cjs/render/webgl/glsl/PointCloud.js +28 -28
  288. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  289. package/lib/cjs/render/webgl/glsl/PointString.js +9 -9
  290. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  291. package/lib/cjs/render/webgl/glsl/Polyline.js +213 -213
  292. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  293. package/lib/cjs/render/webgl/glsl/RealityMesh.js +83 -83
  294. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  295. package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
  296. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +9 -9
  297. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  298. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  299. package/lib/cjs/render/webgl/glsl/SkySphere.js +49 -49
  300. package/lib/cjs/render/webgl/glsl/SkySphere.js.map +1 -1
  301. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +51 -51
  302. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  303. package/lib/cjs/render/webgl/glsl/Surface.js +239 -239
  304. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  305. package/lib/cjs/render/webgl/glsl/Thematic.js +134 -134
  306. package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
  307. package/lib/cjs/render/webgl/glsl/Translucency.js +19 -19
  308. package/lib/cjs/render/webgl/glsl/Translucency.js.map +1 -1
  309. package/lib/cjs/render/webgl/glsl/Vertex.js +73 -73
  310. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  311. package/lib/cjs/render/webgl/glsl/Viewport.js +38 -38
  312. package/lib/cjs/render/webgl/glsl/Viewport.js.map +1 -1
  313. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  314. package/lib/cjs/render/webgl/glsl/Wiremesh.js +10 -10
  315. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -1
  316. package/lib/cjs/render-primitives.js.map +1 -1
  317. package/lib/cjs/request/Request.js.map +1 -1
  318. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  319. package/lib/cjs/tile/BatchedTileIdMap.js.map +1 -1
  320. package/lib/cjs/tile/CesiumAssetProvider.js.map +1 -1
  321. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  322. package/lib/cjs/tile/ContextShareProvider.js.map +1 -1
  323. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  324. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  325. package/lib/cjs/tile/GltfReader.js.map +1 -1
  326. package/lib/cjs/tile/GraphicsCollector.js.map +1 -1
  327. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  328. package/lib/cjs/tile/IModelTile.js.map +1 -1
  329. package/lib/cjs/tile/IModelTileRequestChannels.js.map +1 -1
  330. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  331. package/lib/cjs/tile/ImdlReader.d.ts +14 -0
  332. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  333. package/lib/cjs/tile/ImdlReader.js +23 -1
  334. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  335. package/lib/cjs/tile/LRUTileList.js.map +1 -1
  336. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  337. package/lib/cjs/tile/PntsReader.js.map +1 -1
  338. package/lib/cjs/tile/RealityTile.js.map +1 -1
  339. package/lib/cjs/tile/RealityTileDrawArgs.js.map +1 -1
  340. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  341. package/lib/cjs/tile/RealityTileTree.js +1 -1
  342. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  343. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  344. package/lib/cjs/tile/Tile.js.map +1 -1
  345. package/lib/cjs/tile/TileAdmin.d.ts +1 -1
  346. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  347. package/lib/cjs/tile/TileAdmin.js +3 -1
  348. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  349. package/lib/cjs/tile/TileContent.js.map +1 -1
  350. package/lib/cjs/tile/TileDrawArgs.d.ts +4 -0
  351. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  352. package/lib/cjs/tile/TileDrawArgs.js +4 -0
  353. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  354. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
  355. package/lib/cjs/tile/TileParams.js.map +1 -1
  356. package/lib/cjs/tile/TileRequest.js.map +1 -1
  357. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  358. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  359. package/lib/cjs/tile/TileStorage.js.map +1 -1
  360. package/lib/cjs/tile/TileTree.js +1 -1
  361. package/lib/cjs/tile/TileTree.js.map +1 -1
  362. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  363. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  364. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  365. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  366. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  367. package/lib/cjs/tile/TileUser.js.map +1 -1
  368. package/lib/cjs/tile/TileUserSet.js.map +1 -1
  369. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  370. package/lib/cjs/tile/ViewFlagOverrides.js.map +1 -1
  371. package/lib/cjs/tile/internal.js.map +1 -1
  372. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  373. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  374. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  375. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  376. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  377. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  378. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  379. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  380. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  381. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  382. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  383. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  384. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  385. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  386. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  387. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
  388. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  389. package/lib/cjs/tile/map/MapLayerImageryProvider.js +2 -2
  390. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  391. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  392. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  393. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  394. package/lib/cjs/tile/map/MapTileAvailability.js.map +1 -1
  395. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  396. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  397. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  398. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  399. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  400. package/lib/cjs/tile/map/TerrainProvider.js.map +1 -1
  401. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  402. package/lib/cjs/tile/map/WmsUtilities.js.map +1 -1
  403. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  404. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  405. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  406. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  407. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  408. package/lib/cjs/tools/EventController.js.map +1 -1
  409. package/lib/cjs/tools/IdleTool.js.map +1 -1
  410. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  411. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  412. package/lib/cjs/tools/SelectTool.js.map +1 -1
  413. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  414. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  415. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  416. package/lib/cjs/tools/ViewTool.js.map +1 -1
  417. package/lib/cjs/webgl.js.map +1 -1
  418. package/lib/esm/AccuDraw.js.map +1 -1
  419. package/lib/esm/AccuSnap.js.map +1 -1
  420. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  421. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
  422. package/lib/esm/AuxCoordSys.js.map +1 -1
  423. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  424. package/lib/esm/BingLocation.js.map +1 -1
  425. package/lib/esm/BriefcaseConnection.js.map +1 -1
  426. package/lib/esm/BriefcaseTxns.js.map +1 -1
  427. package/lib/esm/CategorySelectorState.js.map +1 -1
  428. package/lib/esm/ChangeFlags.js.map +1 -1
  429. package/lib/esm/CheckpointConnection.js.map +1 -1
  430. package/lib/esm/CoordSystem.js.map +1 -1
  431. package/lib/esm/DecorationsCache.js.map +1 -1
  432. package/lib/esm/DevTools.js.map +1 -1
  433. package/lib/esm/DisplayStyleState.js.map +1 -1
  434. package/lib/esm/DrawingViewState.js +5 -5
  435. package/lib/esm/DrawingViewState.js.map +1 -1
  436. package/lib/esm/ElementLocateManager.js.map +1 -1
  437. package/lib/esm/EmphasizeElements.js.map +1 -1
  438. package/lib/esm/EntityState.js.map +1 -1
  439. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  440. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  441. package/lib/esm/FlashSettings.js.map +1 -1
  442. package/lib/esm/FrontendHubAccess.js.map +1 -1
  443. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  444. package/lib/esm/Frustum2d.js.map +1 -1
  445. package/lib/esm/FrustumAnimator.js.map +1 -1
  446. package/lib/esm/FuzzySearch.js.map +1 -1
  447. package/lib/esm/GeoServices.js.map +1 -1
  448. package/lib/esm/GlobeAnimator.js.map +1 -1
  449. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  450. package/lib/esm/HitDetail.js.map +1 -1
  451. package/lib/esm/IModelApp.js.map +1 -1
  452. package/lib/esm/IModelConnection.js +23 -23
  453. package/lib/esm/IModelConnection.js.map +1 -1
  454. package/lib/esm/IModelRoutingContext.js.map +1 -1
  455. package/lib/esm/IModeljs-css.js +133 -133
  456. package/lib/esm/IModeljs-css.js.map +1 -1
  457. package/lib/esm/ImageUtil.js.map +1 -1
  458. package/lib/esm/IpcApp.js.map +1 -1
  459. package/lib/esm/LinePlaneIntersect.js.map +1 -1
  460. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  461. package/lib/esm/MarginPercent.js.map +1 -1
  462. package/lib/esm/Marker.js.map +1 -1
  463. package/lib/esm/ModelSelectorState.js.map +1 -1
  464. package/lib/esm/NativeApp.js.map +1 -1
  465. package/lib/esm/NativeAppLogger.js.map +1 -1
  466. package/lib/esm/NoRenderApp.js.map +1 -1
  467. package/lib/esm/NotificationManager.js.map +1 -1
  468. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  469. package/lib/esm/PlanarClipMaskState.js.map +1 -1
  470. package/lib/esm/RealityDataSource.js.map +1 -1
  471. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  472. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  473. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  474. package/lib/esm/SelectionSet.js.map +1 -1
  475. package/lib/esm/SheetViewState.js.map +1 -1
  476. package/lib/esm/SpatialViewState.js.map +1 -1
  477. package/lib/esm/Sprites.js.map +1 -1
  478. package/lib/esm/StandardView.js.map +1 -1
  479. package/lib/esm/SubCategoriesCache.js.map +1 -1
  480. package/lib/esm/TentativePoint.js.map +1 -1
  481. package/lib/esm/Tiles.js.map +1 -1
  482. package/lib/esm/UserPreferences.js.map +1 -1
  483. package/lib/esm/ViewAnimation.js.map +1 -1
  484. package/lib/esm/ViewContext.js.map +1 -1
  485. package/lib/esm/ViewCreator2d.js.map +1 -1
  486. package/lib/esm/ViewCreator3d.js.map +1 -1
  487. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  488. package/lib/esm/ViewManager.js.map +1 -1
  489. package/lib/esm/ViewPose.js.map +1 -1
  490. package/lib/esm/ViewRect.js.map +1 -1
  491. package/lib/esm/ViewState.js.map +1 -1
  492. package/lib/esm/ViewStatus.js.map +1 -1
  493. package/lib/esm/ViewingSpace.js.map +1 -1
  494. package/lib/esm/Viewport.js.map +1 -1
  495. package/lib/esm/ViewportSync.js.map +1 -1
  496. package/lib/esm/WebWorkerManager.js.map +1 -1
  497. package/lib/esm/core-frontend.js.map +1 -1
  498. package/lib/esm/extension/Extension.js.map +1 -1
  499. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  500. package/lib/esm/extension/ExtensionHost.js.map +1 -1
  501. package/lib/esm/extension/ExtensionImpl.js.map +1 -1
  502. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  503. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
  504. package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -1
  505. package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
  506. package/lib/esm/gltf/GltfModel.js.map +1 -1
  507. package/lib/esm/gltf/GltfParser.js.map +1 -1
  508. package/lib/esm/gltf/GltfSchema.js.map +1 -1
  509. package/lib/esm/properties/AngleDescription.js.map +1 -1
  510. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  511. package/lib/esm/properties/LengthDescription.js.map +1 -1
  512. package/lib/esm/public/scripts/checkbrowser.js +24 -24
  513. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  514. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  515. package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  516. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  517. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  518. package/lib/esm/quantity-formatting/UnitsData.js.map +1 -1
  519. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  520. package/lib/esm/render/Decorations.js.map +1 -1
  521. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  522. package/lib/esm/render/FrameStats.js.map +1 -1
  523. package/lib/esm/render/GraphicBranch.js.map +1 -1
  524. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  525. package/lib/esm/render/GraphicPrimitive.js.map +1 -1
  526. package/lib/esm/render/InstancedGraphicParams.js.map +1 -1
  527. package/lib/esm/render/MockRender.js.map +1 -1
  528. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  529. package/lib/esm/render/Pixel.js.map +1 -1
  530. package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -1
  531. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  532. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  533. package/lib/esm/render/RenderGraphic.js.map +1 -1
  534. package/lib/esm/render/RenderMaterial.d.ts +8 -0
  535. package/lib/esm/render/RenderMaterial.d.ts.map +1 -1
  536. package/lib/esm/render/RenderMaterial.js.map +1 -1
  537. package/lib/esm/render/RenderMemory.js.map +1 -1
  538. package/lib/esm/render/RenderPlan.js.map +1 -1
  539. package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
  540. package/lib/esm/render/RenderSystem.js.map +1 -1
  541. package/lib/esm/render/RenderTarget.js.map +1 -1
  542. package/lib/esm/render/RenderTexture.js.map +1 -1
  543. package/lib/esm/render/Scene.js.map +1 -1
  544. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  545. package/lib/esm/render/UpsampleRealityMeshParams.js.map +1 -1
  546. package/lib/esm/render/VisibleFeature.js.map +1 -1
  547. package/lib/esm/render/primitives/AuxChannelTable.js.map +1 -1
  548. package/lib/esm/render/primitives/ColorMap.js.map +1 -1
  549. package/lib/esm/render/primitives/DisplayParams.js.map +1 -1
  550. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  551. package/lib/esm/render/primitives/PointCloudPrimitive.js.map +1 -1
  552. package/lib/esm/render/primitives/PointStringParams.js.map +1 -1
  553. package/lib/esm/render/primitives/Polyface.js.map +1 -1
  554. package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
  555. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  556. package/lib/esm/render/primitives/Strokes.js.map +1 -1
  557. package/lib/esm/render/primitives/SurfaceParams.js.map +1 -1
  558. package/lib/esm/render/primitives/VertexKey.js.map +1 -1
  559. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  560. package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -1
  561. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  562. package/lib/esm/render/primitives/geometry/GeometryList.js.map +1 -1
  563. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  564. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  565. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  566. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  567. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  568. package/lib/esm/render/webgl/AtmosphereUniforms.js.map +1 -1
  569. package/lib/esm/render/webgl/AttributeBuffers.js.map +1 -1
  570. package/lib/esm/render/webgl/AttributeMap.js.map +1 -1
  571. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  572. package/lib/esm/render/webgl/BatchState.js.map +1 -1
  573. package/lib/esm/render/webgl/BatchUniforms.js.map +1 -1
  574. package/lib/esm/render/webgl/BranchStack.js.map +1 -1
  575. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  576. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  577. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  578. package/lib/esm/render/webgl/ClipStack.js.map +1 -1
  579. package/lib/esm/render/webgl/ClipVolume.js.map +1 -1
  580. package/lib/esm/render/webgl/ClippingProgram.js.map +1 -1
  581. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  582. package/lib/esm/render/webgl/Diagnostics.js.map +1 -1
  583. package/lib/esm/render/webgl/Disposable.js.map +1 -1
  584. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  585. package/lib/esm/render/webgl/EDL.js.map +1 -1
  586. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  587. package/lib/esm/render/webgl/EdgeSettings.js.map +1 -1
  588. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  589. package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
  590. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  591. package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
  592. package/lib/esm/render/webgl/GL.js.map +1 -1
  593. package/lib/esm/render/webgl/GLTimer.js.map +1 -1
  594. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  595. package/lib/esm/render/webgl/HiliteUniforms.js.map +1 -1
  596. package/lib/esm/render/webgl/IModelFrameLifecycle.js.map +1 -1
  597. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  598. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  599. package/lib/esm/render/webgl/Layer.js.map +1 -1
  600. package/lib/esm/render/webgl/LayerCommands.js.map +1 -1
  601. package/lib/esm/render/webgl/LightingUniforms.js.map +1 -1
  602. package/lib/esm/render/webgl/LineCode.js.map +1 -1
  603. package/lib/esm/render/webgl/Material.js.map +1 -1
  604. package/lib/esm/render/webgl/Matrix.js.map +1 -1
  605. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  606. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  607. package/lib/esm/render/webgl/MeshGeometry.js.map +1 -1
  608. package/lib/esm/render/webgl/PerformanceMetrics.js.map +1 -1
  609. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  610. package/lib/esm/render/webgl/PlanarGrid.js.map +1 -1
  611. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  612. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  613. package/lib/esm/render/webgl/PointString.js.map +1 -1
  614. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  615. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  616. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  617. package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -1
  618. package/lib/esm/render/webgl/RenderBuffer.js.map +1 -1
  619. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  620. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  621. package/lib/esm/render/webgl/RenderState.js.map +1 -1
  622. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  623. package/lib/esm/render/webgl/ScratchDrawParams.js.map +1 -1
  624. package/lib/esm/render/webgl/ScreenSpaceEffect.js.map +1 -1
  625. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  626. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  627. package/lib/esm/render/webgl/ShadowUniforms.js.map +1 -1
  628. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  629. package/lib/esm/render/webgl/StyleUniforms.js.map +1 -1
  630. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  631. package/lib/esm/render/webgl/Sync.js.map +1 -1
  632. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  633. package/lib/esm/render/webgl/System.js +2 -0
  634. package/lib/esm/render/webgl/System.js.map +1 -1
  635. package/lib/esm/render/webgl/Target.js.map +1 -1
  636. package/lib/esm/render/webgl/TargetGraphics.js.map +1 -1
  637. package/lib/esm/render/webgl/TargetUniforms.js.map +1 -1
  638. package/lib/esm/render/webgl/Technique.js.map +1 -1
  639. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  640. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  641. package/lib/esm/render/webgl/Texture.js.map +1 -1
  642. package/lib/esm/render/webgl/TextureDrape.js.map +1 -1
  643. package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
  644. package/lib/esm/render/webgl/ThematicUniforms.js.map +1 -1
  645. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  646. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  647. package/lib/esm/render/webgl/ViewRectUniforms.js.map +1 -1
  648. package/lib/esm/render/webgl/VisibleTileFeatures.js.map +1 -1
  649. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +154 -154
  650. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  651. package/lib/esm/render/webgl/glsl/Animation.js +83 -83
  652. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  653. package/lib/esm/render/webgl/glsl/Atmosphere.js +266 -266
  654. package/lib/esm/render/webgl/glsl/Atmosphere.js.map +1 -1
  655. package/lib/esm/render/webgl/glsl/Blur.js +37 -37
  656. package/lib/esm/render/webgl/glsl/Blur.js.map +1 -1
  657. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +4 -4
  658. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  659. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +3 -3
  660. package/lib/esm/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  661. package/lib/esm/render/webgl/glsl/Clipping.js +60 -60
  662. package/lib/esm/render/webgl/glsl/Clipping.js.map +1 -1
  663. package/lib/esm/render/webgl/glsl/Color.js +12 -12
  664. package/lib/esm/render/webgl/glsl/Color.js.map +1 -1
  665. package/lib/esm/render/webgl/glsl/Combine3Textures.js +7 -7
  666. package/lib/esm/render/webgl/glsl/Combine3Textures.js.map +1 -1
  667. package/lib/esm/render/webgl/glsl/CombineTextures.js +5 -5
  668. package/lib/esm/render/webgl/glsl/CombineTextures.js.map +1 -1
  669. package/lib/esm/render/webgl/glsl/Common.js +16 -16
  670. package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
  671. package/lib/esm/render/webgl/glsl/Composite.js +71 -71
  672. package/lib/esm/render/webgl/glsl/Composite.js.map +1 -1
  673. package/lib/esm/render/webgl/glsl/CopyColor.js +6 -6
  674. package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
  675. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +3 -3
  676. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  677. package/lib/esm/render/webgl/glsl/CopyStencil.js +4 -4
  678. package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
  679. package/lib/esm/render/webgl/glsl/Decode.js +65 -65
  680. package/lib/esm/render/webgl/glsl/Decode.js.map +1 -1
  681. package/lib/esm/render/webgl/glsl/EDL.js +103 -103
  682. package/lib/esm/render/webgl/glsl/EDL.js.map +1 -1
  683. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +25 -25
  684. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  685. package/lib/esm/render/webgl/glsl/Edge.js +146 -146
  686. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  687. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +232 -232
  688. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  689. package/lib/esm/render/webgl/glsl/Fragment.js +41 -41
  690. package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
  691. package/lib/esm/render/webgl/glsl/Instancing.js +21 -21
  692. package/lib/esm/render/webgl/glsl/Instancing.js.map +1 -1
  693. package/lib/esm/render/webgl/glsl/Lighting.js +92 -92
  694. package/lib/esm/render/webgl/glsl/Lighting.js.map +1 -1
  695. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  696. package/lib/esm/render/webgl/glsl/LookupTable.js +19 -19
  697. package/lib/esm/render/webgl/glsl/LookupTable.js.map +1 -1
  698. package/lib/esm/render/webgl/glsl/Monochrome.js +13 -13
  699. package/lib/esm/render/webgl/glsl/Monochrome.js.map +1 -1
  700. package/lib/esm/render/webgl/glsl/PlanarClassification.js +188 -188
  701. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  702. package/lib/esm/render/webgl/glsl/PlanarGrid.js +22 -22
  703. package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
  704. package/lib/esm/render/webgl/glsl/PointCloud.js +28 -28
  705. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  706. package/lib/esm/render/webgl/glsl/PointString.js +9 -9
  707. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  708. package/lib/esm/render/webgl/glsl/Polyline.js +213 -213
  709. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  710. package/lib/esm/render/webgl/glsl/RealityMesh.js +83 -83
  711. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  712. package/lib/esm/render/webgl/glsl/RenderPass.js.map +1 -1
  713. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +9 -9
  714. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  715. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  716. package/lib/esm/render/webgl/glsl/SkySphere.js +49 -49
  717. package/lib/esm/render/webgl/glsl/SkySphere.js.map +1 -1
  718. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +51 -51
  719. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  720. package/lib/esm/render/webgl/glsl/Surface.js +239 -239
  721. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  722. package/lib/esm/render/webgl/glsl/Thematic.js +134 -134
  723. package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
  724. package/lib/esm/render/webgl/glsl/Translucency.js +19 -19
  725. package/lib/esm/render/webgl/glsl/Translucency.js.map +1 -1
  726. package/lib/esm/render/webgl/glsl/Vertex.js +73 -73
  727. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  728. package/lib/esm/render/webgl/glsl/Viewport.js +38 -38
  729. package/lib/esm/render/webgl/glsl/Viewport.js.map +1 -1
  730. package/lib/esm/render/webgl/glsl/ViewportQuad.js.map +1 -1
  731. package/lib/esm/render/webgl/glsl/Wiremesh.js +10 -10
  732. package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -1
  733. package/lib/esm/render-primitives.js.map +1 -1
  734. package/lib/esm/request/Request.js.map +1 -1
  735. package/lib/esm/tile/B3dmReader.js.map +1 -1
  736. package/lib/esm/tile/BatchedTileIdMap.js.map +1 -1
  737. package/lib/esm/tile/CesiumAssetProvider.js.map +1 -1
  738. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  739. package/lib/esm/tile/ContextShareProvider.js.map +1 -1
  740. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  741. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  742. package/lib/esm/tile/GltfReader.js.map +1 -1
  743. package/lib/esm/tile/GraphicsCollector.js.map +1 -1
  744. package/lib/esm/tile/I3dmReader.js.map +1 -1
  745. package/lib/esm/tile/IModelTile.js.map +1 -1
  746. package/lib/esm/tile/IModelTileRequestChannels.js.map +1 -1
  747. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  748. package/lib/esm/tile/ImdlReader.d.ts +14 -0
  749. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  750. package/lib/esm/tile/ImdlReader.js +24 -2
  751. package/lib/esm/tile/ImdlReader.js.map +1 -1
  752. package/lib/esm/tile/LRUTileList.js.map +1 -1
  753. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  754. package/lib/esm/tile/PntsReader.js.map +1 -1
  755. package/lib/esm/tile/RealityTile.js.map +1 -1
  756. package/lib/esm/tile/RealityTileDrawArgs.js.map +1 -1
  757. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  758. package/lib/esm/tile/RealityTileTree.js +1 -1
  759. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  760. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  761. package/lib/esm/tile/Tile.js.map +1 -1
  762. package/lib/esm/tile/TileAdmin.d.ts +1 -1
  763. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  764. package/lib/esm/tile/TileAdmin.js +3 -1
  765. package/lib/esm/tile/TileAdmin.js.map +1 -1
  766. package/lib/esm/tile/TileContent.js.map +1 -1
  767. package/lib/esm/tile/TileDrawArgs.d.ts +4 -0
  768. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  769. package/lib/esm/tile/TileDrawArgs.js +4 -0
  770. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  771. package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
  772. package/lib/esm/tile/TileParams.js.map +1 -1
  773. package/lib/esm/tile/TileRequest.js.map +1 -1
  774. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  775. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  776. package/lib/esm/tile/TileStorage.js.map +1 -1
  777. package/lib/esm/tile/TileTree.js +1 -1
  778. package/lib/esm/tile/TileTree.js.map +1 -1
  779. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  780. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  781. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  782. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  783. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  784. package/lib/esm/tile/TileUser.js.map +1 -1
  785. package/lib/esm/tile/TileUserSet.js.map +1 -1
  786. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  787. package/lib/esm/tile/ViewFlagOverrides.js.map +1 -1
  788. package/lib/esm/tile/internal.js.map +1 -1
  789. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  790. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  791. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  792. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  793. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  794. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  795. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  796. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  797. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  798. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  799. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  800. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  801. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  802. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  803. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  804. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
  805. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  806. package/lib/esm/tile/map/MapLayerImageryProvider.js +2 -2
  807. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  808. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  809. package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
  810. package/lib/esm/tile/map/MapTile.js.map +1 -1
  811. package/lib/esm/tile/map/MapTileAvailability.js.map +1 -1
  812. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  813. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  814. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  815. package/lib/esm/tile/map/QuadId.js.map +1 -1
  816. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  817. package/lib/esm/tile/map/TerrainProvider.js.map +1 -1
  818. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  819. package/lib/esm/tile/map/WmsUtilities.js.map +1 -1
  820. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  821. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  822. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  823. package/lib/esm/tools/EditManipulator.js.map +1 -1
  824. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  825. package/lib/esm/tools/EventController.js.map +1 -1
  826. package/lib/esm/tools/IdleTool.js.map +1 -1
  827. package/lib/esm/tools/MeasureTool.js.map +1 -1
  828. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  829. package/lib/esm/tools/SelectTool.js.map +1 -1
  830. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  831. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  832. package/lib/esm/tools/ToolSettings.js.map +1 -1
  833. package/lib/esm/tools/ViewTool.js.map +1 -1
  834. package/lib/esm/webgl.js.map +1 -1
  835. package/lib/public/assets/MapLayerSources.json +25 -25
  836. package/lib/public/images/cesium-ion.svg +92 -92
  837. package/lib/public/images/imodeljs-icon.svg +2 -2
  838. package/lib/public/locales/en/CoreTools.json +477 -477
  839. package/lib/public/locales/en/iModelJs.json +170 -170
  840. package/lib/public/scripts/checkbrowser.js +24 -24
  841. package/package.json +18 -18
@@ -19,39 +19,39 @@ const Thematic_1 = require("./Thematic");
19
19
  const Surface_1 = require("./Surface");
20
20
  const Fragment_1 = require("./Fragment");
21
21
  // Revert components if color format is BGR instead of RGB.
22
- const computeColor = `
23
- return u_pointCloud.y == 1.0 ? vec4(a_color.b, a_color.g, a_color.r, 1.0) : vec4(a_color, 1.0);
22
+ const computeColor = `
23
+ return u_pointCloud.y == 1.0 ? vec4(a_color.b, a_color.g, a_color.r, 1.0) : vec4(a_color, 1.0);
24
24
  `;
25
25
  const computeBaseColor = "return v_color;";
26
26
  // Round the point unless drawing square points.
27
- const roundPointDiscard = `
28
- if (u_pointCloudSettings.w == 1.0)
29
- return false;
30
-
31
- vec2 pointXY = (2.0 * gl_PointCoord - 1.0);
32
- return dot(pointXY, pointXY) > 1.0;
27
+ const roundPointDiscard = `
28
+ if (u_pointCloudSettings.w == 1.0)
29
+ return false;
30
+
31
+ vec2 pointXY = (2.0 * gl_PointCoord - 1.0);
32
+ return dot(pointXY, pointXY) > 1.0;
33
33
  `;
34
34
  const checkForClassifiedDiscard = "return baseColor.a == 0.0;";
35
- const computePosition = `
36
- gl_PointSize = 1.0;
37
- vec4 pos = MAT_MVP * rawPos;
38
- if (u_pointCloudSettings.x > 0.0) {
39
- // Size is specified in pixels.
40
- gl_PointSize = u_pointCloudSettings.x;
41
- return pos;
42
- }
43
-
44
- // Point size is in meters (voxel size).
45
- if (pos.w <= 0.0) {
46
- // Cannot perform perspective divide below.
47
- return pos;
48
- }
49
-
50
- // Convert voxel size in meters into pixel size, then compute pixel size, taking perspective into account.
51
- mat4 toView = u_viewportTransformation * MAT_MVP;
52
- float scale = length(toView[0].xyz);
53
- gl_PointSize = -u_pointCloudSettings.x * clamp(u_pointCloud.x * scale / pos.w, u_pointCloudSettings.y, u_pointCloudSettings.z);
54
- return pos;
35
+ const computePosition = `
36
+ gl_PointSize = 1.0;
37
+ vec4 pos = MAT_MVP * rawPos;
38
+ if (u_pointCloudSettings.x > 0.0) {
39
+ // Size is specified in pixels.
40
+ gl_PointSize = u_pointCloudSettings.x;
41
+ return pos;
42
+ }
43
+
44
+ // Point size is in meters (voxel size).
45
+ if (pos.w <= 0.0) {
46
+ // Cannot perform perspective divide below.
47
+ return pos;
48
+ }
49
+
50
+ // Convert voxel size in meters into pixel size, then compute pixel size, taking perspective into account.
51
+ mat4 toView = u_viewportTransformation * MAT_MVP;
52
+ float scale = length(toView[0].xyz);
53
+ gl_PointSize = -u_pointCloudSettings.x * clamp(u_pointCloud.x * scale / pos.w, u_pointCloudSettings.y, u_pointCloudSettings.z);
54
+ return pos;
55
55
  `;
56
56
  function createBuilder() {
57
57
  const builder = new ShaderBuilder_1.ProgramBuilder(AttributeMap_1.AttributeMap.findAttributeMap(2 /* TechniqueId.PointCloud */, false));
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/PointCloud.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 WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { AttributeMap } from \"../AttributeMap\";\r\nimport { FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\r\nimport { FeatureMode, IsAnimated, IsClassified, IsThematic } from \"../TechniqueFlags\";\r\nimport { TechniqueId } from \"../TechniqueId\";\r\nimport { addUniformHiliter } from \"./FeatureSymbology\";\r\nimport { addColorPlanarClassifier, addFeaturePlanarClassifier, addHilitePlanarClassifier } from \"./PlanarClassification\";\r\nimport { addModelViewProjectionMatrix } from \"./Vertex\";\r\nimport { addViewportTransformation } from \"./Viewport\";\r\nimport { addThematicDisplay } from \"./Thematic\";\r\nimport { addTexture } from \"./Surface\";\r\nimport { assignFragColor } from \"./Fragment\";\r\n\r\n// Revert components if color format is BGR instead of RGB.\r\nconst computeColor = `\r\n return u_pointCloud.y == 1.0 ? vec4(a_color.b, a_color.g, a_color.r, 1.0) : vec4(a_color, 1.0);\r\n`;\r\n\r\nconst computeBaseColor = \"return v_color;\";\r\n\r\n// Round the point unless drawing square points.\r\nconst roundPointDiscard = `\r\n if (u_pointCloudSettings.w == 1.0)\r\n return false;\r\n\r\n vec2 pointXY = (2.0 * gl_PointCoord - 1.0);\r\n return dot(pointXY, pointXY) > 1.0;\r\n`;\r\n\r\nconst checkForClassifiedDiscard = \"return baseColor.a == 0.0;\";\r\n\r\nconst computePosition = `\r\n gl_PointSize = 1.0;\r\n vec4 pos = MAT_MVP * rawPos;\r\n if (u_pointCloudSettings.x > 0.0) {\r\n // Size is specified in pixels.\r\n gl_PointSize = u_pointCloudSettings.x;\r\n return pos;\r\n }\r\n\r\n // Point size is in meters (voxel size).\r\n if (pos.w <= 0.0) {\r\n // Cannot perform perspective divide below.\r\n return pos;\r\n }\r\n\r\n // Convert voxel size in meters into pixel size, then compute pixel size, taking perspective into account.\r\n mat4 toView = u_viewportTransformation * MAT_MVP;\r\n float scale = length(toView[0].xyz);\r\n gl_PointSize = -u_pointCloudSettings.x * clamp(u_pointCloud.x * scale / pos.w, u_pointCloudSettings.y, u_pointCloudSettings.z);\r\n return pos;\r\n`;\r\n\r\nfunction createBuilder(): ProgramBuilder {\r\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.PointCloud, false));\r\n const vert = builder.vert;\r\n addViewportTransformation(vert);\r\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n addModelViewProjectionMatrix(vert);\r\n\r\n builder.frag.set(FragmentShaderComponent.CheckForEarlyDiscard, roundPointDiscard);\r\n\r\n // Uniforms based on the PointCloudDisplaySettings.\r\n builder.addUniform(\"u_pointCloudSettings\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_pointCloudSettings\", (uniform, params) => {\r\n params.target.uniforms.realityModel.pointCloud.bind(uniform);\r\n });\r\n });\r\n\r\n // Uniforms based on the PointCloudGeometry.\r\n builder.vert.addUniform(\"u_pointCloud\", VariableType.Vec2, (prog) => {\r\n prog.addGraphicUniform(\"u_pointCloud\", (uniform, params) => {\r\n assert(params.geometry.asPointCloud !== undefined);\r\n scratchPointCloud[0] = params.geometry.asPointCloud.voxelSize;\r\n scratchPointCloud[1] = params.geometry.asPointCloud.colorIsBgr ? 1 : 0;\r\n uniform.setUniform2fv(scratchPointCloud);\r\n });\r\n });\r\n\r\n return builder;\r\n}\r\n\r\nconst scratchPointCloud = new Float32Array([0, 0]);\r\n\r\n/** @internal */\r\nexport function createPointCloudBuilder(classified: IsClassified, featureMode: FeatureMode, thematic: IsThematic): ProgramBuilder {\r\n const builder = createBuilder();\r\n\r\n builder.addVarying(\"v_color\", VariableType.Vec4);\r\n builder.vert.set(VertexShaderComponent.ComputeBaseColor, computeColor);\r\n\r\n builder.frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\r\n if (classified) {\r\n addColorPlanarClassifier(builder, false, thematic);\r\n builder.frag.set(FragmentShaderComponent.CheckForDiscard, checkForClassifiedDiscard);\r\n\r\n if (FeatureMode.None !== featureMode)\r\n addFeaturePlanarClassifier(builder);\r\n }\r\n\r\n if (IsThematic.Yes === thematic) {\r\n addThematicDisplay(builder, true);\r\n addTexture(builder, IsAnimated.No, IsThematic.Yes, true, false);\r\n }\r\n\r\n return builder;\r\n}\r\n\r\n/** @internal */\r\nexport function createPointCloudHiliter(classified: IsClassified): ProgramBuilder {\r\n const builder = createBuilder();\r\n if (classified) {\r\n addHilitePlanarClassifier(builder, false);\r\n builder.frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\r\n } else {\r\n addUniformHiliter(builder);\r\n }\r\n\r\n return builder;\r\n}\r\n"]}
1
+ {"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/PointCloud.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { AttributeMap } from \"../AttributeMap\";\nimport { FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\nimport { FeatureMode, IsAnimated, IsClassified, IsThematic } from \"../TechniqueFlags\";\nimport { TechniqueId } from \"../TechniqueId\";\nimport { addUniformHiliter } from \"./FeatureSymbology\";\nimport { addColorPlanarClassifier, addFeaturePlanarClassifier, addHilitePlanarClassifier } from \"./PlanarClassification\";\nimport { addModelViewProjectionMatrix } from \"./Vertex\";\nimport { addViewportTransformation } from \"./Viewport\";\nimport { addThematicDisplay } from \"./Thematic\";\nimport { addTexture } from \"./Surface\";\nimport { assignFragColor } from \"./Fragment\";\n\n// Revert components if color format is BGR instead of RGB.\nconst computeColor = `\n return u_pointCloud.y == 1.0 ? vec4(a_color.b, a_color.g, a_color.r, 1.0) : vec4(a_color, 1.0);\n`;\n\nconst computeBaseColor = \"return v_color;\";\n\n// Round the point unless drawing square points.\nconst roundPointDiscard = `\n if (u_pointCloudSettings.w == 1.0)\n return false;\n\n vec2 pointXY = (2.0 * gl_PointCoord - 1.0);\n return dot(pointXY, pointXY) > 1.0;\n`;\n\nconst checkForClassifiedDiscard = \"return baseColor.a == 0.0;\";\n\nconst computePosition = `\n gl_PointSize = 1.0;\n vec4 pos = MAT_MVP * rawPos;\n if (u_pointCloudSettings.x > 0.0) {\n // Size is specified in pixels.\n gl_PointSize = u_pointCloudSettings.x;\n return pos;\n }\n\n // Point size is in meters (voxel size).\n if (pos.w <= 0.0) {\n // Cannot perform perspective divide below.\n return pos;\n }\n\n // Convert voxel size in meters into pixel size, then compute pixel size, taking perspective into account.\n mat4 toView = u_viewportTransformation * MAT_MVP;\n float scale = length(toView[0].xyz);\n gl_PointSize = -u_pointCloudSettings.x * clamp(u_pointCloud.x * scale / pos.w, u_pointCloudSettings.y, u_pointCloudSettings.z);\n return pos;\n`;\n\nfunction createBuilder(): ProgramBuilder {\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.PointCloud, false));\n const vert = builder.vert;\n addViewportTransformation(vert);\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\n addModelViewProjectionMatrix(vert);\n\n builder.frag.set(FragmentShaderComponent.CheckForEarlyDiscard, roundPointDiscard);\n\n // Uniforms based on the PointCloudDisplaySettings.\n builder.addUniform(\"u_pointCloudSettings\", VariableType.Vec4, (prog) => {\n prog.addGraphicUniform(\"u_pointCloudSettings\", (uniform, params) => {\n params.target.uniforms.realityModel.pointCloud.bind(uniform);\n });\n });\n\n // Uniforms based on the PointCloudGeometry.\n builder.vert.addUniform(\"u_pointCloud\", VariableType.Vec2, (prog) => {\n prog.addGraphicUniform(\"u_pointCloud\", (uniform, params) => {\n assert(params.geometry.asPointCloud !== undefined);\n scratchPointCloud[0] = params.geometry.asPointCloud.voxelSize;\n scratchPointCloud[1] = params.geometry.asPointCloud.colorIsBgr ? 1 : 0;\n uniform.setUniform2fv(scratchPointCloud);\n });\n });\n\n return builder;\n}\n\nconst scratchPointCloud = new Float32Array([0, 0]);\n\n/** @internal */\nexport function createPointCloudBuilder(classified: IsClassified, featureMode: FeatureMode, thematic: IsThematic): ProgramBuilder {\n const builder = createBuilder();\n\n builder.addVarying(\"v_color\", VariableType.Vec4);\n builder.vert.set(VertexShaderComponent.ComputeBaseColor, computeColor);\n\n builder.frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\n if (classified) {\n addColorPlanarClassifier(builder, false, thematic);\n builder.frag.set(FragmentShaderComponent.CheckForDiscard, checkForClassifiedDiscard);\n\n if (FeatureMode.None !== featureMode)\n addFeaturePlanarClassifier(builder);\n }\n\n if (IsThematic.Yes === thematic) {\n addThematicDisplay(builder, true);\n addTexture(builder, IsAnimated.No, IsThematic.Yes, true, false);\n }\n\n return builder;\n}\n\n/** @internal */\nexport function createPointCloudHiliter(classified: IsClassified): ProgramBuilder {\n const builder = createBuilder();\n if (classified) {\n addHilitePlanarClassifier(builder, false);\n builder.frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\n } else {\n addUniformHiliter(builder);\n }\n\n return builder;\n}\n"]}
@@ -15,20 +15,20 @@ const Common_1 = require("./Common");
15
15
  const FeatureSymbology_1 = require("./FeatureSymbology");
16
16
  const Fragment_1 = require("./Fragment");
17
17
  const Vertex_1 = require("./Vertex");
18
- const computePosition = `
19
- float lineWeight = computeLineWeight();
20
- lineWeight += 0.5 * float(lineWeight > 4.0); // fudge factor for rounding fat points...
21
- gl_PointSize = lineWeight;
22
- return MAT_MVP * rawPos;
18
+ const computePosition = `
19
+ float lineWeight = computeLineWeight();
20
+ lineWeight += 0.5 * float(lineWeight > 4.0); // fudge factor for rounding fat points...
21
+ gl_PointSize = lineWeight;
22
+ return MAT_MVP * rawPos;
23
23
  `;
24
24
  // gl_PointSize specifies coordinates of this fragment within the point in range [0,1].
25
25
  // This should be the most precise of the many approaches we've tried, but it still yields some asymmetry...
26
26
  // Discarding if it meets radius precisely seems to reduce that slightly...
27
27
  // ###TODO try point sprites?
28
- const roundCorners = `
29
- const vec2 center = vec2(0.5, 0.5);
30
- vec2 vt = gl_PointCoord - center;
31
- return dot(vt, vt) * v_roundCorners >= 0.25; // meets or exceeds radius of circle
28
+ const roundCorners = `
29
+ const vec2 center = vec2(0.5, 0.5);
30
+ vec2 vt = gl_PointCoord - center;
31
+ return dot(vt, vt) * v_roundCorners >= 0.25; // meets or exceeds radius of circle
32
32
  `;
33
33
  const computeRoundCorners = " v_roundCorners = gl_PointSize > 4.0 ? 1.0 : 0.0;";
34
34
  function createBase(instanced, positionType) {
@@ -1 +1 @@
1
- {"version":3,"file":"PointString.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/PointString.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,kDAA+C;AAC/C,oDAAgH;AAGhH,mCAAmC;AACnC,qCAA0C;AAC1C,yDAAgD;AAChD,yCAAqD;AACrD,qCAAuE;AAEvE,MAAM,eAAe,GAAG;;;;;CAKvB,CAAC;AAEF,uFAAuF;AACvF,4GAA4G;AAC5G,2EAA2E;AAC3E,6BAA6B;AAC7B,MAAM,YAAY,GAAG;;;;CAIpB,CAAC;AAEF,MAAM,mBAAmB,GAAG,oDAAoD,CAAC;AAEjF,SAAS,UAAU,CAAC,SAAsB,EAAE,YAA0B;IACpE,MAAM,OAAO,GAAG,2BAAY,CAAC,gBAAgB,kCAA0B,4BAAoB,SAAS,CAAC,CAAC;IAEtG,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,4BAAoB,SAAS,EAAE,CAAC,CAAC;IACxG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,GAAG,iDAAwC,eAAe,CAAC,CAAC;IACjE,IAAA,qCAA4B,EAAC,IAAI,CAAC,CAAC;IAEnC,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAC;IACpB,OAAO,CAAC,wBAAwB,CAAC,gBAAgB,8BAAsB,mBAAmB,CAAC,CAAC;IAC5F,OAAO,CAAC,IAAI,CAAC,GAAG,uDAA+C,YAAY,CAAC,CAAC;IAE7E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gBAAgB;AAChB,SAAgB,wBAAwB,CAAC,SAAsB,EAAE,OAAqB;IACpF,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAA,6BAAU,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1B,OAAO,OAAO,CAAC;AACjB,CAAC;AAJD,4DAIC;AAED,gBAAgB;AAChB,SAAgB,wBAAwB,CAAC,SAAsB,EAAE,OAAqB;IACpF,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;IACxB,IAAA,gBAAQ,EAAC,OAAO,CAAC,CAAC;IAClB,IAAA,kCAAuB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,OAAO,CAAC;AACjB,CAAC;AAND,4DAMC","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 WebGL\r\n */\r\n\r\nimport { AttributeMap } from \"../AttributeMap\";\r\nimport { FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\r\nimport { IsInstanced, PositionType } from \"../TechniqueFlags\";\r\nimport { TechniqueId } from \"../TechniqueId\";\r\nimport { addColor } from \"./Color\";\r\nimport { addShaderFlags } from \"./Common\";\r\nimport { addHiliter } from \"./FeatureSymbology\";\r\nimport { addWhiteOnWhiteReversal } from \"./Fragment\";\r\nimport { addLineWeight, addModelViewProjectionMatrix } from \"./Vertex\";\r\n\r\nconst computePosition = `\r\n float lineWeight = computeLineWeight();\r\n lineWeight += 0.5 * float(lineWeight > 4.0); // fudge factor for rounding fat points...\r\n gl_PointSize = lineWeight;\r\n return MAT_MVP * rawPos;\r\n`;\r\n\r\n// gl_PointSize specifies coordinates of this fragment within the point in range [0,1].\r\n// This should be the most precise of the many approaches we've tried, but it still yields some asymmetry...\r\n// Discarding if it meets radius precisely seems to reduce that slightly...\r\n// ###TODO try point sprites?\r\nconst roundCorners = `\r\n const vec2 center = vec2(0.5, 0.5);\r\n vec2 vt = gl_PointCoord - center;\r\n return dot(vt, vt) * v_roundCorners >= 0.25; // meets or exceeds radius of circle\r\n`;\r\n\r\nconst computeRoundCorners = \" v_roundCorners = gl_PointSize > 4.0 ? 1.0 : 0.0;\";\r\n\r\nfunction createBase(instanced: IsInstanced, positionType: PositionType): ProgramBuilder {\r\n const attrMap = AttributeMap.findAttributeMap(TechniqueId.PointString, IsInstanced.Yes === instanced);\r\n\r\n const builder = new ProgramBuilder(attrMap, { positionType, instanced: IsInstanced.Yes === instanced });\r\n const vert = builder.vert;\r\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n addModelViewProjectionMatrix(vert);\r\n\r\n addLineWeight(vert);\r\n builder.addInlineComputedVarying(\"v_roundCorners\", VariableType.Float, computeRoundCorners);\r\n builder.frag.set(FragmentShaderComponent.CheckForEarlyDiscard, roundCorners);\r\n\r\n return builder;\r\n}\r\n\r\n/** @internal */\r\nexport function createPointStringHiliter(instanced: IsInstanced, posType: PositionType): ProgramBuilder {\r\n const builder = createBase(instanced, posType);\r\n addHiliter(builder, true);\r\n return builder;\r\n}\r\n\r\n/** @internal */\r\nexport function createPointStringBuilder(instanced: IsInstanced, posType: PositionType): ProgramBuilder {\r\n const builder = createBase(instanced, posType);\r\n addShaderFlags(builder);\r\n addColor(builder);\r\n addWhiteOnWhiteReversal(builder.frag);\r\n return builder;\r\n}\r\n"]}
1
+ {"version":3,"file":"PointString.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/PointString.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,kDAA+C;AAC/C,oDAAgH;AAGhH,mCAAmC;AACnC,qCAA0C;AAC1C,yDAAgD;AAChD,yCAAqD;AACrD,qCAAuE;AAEvE,MAAM,eAAe,GAAG;;;;;CAKvB,CAAC;AAEF,uFAAuF;AACvF,4GAA4G;AAC5G,2EAA2E;AAC3E,6BAA6B;AAC7B,MAAM,YAAY,GAAG;;;;CAIpB,CAAC;AAEF,MAAM,mBAAmB,GAAG,oDAAoD,CAAC;AAEjF,SAAS,UAAU,CAAC,SAAsB,EAAE,YAA0B;IACpE,MAAM,OAAO,GAAG,2BAAY,CAAC,gBAAgB,kCAA0B,4BAAoB,SAAS,CAAC,CAAC;IAEtG,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,4BAAoB,SAAS,EAAE,CAAC,CAAC;IACxG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,GAAG,iDAAwC,eAAe,CAAC,CAAC;IACjE,IAAA,qCAA4B,EAAC,IAAI,CAAC,CAAC;IAEnC,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAC;IACpB,OAAO,CAAC,wBAAwB,CAAC,gBAAgB,8BAAsB,mBAAmB,CAAC,CAAC;IAC5F,OAAO,CAAC,IAAI,CAAC,GAAG,uDAA+C,YAAY,CAAC,CAAC;IAE7E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gBAAgB;AAChB,SAAgB,wBAAwB,CAAC,SAAsB,EAAE,OAAqB;IACpF,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAA,6BAAU,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1B,OAAO,OAAO,CAAC;AACjB,CAAC;AAJD,4DAIC;AAED,gBAAgB;AAChB,SAAgB,wBAAwB,CAAC,SAAsB,EAAE,OAAqB;IACpF,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;IACxB,IAAA,gBAAQ,EAAC,OAAO,CAAC,CAAC;IAClB,IAAA,kCAAuB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,OAAO,CAAC;AACjB,CAAC;AAND,4DAMC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { AttributeMap } from \"../AttributeMap\";\nimport { FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\nimport { IsInstanced, PositionType } from \"../TechniqueFlags\";\nimport { TechniqueId } from \"../TechniqueId\";\nimport { addColor } from \"./Color\";\nimport { addShaderFlags } from \"./Common\";\nimport { addHiliter } from \"./FeatureSymbology\";\nimport { addWhiteOnWhiteReversal } from \"./Fragment\";\nimport { addLineWeight, addModelViewProjectionMatrix } from \"./Vertex\";\n\nconst computePosition = `\n float lineWeight = computeLineWeight();\n lineWeight += 0.5 * float(lineWeight > 4.0); // fudge factor for rounding fat points...\n gl_PointSize = lineWeight;\n return MAT_MVP * rawPos;\n`;\n\n// gl_PointSize specifies coordinates of this fragment within the point in range [0,1].\n// This should be the most precise of the many approaches we've tried, but it still yields some asymmetry...\n// Discarding if it meets radius precisely seems to reduce that slightly...\n// ###TODO try point sprites?\nconst roundCorners = `\n const vec2 center = vec2(0.5, 0.5);\n vec2 vt = gl_PointCoord - center;\n return dot(vt, vt) * v_roundCorners >= 0.25; // meets or exceeds radius of circle\n`;\n\nconst computeRoundCorners = \" v_roundCorners = gl_PointSize > 4.0 ? 1.0 : 0.0;\";\n\nfunction createBase(instanced: IsInstanced, positionType: PositionType): ProgramBuilder {\n const attrMap = AttributeMap.findAttributeMap(TechniqueId.PointString, IsInstanced.Yes === instanced);\n\n const builder = new ProgramBuilder(attrMap, { positionType, instanced: IsInstanced.Yes === instanced });\n const vert = builder.vert;\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\n addModelViewProjectionMatrix(vert);\n\n addLineWeight(vert);\n builder.addInlineComputedVarying(\"v_roundCorners\", VariableType.Float, computeRoundCorners);\n builder.frag.set(FragmentShaderComponent.CheckForEarlyDiscard, roundCorners);\n\n return builder;\n}\n\n/** @internal */\nexport function createPointStringHiliter(instanced: IsInstanced, posType: PositionType): ProgramBuilder {\n const builder = createBase(instanced, posType);\n addHiliter(builder, true);\n return builder;\n}\n\n/** @internal */\nexport function createPointStringBuilder(instanced: IsInstanced, posType: PositionType): ProgramBuilder {\n const builder = createBase(instanced, posType);\n addShaderFlags(builder);\n addColor(builder);\n addWhiteOnWhiteReversal(builder.frag);\n return builder;\n}\n"]}
@@ -22,108 +22,108 @@ const Fragment_1 = require("./Fragment");
22
22
  const Vertex_1 = require("./Vertex");
23
23
  const Viewport_1 = require("./Viewport");
24
24
  const checkForDiscard = "return discardByLineCode;";
25
- const applyLineCode = `
26
- if (v_texc.x >= 0.0) { // v_texc = (-1,-1) for solid lines - don't bother with any of this
27
- vec4 texColor = TEXTURE(u_lineCodeTexture, v_texc);
28
- discardByLineCode = (0.0 == texColor.r);
29
- }
30
-
31
- if (v_lnInfo.w > 0.5) { // line needs pixel trimming
32
- // calculate pixel distance from pixel center to expected line center, opposite dir from major
33
- vec2 dxy = gl_FragCoord.xy - v_lnInfo.xy;
34
- if (v_lnInfo.w < 1.5) // not x-major
35
- dxy = dxy.yx;
36
-
37
- float dist = v_lnInfo.z * dxy.x - dxy.y;
38
- float distA = abs(dist);
39
- if (distA > 0.5 || (distA == 0.5 && dist < 0.0))
40
- discardByLineCode = true; // borrow this flag to force discard
41
- }
42
-
43
- return baseColor;
25
+ const applyLineCode = `
26
+ if (v_texc.x >= 0.0) { // v_texc = (-1,-1) for solid lines - don't bother with any of this
27
+ vec4 texColor = TEXTURE(u_lineCodeTexture, v_texc);
28
+ discardByLineCode = (0.0 == texColor.r);
29
+ }
30
+
31
+ if (v_lnInfo.w > 0.5) { // line needs pixel trimming
32
+ // calculate pixel distance from pixel center to expected line center, opposite dir from major
33
+ vec2 dxy = gl_FragCoord.xy - v_lnInfo.xy;
34
+ if (v_lnInfo.w < 1.5) // not x-major
35
+ dxy = dxy.yx;
36
+
37
+ float dist = v_lnInfo.z * dxy.x - dxy.y;
38
+ float distA = abs(dist);
39
+ if (distA > 0.5 || (distA == 0.5 && dist < 0.0))
40
+ discardByLineCode = true; // borrow this flag to force discard
41
+ }
42
+
43
+ return baseColor;
44
44
  `;
45
- const computeTextureCoord = `
46
- vec2 computeLineCodeTextureCoords(vec2 windowDir, vec4 projPos, float adjust) {
47
- vec2 texc;
48
- float lineCode = computeLineCode();
49
- if (0.0 == lineCode) {
50
- // Solid line - tell frag shader not to bother.
51
- texc = vec2(-1.0, -1.0);
52
- } else {
53
- const float imagesPerPixel = 1.0/32.0;
54
- const float textureCoordinateBase = 8192.0; // Temp workardound for clipping problem in perspective views (negative values don't seem to interpolate correctly).
55
-
56
- if (abs(windowDir.x) > abs(windowDir.y))
57
- texc.x = textureCoordinateBase + imagesPerPixel * (projPos.x + adjust * windowDir.x);
58
- else
59
- texc.x = textureCoordinateBase + imagesPerPixel * (projPos.y + adjust * windowDir.y);
60
-
61
- const float numLineCodes = 16.0; // NB: Actually only 10, but texture is 16px tall because it needs to be a power of 2.
62
- const float rowsPerCode = 1.0;
63
- const float numRows = numLineCodes*rowsPerCode;
64
- const float centerY = 0.5/numRows;
65
- const float stepY = rowsPerCode/numRows;
66
- texc.y = stepY * lineCode + centerY;
67
- }
68
-
69
- return texc;
70
- }
45
+ const computeTextureCoord = `
46
+ vec2 computeLineCodeTextureCoords(vec2 windowDir, vec4 projPos, float adjust) {
47
+ vec2 texc;
48
+ float lineCode = computeLineCode();
49
+ if (0.0 == lineCode) {
50
+ // Solid line - tell frag shader not to bother.
51
+ texc = vec2(-1.0, -1.0);
52
+ } else {
53
+ const float imagesPerPixel = 1.0/32.0;
54
+ const float textureCoordinateBase = 8192.0; // Temp workardound for clipping problem in perspective views (negative values don't seem to interpolate correctly).
55
+
56
+ if (abs(windowDir.x) > abs(windowDir.y))
57
+ texc.x = textureCoordinateBase + imagesPerPixel * (projPos.x + adjust * windowDir.x);
58
+ else
59
+ texc.x = textureCoordinateBase + imagesPerPixel * (projPos.y + adjust * windowDir.y);
60
+
61
+ const float numLineCodes = 16.0; // NB: Actually only 10, but texture is 16px tall because it needs to be a power of 2.
62
+ const float rowsPerCode = 1.0;
63
+ const float numRows = numLineCodes*rowsPerCode;
64
+ const float centerY = 0.5/numRows;
65
+ const float stepY = rowsPerCode/numRows;
66
+ texc.y = stepY * lineCode + centerY;
67
+ }
68
+
69
+ return texc;
70
+ }
71
71
  `;
72
72
  /** @internal */
73
- exports.adjustWidth = `
74
- void adjustWidth(inout float width, vec2 d2, vec2 org) {
75
- if (u_aaSamples > 1) {
76
- if (width < 5.0)
77
- width += (5.0 - width) * 0.125;
78
- return;
79
- }
80
-
81
- // calculate slope based width adjustment for non-AA lines, widths 1 to 4
82
- vec2 d2A = abs(d2);
83
- const float s_myFltEpsilon = 0.0001; // limit test resolution to 4 digits in case 24 bit (s16e7) is used in hardware
84
- if (d2A.y > s_myFltEpsilon && width < 4.5) {
85
- float len = length(d2A);
86
- float tan = d2A.x / d2A.y;
87
-
88
- if (width < 1.5) { // width 1
89
- if (tan <= 1.0)
90
- width = d2A.y;
91
- else
92
- width = d2A.x;
93
- // width 1 requires additional adjustment plus trimming in frag shader using v_lnInfo
94
- width *= 1.01;
95
- v_lnInfo.xy = org;
96
- v_lnInfo.w = 1.0; // set flag to do trimming
97
- // set slope in v_lnInfo.z
98
- if (d2A.x - d2A.y > s_myFltEpsilon) {
99
- v_lnInfo.z = d2.y / d2.x;
100
- v_lnInfo.w += 2.0; // add in x-major flag
101
- } else
102
- v_lnInfo.z = d2.x / d2.y;
103
-
104
- } else if (width < 2.5) { // width 2
105
- if (tan <= 0.5)
106
- width = 2.0 * d2A.y;
107
- else
108
- width = (d2A.y + 2.0 * d2A.x);
109
-
110
- } else if (width < 3.5) { // width 3
111
- if (tan <= 1.0)
112
- width = (3.0 * d2A.y + d2A.x);
113
- else
114
- width = (d2A.y + 3.0 * d2A.x);
115
-
116
- } else { // if (width < 4.5) // width 4
117
- if (tan <= 0.5)
118
- width = (4.0 * d2A.y + d2A.x);
119
- else if (tan <= 2.0)
120
- width = (3.0 * d2A.y + 3.0 * d2A.x);
121
- else
122
- width = (d2A.y + 4.0 * d2A.x);
123
- }
124
- width /= len;
125
- }
126
- }
73
+ exports.adjustWidth = `
74
+ void adjustWidth(inout float width, vec2 d2, vec2 org) {
75
+ if (u_aaSamples > 1) {
76
+ if (width < 5.0)
77
+ width += (5.0 - width) * 0.125;
78
+ return;
79
+ }
80
+
81
+ // calculate slope based width adjustment for non-AA lines, widths 1 to 4
82
+ vec2 d2A = abs(d2);
83
+ const float s_myFltEpsilon = 0.0001; // limit test resolution to 4 digits in case 24 bit (s16e7) is used in hardware
84
+ if (d2A.y > s_myFltEpsilon && width < 4.5) {
85
+ float len = length(d2A);
86
+ float tan = d2A.x / d2A.y;
87
+
88
+ if (width < 1.5) { // width 1
89
+ if (tan <= 1.0)
90
+ width = d2A.y;
91
+ else
92
+ width = d2A.x;
93
+ // width 1 requires additional adjustment plus trimming in frag shader using v_lnInfo
94
+ width *= 1.01;
95
+ v_lnInfo.xy = org;
96
+ v_lnInfo.w = 1.0; // set flag to do trimming
97
+ // set slope in v_lnInfo.z
98
+ if (d2A.x - d2A.y > s_myFltEpsilon) {
99
+ v_lnInfo.z = d2.y / d2.x;
100
+ v_lnInfo.w += 2.0; // add in x-major flag
101
+ } else
102
+ v_lnInfo.z = d2.x / d2.y;
103
+
104
+ } else if (width < 2.5) { // width 2
105
+ if (tan <= 0.5)
106
+ width = 2.0 * d2A.y;
107
+ else
108
+ width = (d2A.y + 2.0 * d2A.x);
109
+
110
+ } else if (width < 3.5) { // width 3
111
+ if (tan <= 1.0)
112
+ width = (3.0 * d2A.y + d2A.x);
113
+ else
114
+ width = (d2A.y + 3.0 * d2A.x);
115
+
116
+ } else { // if (width < 4.5) // width 4
117
+ if (tan <= 0.5)
118
+ width = (4.0 * d2A.y + d2A.x);
119
+ else if (tan <= 2.0)
120
+ width = (3.0 * d2A.y + 3.0 * d2A.x);
121
+ else
122
+ width = (d2A.y + 4.0 * d2A.x);
123
+ }
124
+ width /= len;
125
+ }
126
+ }
127
127
  `;
128
128
  /** @internal */
129
129
  function addAdjustWidth(vert) {
@@ -187,122 +187,122 @@ function addCommon(prog) {
187
187
  (0, Vertex_1.addSamplePosition)(vert);
188
188
  vert.addFunction(decodePosition);
189
189
  }
190
- const decodePosition = `
191
- vec4 decodePosition(vec3 baseIndex) {
192
- float index = decodeUInt24(baseIndex);
193
- return samplePosition(index);
194
- }
190
+ const decodePosition = `
191
+ vec4 decodePosition(vec3 baseIndex) {
192
+ float index = decodeUInt24(baseIndex);
193
+ return samplePosition(index);
194
+ }
195
195
  `;
196
- const decodeAdjacentPositions = `
197
- g_prevPos = decodePosition(a_prevIndex);
198
- g_nextPos = decodePosition(a_nextIndex);
196
+ const decodeAdjacentPositions = `
197
+ g_prevPos = decodePosition(a_prevIndex);
198
+ g_nextPos = decodePosition(a_nextIndex);
199
199
  `;
200
- const computePosition = `
201
- const float kNone = 0.0,
202
- kSquare = 1.0*3.0,
203
- kMiter = 2.0*3.0,
204
- kMiterInsideOnly = 3.0*3.0,
205
- kJointBase = 4.0*3.0,
206
- kNegatePerp = 8.0*3.0,
207
- kNegateAlong = 16.0*3.0,
208
- kNoneAdjWt = 32.0*3.0;
209
-
210
- v_lnInfo = vec4(0.0, 0.0, 0.0, 0.0); // init and set flag to false
211
-
212
- vec4 next = g_nextPos;
213
- vec4 pos;
214
- g_windowPos = modelToWindowCoordinates(rawPos, next, pos, v_eyeSpace);
215
- if (g_windowPos.w == 0.0)
216
- return g_windowPos;
217
-
218
- float param = a_param;
219
- float weight = computeLineWeight();
220
- float scale = 1.0, directionScale = 1.0;
221
-
222
- if (param >= kNoneAdjWt)
223
- param -= kNoneAdjWt;
224
-
225
- if (param >= kNegateAlong) {
226
- directionScale = -directionScale;
227
- param -= kNegateAlong;
228
- }
229
-
230
- if (param >= kNegatePerp) {
231
- scale = -1.0;
232
- param -= kNegatePerp;
233
- }
234
-
235
- vec4 otherPos;
236
- vec3 otherMvPos;
237
- vec4 projNext = modelToWindowCoordinates(next, rawPos, otherPos, otherMvPos);
238
- g_windowDir = projNext.xy - g_windowPos.xy;
239
-
240
- if (param < kJointBase) {
241
- vec2 dir = (directionScale > 0.0) ? g_windowDir : -g_windowDir;
242
- vec2 pos = (directionScale > 0.0) ? g_windowPos.xy : projNext.xy;
243
- adjustWidth(weight, dir, pos);
244
- }
245
-
246
- if (kNone != param) {
247
- vec2 delta = vec2(0.0);
248
- vec4 prev = g_prevPos;
249
- vec4 projPrev = modelToWindowCoordinates(prev, rawPos, otherPos, otherMvPos);
250
- vec2 prevDir = g_windowPos.xy - projPrev.xy;
251
- float thisLength = sqrt(g_windowDir.x * g_windowDir.x + g_windowDir.y * g_windowDir.y);
252
- const float s_minNormalizeLength = 1.0E-5; // avoid normalizing zero length vectors.
253
- float dist = weight / 2.0;
254
-
255
- if (thisLength > s_minNormalizeLength) {
256
- g_windowDir /= thisLength;
257
-
258
- float prevLength = sqrt(prevDir.x * prevDir.x + prevDir.y * prevDir.y);
259
-
260
- if (prevLength > s_minNormalizeLength) {
261
- prevDir /= prevLength;
262
- const float s_minParallelDot= -.9999, s_maxParallelDot = .9999;
263
- float prevNextDot = dot(prevDir, g_windowDir);
264
-
265
- if (prevNextDot < s_minParallelDot || prevNextDot > s_maxParallelDot) // No miter if parallel or antiparallel.
266
- param = kSquare;
267
- } else
268
- param = kSquare;
269
- } else {
270
- g_windowDir = -normalize(prevDir);
271
- param = kSquare;
272
- }
273
-
274
- vec2 perp = scale * vec2(-g_windowDir.y, g_windowDir.x);
275
-
276
- if (param == kSquare) {
277
- delta = perp;
278
- } else {
279
- vec2 bisector = normalize(prevDir - g_windowDir);
280
- float dotP = dot (bisector, perp);
281
-
282
- if (dotP != 0.0) { // Should never occur - but avoid divide by zero.
283
- const float maxMiter = 3.0;
284
- float miterDistance = 1.0/dotP;
285
-
286
- if (param == kMiter) { // Straight miter.
287
- delta = (abs(miterDistance) > maxMiter) ? perp : bisector * miterDistance;
288
-
289
- } else if (param == kMiterInsideOnly) { // Miter at inside, square at outside (to make room for joint).
290
- delta = (dotP > 0.0 || abs(miterDistance) > maxMiter) ? perp : bisector * miterDistance;
291
-
292
- } else {
293
- const float jointTriangleCount = 3.0;
294
- float ratio = (param - kJointBase) / jointTriangleCount; // 3 triangles per half-joint as defined in Graphics.cpp
295
- delta = normalize((1.0 - ratio) * bisector + (dotP < 0.0 ? -ratio : ratio) * perp); // Miter/Straight combination.
296
- }
297
- }
298
- }
299
-
300
- miterAdjust = dot(g_windowDir, delta) * dist; // Not actually used for hilite shader but meh.
301
- pos.x += dist * delta.x * 2.0 * pos.w / u_viewport.x;
302
- pos.y += dist * delta.y * 2.0 * pos.w / u_viewport.y;
303
- }
304
-
305
- return pos;
200
+ const computePosition = `
201
+ const float kNone = 0.0,
202
+ kSquare = 1.0*3.0,
203
+ kMiter = 2.0*3.0,
204
+ kMiterInsideOnly = 3.0*3.0,
205
+ kJointBase = 4.0*3.0,
206
+ kNegatePerp = 8.0*3.0,
207
+ kNegateAlong = 16.0*3.0,
208
+ kNoneAdjWt = 32.0*3.0;
209
+
210
+ v_lnInfo = vec4(0.0, 0.0, 0.0, 0.0); // init and set flag to false
211
+
212
+ vec4 next = g_nextPos;
213
+ vec4 pos;
214
+ g_windowPos = modelToWindowCoordinates(rawPos, next, pos, v_eyeSpace);
215
+ if (g_windowPos.w == 0.0)
216
+ return g_windowPos;
217
+
218
+ float param = a_param;
219
+ float weight = computeLineWeight();
220
+ float scale = 1.0, directionScale = 1.0;
221
+
222
+ if (param >= kNoneAdjWt)
223
+ param -= kNoneAdjWt;
224
+
225
+ if (param >= kNegateAlong) {
226
+ directionScale = -directionScale;
227
+ param -= kNegateAlong;
228
+ }
229
+
230
+ if (param >= kNegatePerp) {
231
+ scale = -1.0;
232
+ param -= kNegatePerp;
233
+ }
234
+
235
+ vec4 otherPos;
236
+ vec3 otherMvPos;
237
+ vec4 projNext = modelToWindowCoordinates(next, rawPos, otherPos, otherMvPos);
238
+ g_windowDir = projNext.xy - g_windowPos.xy;
239
+
240
+ if (param < kJointBase) {
241
+ vec2 dir = (directionScale > 0.0) ? g_windowDir : -g_windowDir;
242
+ vec2 pos = (directionScale > 0.0) ? g_windowPos.xy : projNext.xy;
243
+ adjustWidth(weight, dir, pos);
244
+ }
245
+
246
+ if (kNone != param) {
247
+ vec2 delta = vec2(0.0);
248
+ vec4 prev = g_prevPos;
249
+ vec4 projPrev = modelToWindowCoordinates(prev, rawPos, otherPos, otherMvPos);
250
+ vec2 prevDir = g_windowPos.xy - projPrev.xy;
251
+ float thisLength = sqrt(g_windowDir.x * g_windowDir.x + g_windowDir.y * g_windowDir.y);
252
+ const float s_minNormalizeLength = 1.0E-5; // avoid normalizing zero length vectors.
253
+ float dist = weight / 2.0;
254
+
255
+ if (thisLength > s_minNormalizeLength) {
256
+ g_windowDir /= thisLength;
257
+
258
+ float prevLength = sqrt(prevDir.x * prevDir.x + prevDir.y * prevDir.y);
259
+
260
+ if (prevLength > s_minNormalizeLength) {
261
+ prevDir /= prevLength;
262
+ const float s_minParallelDot= -.9999, s_maxParallelDot = .9999;
263
+ float prevNextDot = dot(prevDir, g_windowDir);
264
+
265
+ if (prevNextDot < s_minParallelDot || prevNextDot > s_maxParallelDot) // No miter if parallel or antiparallel.
266
+ param = kSquare;
267
+ } else
268
+ param = kSquare;
269
+ } else {
270
+ g_windowDir = -normalize(prevDir);
271
+ param = kSquare;
272
+ }
273
+
274
+ vec2 perp = scale * vec2(-g_windowDir.y, g_windowDir.x);
275
+
276
+ if (param == kSquare) {
277
+ delta = perp;
278
+ } else {
279
+ vec2 bisector = normalize(prevDir - g_windowDir);
280
+ float dotP = dot (bisector, perp);
281
+
282
+ if (dotP != 0.0) { // Should never occur - but avoid divide by zero.
283
+ const float maxMiter = 3.0;
284
+ float miterDistance = 1.0/dotP;
285
+
286
+ if (param == kMiter) { // Straight miter.
287
+ delta = (abs(miterDistance) > maxMiter) ? perp : bisector * miterDistance;
288
+
289
+ } else if (param == kMiterInsideOnly) { // Miter at inside, square at outside (to make room for joint).
290
+ delta = (dotP > 0.0 || abs(miterDistance) > maxMiter) ? perp : bisector * miterDistance;
291
+
292
+ } else {
293
+ const float jointTriangleCount = 3.0;
294
+ float ratio = (param - kJointBase) / jointTriangleCount; // 3 triangles per half-joint as defined in Graphics.cpp
295
+ delta = normalize((1.0 - ratio) * bisector + (dotP < 0.0 ? -ratio : ratio) * perp); // Miter/Straight combination.
296
+ }
297
+ }
298
+ }
299
+
300
+ miterAdjust = dot(g_windowDir, delta) * dist; // Not actually used for hilite shader but meh.
301
+ pos.x += dist * delta.x * 2.0 * pos.w / u_viewport.x;
302
+ pos.y += dist * delta.y * 2.0 * pos.w / u_viewport.y;
303
+ }
304
+
305
+ return pos;
306
306
  `;
307
307
  const lineCodeArgs = "g_windowDir, g_windowPos, miterAdjust";
308
308
  /** @internal */