@arcgis/core 4.34.0-next.14 → 4.34.0-next.16

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 (308) hide show
  1. package/applications/Components/sanitizerUtils.d.ts +3 -0
  2. package/applications/Components/sanitizerUtils.js +5 -0
  3. package/applications/MapViewer/layerUtils.d.ts +3 -0
  4. package/applications/MapViewer/layerUtils.js +5 -0
  5. package/applications/SceneViewer/layerUtils.d.ts +2 -2
  6. package/arcade.js +1 -1
  7. package/assets/esri/core/workers/RemoteClient.js +1 -1
  8. package/assets/esri/core/workers/chunks/{a08ce98672ab94d19613.js → 04e558a970c6a77f243e.js} +1 -1
  9. package/assets/esri/core/workers/chunks/0512ee54f2259a437fdb.js +1 -0
  10. package/assets/esri/core/workers/chunks/0d99579d8cdeddc0fc9c.js +1 -0
  11. package/assets/esri/core/workers/chunks/0f81a2deb656e8b28eae.js +1 -0
  12. package/assets/esri/core/workers/chunks/{ad4f65d764654c70a117.js → 0f8f217aaf42eb1b9699.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{74276044cb75b51967f2.js → 10eb89a93c8e31f03c95.js} +1 -1
  14. package/assets/esri/core/workers/chunks/1443520c9fb23381f8d5.js +1 -0
  15. package/assets/esri/core/workers/chunks/15d3193576f93586674c.js +1 -0
  16. package/assets/esri/core/workers/chunks/1a7570bd2b79194ff94b.js +42 -0
  17. package/assets/esri/core/workers/chunks/243eb8a317333ec2715b.js +1 -0
  18. package/assets/esri/core/workers/chunks/{0ed4ec00ef16aa58a33d.js → 254c4f7e277ae9915dce.js} +1 -1
  19. package/assets/esri/core/workers/chunks/273beed633cc37416ad7.js +1 -0
  20. package/assets/esri/core/workers/chunks/2990145d7ac3af0d68be.js +1 -0
  21. package/assets/esri/core/workers/chunks/{63852887b3f07d50f7c9.js → 2ad538440cfb3ab94787.js} +1 -1
  22. package/assets/esri/core/workers/chunks/2d51d0a24cdc89bafa1c.js +1 -0
  23. package/assets/esri/core/workers/chunks/2d89e354eeadadca4f7f.js +1 -0
  24. package/assets/esri/core/workers/chunks/3f8cc157b65a9d570921.js +1 -0
  25. package/assets/esri/core/workers/chunks/{2254989ca3ff3960f2fe.js → 400a4c9fa62964f8fa1d.js} +1 -1
  26. package/assets/esri/core/workers/chunks/445ddf57d2f503a0b98b.js +1 -0
  27. package/assets/esri/core/workers/chunks/{aaa564c84ee8ea36fbb4.js → 49a57dc1e6d1048fa949.js} +1 -1
  28. package/assets/esri/core/workers/chunks/513dc2467e9b8b8c6df4.js +1 -0
  29. package/assets/esri/core/workers/chunks/52239e958a82ebcd2e7a.js +1 -0
  30. package/assets/esri/core/workers/chunks/53e43798d08ad2075c1f.js +1 -0
  31. package/assets/esri/core/workers/chunks/{8b93cd4132934b0d7d39.js → 54814a269d44855f0673.js} +1 -1
  32. package/assets/esri/core/workers/chunks/55ce214a10fb6fc2e901.js +1 -0
  33. package/assets/esri/core/workers/chunks/{e7589c39b13295af8f1d.js → 604f8094992bb642378b.js} +1 -1
  34. package/assets/esri/core/workers/chunks/66c8816e91e3f9e214d4.js +346 -0
  35. package/assets/esri/core/workers/chunks/6975929fa91c81c8afc0.js +1 -0
  36. package/assets/esri/core/workers/chunks/7716a9fb380d66ba7292.js +1 -0
  37. package/assets/esri/core/workers/chunks/77ad62ed93f713a909f0.js +1 -0
  38. package/assets/esri/core/workers/chunks/7b9eec0090f48e9cdaf1.js +1 -0
  39. package/assets/esri/core/workers/chunks/7c56740cac444419e5b4.js +1 -0
  40. package/assets/esri/core/workers/chunks/{3b63edcd34f832ac7bd8.js → 7c6b9e2c1dada4668c01.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{af0d7a7cbbaad47a49c6.js → 802c6b1a6cb9264b8e4f.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{0b21651eb93efe9ce089.js → 827919fe23e06e40a330.js} +189 -165
  43. package/assets/esri/core/workers/chunks/87986f31061c426e761b.js +1 -0
  44. package/assets/esri/core/workers/chunks/{7ae88c141a5d85e5bb88.js → 87a743df7d8556d5e253.js} +1 -1
  45. package/assets/esri/core/workers/chunks/8855f1a6224ffbd0bb66.js +1 -0
  46. package/assets/esri/core/workers/chunks/885e8e90dfe5dbd5053d.js +1 -0
  47. package/assets/esri/core/workers/chunks/8865bd8f196556441ce3.js +1 -0
  48. package/assets/esri/core/workers/chunks/8b1842f0f94c18652d4e.js +1 -0
  49. package/assets/esri/core/workers/chunks/932808e485f305b6a26a.js +1 -0
  50. package/assets/esri/core/workers/chunks/93c145a738b3f6cf4ee4.js +1 -0
  51. package/assets/esri/core/workers/chunks/93e66d9c49eaeb503bff.js +1 -0
  52. package/assets/esri/core/workers/chunks/9959a91c8de6fef499c2.js +1 -0
  53. package/assets/esri/core/workers/chunks/9d779891d51d196aa8c8.js +1 -0
  54. package/assets/esri/core/workers/chunks/{6cbe8205a4e0f62da519.js → a5a27e2e9b91fbe12da9.js} +1 -1
  55. package/assets/esri/core/workers/chunks/aeac889d95f34b6d3b72.js +1 -0
  56. package/assets/esri/core/workers/chunks/c1a72e1dbd1ba7b41965.js +1 -0
  57. package/assets/esri/core/workers/chunks/c4065934637b820cad5b.js +1 -0
  58. package/assets/esri/core/workers/chunks/cc1328cacc4ac07eb548.js +1 -0
  59. package/assets/esri/core/workers/chunks/d0876a713079c669995a.js +1 -0
  60. package/assets/esri/core/workers/chunks/{3145218abe59b5e99ff8.js → d2139307f62ea8bf999a.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{d5f770302dc686e55ba7.js → daffceecdc71e74d2629.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{3f58da371633967a61ca.js → ddb66fe6fcd0764daa7a.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{0eeb0dce918e4827309a.js → eac7af86166c09c6a9be.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{998819aade3898f52414.js → ec49e2849766402ad5c7.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{7317346ed8d7c5bb859d.js → f537a02dc2fc9e6435a2.js} +1 -1
  66. package/assets/esri/core/workers/chunks/fa3edfbdaa3b716a3a10.js +1 -0
  67. package/assets/esri/core/workers/chunks/fa5715ca3ce95d005b0a.js +1 -0
  68. package/assets/esri/core/workers/chunks/{7e1906d35a764f7f10b0.js → fe1129f03476825a7344.js} +1 -1
  69. package/assets/esri/themes/base/widgets/_SelectionList.scss +31 -28
  70. package/assets/esri/themes/dark/main.css +1 -1
  71. package/assets/esri/themes/light/main.css +1 -1
  72. package/assets/esri/themes/light/view.css +1 -1
  73. package/chunks/DefaultMaterial.glsl.js +30 -28
  74. package/chunks/RealisticTree.glsl.js +25 -22
  75. package/chunks/aiServices.js +1 -1
  76. package/chunks/chartUtilsAm5.js +1 -1
  77. package/config.js +1 -1
  78. package/core/LRUCache.js +1 -1
  79. package/core/MemCache.js +1 -1
  80. package/core/accessorSupport/utils.js +1 -1
  81. package/core/object.js +1 -1
  82. package/core/urlUtils.js +1 -1
  83. package/core/workers/RemoteClient.js +1 -1
  84. package/core/workers/WorkerHandle.js +1 -1
  85. package/editing/sharedTemplates/executor/builders/bufferPolygonToPolygon.js +1 -1
  86. package/interfaces.d.ts +76 -24
  87. package/intl/date.js +1 -1
  88. package/intl/duration.js +1 -1
  89. package/intl/locale.js +1 -1
  90. package/intl/messages.js +1 -1
  91. package/intl/number.js +1 -1
  92. package/intl.d.ts +1 -0
  93. package/intl.js +1 -1
  94. package/kernel.js +1 -1
  95. package/layers/CatalogLayer.js +1 -1
  96. package/layers/FeatureLayer.js +1 -1
  97. package/layers/GeoJSONLayer.js +1 -1
  98. package/layers/WFSLayer.js +1 -1
  99. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  100. package/layers/graphics/data/QueryEngineResult.js +1 -1
  101. package/layers/graphics/data/queryValidationUtils.js +1 -1
  102. package/layers/mixins/FeatureLayerBase.js +1 -1
  103. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  104. package/layers/support/arcgisLayers.js +1 -1
  105. package/layers/support/featureLayerUtils.js +1 -1
  106. package/layers/support/fetchService.js +1 -1
  107. package/layers/support/layerUtils.js +1 -1
  108. package/layers/support/rasterDatasets/covJSONParser.js +1 -1
  109. package/layers/support/rasterFormats/TiffDecoder.js +1 -1
  110. package/package.json +1 -1
  111. package/portal/support/layersLoader.js +1 -1
  112. package/portal/support/loadUtils.js +1 -1
  113. package/portal/support/portalLayers.js +1 -1
  114. package/renderers/support/DictionaryScriptEvaluator.js +1 -1
  115. package/renderers/visualVariables/support/visualVariableUtils.js +1 -1
  116. package/rest/networks/circuits/support/CircuitVerifyResult.js +1 -1
  117. package/rest/support/DateBinTimeInterval.js +1 -1
  118. package/rest/support/DateBinUtils.js +5 -0
  119. package/rest/support/TranslateParameters.js +1 -1
  120. package/smartMapping/renderers/size.js +1 -1
  121. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  122. package/smartMapping/support/adapters/support/utils.js +1 -1
  123. package/support/ArcadeExpression.js +1 -1
  124. package/support/revision.js +1 -1
  125. package/symbols/WaterSymbol3DLayer.js +1 -1
  126. package/symbols/cim/effects/EffectTaperedPolygon.js +1 -1
  127. package/symbols/support/symbolUtils.js +1 -1
  128. package/symbols/support/utils.js +1 -1
  129. package/views/2d/engine/vectorTiles/style/StyleProperty.js +1 -1
  130. package/views/2d/layers/features/support/FeatureSetReaderIndirect.js +1 -1
  131. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  132. package/views/3d/analysis/DimensionAnalysisView3D.js +1 -1
  133. package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
  134. package/views/3d/analysis/LineOfSightAnalysisView3D.js +1 -1
  135. package/views/3d/analysis/SliceAnalysisView3D.js +1 -1
  136. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  137. package/views/3d/camera/intersectionUtils.js +1 -1
  138. package/views/3d/layers/I3SMeshView3D.js +1 -1
  139. package/views/3d/layers/I3SMeshViewLabeler.js +1 -1
  140. package/views/3d/layers/I3SMeshWorkerHandle.js +1 -1
  141. package/views/3d/layers/RouteLayerView3D.js +1 -1
  142. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  143. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  144. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  145. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  146. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  147. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  148. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  149. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  150. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  151. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  152. package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
  153. package/views/3d/layers/graphics/Graphics3DWaterSymbolLayer.js +1 -1
  154. package/views/3d/layers/graphics/graphicUtils.js +1 -1
  155. package/views/3d/layers/i3s/I3SIndex.js +1 -1
  156. package/views/3d/layers/i3s/I3SLodHandling.js +1 -1
  157. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  158. package/views/3d/layers/support/makeScheduleFunction.js +1 -1
  159. package/views/3d/layers/support/symbolColorUtils.js +1 -1
  160. package/views/3d/state/controllers/FovController.js +1 -1
  161. package/views/3d/state/controllers/PinchAndPanControllerGlobal.js +1 -1
  162. package/views/3d/state/controllers/PinchAndPanControllerLocal.js +1 -1
  163. package/views/3d/state/controllers/RotateController.js +1 -1
  164. package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
  165. package/views/3d/state/controllers/ZoomControllerLocal.js +1 -1
  166. package/views/3d/state/controllers/ZoomStepControllerGlobal.js +1 -1
  167. package/views/3d/state/controllers/ZoomStepControllerLocal.js +1 -1
  168. package/views/3d/state/utils/navigationUtils.js +1 -1
  169. package/views/3d/support/StreamDataLoader.js +1 -1
  170. package/views/3d/terrain/OverlayRenderer.js +1 -1
  171. package/views/3d/terrain/TerrainRenderer.js +1 -1
  172. package/views/3d/terrain/TerrainSurface.js +1 -1
  173. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  174. package/views/3d/webgl-engine/collections/Component/RenderSubmitSystem.js +1 -1
  175. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  176. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstanceColor.glsl.js +11 -0
  177. package/views/3d/webgl-engine/core/shaderLibrary/attributes/MaskedColor.glsl.js +18 -0
  178. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +40 -26
  179. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +35 -24
  180. package/views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js +12 -8
  181. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js +3 -1
  182. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +2 -2
  183. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +26 -8
  184. package/views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js +1 -1
  185. package/views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js +1 -1
  186. package/views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js +1 -1
  187. package/views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js +1 -1
  188. package/views/3d/webgl-engine/core/shaderModules/Float3DrawUniform.js +1 -1
  189. package/views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js +1 -1
  190. package/views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js +1 -1
  191. package/views/3d/webgl-engine/core/shaderModules/Float4DrawUniform.js +1 -1
  192. package/views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js +1 -1
  193. package/views/3d/webgl-engine/core/shaderModules/Float4sPassUniform.js +1 -1
  194. package/views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js +1 -1
  195. package/views/3d/webgl-engine/core/shaderModules/FloatDrawUniform.js +1 -1
  196. package/views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js +1 -1
  197. package/views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js +1 -1
  198. package/views/3d/webgl-engine/core/shaderModules/Matrix3DrawUniform.js +1 -1
  199. package/views/3d/webgl-engine/core/shaderModules/Matrix3PassUniform.js +1 -1
  200. package/views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js +1 -1
  201. package/views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js +1 -1
  202. package/views/3d/webgl-engine/core/shaderModules/Matrix4PassUniform.js +1 -1
  203. package/views/3d/webgl-engine/core/shaderModules/Matrix4sDrawUniform.js +1 -1
  204. package/views/3d/webgl-engine/core/shaderModules/Matrix4sPassUniform.js +1 -1
  205. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  206. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  207. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  208. package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
  209. package/views/3d/webgl-engine/lib/Program.js +1 -1
  210. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  211. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  212. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  213. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  214. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  215. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  216. package/views/3d/webgl-engine/materials/internal/MaterialUtil.js +1 -1
  217. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  218. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  219. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  220. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  221. package/views/analysis/analysisViewUtils.js +1 -1
  222. package/views/ui/UI.js +1 -1
  223. package/views/webgl/Program.js +1 -1
  224. package/views/webgl/ShaderBuilder.js +1 -1
  225. package/webscene/Slide.js +1 -1
  226. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  227. package/widgets/BatchAttributeForm.js +1 -1
  228. package/widgets/Directions/DirectionsVisibleElements.js +1 -1
  229. package/widgets/Directions.js +1 -1
  230. package/widgets/Editor/EditorViewModel.js +1 -1
  231. package/widgets/Editor/UpdateFeatureWorkflowData.js +1 -1
  232. package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
  233. package/widgets/Editor/UpdateWorkflow.js +1 -1
  234. package/widgets/Editor/components/PendingFeatureList.js +1 -1
  235. package/widgets/Editor.js +1 -1
  236. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  237. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  238. package/widgets/FeatureTable.js +1 -1
  239. package/widgets/FeatureTemplates.js +1 -1
  240. package/widgets/Features/FeaturesViewModel.js +1 -1
  241. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  242. package/widgets/OrientedImageryViewer/components/ImageViewer.js +1 -1
  243. package/widgets/OrientedImageryViewer/components/NavigationNode.js +1 -1
  244. package/widgets/OrientedImageryViewer/components/NavigationSettings.js +1 -1
  245. package/widgets/OrientedImageryViewer/components/NavigationUI.js +1 -1
  246. package/widgets/OrientedImageryViewer/components/NavigationUI360.js +5 -0
  247. package/widgets/OrientedImageryViewer/components/NavigationUIPanoramicViewModel.js +1 -1
  248. package/widgets/OrientedImageryViewer/components/NavigationUIViewModel.js +1 -1
  249. package/widgets/OrientedImageryViewer/components/imageNavigationUtils.js +1 -1
  250. package/widgets/OrientedImageryViewer/navigation/NavigationManager.js +1 -1
  251. package/widgets/OrientedImageryViewer.js +1 -1
  252. package/widgets/PanoramicViewer.js +1 -1
  253. package/widgets/Print/PrintViewModel.js +1 -1
  254. package/widgets/Print.js +1 -1
  255. package/widgets/ScaleRangeSlider/scalePreviewUtils.js +1 -1
  256. package/widgets/Search/SearchViewModel.js +1 -1
  257. package/widgets/Search/support/layerSearchUtils.js +1 -1
  258. package/widgets/Search.js +1 -1
  259. package/widgets/support/ItemList.js +1 -1
  260. package/widgets/support/SelectionList/FeatureItem.js +1 -1
  261. package/widgets/support/SelectionList/GroupLayerItem.js +1 -1
  262. package/widgets/support/SelectionList/LayerItem.js +1 -1
  263. package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
  264. package/widgets/support/SelectionList.js +1 -1
  265. package/widgets/support/UtilityNetworkAssociations/FeatureUtilityNetworkAssociationsViewModel.js +1 -1
  266. package/widgets/support/dateUtils.js +1 -1
  267. package/widgets/support/symbolPreviewUtils.js +1 -1
  268. package/widgets/support/timeWidgetUtils.js +1 -1
  269. package/assets/esri/core/workers/chunks/0dbb350ce651bc236ec8.js +0 -1
  270. package/assets/esri/core/workers/chunks/0ff6f15d46d7ddf6fe4d.js +0 -1
  271. package/assets/esri/core/workers/chunks/18011c691e0aca4144dd.js +0 -1
  272. package/assets/esri/core/workers/chunks/183a7dec68c8ba6eb3d6.js +0 -1
  273. package/assets/esri/core/workers/chunks/2ddb776434a93b8d9e63.js +0 -1
  274. package/assets/esri/core/workers/chunks/369978472cc9ee6a00b5.js +0 -346
  275. package/assets/esri/core/workers/chunks/3916879b9ca8c6979011.js +0 -1
  276. package/assets/esri/core/workers/chunks/3cbc498388fb1931a9f8.js +0 -1
  277. package/assets/esri/core/workers/chunks/4079e307a0fce4516aa4.js +0 -1
  278. package/assets/esri/core/workers/chunks/4088f4c25a09932a3eb1.js +0 -1
  279. package/assets/esri/core/workers/chunks/462cc6966d060be59c7c.js +0 -1
  280. package/assets/esri/core/workers/chunks/467cacb501b0417bb4df.js +0 -1
  281. package/assets/esri/core/workers/chunks/49089731ecfe7e8bb2f6.js +0 -1
  282. package/assets/esri/core/workers/chunks/4a805e7a57d25c4b595f.js +0 -66
  283. package/assets/esri/core/workers/chunks/4e0bae3671fe1c7efa76.js +0 -1
  284. package/assets/esri/core/workers/chunks/58f92100b1b2343111c6.js +0 -1
  285. package/assets/esri/core/workers/chunks/5dcc8fa321f0a7c49f36.js +0 -1
  286. package/assets/esri/core/workers/chunks/5df4f2315fae82030e87.js +0 -1
  287. package/assets/esri/core/workers/chunks/5e539ce4751bcfa57145.js +0 -1
  288. package/assets/esri/core/workers/chunks/6194636638b0439fccd8.js +0 -1
  289. package/assets/esri/core/workers/chunks/622c0552ca3cd674d46c.js +0 -1
  290. package/assets/esri/core/workers/chunks/64f5f27e7c5649d79cbc.js +0 -1
  291. package/assets/esri/core/workers/chunks/658e82c9b722852e02d0.js +0 -1
  292. package/assets/esri/core/workers/chunks/679d7baea233faf3fdbc.js +0 -1
  293. package/assets/esri/core/workers/chunks/72ea996b03932c0f004f.js +0 -1
  294. package/assets/esri/core/workers/chunks/7aef81778155be373d3e.js +0 -1
  295. package/assets/esri/core/workers/chunks/97b69fec3e87f11210ba.js +0 -1
  296. package/assets/esri/core/workers/chunks/a1a42b0d7cd47b647f8a.js +0 -1
  297. package/assets/esri/core/workers/chunks/a250a5c6e055e33bd25c.js +0 -1
  298. package/assets/esri/core/workers/chunks/a622ed3f182648ab3ff6.js +0 -1
  299. package/assets/esri/core/workers/chunks/a693cd3af2e995972252.js +0 -1
  300. package/assets/esri/core/workers/chunks/b4273381dc069f4e1fa2.js +0 -1
  301. package/assets/esri/core/workers/chunks/b72137c63b7f2a525d9e.js +0 -1
  302. package/assets/esri/core/workers/chunks/c2264451d12f1fbaad22.js +0 -1
  303. package/assets/esri/core/workers/chunks/c6c86cbe65a58c3093ae.js +0 -1
  304. package/assets/esri/core/workers/chunks/c8856370bae65d9eeb2b.js +0 -1
  305. package/assets/esri/core/workers/chunks/cd4fb107489594c57438.js +0 -1
  306. package/assets/esri/core/workers/chunks/d28d874c1337b69fedc0.js +0 -1
  307. package/assets/esri/core/workers/chunks/ec922f876e1465d36045.js +0 -1
  308. package/assets/esri/core/workers/chunks/fe3703ec198cbfebec30.js +0 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../../../core/Logger.js";import{getOrCreateMapValue as t}from"../../../../../core/MapUtils.js";import o from"../../../../../core/PooledArray.js";import{isTypedArray as i}from"../../../../../core/typedArrayUtil.js";import{s as n}from"../../../../../chunks/vec32.js";import{clone as r}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as s}from"../../../../../geometry/support/aaBoundingBox.js";import{compactIndices as a}from"../../../../../geometry/support/Indices.js";import{c as l}from"../../../../../chunks/vec3.js";import{c}from"../../../../../chunks/vec33.js";import{ViewingMode as m}from"../../../../ViewingMode.js";import{ColorMixModeEnum as f,encodeSymbolColor as h}from"../../../layers/support/symbolColorUtils.js";import{computeOffsetObb as p}from"../../../support/orientedBoundingBox.js";import{glLayout as g}from"../../../support/buffer/glUtil.js";import{newLayout as d}from"../../../support/buffer/InterleavedLayout.js";import{ComponentData as u}from"./ComponentData.js";import{ComponentObject as b}from"./ComponentObject.js";import{IntersectionGeometry as v}from"./IntersectionGeometry.js";import{Renderable as y}from"./Renderable.js";import{RenderGeometry as _}from"./RenderGeometry.js";import{RenderSubmitSystem as C}from"./RenderSubmitSystem.js";import{createVertexBufferLayout as M}from"./SourceGeometry.js";import{UniformComponentParameters as j}from"./UniformComponentParameters.js";import{ComponentParametersVarying as w,ComponentParametersUniform as x,ComponentParameterSummary as O,ComponentMaterial as D}from"./Material/ComponentMaterial.js";import{vertexAttributeLocations as A}from"./Material/ComponentTechnique.js";import{encodeElevationOffset as R}from"./Material/shader/ComponentData.glsl.js";import{olidEnabled as S}from"../../effects/geometry/olidUtils.js";import{getVisibility as E,updatePickabilityWithCount as I}from"../../lib/ComponentUtils.js";import{assert as H}from"../../lib/Util.js";import{VertexAttribute as V}from"../../lib/VertexAttribute.js";import{getVerticalOffsetI3S as U}from"../../lib/verticalOffsetUtils.js";import{BufferManager as B}from"../../lib/TextureBackedBuffer/BufferManager.js";import{BufferObject as P}from"../../../../webgl/BufferObject.js";import{Usage as N,PrimitiveType as T}from"../../../../webgl/enums.js";import{VertexArrayObject as L}from"../../../../webgl/VertexArrayObject.js";const k=()=>e.getLogger("esri.views.3d.webgl-engine.collections.Component.ComponentObjectCollection");class G{constructor(e,t){this._renderManager=e,this._viewingMode=t,this._elevationRangeCacheVerticalOffset=NaN,this._elevationRangeCacheMin=NaN,this._elevationRangeCacheMax=NaN,this._activeHighlightOptions=new Map,this._visible=new o,this._hidden=new o,this._renderSubmit=new C(this),this._renderManager.register(this._renderSubmit),this._componentBufferManager=new B(e.rctx,2+(S()?1:0))}destroy(){H(0===this._hidden.length&&0===this._visible.length,"ObjectCollection should be empty upon disposal"),this._componentBufferManager.destroy(),this._visible.forAll((e=>e.destroy())),this._visible.clear(),this._hidden.forAll((e=>e.destroy())),this._hidden.clear()}createObject(e){const t=e.geometry,o=new u(this._componentBufferManager,a(t.componentOffsets)),i=this._createRenderable(e,o),n=new v(this._viewingMode,t.positionData,o),r=new b(e.transform,e.toMapSpace,e.obb.clone(),o,i,n);return(r.visible?this._visible:this._hidden).push(r),r}destroyObject(e){const t=e;(t.visible?this._visible:this._hidden).removeUnordered(t),t.destroy(),this._notifyDirty()}setObjectVisibility(e,t){const o=e;t!==o.visible&&(t?(this._hidden.removeUnordered(o),this._visible.push(o)):(this._visible.removeUnordered(o),this._hidden.push(o)),o.visible=t,this._notifyDirty())}preSubmit(e){const t=e.camera.eye;this.visibleObjects.forAll((e=>e.renderable.meta.cameraDepthSquared=n(t,e.obb.center)))}getMaterial(e){return e.renderable.material}updateMaterial(e,t){const o=e.renderable.material;t(o),o.dirty&&this._notifyDirty()}setAllComponentVisibilities(e,t){const o=e;o.componentData.visibility.reset(t),o.componentData.markVisibilityDirty(),this._notifyDirty()}forEachVisibleComponent(e,t){return e.componentData.visibility.forEachComponent(t)}getComponentCount(e){const t=e,o=t.componentData.visibility.componentCount;return{visible:o,invisible:t.componentData.count-o}}setComponentData(e,t){const o=e,{renderable:i,componentData:n}=o,r=i.material,s=n.materialDataBuffer,a=n.materialDataIndices,l=new j,c=s.textureBuffer,m=new Uint8Array(4),g=new Uint32Array(m.buffer);let d=0,u=0,b=0,v=n.verticalOffsets,y=1/0,_=-1/0,C=!1,M=!1,D=0;for(let p=0;p<n.count;p++){t(p,l),d+=+(l.externalColor[3]<1),u+=+(l.externalColorMixMode===f.Replace&&1===l.externalColor[3]),b+=+l.castShadows,h(l.externalColor,l.externalColorMixMode,m),m[2]=254&m[2]|+l.castShadows,c.setData(a[p],0,m[0],m[1],m[2],m[3]),C||=p>0&&D!==g[0],D=g[0],M||=0!==l.elevationOffset,M&&null==v&&(v=new Array(p).fill(0)),null!=v&&(v[p]=l.elevationOffset),y=Math.min(y,l.elevationOffset),_=Math.max(_,l.elevationOffset),R(l.elevationOffset,m),c.setData(a[p],1,m[0],m[1],m[2],m[3]);const e=l.objectAndLayerIdColor;null!=e&&c.setData(a[p],2,e[0],e[1],e[2],e[3]),l.pickable!==E(n.pickability,p)&&I(n,p,l.pickable)}n.verticalOffsets=M?v:null,o.offsetObb=M?p(o.obb,y,_,this._viewingMode,o.offsetObb??o.obb.clone()):null,C||M||S()?(r.componentParameters=new w,r.componentParameters.castShadows=W(b,n.count),r.componentParameters.transparent=W(d,n.count),r.componentParameters.opaqueOverride=W(u,n.count),r.componentParameters.texture=c,c.updateTexture()):(r.componentParameters=new x,r.componentParameters.castShadows=l.castShadows?O.All:O.None,r.componentParameters.externalColor=l.externalColor,r.componentParameters.externalColorMixMode=l.externalColorMixMode),this._elevationRangeCacheVerticalOffset=NaN,this._notifyDirty()}getComponentAabb(e,t,o,i=!1){e.intersectionGeometry.getComponentAabb(t,o);const n=e,r=n.componentData.verticalOffsets;if(i||null==r)return o;const s=r[t];if(this._viewingMode===m.Local||0===s)return o[2]+=s,o[5]+=s,o;const a=U(s);return a.localOrigin=n.transform.position,a.applyToAabb(o)}getComponentObb(e){return e.obb}getObjectTransform(e){return e.transform}getComponentPositions(e,t,o){return e.intersectionGeometry.getComponentPositions(t,o)}expandRangeWithComponentObjectElevationRange(e,t,o,i){Number.isNaN(this._elevationRangeCacheVerticalOffset)||this._elevationRangeCacheVerticalOffset!==t||i.expandElevationRangeValues(this._elevationRangeCacheMin,this._elevationRangeCacheMax);const n=e,r=n.componentData,s=r.count,a=r.verticalOffsets,l=n.intersectionGeometry,c=this._viewingMode===m.Local,f=l.getComponentAabbs(),h=z;let p=1/0,g=-1/0;for(let m=0;m<s;m++){const e=6*m,r=a?.[m]??0;let s=1/0,l=-1/0;if(c)s=f[e+2]+r+t,l=f[e+5]+r+t;else{if(h[0]=f[e],h[1]=f[e+1],h[2]=f[e+2],h[3]=f[e+3],h[4]=f[e+4],h[5]=f[e+5],0!==r){const e=U(r);e.localOrigin=n.transform.position,e.applyToAabb(h)}const s=Math.max(Math.abs(h[3]),Math.abs(h[0])),a=Math.max(Math.abs(h[4]),Math.abs(h[1])),l=t+h[5]+o;i.expandElevationRangeValues(t+h[2],Math.sqrt(s*s+a*a+l*l)-o)}i.expandElevationRangeValues(s,l),p=Math.min(p,s),g=Math.max(g,l)}this._elevationRangeCacheVerticalOffset=t,this._elevationRangeCacheMin=p,this._elevationRangeCacheMax=g}intersect(e,t,o,i,n,r,s){const a=e,{transform:l,componentData:c,intersectionGeometry:m}=a;return null!=n&&(n.localOrigin=l.position),m.intersect(t,o,i,n,c.verticalOffsets,l,r,s)}addEdges(e,t,o,i,n){const r=e,{indices:s,positions:a}=r.intersectionGeometry,l=r.componentData.offsets;return t.addComponentObject(r,a,s,l,o,i,n)}async extractEdgeInformation(e,t,o){const i=e,n=i.componentData.visibility;if(n.allInvisible()){const{extractComponentsEdgeLocationsLayout:e}=await import("../../lib/edgeRendering/edgeProcessing.js");return{buffer:e.createBuffer(0),origin:[0,0,0]}}const{indices:s,positions:a}=i.intersectionGeometry,m=i.componentData.offsets,{EdgeInputBufferLayout:f}=await import("../../lib/edgeRendering/bufferLayouts.js"),h=f.createBuffer(a.length/3);c(h.position.typedBuffer,a,h.position.typedBufferStride,3),l(h.position,h.position,i.transform.rotationScale),this._setComponentIndices(h.componentIndex,s,m);const p=h.count,g=this._computeVisibilityIndices(s,n,m,p);return{origin:r(i.transform.position),buffer:await t.extractComponentsEdgeLocations({indices:g,indicesLength:g.length,skipDeduplicate:!0,data:h,writerSettings:{reducedPrecision:!1,variants:0}},o)}}_setComponentIndices(e,t,o){let i=0;for(let n=0;n<o.length-1;n++){const r=o[n],s=o[n+1];for(let o=r;o<s;o++){const n=t?t[o]:o;e.set(n,i)}i++}}_computeVisibilityIndices(e,t,o,n){if(e&&t.allVisible())return e;let r=0;t.forEachComponentRange(((e,t)=>(r+=o[t]-o[e],!0)));const s=i(e)?2===e?.BYTES_PER_ELEMENT||n<=65536?new Uint16Array(r):new Uint32Array(r):new Array(r);let a=0;return t.forEachComponentRange(((t,i)=>{const n=o[t],r=o[i];for(let o=n;o<r;o++)s[a++]=e?e[o]:o;return!0})),s}addComponentHighlight(e,o,i){const n=e.componentData,r=t(n.componentHighlights,i,(()=>new Uint32Array(n.count+1)));{const e=this._activeHighlightOptions.get(i)??0;this._activeHighlightOptions.set(i,e+1)}0===r[o]++&&(n.markHighlightsDirty(),this._notifyDirty()),r[n.count]++}removeComponentHighlight(e,t,o){const{componentData:i}=e,n=i.componentHighlights.get(o);if(void 0===n)return void k().warn("Removing non-existing highlight.");const r=n[t];if(0===r)return void k().warn("Removing non-existing highlight.");this._removeActiveHighlight(o);const s=n[i.count];if(r>1)return n[t]=r-1,void(n[i.count]=s-1);n[t]=0,1===s?i.componentHighlights.delete(o):n[i.count]=s-1,i.markHighlightsDirty(),this._notifyDirty()}_removeActiveHighlight(e,t=1){const o=this._activeHighlightOptions.get(e);if(void 0===o)k().warn("Removing non-existing highlight.");else{const i=o-t;i<0&&k().warn("Removing non-existing highlight."),i<=0?this._activeHighlightOptions.delete(e):this._activeHighlightOptions.set(e,i)}}clearHighlights(e){const{componentData:t}=e,{componentHighlights:o}=t;if(o.size>0){for(const e of o)this._removeActiveHighlight(e[0],e[1][t.count]);o.clear(),t.markHighlightsDirty(),this._notifyDirty()}}hasHighlight(e){return this._activeHighlightOptions.has(e)}getObjectGPUMemoryUsage(e){return e.renderable.meta.gpuMemoryEstimate}get visibleObjects(){return this._visible}_createRenderable(e,t){const o=this._renderManager.rctx,i=e.geometry,n=i.vertices.layoutParameters,r=P.createVertex(o,N.STATIC_DRAW,i.vertices.data),s=i.indices?P.createIndex(o,N.STATIC_DRAW,i.indices):null,a=g(M(n)),l=new Uint16Array(i.vertices.count);for(let g=0;g<t.count;g++){const e=t.offsets[g],o=t.offsets[g+1],n=t.materialDataIndices[g];if(null!=i.indices)for(let t=e;t<o;t++){l[i.indices[t]]=n}else for(let t=e;t<o;t++)l[t]=n}const c=P.createVertex(o,N.STATIC_DRAW,l.buffer),m=new D(e.transform,e.toMapSpace),f=new L(o,A,new Map([["data",a],["componentIndices",q]]),new Map([["data",r],["componentIndices",c]]),s),h=new _(f,T.TRIANGLES,n,null!=s),p={cameraDepthSquared:.5,gpuMemoryEstimate:r.usedMemory+c.usedMemory+(null!=s?s.usedMemory:0)};return new y(m,h,p)}_notifyDirty(){this._renderManager.notifyDirty()}}const q=g(d().u16(V.COMPONENTINDEX));function W(e,t){return e===t?O.All:0===e?O.None:O.Some}const z=s();export{G as ComponentObjectCollection};
5
+ import e from"../../../../../core/Logger.js";import{getOrCreateMapValue as t}from"../../../../../core/MapUtils.js";import o from"../../../../../core/PooledArray.js";import{isTypedArray as i}from"../../../../../core/typedArrayUtil.js";import{s as n}from"../../../../../chunks/vec32.js";import{clone as r}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as s}from"../../../../../geometry/support/aaBoundingBox.js";import{compactIndices as a}from"../../../../../geometry/support/Indices.js";import{c as l}from"../../../../../chunks/vec3.js";import{c}from"../../../../../chunks/vec33.js";import{ViewingMode as m}from"../../../../ViewingMode.js";import{ColorMixModeEnum as h,encodeSymbolColor as f}from"../../../layers/support/symbolColorUtils.js";import{computeOffsetObb as p}from"../../../support/orientedBoundingBox.js";import{glLayout as g}from"../../../support/buffer/glUtil.js";import{newLayout as d}from"../../../support/buffer/InterleavedLayout.js";import{ComponentData as u}from"./ComponentData.js";import{ComponentObject as b}from"./ComponentObject.js";import{IntersectionGeometry as v}from"./IntersectionGeometry.js";import{Renderable as y}from"./Renderable.js";import{RenderGeometry as _}from"./RenderGeometry.js";import{RenderSubmitSystem as C}from"./RenderSubmitSystem.js";import{createVertexBufferLayout as M}from"./SourceGeometry.js";import{UniformComponentParameters as j}from"./UniformComponentParameters.js";import{ComponentParametersVarying as w,ComponentParametersUniform as x,ComponentParameterSummary as O,ComponentMaterial as D}from"./Material/ComponentMaterial.js";import{vertexAttributeLocations as A}from"./Material/ComponentTechnique.js";import{encodeElevationOffset as R}from"./Material/shader/ComponentData.glsl.js";import{olidEnabled as S}from"../../effects/geometry/olidUtils.js";import{getVisibility as E,updatePickabilityWithCount as I}from"../../lib/ComponentUtils.js";import{assert as H}from"../../lib/Util.js";import{VertexAttribute as V}from"../../lib/VertexAttribute.js";import{getVerticalOffsetI3S as U}from"../../lib/verticalOffsetUtils.js";import{BufferManager as B}from"../../lib/TextureBackedBuffer/BufferManager.js";import{BufferObject as P}from"../../../../webgl/BufferObject.js";import{Usage as N,PrimitiveType as T}from"../../../../webgl/enums.js";import{VertexArrayObject as L}from"../../../../webgl/VertexArrayObject.js";const k=()=>e.getLogger("esri.views.3d.webgl-engine.collections.Component.ComponentObjectCollection");class G{constructor(e,t){this._renderManager=e,this._viewingMode=t,this._elevationRangeCacheVerticalOffset=NaN,this._elevationRangeCacheMin=NaN,this._elevationRangeCacheMax=NaN,this._activeHighlightOptions=new Map,this._visible=new o,this._hidden=new o,this._renderSubmit=new C(this),this._renderManager.register(this._renderSubmit),this._componentBufferManager=new B(e.rctx,2+(S()?1:0))}destroy(){H(0===this._hidden.length&&0===this._visible.length,"ObjectCollection should be empty upon disposal"),this._componentBufferManager.destroy(),this._visible.forAll((e=>e.destroy())),this._visible.clear(),this._hidden.forAll((e=>e.destroy())),this._hidden.clear(),this._renderSubmit.destroy()}createObject(e){const t=e.geometry,o=new u(this._componentBufferManager,a(t.componentOffsets)),i=this._createRenderable(e,o),n=new v(this._viewingMode,t.positionData,o),r=new b(e.transform,e.toMapSpace,e.obb.clone(),o,i,n);return(r.visible?this._visible:this._hidden).push(r),r}destroyObject(e){const t=e;(t.visible?this._visible:this._hidden).removeUnordered(t),t.destroy(),this._notifyDirty()}setObjectVisibility(e,t){const o=e;t!==o.visible&&(t?(this._hidden.removeUnordered(o),this._visible.push(o)):(this._visible.removeUnordered(o),this._hidden.push(o)),o.visible=t,this._notifyDirty())}preSubmit(e){const t=e.camera.eye;this.visibleObjects.forAll((e=>e.renderable.meta.cameraDepthSquared=n(t,e.obb.center)))}getMaterial(e){return e.renderable.material}updateMaterial(e,t){const o=e.renderable.material;t(o),o.dirty&&this._notifyDirty()}setAllComponentVisibilities(e,t){const o=e;o.componentData.visibility.reset(t),o.componentData.markVisibilityDirty(),this._notifyDirty()}forEachVisibleComponent(e,t){return e.componentData.visibility.forEachComponent(t)}getComponentCount(e){const t=e,o=t.componentData.visibility.componentCount;return{visible:o,invisible:t.componentData.count-o}}setComponentData(e,t){const o=e,{renderable:i,componentData:n}=o,r=i.material,s=n.materialDataBuffer,a=n.materialDataIndices,l=new j,c=s.textureBuffer,m=new Uint8Array(4),g=new Uint32Array(m.buffer);let d=0,u=0,b=0,v=n.verticalOffsets,y=1/0,_=-1/0,C=!1,M=!1,D=0;for(let p=0;p<n.count;p++){t(p,l),d+=+(l.externalColor[3]<1),u+=+(l.externalColorMixMode===h.Replace&&1===l.externalColor[3]),b+=+l.castShadows,f(l.externalColor,l.externalColorMixMode,m),m[2]=254&m[2]|+l.castShadows,c.setData(a[p],0,m[0],m[1],m[2],m[3]),C||=p>0&&D!==g[0],D=g[0],M||=0!==l.elevationOffset,M&&null==v&&(v=new Array(p).fill(0)),null!=v&&(v[p]=l.elevationOffset),y=Math.min(y,l.elevationOffset),_=Math.max(_,l.elevationOffset),R(l.elevationOffset,m),c.setData(a[p],1,m[0],m[1],m[2],m[3]);const e=l.objectAndLayerIdColor;null!=e&&c.setData(a[p],2,e[0],e[1],e[2],e[3]),l.pickable!==E(n.pickability,p)&&I(n,p,l.pickable)}n.verticalOffsets=M?v:null,o.offsetObb=M?p(o.obb,y,_,this._viewingMode,o.offsetObb??o.obb.clone()):null,C||M||S()?(r.componentParameters=new w,r.componentParameters.castShadows=W(b,n.count),r.componentParameters.transparent=W(d,n.count),r.componentParameters.opaqueOverride=W(u,n.count),r.componentParameters.texture=c,c.updateTexture()):(r.componentParameters=new x,r.componentParameters.castShadows=l.castShadows?O.All:O.None,r.componentParameters.externalColor=l.externalColor,r.componentParameters.externalColorMixMode=l.externalColorMixMode),this._elevationRangeCacheVerticalOffset=NaN,this._notifyDirty()}getComponentAabb(e,t,o,i=!1){e.intersectionGeometry.getComponentAabb(t,o);const n=e,r=n.componentData.verticalOffsets;if(i||null==r)return o;const s=r[t];if(this._viewingMode===m.Local||0===s)return o[2]+=s,o[5]+=s,o;const a=U(s);return a.localOrigin=n.transform.position,a.applyToAabb(o)}getComponentObb(e){return e.obb}getObjectTransform(e){return e.transform}getComponentPositions(e,t,o){return e.intersectionGeometry.getComponentPositions(t,o)}expandRangeWithComponentObjectElevationRange(e,t,o,i){Number.isNaN(this._elevationRangeCacheVerticalOffset)||this._elevationRangeCacheVerticalOffset!==t||i.expandElevationRangeValues(this._elevationRangeCacheMin,this._elevationRangeCacheMax);const n=e,r=n.componentData,s=r.count,a=r.verticalOffsets,l=n.intersectionGeometry,c=this._viewingMode===m.Local,h=l.getComponentAabbs(),f=z;let p=1/0,g=-1/0;for(let m=0;m<s;m++){const e=6*m,r=a?.[m]??0;let s=1/0,l=-1/0;if(c)s=h[e+2]+r+t,l=h[e+5]+r+t;else{if(f[0]=h[e],f[1]=h[e+1],f[2]=h[e+2],f[3]=h[e+3],f[4]=h[e+4],f[5]=h[e+5],0!==r){const e=U(r);e.localOrigin=n.transform.position,e.applyToAabb(f)}const s=Math.max(Math.abs(f[3]),Math.abs(f[0])),a=Math.max(Math.abs(f[4]),Math.abs(f[1])),l=t+f[5]+o;i.expandElevationRangeValues(t+f[2],Math.sqrt(s*s+a*a+l*l)-o)}i.expandElevationRangeValues(s,l),p=Math.min(p,s),g=Math.max(g,l)}this._elevationRangeCacheVerticalOffset=t,this._elevationRangeCacheMin=p,this._elevationRangeCacheMax=g}intersect(e,t,o,i,n,r,s){const a=e,{transform:l,componentData:c,intersectionGeometry:m}=a;return null!=n&&(n.localOrigin=l.position),m.intersect(t,o,i,n,c.verticalOffsets,l,r,s)}addEdges(e,t,o,i,n){const r=e,{indices:s,positions:a}=r.intersectionGeometry,l=r.componentData.offsets;return t.addComponentObject(r,a,s,l,o,i,n)}async extractEdgeInformation(e,t,o){const i=e,n=i.componentData.visibility;if(n.allInvisible()){const{extractComponentsEdgeLocationsLayout:e}=await import("../../lib/edgeRendering/edgeProcessing.js");return{buffer:e.createBuffer(0),origin:[0,0,0]}}const{indices:s,positions:a}=i.intersectionGeometry,m=i.componentData.offsets,{EdgeInputBufferLayout:h}=await import("../../lib/edgeRendering/bufferLayouts.js"),f=h.createBuffer(a.length/3);c(f.position.typedBuffer,a,f.position.typedBufferStride,3),l(f.position,f.position,i.transform.rotationScale),this._setComponentIndices(f.componentIndex,s,m);const p=f.count,g=this._computeVisibilityIndices(s,n,m,p);return{origin:r(i.transform.position),buffer:await t.extractComponentsEdgeLocations({indices:g,indicesLength:g.length,skipDeduplicate:!0,data:f,writerSettings:{reducedPrecision:!1,variants:0}},o)}}_setComponentIndices(e,t,o){let i=0;for(let n=0;n<o.length-1;n++){const r=o[n],s=o[n+1];for(let o=r;o<s;o++){const n=t?t[o]:o;e.set(n,i)}i++}}_computeVisibilityIndices(e,t,o,n){if(e&&t.allVisible())return e;let r=0;t.forEachComponentRange(((e,t)=>(r+=o[t]-o[e],!0)));const s=i(e)?2===e?.BYTES_PER_ELEMENT||n<=65536?new Uint16Array(r):new Uint32Array(r):new Array(r);let a=0;return t.forEachComponentRange(((t,i)=>{const n=o[t],r=o[i];for(let o=n;o<r;o++)s[a++]=e?e[o]:o;return!0})),s}addComponentHighlight(e,o,i){const n=e.componentData,r=t(n.componentHighlights,i,(()=>new Uint32Array(n.count+1)));{const e=this._activeHighlightOptions.get(i)??0;this._activeHighlightOptions.set(i,e+1)}0===r[o]++&&(n.markHighlightsDirty(),this._notifyDirty()),r[n.count]++}removeComponentHighlight(e,t,o){const{componentData:i}=e,n=i.componentHighlights.get(o);if(void 0===n)return void k().warn("Removing non-existing highlight.");const r=n[t];if(0===r)return void k().warn("Removing non-existing highlight.");this._removeActiveHighlight(o);const s=n[i.count];if(r>1)return n[t]=r-1,void(n[i.count]=s-1);n[t]=0,1===s?i.componentHighlights.delete(o):n[i.count]=s-1,i.markHighlightsDirty(),this._notifyDirty()}_removeActiveHighlight(e,t=1){const o=this._activeHighlightOptions.get(e);if(void 0===o)k().warn("Removing non-existing highlight.");else{const i=o-t;i<0&&k().warn("Removing non-existing highlight."),i<=0?this._activeHighlightOptions.delete(e):this._activeHighlightOptions.set(e,i)}}clearHighlights(e){const{componentData:t}=e,{componentHighlights:o}=t;if(o.size>0){for(const e of o)this._removeActiveHighlight(e[0],e[1][t.count]);o.clear(),t.markHighlightsDirty(),this._notifyDirty()}}hasHighlight(e){return this._activeHighlightOptions.has(e)}getObjectGPUMemoryUsage(e){return e.renderable.meta.gpuMemoryEstimate}get visibleObjects(){return this._visible}_createRenderable(e,t){const o=this._renderManager.rctx,i=e.geometry,n=i.vertices.layoutParameters,r=P.createVertex(o,N.STATIC_DRAW,i.vertices.data),s=i.indices?P.createIndex(o,N.STATIC_DRAW,i.indices):null,a=g(M(n)),l=new Uint16Array(i.vertices.count);for(let g=0;g<t.count;g++){const e=t.offsets[g],o=t.offsets[g+1],n=t.materialDataIndices[g];if(null!=i.indices)for(let t=e;t<o;t++){l[i.indices[t]]=n}else for(let t=e;t<o;t++)l[t]=n}const c=P.createVertex(o,N.STATIC_DRAW,l.buffer),m=new D(e.transform,e.toMapSpace),h=new L(o,A,new Map([["data",a],["componentIndices",q]]),new Map([["data",r],["componentIndices",c]]),s),f=new _(h,T.TRIANGLES,n,null!=s),p={cameraDepthSquared:.5,gpuMemoryEstimate:r.usedMemory+c.usedMemory+(null!=s?s.usedMemory:0)};return new y(m,f,p)}_notifyDirty(){this._renderManager.notifyDirty()}}const q=g(d().u16(V.COMPONENTINDEX));function W(e,t){return e===t?O.All:0===e?O.None:O.Some}const z=s();export{G as ComponentObjectCollection};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{computeDepthRange as s}from"./DepthRange.js";class e{constructor(s){this._objects=s}submit(s,e){this._objects.preSubmit(e),this._objects.visibleObjects.forAll((t=>t.renderable.material.submit(s,e,t)))}queryDepthRange(e){return this._objects.visibleObjects.length?s(e,this._objects.visibleObjects):null}get hasEmissions(){return this._objects.visibleObjects.some((s=>s.renderable.material.hasEmissions))}hasHighlight(s){return this._objects.hasHighlight(s)}}export{e as RenderSubmitSystem};
5
+ import{computeDepthRange as s}from"./DepthRange.js";class t{constructor(s){this._objects=s}destroy(){this._objects=null}submit(s,t){this._objects.preSubmit(t),this._objects.visibleObjects.forAll((e=>e.renderable.material.submit(s,t,e)))}queryDepthRange(t){return this._objects.visibleObjects.length?s(t,this._objects.visibleObjects):null}get hasEmissions(){return this._objects.visibleObjects.some((s=>s.renderable.material.hasEmissions))}hasHighlight(s){return this._objects.hasHighlight(s)}}export{t as RenderSubmitSystem};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as s}from"../../../../../chunks/tslib.es6.js";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as e}from"../../../../../core/accessorSupport/decorators/subclass.js";import{fromMat4 as t,transpose as r,invert as a}from"../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as i}from"../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{copy as o}from"../../../../../core/libs/gl-matrix-2/math/mat4.js";import{i as h,c as n}from"../../../../../chunks/vec32.js";import{create as m}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{MaterialPassParameters as c,ShadowMapPassParameters as l,HighlightPassParameters as u,ViewshedShadowMapPassParameters as d,AllRenderPasses as p}from"./AllRenderPasses.js";import{RenderPassIdentifier as _}from"./RenderPassIdentifier.js";import{ShaderOutput as P}from"../shaderLibrary/ShaderOutput.js";import{TwoVectorPosition as g}from"../util/TwoVectorPosition.js";import{SyncRenderPlugin as w}from"../../effects/RenderPlugin.js";import{DepthRange as f}from"../../lib/DepthRange.js";import{RenderSlot as E}from"../../lib/RenderSlot.js";let R=class extends w{constructor(){super({}),this.produces=new Map([[E.OPAQUE_MATERIAL,s=>this._produces(s,E.OPAQUE_MATERIAL)],[E.TRANSPARENT_MATERIAL,s=>this._produces(s,E.TRANSPARENT_MATERIAL)],[E.INTEGRATED_MESH,s=>this._produces(s,E.INTEGRATED_MESH)],[E.OCCLUDED_GROUND,s=>this._produces(s,E.OCCLUDED_GROUND)]]),this._materialPassParameters=new c,this._shadowPassParameters=new l,this._highlightPassParameters=new u,this._viewshedPassParameters=new d,this._systems=new Set}initializeRenderContext(s){this._context=s,this._passes=new p(s)}get rctx(){return this._context.renderContext.rctx}uninitializeRenderContext(){}dispose(){this._context=null,this._systems.clear()}register(s){this._systems.add(s)}_produces(s,e){return!!this._invoke(s,e,(s=>s.count>0))}prepareRender(s){const{_systems:e,_passes:t}=this;if(0!==e.size&&null!=t){for(const s of Object.values(t))s.prepareSubmit();e.forEach((e=>e.submit(t,s.bind)));for(const s of Object.values(t))s.finishSubmit()}}acquireTechniques(s){if(0===this._systems.size)return null;const e=s.output===P.Shadow||s.output===P.ShadowHighlight||s.output===P.ShadowExcludeHighlight?this._shadowPassParameters:s.output===P.ViewshedShadow?this._viewshedPassParameters:s.output===P.Highlight?this._highlightPassParameters:this._materialPassParameters,t=s.bind;return this._updateParameters(t.camera,e,t.slot),this._materialPassParameters.output=s.output,this._invoke(s.output,s.bind.slot,((e,t)=>e.acquire(t,s.bind)))}render(s,e){this._invoke(s.output,s.bind.slot,((t,r)=>t.dispatch(r,s.bind,e)))}_invoke(s,e,t){if(null==this._passes)return null;switch(e){case E.OPAQUE_MATERIAL:switch(s){case P.Color:case P.ColorEmission:case P.Depth:case P.Normal:case P.ObjectAndLayerIdColor:return t(this._passes.opaque,this._materialPassParameters);case P.Highlight:return t(this._passes.highlight,this._highlightPassParameters);case P.Shadow:return t(this._passes.shadowMap,this._shadowPassParameters);case P.ShadowHighlight:return t(this._passes.highlightShadowMap,this._shadowPassParameters);case P.ShadowExcludeHighlight:return t(this._passes.defaultShadowMap,this._shadowPassParameters);case P.ViewshedShadow:return t(this._passes.viewshedShadowMap,this._viewshedPassParameters)}break;case E.TRANSPARENT_MATERIAL:switch(s){case P.Color:case P.ColorEmission:case P.Depth:case P.Normal:case P.ObjectAndLayerIdColor:return t(this._passes.transparent,this._materialPassParameters)}break;case E.INTEGRATED_MESH:switch(s){case P.Color:case P.ColorEmission:case P.Depth:case P.Normal:case P.ObjectAndLayerIdColor:return t(this._passes.integratedMesh,this._materialPassParameters);case P.Highlight:return t(this._passes.highlightIntegratedMesh,this._highlightPassParameters)}break;case E.OCCLUDED_GROUND:switch(s){case P.Color:case P.ColorEmission:case P.Depth:case P.Normal:case P.ObjectAndLayerIdColor:return t(this._passes.occludedGround,this._materialPassParameters)}}return null}notifyDirty(){this._context.requestRender()}queryDepthRange(s){const e=new f;return this._systems.forEach((t=>e.union(t.queryDepthRange(s)))),e}get hasEmissions(){let s=!1;return this._systems.forEach((e=>s=e.hasEmissions||s)),s}_updateParameters(s,e,i){const m=s.viewInverseTransposeMatrix,c=i===E.TRANSPARENT_MATERIAL,l=i===E.OCCLUDED_GROUND;h(A,m[3],m[7],m[11]),j.set(A),n(e.transformWorldFromViewTH,j.high),n(e.transformWorldFromViewTL,j.low),n(e.slicePlaneLocalOrigin,A),t(e.transformViewFromCameraRelativeRS,s.viewMatrix),o(e.transformProjFromView,s.projectionMatrix),e.identifier===_.Material&&(this._materialPassParameters.transparent=c,this._materialPassParameters.occludedGround=l,r(b,e.transformViewFromCameraRelativeRS),a(e.transformNormalViewFromGlobal,b))}hasHighlight(s){for(const e of this._systems)if(e.hasHighlight(s))return!0;return!1}};R=s([e("esri.views.3d.webgl-engine.core.renderPasses.RenderPassManager")],R);const A=m(),b=i(),j=new g;export{R as RenderPassManager};
5
+ import{_ as s}from"../../../../../chunks/tslib.es6.js";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as e}from"../../../../../core/accessorSupport/decorators/subclass.js";import{fromMat4 as t,transpose as r,invert as a}from"../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as i}from"../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{copy as o}from"../../../../../core/libs/gl-matrix-2/math/mat4.js";import{i as h,c as n}from"../../../../../chunks/vec32.js";import{create as m}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{MaterialPassParameters as c,ShadowMapPassParameters as l,HighlightPassParameters as u,ViewshedShadowMapPassParameters as d,AllRenderPasses as p}from"./AllRenderPasses.js";import{RenderPassIdentifier as _}from"./RenderPassIdentifier.js";import{ShaderOutput as P}from"../shaderLibrary/ShaderOutput.js";import{TwoVectorPosition as g}from"../util/TwoVectorPosition.js";import{SyncRenderPlugin as w}from"../../effects/RenderPlugin.js";import{DepthRange as f}from"../../lib/DepthRange.js";import{RenderSlot as E}from"../../lib/RenderSlot.js";let R=class extends w{constructor(){super({}),this.produces=new Map([[E.OPAQUE_MATERIAL,s=>this._produces(s,E.OPAQUE_MATERIAL)],[E.TRANSPARENT_MATERIAL,s=>this._produces(s,E.TRANSPARENT_MATERIAL)],[E.INTEGRATED_MESH,s=>this._produces(s,E.INTEGRATED_MESH)],[E.OCCLUDED_GROUND,s=>this._produces(s,E.OCCLUDED_GROUND)]]),this._materialPassParameters=new c,this._shadowPassParameters=new l,this._highlightPassParameters=new u,this._viewshedPassParameters=new d,this._systems=new Set}initializeRenderContext(s){this._context=s,this._passes=new p(s)}get rctx(){return this._context.renderContext.rctx}uninitializeRenderContext(){}dispose(){this._context=null,this._systems.clear(),this._passes=null}register(s){this._systems.add(s)}_produces(s,e){return!!this._invoke(s,e,(s=>s.count>0))}prepareRender(s){const{_systems:e,_passes:t}=this;if(0!==e.size&&null!=t){for(const s of Object.values(t))s.prepareSubmit();e.forEach((e=>e.submit(t,s.bind)));for(const s of Object.values(t))s.finishSubmit()}}acquireTechniques(s){if(0===this._systems.size)return null;const e=s.output===P.Shadow||s.output===P.ShadowHighlight||s.output===P.ShadowExcludeHighlight?this._shadowPassParameters:s.output===P.ViewshedShadow?this._viewshedPassParameters:s.output===P.Highlight?this._highlightPassParameters:this._materialPassParameters,t=s.bind;return this._updateParameters(t.camera,e,t.slot),this._materialPassParameters.output=s.output,this._invoke(s.output,s.bind.slot,((e,t)=>e.acquire(t,s.bind)))}render(s,e){this._invoke(s.output,s.bind.slot,((t,r)=>t.dispatch(r,s.bind,e)))}_invoke(s,e,t){if(null==this._passes)return null;switch(e){case E.OPAQUE_MATERIAL:switch(s){case P.Color:case P.ColorEmission:case P.Depth:case P.Normal:case P.ObjectAndLayerIdColor:return t(this._passes.opaque,this._materialPassParameters);case P.Highlight:return t(this._passes.highlight,this._highlightPassParameters);case P.Shadow:return t(this._passes.shadowMap,this._shadowPassParameters);case P.ShadowHighlight:return t(this._passes.highlightShadowMap,this._shadowPassParameters);case P.ShadowExcludeHighlight:return t(this._passes.defaultShadowMap,this._shadowPassParameters);case P.ViewshedShadow:return t(this._passes.viewshedShadowMap,this._viewshedPassParameters)}break;case E.TRANSPARENT_MATERIAL:switch(s){case P.Color:case P.ColorEmission:case P.Depth:case P.Normal:case P.ObjectAndLayerIdColor:return t(this._passes.transparent,this._materialPassParameters)}break;case E.INTEGRATED_MESH:switch(s){case P.Color:case P.ColorEmission:case P.Depth:case P.Normal:case P.ObjectAndLayerIdColor:return t(this._passes.integratedMesh,this._materialPassParameters);case P.Highlight:return t(this._passes.highlightIntegratedMesh,this._highlightPassParameters)}break;case E.OCCLUDED_GROUND:switch(s){case P.Color:case P.ColorEmission:case P.Depth:case P.Normal:case P.ObjectAndLayerIdColor:return t(this._passes.occludedGround,this._materialPassParameters)}}return null}notifyDirty(){this._context.requestRender()}queryDepthRange(s){const e=new f;return this._systems.forEach((t=>e.union(t.queryDepthRange(s)))),e}get hasEmissions(){let s=!1;return this._systems.forEach((e=>s=e.hasEmissions||s)),s}_updateParameters(s,e,i){const m=s.viewInverseTransposeMatrix,c=i===E.TRANSPARENT_MATERIAL,l=i===E.OCCLUDED_GROUND;h(A,m[3],m[7],m[11]),j.set(A),n(e.transformWorldFromViewTH,j.high),n(e.transformWorldFromViewTL,j.low),n(e.slicePlaneLocalOrigin,A),t(e.transformViewFromCameraRelativeRS,s.viewMatrix),o(e.transformProjFromView,s.projectionMatrix),e.identifier===_.Material&&(this._materialPassParameters.transparent=c,this._materialPassParameters.occludedGround=l,r(b,e.transformViewFromCameraRelativeRS),a(e.transformNormalViewFromGlobal,b))}hasHighlight(s){for(const e of this._systems)if(e.hasHighlight(s))return!0;return!1}};R=s([e("esri.views.3d.webgl-engine.core.renderPasses.RenderPassManager")],R);const A=m(),b=i(),j=new g;export{R as RenderPassManager};
@@ -0,0 +1,11 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
+ */
5
+ import{MaskedColorDefinition as o,CreateMaskedFromUInt8NaNColor as e,MultiplyMaskedColors as r}from"./MaskedColor.glsl.js";import{glsl as l}from"../../shaderModules/glsl.js";import{VertexAttribute as t}from"../../../lib/VertexAttribute.js";function d(d,a){a.instancedColor?(d.attributes.add(t.INSTANCECOLOR,"vec4"),d.vertex.include(o),d.vertex.include(e),d.vertex.include(r),d.vertex.code.add(l`
6
+ MaskedColor applyInstanceColor(MaskedColor color) {
7
+ return multiplyMaskedColors( color, createMaskedFromUInt8NaNColor(${t.INSTANCECOLOR}));
8
+ }
9
+ `)):d.vertex.code.add(l`MaskedColor applyInstanceColor(MaskedColor color) {
10
+ return color;
11
+ }`)}export{d as InstanceColor};
@@ -0,0 +1,18 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
+ */
5
+ import{glsl as o}from"../../shaderModules/glsl.js";function e(e){e.code.add(o`struct MaskedColor {
6
+ vec4 color;
7
+ bvec4 mask;
8
+ };`)}function r(r){r.include(e),r.code.add(o`
9
+ MaskedColor createMaskedFromUInt8NaNColor(vec4 color) {
10
+ return MaskedColor(color * ${o.float(1/254)}, equal(color, vec4(255)));
11
+ }
12
+ `)}function c(r){r.include(e),r.code.add(o`MaskedColor multiplyMaskedColors(MaskedColor color1, MaskedColor color2) {
13
+ vec4 masked1 = mix(color1.color, vec4(1), color1.mask);
14
+ vec4 masked2 = mix(color2.color, vec4(1), color2.mask);
15
+ return MaskedColor(masked1 * masked2, bvec4(ivec4(color1.mask) & ivec4(color2.mask)));
16
+ }`)}function l(r){r.include(e),r.code.add(o`MaskedColor createMaskedFromNaNColor(vec4 color) {
17
+ return MaskedColor(color, isnan(color));
18
+ }`)}export{l as CreateMaskedFromNaNColor,r as CreateMaskedFromUInt8NaNColor,e as MaskedColorDefinition,c as MultiplyMaskedColors};
@@ -2,34 +2,48 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{fromValues as e}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{Float2PassUniform as o}from"../../shaderModules/Float2PassUniform.js";import{Float3PassUniform as a}from"../../shaderModules/Float3PassUniform.js";import{Float4PassUniform as i}from"../../shaderModules/Float4PassUniform.js";import{Float4sPassUniform as r}from"../../shaderModules/Float4sPassUniform.js";import{FloatPassUniform as t}from"../../shaderModules/FloatPassUniform.js";import{FloatsPassUniform as v}from"../../shaderModules/FloatsPassUniform.js";import{glsl as l}from"../../shaderModules/glsl.js";import{VertexAttribute as s}from"../../../lib/VertexAttribute.js";import{VisualVariablePassParameters as c,vvColorNumber as p}from"../../../materials/VisualVariablePassParameters.js";const n=8;function f(e,c){const{attributes:f,vertex:d}=e;f.add(s.POSITION,"vec3"),f.add(s.PROFILEVERTEXANDNORMAL,"vec4"),f.add(s.PROFILEAUXDATA,"vec3"),f.add(s.PROFILERIGHT,"vec2"),f.add(s.PROFILEUP,"vec2"),d.code.add(l`bool isCapVertex() {
5
+ import{fromValues as e}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{Float2PassUniform as o}from"../../shaderModules/Float2PassUniform.js";import{Float3PassUniform as r}from"../../shaderModules/Float3PassUniform.js";import{Float4PassUniform as a}from"../../shaderModules/Float4PassUniform.js";import{Float4sPassUniform as i}from"../../shaderModules/Float4sPassUniform.js";import{FloatPassUniform as t}from"../../shaderModules/FloatPassUniform.js";import{FloatsPassUniform as l}from"../../shaderModules/FloatsPassUniform.js";import{glsl as v,If as s}from"../../shaderModules/glsl.js";import{VertexAttribute as c}from"../../../lib/VertexAttribute.js";import{VisualVariablePassParameters as n,vvColorNumber as p}from"../../../materials/VisualVariablePassParameters.js";const f=8;function d(e,n){const{attributes:d,vertex:u}=e;d.add(c.POSITION,"vec3"),d.add(c.PROFILEVERTEXANDNORMAL,"vec4"),d.add(c.PROFILEAUXDATA,"vec3"),d.add(c.PROFILERIGHT,"vec2"),d.add(c.PROFILEUP,"vec2"),u.code.add(v`bool isCapVertex() {
6
6
  return profileAuxData.z == 1.0;
7
- }`),d.uniforms.add(new o("size",(e=>e.size)));const{vvSize:u,vvColor:m,vvOpacity:x}=c;u?(f.add(s.SIZEFEATUREATTRIBUTE,"float"),d.uniforms.add(new a("vvSizeMinSize",(e=>e.vvSize.minSize)),new a("vvSizeMaxSize",(e=>e.vvSize.maxSize)),new a("vvSizeOffset",(e=>e.vvSize.offset)),new a("vvSizeFactor",(e=>e.vvSize.factor)),new a("vvSizeFallback",(e=>e.vvSize.fallback))),d.code.add(l`vec2 getSize() {
7
+ }`),u.uniforms.add(new o("size",(e=>e.size)));const{vvSize:m,vvColor:x,vvOpacity:y}=n;m?(d.add(c.SIZEFEATUREATTRIBUTE,"float"),u.uniforms.add(new r("vvSizeMinSize",(e=>e.vvSize.minSize)),new r("vvSizeMaxSize",(e=>e.vvSize.maxSize)),new r("vvSizeOffset",(e=>e.vvSize.offset)),new r("vvSizeFactor",(e=>e.vvSize.factor)),new r("vvSizeFallback",(e=>e.vvSize.fallback))),u.code.add(v`vec2 getSize() {
8
8
  float value = sizeFeatureAttribute;
9
9
  if (isnan(value)) {
10
10
  return vvSizeFallback.xz;
11
11
  }
12
12
  return size * clamp(vvSizeOffset + value * vvSizeFactor, vvSizeMinSize, vvSizeMaxSize).xz;
13
- }`)):d.code.add(l`vec2 getSize(){
13
+ }`)):u.code.add(v`vec2 getSize(){
14
14
  return size;
15
- }`),x?(f.add(s.OPACITYFEATUREATTRIBUTE,"float"),d.constants.add("vvOpacityNumber","int",n),d.uniforms.add(new v("vvOpacityValues",(e=>e.vvOpacity.values),n),new v("vvOpacityOpacities",(e=>e.vvOpacity.opacityValues),n),new t("vvOpacityFallback",(e=>e.vvOpacity.fallback))),d.code.add(l`vec4 applyOpacity(vec4 color) {
16
- float value = opacityFeatureAttribute;
17
- if (isnan(value)) {
18
- return vec4(color.rgb, vvOpacityFallback);
19
- }
20
- if (value <= vvOpacityValues[0]) {
21
- return vec4( color.xyz, vvOpacityOpacities[0]);
22
- }
23
- for (int i = 1; i < vvOpacityNumber; ++i) {
24
- if (vvOpacityValues[i] >= value) {
25
- float f = (value - vvOpacityValues[i-1]) / (vvOpacityValues[i] - vvOpacityValues[i-1]);
26
- return vec4( color.xyz, mix(vvOpacityOpacities[i-1], vvOpacityOpacities[i], f));
27
- }
28
- }
29
- return vec4( color.xyz, vvOpacityOpacities[vvOpacityNumber - 1]);
30
- }`)):d.code.add(l`vec4 applyOpacity(vec4 color){
15
+ }`),y?(d.add(c.OPACITYFEATUREATTRIBUTE,"float"),u.constants.add("vvOpacityNumber","int",f),u.uniforms.add(new l("vvOpacityValues",(e=>e.vvOpacity.values),f),new l("vvOpacityOpacities",(e=>e.vvOpacity.opacityValues),f),new t("vvOpacityFallback",(e=>e.vvOpacity.fallback),{supportsNaN:!0})),u.code.add(v`
16
+ vec4 applyOpacity(vec4 color) {
17
+ // if we encounter NaN in the color it means the color is in the fallback case where the symbol color
18
+ // is not defined and there is no valid color visual variable override. In this case just return a fully
19
+ // transparent color
20
+ if (isnan(color.r)) {
21
+ return vec4(0);
22
+ }
23
+
24
+ float value = opacityFeatureAttribute;
25
+
26
+ if (isnan(value)) {
27
+ // If there is a color vv then it will already have taken care of applying the fallback
28
+ return ${s(n.vvColor,"color","vec4(color.rgb, vvOpacityFallback)")};
29
+ }
30
+
31
+ if (value <= vvOpacityValues[0]) {
32
+ return vec4(color.rgb, vvOpacityOpacities[0]);
33
+ }
34
+
35
+ for (int i = 1; i < vvOpacityNumber; ++i) {
36
+ if (vvOpacityValues[i] >= value) {
37
+ float f = (value - vvOpacityValues[i-1]) / (vvOpacityValues[i] - vvOpacityValues[i-1]);
38
+ return vec4(color.rgb, mix(vvOpacityOpacities[i-1], vvOpacityOpacities[i], f));
39
+ }
40
+ }
41
+
42
+ return vec4( color.rgb, vvOpacityOpacities[vvOpacityNumber - 1]);
43
+ }
44
+ `)):u.code.add(v`vec4 applyOpacity(vec4 color){
31
45
  return color;
32
- }`),m?(f.add(s.COLORFEATUREATTRIBUTE,"float"),d.constants.add("vvColorNumber","int",p),d.uniforms.add(new v("vvColorValues",(e=>e.vvColor.values),p),new r("vvColorColors",(e=>e.vvColor.colors),p),new i("vvColorFallback",(e=>e.vvColor.fallback))),d.code.add(l`vec4 getColor() {
46
+ }`),x?(d.add(c.COLORFEATUREATTRIBUTE,"float"),u.constants.add("vvColorNumber","int",p),u.uniforms.add(new l("vvColorValues",(e=>e.vvColor.values),p),new i("vvColorColors",(e=>e.vvColor.colors),p),new a("vvColorFallback",(e=>e.vvColor.fallback))),u.code.add(v`vec4 getColor() {
33
47
  float value = colorFeatureAttribute;
34
48
  if (isnan(value)) {
35
49
  return applyOpacity(vvColorFallback);
@@ -44,9 +58,9 @@ return applyOpacity(mix(vvColorColors[i-1], vvColorColors[i], f));
44
58
  }
45
59
  }
46
60
  return applyOpacity(vvColorColors[vvColorNumber - 1]);
47
- }`)):d.code.add(l`vec4 getColor(){
61
+ }`)):u.code.add(v`vec4 getColor(){
48
62
  return applyOpacity(vec4(1, 1, 1, 1));
49
- }`),d.code.add(l`vec3 decompressAxis(vec2 axis) {
63
+ }`),u.code.add(v`vec3 decompressAxis(vec2 axis) {
50
64
  float z = 1.0 - abs(axis.x) - abs(axis.y);
51
65
  return normalize(vec3(axis + sign(axis) * min(z, 0.0), z));
52
66
  }
@@ -55,14 +69,14 @@ vec2 size = getSize();
55
69
  vec3 origin = position;
56
70
  vec3 right = decompressAxis(profileRight);
57
71
  vec3 up = decompressAxis(profileUp);
58
- vec2 profileVertex = profileVertexAndNormal.xy * size;`),d.code.add(l`if(isCapVertex()) {
72
+ vec2 profileVertex = profileVertexAndNormal.xy * size;`),u.code.add(v`if(isCapVertex()) {
59
73
  float positionOffsetAlongProfilePlaneNormal = profileAuxData.x * size[0];
60
74
  vec3 forward = cross(up, right);
61
75
  vec3 offset = right * profileVertex.x + up * profileVertex.y + forward * positionOffsetAlongProfilePlaneNormal;
62
76
  return origin + offset;
63
77
  }
64
78
  vec2 rotationRight = vec2(profileAuxData.x, profileAuxData.y);
65
- float maxDistance = length(rotationRight);`),d.code.add(l`rotationRight = maxDistance > 0.0 ? normalize(rotationRight) : vec2(0, 0);
79
+ float maxDistance = length(rotationRight);`),u.code.add(v`rotationRight = maxDistance > 0.0 ? normalize(rotationRight) : vec2(0, 0);
66
80
  float rx = dot(profileVertex, rotationRight);
67
81
  if (abs(rx) > maxDistance) {
68
82
  vec2 rotationUp = vec2(-rotationRight.y, rotationRight.x);
@@ -71,7 +85,7 @@ profileVertex = rotationRight * maxDistance * sign(rx) + rotationUp * ry;
71
85
  }
72
86
  vec3 offset = right * profileVertex.x + up * profileVertex.y;
73
87
  return origin + offset;
74
- }`),d.code.add(l`vec3 localNormal() {
88
+ }`),u.code.add(v`vec3 localNormal() {
75
89
  vec3 right = decompressAxis(profileRight);
76
90
  vec3 up = decompressAxis(profileUp);
77
91
  vec3 normal = right * profileVertexAndNormal.z + up * profileVertexAndNormal.w;
@@ -80,4 +94,4 @@ vec3 forward = cross(up, right);
80
94
  normal += forward * profileAuxData.y;
81
95
  }
82
96
  return normal;
83
- }`)}class d extends c{constructor(){super(...arguments),this.size=e(1,1)}}export{f as PathVertexPosition,d as PathVertexPositionPassParameters};
97
+ }`)}class u extends n{constructor(){super(...arguments),this.size=e(1,1)}}export{d as PathVertexPosition,u as PathVertexPositionPassParameters};
@@ -2,34 +2,45 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{VisualVariables as i}from"../shading/VisualVariables.glsl.js";import{Float3PassUniform as e}from"../../shaderModules/Float3PassUniform.js";import{FloatPassUniform as a}from"../../shaderModules/FloatPassUniform.js";import{FloatsPassUniform as t}from"../../shaderModules/FloatsPassUniform.js";import{glsl as v}from"../../shaderModules/glsl.js";import{VertexAttribute as r}from"../../../lib/VertexAttribute.js";const o=8;function c(c,l){const{vertex:s,attributes:n}=c;s.uniforms.add(new a("intrinsicWidth",(i=>i.width))),l.vvSize?(n.add(r.SIZEFEATUREATTRIBUTE,"float"),s.uniforms.add(new e("vvSizeMinSize",(i=>i.vvSize.minSize)),new e("vvSizeMaxSize",(i=>i.vvSize.maxSize)),new e("vvSizeOffset",(i=>i.vvSize.offset)),new e("vvSizeFactor",(i=>i.vvSize.factor)),new e("vvSizeFallback",(i=>i.vvSize.fallback))),s.code.add(v`float getSize() {
5
+ import{VisualVariables as e}from"../shading/VisualVariables.glsl.js";import{Float3PassUniform as i}from"../../shaderModules/Float3PassUniform.js";import{FloatPassUniform as a}from"../../shaderModules/FloatPassUniform.js";import{FloatsPassUniform as t}from"../../shaderModules/FloatsPassUniform.js";import{glsl as r,If as v}from"../../shaderModules/glsl.js";import{VertexAttribute as o}from"../../../lib/VertexAttribute.js";const c=8;function l(l,s){const{vertex:n,attributes:p}=l;n.uniforms.add(new a("intrinsicWidth",(e=>e.width))),s.vvSize?(p.add(o.SIZEFEATUREATTRIBUTE,"float"),n.uniforms.add(new i("vvSizeMinSize",(e=>e.vvSize.minSize)),new i("vvSizeMaxSize",(e=>e.vvSize.maxSize)),new i("vvSizeOffset",(e=>e.vvSize.offset)),new i("vvSizeFactor",(e=>e.vvSize.factor)),new i("vvSizeFallback",(e=>e.vvSize.fallback))),n.code.add(r`float getSize() {
6
6
  if (isnan(sizeFeatureAttribute)) {
7
7
  return vvSizeFallback.x;
8
8
  }
9
9
  return intrinsicWidth * clamp(vvSizeOffset + sizeFeatureAttribute * vvSizeFactor, vvSizeMinSize, vvSizeMaxSize).x;
10
- }`)):(n.add(r.SIZE,"float"),s.code.add(v`float getSize(){
10
+ }`)):(p.add(o.SIZE,"float"),n.code.add(r`float getSize(){
11
11
  return intrinsicWidth * size;
12
- }`)),l.vvOpacity?(n.add(r.OPACITYFEATUREATTRIBUTE,"float"),s.constants.add("vvOpacityNumber","int",8),s.uniforms.add(new t("vvOpacityValues",(i=>i.vvOpacity.values),o),new t("vvOpacityOpacities",(i=>i.vvOpacity.opacityValues),o),new a("vvOpacityFallback",(i=>i.vvOpacity.fallback))),s.code.add(v`float interpolateOpacity(float value){
13
- if (isnan(value)) {
14
- return vvOpacityFallback;
15
- }
16
- if (value <= vvOpacityValues[0]) {
17
- return vvOpacityOpacities[0];
18
- }
19
- for (int i = 1; i < vvOpacityNumber; ++i) {
20
- if (vvOpacityValues[i] >= value) {
21
- float f = (value - vvOpacityValues[i-1]) / (vvOpacityValues[i] - vvOpacityValues[i-1]);
22
- return mix(vvOpacityOpacities[i-1], vvOpacityOpacities[i], f);
23
- }
24
- }
25
- return vvOpacityOpacities[vvOpacityNumber - 1];
26
- }
27
- vec4 applyOpacity( vec4 color ){
28
- return vec4(color.xyz, interpolateOpacity(opacityFeatureAttribute));
29
- }`)):s.code.add(v`vec4 applyOpacity( vec4 color ){
12
+ }`)),s.vvOpacity?(p.add(o.OPACITYFEATUREATTRIBUTE,"float"),n.constants.add("vvOpacityNumber","int",8),n.uniforms.add(new t("vvOpacityValues",(e=>e.vvOpacity.values),c),new t("vvOpacityOpacities",(e=>e.vvOpacity.opacityValues),c),new a("vvOpacityFallback",(e=>e.vvOpacity.fallback),{supportsNaN:!0})),n.code.add(r`
13
+ float interpolateOpacity(float value) {
14
+ if (value <= vvOpacityValues[0]) {
15
+ return vvOpacityOpacities[0];
16
+ }
17
+
18
+ for (int i = 1; i < vvOpacityNumber; ++i) {
19
+ if (vvOpacityValues[i] >= value) {
20
+ float f = (value - vvOpacityValues[i-1]) / (vvOpacityValues[i] - vvOpacityValues[i-1]);
21
+ return mix(vvOpacityOpacities[i-1], vvOpacityOpacities[i], f);
22
+ }
23
+ }
24
+
25
+ return vvOpacityOpacities[vvOpacityNumber - 1];
26
+ }
27
+
28
+ vec4 applyOpacity(vec4 color) {
29
+ if (isnan(opacityFeatureAttribute)) {
30
+ // If there is a color vv then it will already have taken care of applying the fallback
31
+ return ${v(s.vvColor,"color","vec4(color.rgb, vvOpacityFallback)")};
32
+ }
33
+
34
+ return vec4(color.rgb, interpolateOpacity(opacityFeatureAttribute));
35
+ }
36
+ `)):n.code.add(r`vec4 applyOpacity(vec4 color) {
30
37
  return color;
31
- }`),l.vvColor?(c.include(i,l),n.add(r.COLORFEATUREATTRIBUTE,"float"),s.code.add(v`vec4 getColor(){
32
- return applyOpacity(interpolateVVColor(colorFeatureAttribute));
33
- }`)):(n.add(r.COLOR,"vec4"),s.code.add(v`vec4 getColor(){
38
+ }`),s.vvColor?(l.include(e,s),p.add(o.COLORFEATUREATTRIBUTE,"float"),n.code.add(r`vec4 getColor() {
39
+ vec4 color = interpolateVVColor(colorFeatureAttribute);
40
+ if (isnan(color.r)) {
41
+ return vec4(0);
42
+ }
43
+ return applyOpacity(color);
44
+ }`)):(p.add(o.COLOR,"vec4"),n.code.add(r`vec4 getColor() {
34
45
  return applyOpacity(color);
35
- }`))}export{c as RibbonVertexPosition};
46
+ }`))}export{l as RibbonVertexPosition};
@@ -2,11 +2,15 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{DecodeSymbolColor as o}from"../../../collections/Component/Material/shader/DecodeSymbolColor.glsl.js";import{glsl as r}from"../../shaderModules/glsl.js";import{IntegerPassUniform as e}from"../../shaderModules/IntegerPassUniform.js";import{VertexAttribute as l}from"../../../lib/VertexAttribute.js";import{colorMixModes as d}from"../../../materials/internal/MaterialUtil.js";function i(i,t){t.hasSymbolColors?(i.include(o),i.attributes.add(l.SYMBOLCOLOR,"vec4"),i.varyings.add("colorMixMode","mediump float"),i.vertex.code.add(r`int symbolColorMixMode;
6
- vec4 getSymbolColor() {
7
- return decodeSymbolColor(symbolColor, symbolColorMixMode) * 0.003921568627451;
8
- }
9
- void forwardColorMixMode() {
10
- colorMixMode = float(symbolColorMixMode) + 0.5;
11
- }`)):(i.fragment.uniforms.add(new e("colorMixMode",(o=>d[o.colorMixMode]))),i.vertex.code.add(r`vec4 getSymbolColor() { return vec4(1.0); }
12
- void forwardColorMixMode() {}`))}export{i as SymbolColor};
5
+ import{MaskedColorDefinition as o,CreateMaskedFromUInt8NaNColor as r,MultiplyMaskedColors as e}from"./MaskedColor.glsl.js";import{glsl as l}from"../../shaderModules/glsl.js";import{IntegerPassUniform as d}from"../../shaderModules/IntegerPassUniform.js";import{VertexAttribute as i}from"../../../lib/VertexAttribute.js";import{colorMixModes as a}from"../../../materials/internal/MaterialUtil.js";function t(t,s){t.varyings.add("colorMixMode","int"),t.varyings.add("opacityMixMode","int"),t.vertex.uniforms.add(new d("symbolColorMixMode",(o=>a[o.colorMixMode]))),s.hasSymbolColors?(t.vertex.include(o),t.vertex.include(r),t.vertex.include(e),t.attributes.add(i.SYMBOLCOLOR,"vec4"),t.vertex.code.add(l`
6
+ MaskedColor applySymbolColor(MaskedColor color) {
7
+ return multiplyMaskedColors(color, createMaskedFromUInt8NaNColor(${i.SYMBOLCOLOR}));
8
+ }
9
+ `)):t.vertex.code.add(l`MaskedColor applySymbolColor(MaskedColor color) {
10
+ return color;
11
+ }`),t.vertex.code.add(l`
12
+ void forwardColorMixMode(bvec4 mask) {
13
+ colorMixMode = mask.r ? ${l.int(a.ignore)} : symbolColorMixMode;
14
+ opacityMixMode = mask.a ? ${l.int(a.ignore)} : symbolColorMixMode;
15
+ }
16
+ `)}export{t as SymbolColor};
@@ -2,5 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as o}from"../../shaderModules/glsl.js";import{VertexAttribute as r}from"../../../lib/VertexAttribute.js";function e(e,d){d.hasVertexColors?(e.attributes.add(r.COLOR,"vec4"),e.varyings.add("vColor","vec4"),e.vertex.code.add(o`void forwardVertexColor() { vColor = color; }`),e.vertex.code.add(o`void forwardNormalizedVertexColor() { vColor = color * 0.003921568627451; }`)):e.vertex.code.add(o`void forwardVertexColor() {}
5
+ import{glsl as o}from"../../shaderModules/glsl.js";import{VertexAttribute as r}from"../../../lib/VertexAttribute.js";function e(e,d){d.hasVertexColors?(e.attributes.add(r.COLOR,"vec4"),e.varyings.add("vColor","vec4"),e.vertex.code.add(o`void forwardVertexColor() { vColor = color; }`),e.vertex.code.add(o`
6
+ void forwardNormalizedVertexColor() { vColor = color * ${o.float(1/255)}; }
7
+ `)):e.vertex.code.add(o`void forwardVertexColor() {}
6
8
  void forwardNormalizedVertexColor() {}`)}export{e as VertexColor};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{s as e}from"../../../../../../chunks/vec42.js";import{create as r}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSizePerspective as l,addScreenSizePerspectiveAlignment as t}from"../util/ScreenSizePerspective.glsl.js";import{addCameraPosition as o}from"../util/View.glsl.js";import{Float4PassUniform as c}from"../../shaderModules/Float4PassUniform.js";import{glsl as i}from"../../shaderModules/glsl.js";function s(e,r){const c=e.vertex;r.hasVerticalOffset?(f(c),r.hasScreenSizePerspective&&(e.include(l),t(c),o(e.vertex,r)),c.code.add(i`
5
+ import{pt2px as e}from"../../../../../../core/screenUtils.js";import{s as r}from"../../../../../../chunks/vec42.js";import{create as t}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSizePerspective as l,addScreenSizePerspectiveAlignment as o}from"../util/ScreenSizePerspective.glsl.js";import{addCameraPosition as c}from"../util/View.glsl.js";import{Float4PassUniform as s}from"../../shaderModules/Float4PassUniform.js";import{glsl as i}from"../../shaderModules/glsl.js";class a{constructor(r){this.screenLength=e(r.screenLength),this.minWorldLength=r.minWorldLength??0,this.maxWorldLength=r.maxWorldLength??1/0}}function n(e,r){const t=e.vertex;r.hasVerticalOffset?(d(t),r.hasScreenSizePerspective&&(e.include(l),o(t),c(e.vertex,r)),t.code.add(i`
6
6
  vec3 calculateVerticalOffset(vec3 worldPos, vec3 localOrigin) {
7
7
  float viewDistance = length((view * vec4(worldPos, 1.0)).xyz);
8
8
  ${r.spherical?i`vec3 worldNormal = normalize(worldPos + localOrigin);`:i`vec3 worldNormal = vec3(0.0, 0.0, 1.0);`}
@@ -18,4 +18,4 @@ import{s as e}from"../../../../../../chunks/vec42.js";import{create as r}from"..
18
18
  vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) {
19
19
  return worldPos + calculateVerticalOffset(worldPos, localOrigin);
20
20
  }
21
- `)):c.code.add(i`vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) { return worldPos; }`)}const a=r();function f(r){r.uniforms.add(new c("verticalOffset",((r,l)=>{const{minWorldLength:t,maxWorldLength:o,screenLength:c}=r.verticalOffset,i=Math.tan(.5*l.camera.fovY)/(.5*l.camera.fullViewport[3]),s=l.camera.pixelRatio||1;return e(a,c*s,i,t,o)})))}export{s as VerticalOffset,f as addVerticalOffset};
21
+ `)):t.code.add(i`vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) { return worldPos; }`)}const f=t();function d(e){e.uniforms.add(new s("verticalOffset",((e,t)=>{const{minWorldLength:l,maxWorldLength:o,screenLength:c}=e.verticalOffset,s=Math.tan(.5*t.camera.fovY)/(.5*t.camera.fullViewport[3]),i=t.camera.pixelRatio||1;return r(f,c*i,s,l,o)})))}export{n as VerticalOffset,a as VerticalOffsetParameters,d as addVerticalOffset};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{Float3PassUniform as o}from"../../shaderModules/Float3PassUniform.js";import{Float4PassUniform as e}from"../../shaderModules/Float4PassUniform.js";import{Float4sPassUniform as r}from"../../shaderModules/Float4sPassUniform.js";import{FloatsPassUniform as v}from"../../shaderModules/FloatsPassUniform.js";import{glsl as t}from"../../shaderModules/glsl.js";import{Matrix3PassUniform as a}from"../../shaderModules/Matrix3PassUniform.js";import{VertexAttribute as i}from"../../../lib/VertexAttribute.js";import{vvColorNumber as l}from"../../../materials/VisualVariablePassParameters.js";function n(n,s){const{vertex:u,attributes:c}=n;s.hasVvInstancing&&(s.vvSize||s.vvColor)&&c.add(i.INSTANCEFEATUREATTRIBUTE,"vec4"),s.vvSize?(u.uniforms.add(new o("vvSizeMinSize",(o=>o.vvSize.minSize))),u.uniforms.add(new o("vvSizeMaxSize",(o=>o.vvSize.maxSize))),u.uniforms.add(new o("vvSizeOffset",(o=>o.vvSize.offset))),u.uniforms.add(new o("vvSizeFactor",(o=>o.vvSize.factor))),u.uniforms.add(new o("vvSizeFallback",(o=>o.vvSize.fallback))),u.uniforms.add(new a("vvSymbolRotationMatrix",(o=>o.vvSymbolRotationMatrix))),u.uniforms.add(new o("vvSymbolAnchor",(o=>o.vvSymbolAnchor))),u.code.add(t`vec3 vvScale(vec4 _featureAttribute) {
5
+ import{MaskedColorDefinition as o,MultiplyMaskedColors as r,CreateMaskedFromNaNColor as e}from"../attributes/MaskedColor.glsl.js";import{Float3PassUniform as v}from"../../shaderModules/Float3PassUniform.js";import{Float4PassUniform as a}from"../../shaderModules/Float4PassUniform.js";import{Float4sPassUniform as t}from"../../shaderModules/Float4sPassUniform.js";import{FloatsPassUniform as l}from"../../shaderModules/FloatsPassUniform.js";import{glsl as i}from"../../shaderModules/glsl.js";import{Matrix3PassUniform as s}from"../../shaderModules/Matrix3PassUniform.js";import{VertexAttribute as n}from"../../../lib/VertexAttribute.js";import{vvColorNumber as u}from"../../../materials/VisualVariablePassParameters.js";function c(c,m){const{vertex:d,attributes:f}=c;m.hasVvInstancing&&(m.vvSize||m.vvColor)&&f.add(n.INSTANCEFEATUREATTRIBUTE,"vec4"),m.vvSize?(d.uniforms.add(new v("vvSizeMinSize",(o=>o.vvSize.minSize))),d.uniforms.add(new v("vvSizeMaxSize",(o=>o.vvSize.maxSize))),d.uniforms.add(new v("vvSizeOffset",(o=>o.vvSize.offset))),d.uniforms.add(new v("vvSizeFactor",(o=>o.vvSize.factor))),d.uniforms.add(new v("vvSizeFallback",(o=>o.vvSize.fallback))),d.uniforms.add(new s("vvSymbolRotationMatrix",(o=>o.vvSymbolRotationMatrix))),d.uniforms.add(new v("vvSymbolAnchor",(o=>o.vvSymbolAnchor))),d.code.add(i`vec3 vvScale(vec4 _featureAttribute) {
6
6
  if (isnan(_featureAttribute.x)) {
7
7
  return vvSizeFallback;
8
8
  }
@@ -10,14 +10,14 @@ return clamp(vvSizeOffset + _featureAttribute.x * vvSizeFactor, vvSizeMinSize, v
10
10
  }
11
11
  vec4 vvTransformPosition(vec3 position, vec4 _featureAttribute) {
12
12
  return vec4(vvSymbolRotationMatrix * ( vvScale(_featureAttribute) * (position + vvSymbolAnchor)), 1.0);
13
- }`),u.code.add(t`
13
+ }`),d.code.add(i`
14
14
  const float eps = 1.192092896e-07;
15
15
  vec4 vvTransformNormal(vec3 _normal, vec4 _featureAttribute) {
16
16
  vec3 scale = max(vvScale(_featureAttribute), eps);
17
17
  return vec4(vvSymbolRotationMatrix * _normal / scale, 1.0);
18
18
  }
19
19
 
20
- ${s.hasVvInstancing?t`
20
+ ${m.hasVvInstancing?i`
21
21
  vec4 vvLocalNormal(vec3 _normal) {
22
22
  return vvTransformNormal(_normal, instanceFeatureAttribute);
23
23
  }
@@ -25,8 +25,8 @@ return vec4(vvSymbolRotationMatrix * ( vvScale(_featureAttribute) * (position +
25
25
  vec4 localPosition() {
26
26
  return vvTransformPosition(position, instanceFeatureAttribute);
27
27
  }`:""}
28
- `)):u.code.add(t`vec4 localPosition() { return vec4(position, 1.0); }
29
- vec4 vvLocalNormal(vec3 _normal) { return vec4(_normal, 1.0); }`),s.vvColor?(u.constants.add("vvColorNumber","int",l),u.uniforms.add(new v("vvColorValues",(o=>o.vvColor.values),l),new r("vvColorColors",(o=>o.vvColor.colors),l),new e("vvColorFallback",(o=>o.vvColor.fallback))),u.code.add(t`
28
+ `)):d.code.add(i`vec4 localPosition() { return vec4(position, 1.0); }
29
+ vec4 vvLocalNormal(vec3 _normal) { return vec4(_normal, 1.0); }`),c.vertex.include(o),m.vvColor?(d.constants.add("vvColorNumber","int",u),d.uniforms.add(new l("vvColorValues",(o=>o.vvColor.values),u),new t("vvColorColors",(o=>o.vvColor.colors),u),new a("vvColorFallback",(o=>o.vvColor.fallback),{supportsNaN:!0})),m.hasVvInstancing&&(c.vertex.include(r),c.vertex.include(e)),d.code.add(i`
30
30
  vec4 interpolateVVColor(float value) {
31
31
  if (isnan(value)) {
32
32
  return vvColorFallback;
@@ -49,8 +49,26 @@ vec4 vvLocalNormal(vec3 _normal) { return vec4(_normal, 1.0); }`),s.vvColor?(u.c
49
49
  return interpolateVVColor(featureAttribute.y);
50
50
  }
51
51
 
52
- ${s.hasVvInstancing?t`
52
+ ${m.hasVvInstancing?i`
53
53
  vec4 vvColor() {
54
54
  return vvGetColor(instanceFeatureAttribute);
55
- }`:"vec4 vvColor() { return vec4(1.0); }"}
56
- `)):u.code.add(t`vec4 vvColor() { return vec4(1.0); }`)}export{n as VisualVariables};
55
+ }
56
+
57
+ MaskedColor applyVVColor(MaskedColor color) {
58
+ return multiplyMaskedColors(color, createMaskedFromNaNColor(vvColor()));
59
+ }
60
+ `:i`
61
+ vec4 vvColor() {
62
+ return vec4(1.0);
63
+ }
64
+
65
+ MaskedColor applyVVColor(MaskedColor color) {
66
+ return color;
67
+ }
68
+ `}
69
+ `)):d.code.add(i`vec4 vvColor() {
70
+ return vec4(1.0);
71
+ }
72
+ MaskedColor applyVVColor(MaskedColor color) {
73
+ return color;
74
+ }`)}export{c as VisualVariables};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o){super(e,"vec2",r.Bind,((r,s)=>r.setUniform2fv(e,o(s))))}}export{o as Float2BindUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o,s){super(e,"vec2",r.Bind,((r,t)=>r.setUniform2fv(e,o(t),s)))}}export{o as Float2BindUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o){super(e,"vec2",r.Draw,((r,s,t,m)=>r.setUniform2fv(e,o(s,t,m))))}}export{o as Float2DrawUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o,s){super(e,"vec2",r.Draw,((r,t,m,f)=>r.setUniform2fv(e,o(t,m,f),s)))}}export{o as Float2DrawUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as s}from"../../../../webgl/Uniform.js";class e extends s{constructor(s,e){super(s,"vec2",r.Pass,((r,o,t)=>r.setUniform2fv(s,e(o,t))))}}export{e as Float2PassUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as s}from"../../../../webgl/Uniform.js";class e extends s{constructor(s,e,o){super(s,"vec2",r.Pass,((r,t,m)=>r.setUniform2fv(s,e(t,m),o)))}}export{e as Float2PassUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o){super(e,"vec3",r.Bind,((r,s)=>r.setUniform3fv(e,o(s))))}}export{o as Float3BindUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o,s){super(e,"vec3",r.Bind,((r,t)=>r.setUniform3fv(e,o(t),s)))}}export{o as Float3BindUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o){super(e,"vec3",r.Draw,((r,s,t,m)=>r.setUniform3fv(e,o(s,t,m))))}}export{o as Float3DrawUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o,s){super(e,"vec3",r.Draw,((r,t,m,f)=>r.setUniform3fv(e,o(t,m,f),s)))}}export{o as Float3DrawUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as s}from"../../../../webgl/Uniform.js";class e extends s{constructor(s,e){super(s,"vec3",r.Pass,((r,o,t)=>r.setUniform3fv(s,e(o,t))))}}export{e as Float3PassUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as s}from"../../../../webgl/Uniform.js";class e extends s{constructor(s,e,o){super(s,"vec3",r.Pass,((r,t,m)=>r.setUniform3fv(s,e(t,m),o)))}}export{e as Float3PassUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o){super(e,"vec4",r.Bind,((r,s)=>r.setUniform4fv(e,o(s))))}}export{o as Float4BindUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o,s){super(e,"vec4",r.Bind,((r,t)=>r.setUniform4fv(e,o(t),s)))}}export{o as Float4BindUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o){super(e,"vec4",r.Draw,((r,s,t)=>r.setUniform4fv(e,o(s,t))))}}export{o as Float4DrawUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o,s){super(e,"vec4",r.Draw,((r,t,m)=>r.setUniform4fv(e,o(t,m),s)))}}export{o as Float4DrawUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as s}from"../../../../webgl/Uniform.js";class e extends s{constructor(s,e){super(s,"vec4",r.Pass,((r,o,t)=>r.setUniform4fv(s,e(o,t))))}}export{e as Float4PassUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as s}from"../../../../webgl/Uniform.js";class e extends s{constructor(s,e,o){super(s,"vec4",r.Pass,((r,t,m)=>r.setUniform4fv(s,e(t,m),o)))}}export{e as Float4PassUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as s}from"../../../../webgl/Uniform.js";class e extends s{constructor(s,e,o){super(s,"vec4",r.Pass,((r,o,t)=>r.setUniform4fv(s,e(o,t))),o)}}export{e as Float4sPassUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as s}from"../../../../webgl/Uniform.js";class e extends s{constructor(s,e,o,t){super(s,"vec4",r.Pass,((r,o,m)=>r.setUniform4fv(s,e(o,m),t)),o)}}export{e as Float4sPassUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as o}from"../../../../webgl/BindType.js";import{Uniform as r}from"../../../../webgl/Uniform.js";class e extends r{constructor(r,e){super(r,"float",o.Bind,((o,s)=>o.setUniform1f(r,e(s))))}}export{e as FloatBindUniform};
5
+ import{BindType as o}from"../../../../webgl/BindType.js";import{Uniform as r}from"../../../../webgl/Uniform.js";class e extends r{constructor(r,e,s){super(r,"float",o.Bind,((o,t)=>o.setUniform1f(r,e(t),s)))}}export{e as FloatBindUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as o}from"../../../../webgl/Uniform.js";class e extends o{constructor(o,e){super(o,"float",r.Draw,((r,s,t)=>r.setUniform1f(o,e(s,t))))}}export{e as FloatDrawUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as o}from"../../../../webgl/Uniform.js";class e extends o{constructor(o,e,s){super(o,"float",r.Draw,((r,t,f)=>r.setUniform1f(o,e(t,f),s)))}}export{e as FloatDrawUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as o}from"../../../../webgl/BindType.js";import{Uniform as r}from"../../../../webgl/Uniform.js";class s extends r{constructor(r,s){super(r,"float",o.Pass,((o,e,t)=>o.setUniform1f(r,s(e,t))))}}export{s as FloatPassUniform};
5
+ import{BindType as o}from"../../../../webgl/BindType.js";import{Uniform as r}from"../../../../webgl/Uniform.js";class s extends r{constructor(r,s,e){super(r,"float",o.Pass,((o,t,f)=>o.setUniform1f(r,s(t,f),e)))}}export{s as FloatPassUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as o}from"../../../../webgl/BindType.js";import{Uniform as r}from"../../../../webgl/Uniform.js";class s extends r{constructor(r,s,e){super(r,"float",o.Pass,((o,e,t)=>o.setUniform1fv(r,s(e,t))),e)}}export{s as FloatsPassUniform};
5
+ import{BindType as o}from"../../../../webgl/BindType.js";import{Uniform as r}from"../../../../webgl/Uniform.js";class s extends r{constructor(r,s,e,t){super(r,"float",o.Pass,((o,e,f)=>o.setUniform1fv(r,s(e,f),t)),e)}}export{s as FloatsPassUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as o}from"../../../../webgl/Uniform.js";class t extends o{constructor(o,t){super(o,"mat3",r.Draw,((r,e,s)=>r.setUniformMatrix3fv(o,t(e,s))))}}export{t as Matrix3DrawUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as o}from"../../../../webgl/Uniform.js";class t extends o{constructor(o,t,e){super(o,"mat3",r.Draw,((r,s,m)=>r.setUniformMatrix3fv(o,t(s,m),e)))}}export{t as Matrix3DrawUniform};