@arcgis/core 4.24.0-next.20220401 → 4.24.0-next.20220404

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 (157) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/{c665e9b7d09fe516f138.js → 2fe10c5c01056babeae5.js} +1 -1
  3. package/assets/esri/core/workers/chunks/{8771296b537f366596c4.js → 37aa4532e25d54055e40.js} +54 -54
  4. package/assets/esri/core/workers/chunks/528033aa0d663b4d41bf.js +1 -0
  5. package/assets/esri/core/workers/chunks/{0e29250c24a3a7b1ce13.js → 6de5a790c14f04c6c302.js} +1 -1
  6. package/assets/esri/core/workers/chunks/b1188ca77b975c6a7d92.js +1 -0
  7. package/chunks/BlendLayers.glsl.js +1 -1
  8. package/chunks/DefaultMaterial.glsl.js +26 -26
  9. package/chunks/HUDMaterial.glsl.js +37 -37
  10. package/chunks/HighlightDownsample.glsl.js +1 -1
  11. package/chunks/ImageMaterial.glsl.js +10 -10
  12. package/chunks/LineMarker.glsl.js +75 -32
  13. package/chunks/RealisticTree.glsl.js +26 -26
  14. package/chunks/SMAA.glsl.js +2 -2
  15. package/chunks/SSAO.glsl.js +2 -2
  16. package/chunks/SimpleAtmosphere.glsl.js +10 -10
  17. package/chunks/TextureOnly.glsl.js +2 -2
  18. package/core/accessorSupport/Property.js +1 -1
  19. package/interfaces.d.ts +25 -7
  20. package/package.json +1 -1
  21. package/smartMapping/renderers/color.js +1 -1
  22. package/smartMapping/renderers/dotDensity.js +1 -1
  23. package/smartMapping/renderers/heatmap.js +1 -1
  24. package/smartMapping/renderers/location.js +1 -1
  25. package/smartMapping/renderers/predominance.js +1 -1
  26. package/smartMapping/renderers/relationship.js +1 -1
  27. package/smartMapping/renderers/size.js +1 -1
  28. package/smartMapping/renderers/type.js +1 -1
  29. package/smartMapping/symbology/color.js +1 -1
  30. package/smartMapping/symbology/dotDensity.js +1 -1
  31. package/smartMapping/symbology/flow.js +1 -1
  32. package/smartMapping/symbology/heatmap.js +1 -1
  33. package/smartMapping/symbology/location.js +1 -1
  34. package/smartMapping/symbology/predominance.js +1 -1
  35. package/smartMapping/symbology/relationship.js +1 -1
  36. package/smartMapping/symbology/size.js +1 -1
  37. package/smartMapping/symbology/type.js +1 -1
  38. package/support/revision.js +1 -1
  39. package/views/2d/engine/Stage.js +1 -1
  40. package/views/2d/engine/flow/BrushFlow.js +1 -1
  41. package/views/2d/engine/imagery/BrushRasterBitmap.js +1 -1
  42. package/views/2d/engine/imagery/BrushVectorField.js +1 -1
  43. package/views/2d/engine/vectorTiles/VectorTileRendererHelper3D.js +1 -1
  44. package/views/2d/engine/webgl/Painter.js +1 -1
  45. package/views/2d/engine/webgl/brushes/BrushBitmap.js +1 -1
  46. package/views/2d/engine/webgl/brushes/BrushClip.js +1 -1
  47. package/views/2d/engine/webgl/brushes/WGLBrushInfo.js +1 -1
  48. package/views/2d/engine/webgl/brushes/WGLBrushStencil.js +1 -1
  49. package/views/2d/engine/webgl/brushes/WGLBrushVTLBackground.js +1 -1
  50. package/views/2d/engine/webgl/brushes/WGLBrushVTLCircle.js +1 -1
  51. package/views/2d/engine/webgl/brushes/WGLBrushVTLFill.js +1 -1
  52. package/views/2d/engine/webgl/brushes/WGLBrushVTLLine.js +1 -1
  53. package/views/2d/engine/webgl/brushes/WGLBrushVTLSymbol.js +1 -1
  54. package/views/2d/engine/webgl/brushes/WGLGeometryBrushFill.js +1 -1
  55. package/views/2d/engine/webgl/brushes/WGLGeometryBrushLabel.js +1 -1
  56. package/views/2d/engine/webgl/brushes/WGLGeometryBrushLine.js +1 -1
  57. package/views/2d/engine/webgl/brushes/WGLGeometryBrushMarker.js +1 -1
  58. package/views/2d/engine/webgl/brushes/WGLGeometryBrushText.js +1 -1
  59. package/views/2d/engine/webgl/effects/post-processing/EffectManager.js +1 -1
  60. package/views/3d/environment/CloudsComposition.js +1 -1
  61. package/views/3d/environment/PanoramicAtmosphere.js +1 -1
  62. package/views/3d/environment/SimpleAtmosphere.glsl.js +1 -1
  63. package/views/3d/environment/SimpleAtmosphere.js +1 -1
  64. package/views/3d/environment/SimpleAtmosphereTechnique.js +1 -1
  65. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  66. package/views/3d/terrain/TerrainRenderer.js +1 -1
  67. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  68. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  69. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  70. package/views/3d/webgl-engine/core/material/MaterialBase.js +1 -1
  71. package/views/3d/webgl-engine/core/material/RenderTexture.js +1 -1
  72. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +6 -6
  73. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTextureCoordinates.glsl.js +6 -6
  74. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +3 -3
  75. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +5 -5
  76. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +12 -12
  77. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js +7 -7
  78. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js +4 -9
  79. package/views/3d/webgl-engine/core/shaderModules/BooleanUniform.js +1 -1
  80. package/views/3d/webgl-engine/core/shaderModules/Float2Uniform.js +1 -1
  81. package/views/3d/webgl-engine/core/shaderModules/Float4Uniform.js +1 -1
  82. package/views/3d/webgl-engine/core/shaderModules/Float4sUniform.js +1 -1
  83. package/views/3d/webgl-engine/core/shaderModules/FloatUniform.js +1 -1
  84. package/views/3d/webgl-engine/core/shaderModules/FloatsUniform.js +1 -1
  85. package/views/3d/webgl-engine/core/shaderModules/IntegerUniform.js +1 -1
  86. package/views/3d/webgl-engine/core/shaderModules/Matrix3Uniform.js +1 -1
  87. package/views/3d/webgl-engine/core/shaderModules/Texture2DUniform.js +1 -1
  88. package/views/3d/webgl-engine/core/shaderModules/Uniform.js +1 -1
  89. package/views/3d/webgl-engine/core/shaderTechnique/BindType.js +1 -1
  90. package/views/3d/webgl-engine/lib/GLTextureMaterial.js +1 -1
  91. package/views/3d/webgl-engine/lib/Program.js +1 -1
  92. package/views/3d/webgl-engine/lighting/SceneLighting.js +1 -1
  93. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  94. package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
  95. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  96. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  97. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  98. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  99. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  100. package/views/3d/webgl-engine/parts/ScreenshotManager.js +1 -1
  101. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  102. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  103. package/views/3d/webgl-engine/shaders/DefaultMaterialTechniqueConfiguration.js +1 -1
  104. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  105. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  106. package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
  107. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  108. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  109. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  110. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  111. package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
  112. package/views/MapView.js +1 -1
  113. package/views/SceneView.js +1 -1
  114. package/views/support/DefaultsFromMap.js +1 -1
  115. package/views/support/screenshotUtils.js +1 -1
  116. package/widgets/Editor.js +1 -1
  117. package/assets/esri/core/workers/chunks/5682039666f874836451.js +0 -1
  118. package/assets/esri/core/workers/chunks/79bdb26244ec7b4472fe.js +0 -1
  119. package/chunks/color.js +0 -5
  120. package/chunks/dotDensity.js +0 -5
  121. package/chunks/heatmap.js +0 -5
  122. package/chunks/location.js +0 -5
  123. package/chunks/predominance.js +0 -5
  124. package/chunks/relationship.js +0 -5
  125. package/chunks/size.js +0 -5
  126. package/chunks/type.js +0 -5
  127. package/renderers/smartMapping/creators/color.js +0 -5
  128. package/renderers/smartMapping/creators/dotDensity.js +0 -5
  129. package/renderers/smartMapping/creators/heatmap.js +0 -5
  130. package/renderers/smartMapping/creators/location.js +0 -5
  131. package/renderers/smartMapping/creators/opacity.js +0 -5
  132. package/renderers/smartMapping/creators/predominance.js +0 -5
  133. package/renderers/smartMapping/creators/relationship.js +0 -5
  134. package/renderers/smartMapping/creators/size.js +0 -5
  135. package/renderers/smartMapping/creators/support/utils.js +0 -5
  136. package/renderers/smartMapping/creators/type.js +0 -5
  137. package/renderers/smartMapping/creators/univariateColorSize.js +0 -5
  138. package/renderers/smartMapping/heuristics/scaleRange.js +0 -5
  139. package/renderers/smartMapping/heuristics/sizeRange.js +0 -5
  140. package/renderers/smartMapping/statistics/classBreaks.js +0 -5
  141. package/renderers/smartMapping/statistics/heatmapStatistics.js +0 -5
  142. package/renderers/smartMapping/statistics/histogram.js +0 -5
  143. package/renderers/smartMapping/statistics/predominantCategories.js +0 -5
  144. package/renderers/smartMapping/statistics/summaryStatistics.js +0 -5
  145. package/renderers/smartMapping/statistics/summaryStatisticsForAge.js +0 -5
  146. package/renderers/smartMapping/statistics/support/ageUtils.js +0 -5
  147. package/renderers/smartMapping/statistics/uniqueValues.js +0 -5
  148. package/renderers/smartMapping/symbology/color.js +0 -5
  149. package/renderers/smartMapping/symbology/dotDensity.js +0 -5
  150. package/renderers/smartMapping/symbology/heatmap.js +0 -5
  151. package/renderers/smartMapping/symbology/location.js +0 -5
  152. package/renderers/smartMapping/symbology/predominance.js +0 -5
  153. package/renderers/smartMapping/symbology/relationship.js +0 -5
  154. package/renderers/smartMapping/symbology/size.js +0 -5
  155. package/renderers/smartMapping/symbology/support/colorRamps.js +0 -5
  156. package/renderers/smartMapping/symbology/support/utils.js +0 -5
  157. package/renderers/smartMapping/symbology/type.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import"../../Color.js";import"./support/colors.js";import"./support/symbologyUtils.js";export{c as cloneScheme,b as getSchemeByName,g as getSchemes,d as getSchemesByTag,a as getThemes}from"../../chunks/heatmap.js";
5
+ import e from"../../Color.js";import a from"./support/colors.js";import{createThemes as r,getThemesforBasemap as l,getRawSchemes as t,filterSchemesByName as o,filterSchemesByTag as n}from"./support/symbologyUtils.js";const m=r({themeDictionary:{default:{name:"default",label:"Default",description:"Default theme for visualizing features using heatmap.",schemes:{default:{light:{primary:"neutral-white-blue",secondary:["heatmap-v1","heatmap-v2","heatmap-v3","neutral-yellow-orange","neutral-yellow-green","neutral-yellow-purple","neutral-yellow-magenta","neutral-white-blue-metal","neutral-white-gold","neutral-yellow-bronze","heatmap-v4","dark-yellow-orange","dark-yellow-green","dark-yellow-purple","dark-yellow-magenta","dark-white-blue","dark-white-blue-metal","dark-white-gold","dark-yellow-bronze"]},dark:{primary:"dark-white-blue",secondary:["dark-yellow-orange","dark-yellow-green","dark-yellow-purple","dark-yellow-magenta","dark-white-blue-metal","dark-white-gold","dark-yellow-bronze","heatmap-v1","heatmap-v2","heatmap-v3","heatmap-v4","neutral-yellow-orange","neutral-yellow-green","neutral-yellow-purple","neutral-yellow-magenta","neutral-white-blue","neutral-white-blue-metal","neutral-white-gold","neutral-yellow-bronze"]}}}}}});function u(e){return l(m,e)}function s(e){const a="default",r=t({basemap:e.basemap,basemapTheme:e.basemapTheme,theme:m.get(a)});if(!r)return;const{schemesInfo:l,basemapId:o,basemapTheme:n}=r,u=`${a}/${o}/`;return{primaryScheme:y(l.primary,u+l.primary),secondarySchemes:l.secondary.map((e=>y(e,u+e))).filter(Boolean),basemapId:o,basemapTheme:n}}function i(e){return o(e.name,s(e))}function p(e){return n(e.includedTags,e.excludedTags,s(e))}function d(a){if(!a)return;const r={...a};return r.colors=r.colors.map((a=>new e(a))),r.tags=[...r.tags],r}function y(e,r){const l=a[e];if(l)return w({id:r,name:l.name,tags:l.tags,colors:l.stops,opacity:.7})}function w(a){return{id:a.id,name:a.name,tags:[...a.tags],colors:a.colors.map((a=>new e(a))),opacity:a.opacity}}export{d as cloneScheme,i as getSchemeByName,s as getSchemes,p as getSchemesByTag,u as getThemes};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import"../../Color.js";import"./support/symbologyUtils.js";import"./support/utils.js";export{c as cloneScheme,g as getSchemes,a as getThemes}from"../../chunks/location.js";
5
+ import o from"../../Color.js";import{createThemes as e,getThemesforBasemap as i,getRawSchemes as t}from"./support/symbologyUtils.js";import{toWorldScale as r}from"./support/utils.js";const l=e({themeDictionary:{default:{name:"default",label:"Default",description:"Default theme for basic visualization of features.",schemes:{point:{light:{primary:{color:[77,77,77,1],outline:{color:[255,255,255,.25],width:"1px"},size:"8px"},secondary:[{color:[226,119,40,1],outline:{color:[255,255,255,.25],width:"1px"},size:"8px"},{color:[255,255,255,1],outline:{color:[51,51,51,.25],width:"1px"},size:"8px"}]},dark:{primary:{color:[255,255,255,1],outline:{color:[92,92,92,.25],width:"1px"},size:"8px"},secondary:[{color:[226,119,40,1],outline:{color:[255,255,255,.25],width:"1px"},size:"8px"},{color:[26,26,26,1],outline:{color:[178,178,178,.25],width:"1px"},size:"8px"}]}},polyline:{light:{primary:{color:[77,77,77,1],width:"2px"},secondary:[{color:[226,119,40,1],width:"2px"},{color:[255,255,255,1],width:"2px"}]},dark:{primary:{color:[255,255,255,1],width:"2px"},secondary:[{color:[226,119,40,1],width:"2px"},{color:[26,26,26,1],width:"2px"}]}},polygon:{light:{primary:{size:"12px",color:[227,139,79,1],outline:{color:[255,255,255,.25],width:"1px"},opacity:.8},secondary:[{size:"12px",color:[128,128,128,1],outline:{color:[255,255,255,.25],width:"1px"},opacity:.8},{size:"12px",color:[255,255,255,1],outline:{color:[128,128,128,.25],width:"1px"},opacity:.8}]},dark:{primary:{size:"12px",color:[227,139,79,1],outline:{color:[92,92,92,.25],width:"1px"},opacity:.8},secondary:[{size:"12px",color:[178,178,178,1],outline:{color:[92,92,92,.25],width:"1px"},opacity:.8},{size:"12px",color:[26,26,26,1],outline:{color:[128,128,128,.25],width:"1px"},opacity:.8}]}}}}}});function c(o){return i(l,o)}function n(o){const e="default",i=t({basemap:o.basemap,geometryType:o.geometryType,basemapTheme:o.basemapTheme,theme:l.get(e)});if(!i)return;const{schemesInfo:r,basemapId:c,basemapTheme:n}=i;return{primaryScheme:s(o,r.primary),secondarySchemes:r.secondary.map((e=>s(o,e))).filter(Boolean),basemapId:c,basemapTheme:n}}function p(e){if(!e)return;const i={...e};return i.color&&(i.color=new o(i.color)),"outline"in i&&i.outline&&(i.outline={color:i.outline.color&&new o(i.outline.color),width:i.outline.width}),i}function s(o,e){const i="mesh"!==o.geometryType&&o.worldScale?o.view:null;switch(o.geometryType){case"point":case"multipoint":{const o=e;return a({color:o.color,outline:{...o.outline},size:o.size},i)}case"polyline":{const o=e;return u({color:o.color,width:o.width},i)}case"polygon":{const o=e;return d({size:o.size,color:o.color,outline:{...o.outline},opacity:o.opacity},i)}case"mesh":{const o=e;return y({color:o.color,opacity:o.opacity})}}}function a(e,i){return{color:new o(e.color),outline:{color:new o(e.outline.color),width:e.outline.width},size:i?r(e.size,i):e.size,opacity:1}}function u(e,i){return{color:new o(e.color),width:i?r(e.width,i):e.width,opacity:1}}function d(e,i){return{color:new o(e.color),outline:{color:new o(e.outline.color),width:e.outline.width},size:i?r(e.size,i):e.size,opacity:e.opacity}}function y(e){return{color:new o(e.color),opacity:e.opacity}}export{p as cloneScheme,n as getSchemes,c as getThemes};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import"../../Color.js";import"../../chunks/size.js";import"./support/colors.js";import"./support/symbologyUtils.js";import"./support/utils.js";export{c as cloneScheme,b as getSchemeByName,g as getSchemes,d as getSchemesByTag,a as getThemes}from"../../chunks/predominance.js";
5
+ import e from"../../Color.js";import{getSchemes as o,cloneScheme as n}from"./size.js";import a from"./support/colors.js";import{createThemes as r,getThemesforBasemap as t,getRawSchemes as i,filterSchemesByName as c,filterSchemesByTag as m}from"./support/symbologyUtils.js";import{toWorldScale as s}from"./support/utils.js";const p={light:{color:[153,153,153,.25],width:"1px"},dark:{color:[153,153,153,.25],width:"1px"},darker:{color:[26,26,26,.25],width:"1px"}},l="#aaaaaa",d=["tropical-bliss","desert-blooms","under-the-sea","vibrant-rainbow","ocean-bay","prairie-summer","pastel-chalk"],u=["cat-symbols-strong","cat-symbols-autumnal","cat-symbols-bright","cat-symbols-midrange","cat-symbols-subdued","cat-symbols-pastel","cat-symbols-red","cat-symbols-blue","cat-symbols-green","cat-symbols-gray"],y=r({themeDictionary:{default:{name:"default",label:"Default",description:"Default theme for visualizing features by their predominant category.",schemes:{point:{light:{common:{noDataColor:l,outline:p.light,size:"8px"},primary:"predominant-v1",secondary:["predominant-v2","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"].concat(u).concat(d)},dark:{common:{noDataColor:l,outline:p.darker,size:"8px"},primary:"predominant-v2",secondary:["predominant-v1","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"].concat(u).concat(d)}},polyline:{light:{common:{noDataColor:l,width:"2px"},primary:"predominant-v1",secondary:["predominant-v2","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"].concat(u).concat(d)},dark:{common:{noDataColor:l,width:"2px"},primary:"predominant-v2",secondary:["predominant-v1","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"].concat(u).concat(d)}},polygon:{light:{common:{noDataColor:l,outline:p.light,fillOpacity:.8,markerSize:"8px"},primary:"predominant-v1",secondary:["predominant-v2","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"].concat(u).concat(d)},dark:{common:{noDataColor:l,outline:p.dark,fillOpacity:.8,markerSize:"8px"},primary:"predominant-v2",secondary:["predominant-v1","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"].concat(u).concat(d)}}}}}});function h(e){return t(y,e)}function g(e){const n="default",a=i({basemap:e.basemap,geometryType:e.geometryType,basemapTheme:e.basemapTheme,theme:y.get(n)});if(!a)return;const{schemesInfo:r,basemapId:t,basemapTheme:c}=a,m=r.common,s=o({basemap:e.basemap,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view}),p=s&&s.primaryScheme;return{primaryScheme:f(e,r.primary,m,p),secondarySchemes:r.secondary.map((o=>f(e,o,m,p))).filter(Boolean),basemapId:t,basemapTheme:c}}function w(e){return c(e.name,g(e))}function b(e){return m(e.includedTags,e.excludedTags,g(e))}function v(o){if(!o)return;const a={...o};return a.colors=a.colors.map((o=>new e(o))),a.tags=[...a.tags],a.noDataColor&&(a.noDataColor=new e(a.noDataColor)),"outline"in a&&a.outline&&(a.outline={color:a.outline.color&&new e(a.outline.color),width:a.outline.width}),"sizeScheme"in a&&a.sizeScheme&&(a.sizeScheme=n(a.sizeScheme)),a}function f(e,o,n,r){const t=a[o];if(!t)return;const i=t[e.numColors]||t.stops,c="mesh"!==e.geometryType&&e.worldScale?e.view:null;switch(e.geometryType){case"point":case"multipoint":{const e=n;return z({name:t.name,tags:t.tags,colors:i,noDataColor:e.noDataColor,opacity:1,sizeScheme:r,outline:e.outline,size:e.size},c)}case"polyline":{const e=n;return D({name:t.name,tags:t.tags,colors:i,noDataColor:e.noDataColor,opacity:1,sizeScheme:r,width:e.width},c)}case"polygon":{const e=n,o=r;o&&o.marker&&null!=e.markerSize&&(o.marker.size=e.markerSize);return C({name:t.name,tags:t.tags,colors:i,noDataColor:e.noDataColor,opacity:e.fillOpacity,outline:e.outline,sizeScheme:o},c)}case"mesh":{const e=n;return S({name:t.name,tags:t.tags,colors:i,noDataColor:e.noDataColor,opacity:e.fillOpacity})}default:return}}function z(o,n){return{name:o.name,tags:[...o.tags],colors:o.colors.map((o=>new e(o))),noDataColor:new e(o.noDataColor),outline:{color:new e(o.outline.color),width:o.outline.width},size:n?s(o.size,n):o.size,sizeScheme:o.sizeScheme,opacity:o.opacity}}function D(o,n){return{name:o.name,tags:[...o.tags],colors:o.colors.map((o=>new e(o))),noDataColor:new e(o.noDataColor),width:n?s(o.width,n):o.width,sizeScheme:o.sizeScheme,opacity:o.opacity}}function C(o,n){const{sizeScheme:a}=o;return a.marker.size=n?s(a.marker.size,n):a.marker.size,{name:o.name,tags:[...o.tags],colors:o.colors.map((o=>new e(o))),noDataColor:new e(o.noDataColor),outline:{color:new e(o.outline.color),width:o.outline.width},sizeScheme:a,opacity:o.opacity}}function S(o){return{name:o.name,tags:[...o.tags],colors:o.colors.map((o=>new e(o))),noDataColor:new e(o.noDataColor),opacity:o.opacity}}export{v as cloneScheme,w as getSchemeByName,g as getSchemes,b as getSchemesByTag,h as getThemes};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import"../../Color.js";import"../../core/lang.js";import"./support/colors.js";import"./support/symbologyUtils.js";import"./support/utils.js";export{c as cloneScheme,f as flatten2DArray,h as flipColors,g as getColors,i as getMatchingSchemes,d as getSchemeByName,a as getSchemes,e as getSchemesByTag,b as getThemes}from"../../chunks/relationship.js";
5
+ import e from"../../Color.js";import{clone as o}from"../../core/lang.js";import r from"./support/colors.js";import{createThemes as a,getThemesforBasemap as n,getRawSchemes as l,filterSchemesByName as s,filterSchemesByTag as t}from"./support/symbologyUtils.js";import{toWorldScale as i,hasIdenticalColors as p}from"./support/utils.js";const u={light:{color:[153,153,153,.25],width:"1px"},dark:{color:[153,153,153,.25],width:"1px"},darker:{color:[26,26,26,.25],width:"1px"}},c={lightBasemaps:{primary:"relationship-blue-orange-brown",secondary:["relationship-brewer-yellow-blue-black","relationship-brewer-pink-blue-purple","relationship-purple-green-blue","relationship-blue-green-purple","relationship-blue-orange-green","relationship-mustard-blue-wine","relationship-pink-blue-purple","relationship-olive-blue-green","relationship-yellow-cyan-blue","relationship-blue-pink-purple","relationship-purple-green-wine","relationship-blue-peach-purple","relationship-mint-mustard-green","relationship-purple-mustard-darkpurple","relationship-blue-orange-purple","relationship-pink-periwinkle-violet","relationship-blue-tan-green","relationship-blue-red-pink","relationship-blue-green-brightgreen","relationship-blue-orange-lavender","relationship-pink-purple-peach","relationship-purple-mustard-eggshell","relationship-blue-brick-green","relationship-orange-purple-lavender","relationship-brown-purple-lilac","relationship-teal-yellow-lightteal"]},darkBasemaps:{primary:"relationship-blue-green-brightgreen",secondary:["relationship-blue-red-pink","relationship-blue-orange-lavender","relationship-pink-purple-peach","relationship-purple-mustard-eggshell","relationship-blue-brick-green","relationship-orange-purple-lavender","relationship-brown-purple-lilac","relationship-teal-yellow-lightteal","relationship-blue-orange-brown","relationship-brewer-yellow-blue-black","relationship-brewer-pink-blue-purple","relationship-purple-green-blue","relationship-blue-green-purple","relationship-blue-orange-green","relationship-mustard-blue-wine","relationship-pink-blue-purple","relationship-olive-blue-green","relationship-yellow-cyan-blue","relationship-blue-pink-purple","relationship-purple-green-wine","relationship-blue-peach-purple","relationship-mint-mustard-green","relationship-purple-mustard-darkpurple","relationship-blue-orange-purple","relationship-pink-periwinkle-violet","relationship-blue-tan-green"]}},m="#aaaaaa",h="8px",d="2px",g=a({themeDictionary:{default:{name:"default",label:"Default",description:"Default theme for visualizing features based on relationship between two attributes.",schemes:{point:{light:{common:{noDataColor:m,outline:u.light,size:h},primary:c.lightBasemaps.primary,secondary:c.lightBasemaps.secondary},dark:{common:{noDataColor:m,outline:u.darker,size:h},primary:c.darkBasemaps.primary,secondary:c.darkBasemaps.secondary}},polyline:{light:{common:{noDataColor:m,width:d},primary:c.lightBasemaps.primary,secondary:c.lightBasemaps.secondary},dark:{common:{noDataColor:m,width:d},primary:c.darkBasemaps.primary,secondary:c.darkBasemaps.secondary}},polygon:{light:{common:{noDataColor:m,outline:u.light,fillOpacity:.8},primary:c.lightBasemaps.primary,secondary:c.lightBasemaps.secondary},dark:{common:{noDataColor:m,outline:u.dark,fillOpacity:.8},primary:c.darkBasemaps.primary,secondary:c.darkBasemaps.secondary}}}}}});function y(e){return n(g,e)}function b(e){const o="default",r=l({basemap:e.basemap,geometryType:e.geometryType,basemapTheme:e.basemapTheme,theme:g.get(o)});if(!r)return;const{schemesInfo:a,basemapId:n,basemapTheme:s}=r,t={...e,basemap:n};return{primaryScheme:x(t,a.primary,a.common),secondarySchemes:a.secondary.map((e=>x(t,e,a.common))).filter(Boolean),basemapId:n,basemapTheme:s}}function w(e){return s(e.name,b(e))}function f(e){return t(e.includedTags,e.excludedTags,b(e))}function k(o){if(!o)return;const r={...o};return r.colorsForClassBreaks=r.colorsForClassBreaks.map((o=>({numClasses:o.numClasses,colors:o.colors.map((o=>o.map((o=>new e(o)))))}))),r.tags=[...r.tags],r.noDataColor&&(r.noDataColor=new e(r.noDataColor)),"outline"in r&&r.outline&&(r.outline={color:r.outline.color&&new e(r.outline.color),width:r.outline.width}),r}function C(e,r){e=o(e);let a=[];const n=(r||"HH").split(""),l=n[0],s=n[1];"L"===l&&e.reverse();const t="H"===s;return e.forEach((e=>{t&&e.reverse(),a=a.concat(e)})),a}function B(o,r,a){let n;return o.colorsForClassBreaks.some((e=>(e.numClasses===r&&(n=e.colors),!!n))),n=n.map((o=>o.map((o=>new e(o))))),n?C(n,a):null}function D(e,o){const r=o?e:k(e);return r.colorsForClassBreaks.forEach((e=>{const o=e.colors.reverse(),r=[];for(let a=0;a<e.numClasses;a++){const e=[];o.forEach((o=>{e.push(o[a])})),r.push(e)}e.colors=r})),r}function F(e){const o=e.theme||"default",r=e.geometryType,a=e.colors,n=e.numClasses,l=g.get(o);if(!l)return;const s=l.supportedBasemaps,t=[];return s.forEach((e=>{const l=b({theme:o,basemap:e,geometryType:r});if(l){let e=z(l.primaryScheme,a,n);e&&t.push(e),l.secondarySchemes.forEach((o=>{e=z(o,a,n),e&&t.push(e)}))}})),t}function v(e,o,r,a){let n;const l=B(e,r,a);if(l){1===p(o,l)&&(n=e)}return n}function T(e,o,r,a){let n,l=1;do{n=v(e,o,r,a),n||(e=D(e),l++)}while(!n&&l<=4);return n}function z(e,o,r){return T(e,o,r,"HH")||T(e,o,r,"HL")||T(e,o,r,"LH")||T(e,o,r,"LL")}function x(e,o,a){const n="mesh"!==e.geometryType&&e.worldScale?e.view:null,l=r[o],s=e.theme||"default";if(!l)return;const t=s+"/"+e.basemap+"/"+o,i=[];for(const r in l)if("stops"!==r&&"name"!==r&&"tags"!==r){const e=+r,o=l[r];i.push({numClasses:e,colors:o})}switch(e.geometryType){case"point":case"multipoint":{const e=a;return H({id:t,name:l.name,tags:l.tags,colorsForClassBreaks:i,noDataColor:e.noDataColor,opacity:1,outline:e.outline,size:e.size},n)}case"polyline":{const e=a;return j({id:t,name:l.name,tags:l.tags,colorsForClassBreaks:i,noDataColor:e.noDataColor,opacity:1,width:e.width},n)}case"polygon":{const e=a;return E({id:t,name:l.name,tags:l.tags,colorsForClassBreaks:i,noDataColor:e.noDataColor,opacity:e.fillOpacity,outline:e.outline})}case"mesh":{const e=a;return L({id:t,name:l.name,tags:l.tags,colorsForClassBreaks:i,noDataColor:e.noDataColor,opacity:e.fillOpacity})}}}function H(o,r){return{id:o.id,name:o.name,tags:[...o.tags],colorsForClassBreaks:S(o.colorsForClassBreaks),noDataColor:new e(o.noDataColor),outline:{color:new e(o.outline.color),width:o.outline.width},size:r?i(o.size,r):o.size,opacity:o.opacity}}function j(o,r){return{id:o.id,name:o.name,tags:[...o.tags],colorsForClassBreaks:S(o.colorsForClassBreaks),noDataColor:new e(o.noDataColor),opacity:o.opacity,width:r?i(o.width,r):o.width}}function E(o){return{id:o.id,name:o.name,tags:[...o.tags],colorsForClassBreaks:S(o.colorsForClassBreaks),noDataColor:new e(o.noDataColor),outline:{color:new e(o.outline.color),width:o.outline.width},opacity:o.opacity}}function L(o){return{id:o.id,name:o.name,tags:[...o.tags],colorsForClassBreaks:S(o.colorsForClassBreaks),noDataColor:new e(o.noDataColor),opacity:o.opacity}}function S(o){return o.map((o=>({numClasses:o.numClasses,colors:o.colors.map((o=>o.map((o=>new e(o)))))})))}export{k as cloneScheme,C as flatten2DArray,D as flipColors,B as getColors,F as getMatchingSchemes,w as getSchemeByName,b as getSchemes,f as getSchemesByTag,y as getThemes};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import"../../Color.js";import"./support/symbologyUtils.js";import"./support/utils.js";export{c as cloneScheme,g as getSchemes,a as getThemes}from"../../chunks/size.js";
5
+ import o from"../../Color.js";import{createThemes as a,getThemesforBasemap as i,getRawSchemes as t}from"./support/symbologyUtils.js";import{toWorldScale as r}from"./support/utils.js";const e=[128,128,128,1],n=[128,128,128,1],c="4px",l="40px",p={primary:{color:[227,139,79,1],noDataColor:e,outline:{color:[255,255,255,.25],width:"1px"},noDataSize:"4px",size:"12px",minSize:c,maxSize:l,opacity:.8},secondary:[{color:[128,128,128,1],noDataColor:e,outline:{color:[255,255,255,.25],width:"1px"},noDataSize:"4px",size:"12px",minSize:c,maxSize:l,opacity:.8},{color:[255,255,255,1],noDataColor:e,outline:{color:[128,128,128,.25],width:"1px"},noDataSize:"4px",size:"12px",minSize:c,maxSize:l,opacity:.8}]},m={primary:{color:[227,139,79,1],noDataColor:n,outline:{color:[92,92,92,.25],width:"1px"},noDataSize:"4px",size:"12px",minSize:c,maxSize:l,opacity:.8},secondary:[{color:[178,178,178,1],noDataColor:n,outline:{color:[92,92,92,.25],width:"1px"},noDataSize:"4px",size:"12px",minSize:c,maxSize:l,opacity:.8},{color:[26,26,26,1],noDataColor:n,outline:{color:[128,128,128,.25],width:"1px"},noDataSize:"4px",size:"12px",minSize:c,maxSize:l,opacity:.8}]},d=[0,0,0,0],h={color:d,outline:{color:[166,166,166,.25],width:"1px"}},y={color:d,outline:{color:[153,153,153,.25],width:"1px"}},u=a({themeDictionary:{default:{name:"default",label:"Default",description:"Default theme for visualizing features by varying their size to show data.",schemes:{point:{light:p,dark:m},polyline:{light:{primary:{color:[226,119,40,1],noDataColor:e,noDataWidth:"1px",width:"1px",minWidth:"1px",maxWidth:"18px"},secondary:[{color:[77,77,77,1],noDataColor:e,noDataWidth:"1px",width:"1px",minWidth:"1px",maxWidth:"18px"},{color:[153,153,153,1],noDataColor:e,noDataWidth:"1px",width:"1px",minWidth:"1px",maxWidth:"18px"}]},dark:{primary:{color:[226,119,40,1],noDataColor:n,noDataWidth:"1px",width:"1px",minWidth:"1px",maxWidth:"18px"},secondary:[{color:[255,255,255,1],noDataColor:n,noDataWidth:"1px",width:"1px",minWidth:"1px",maxWidth:"18px"},{color:[153,153,153,1],noDataColor:n,noDataWidth:"1px",width:"1px",minWidth:"1px",maxWidth:"18px"}]}},polygon:{light:{primary:{marker:p.primary,background:y,opacity:p.primary.opacity},secondary:[{marker:p.secondary[0],background:y,opacity:p.secondary[0].opacity},{marker:p.secondary[1],background:y,opacity:p.secondary[1].opacity}]},dark:{primary:{marker:m.primary,background:h,opacity:m.primary.opacity},secondary:[{marker:m.secondary[0],background:h,opacity:m.secondary[0].opacity},{marker:m.secondary[1],background:h,opacity:m.secondary[1].opacity}]}}}}}});function s(o){return i(u,o)}function x(o){if("mesh"===o.geometryType)return null;const a="default",i=t({basemap:o.basemap,geometryType:o.geometryType,basemapTheme:o.basemapTheme,theme:u.get(a)});if(!i)return;const{schemesInfo:r,basemapId:e,basemapTheme:n}=i;return{primaryScheme:z(o,r.primary),secondarySchemes:r.secondary.map((a=>z(o,a))).filter(Boolean),basemapId:e,basemapTheme:n}}function D(a){if(!a)return;const i={...a};return"color"in i&&i.color&&(i.color=new o(i.color)),"noDataColor"in i&&i.noDataColor&&(i.noDataColor=new o(i.noDataColor)),"outline"in i&&i.outline&&(i.outline={color:i.outline.color&&new o(i.outline.color),width:i.outline.width}),"marker"in i&&i.marker&&(i.marker=D(i.marker)),"background"in i&&i.background&&(i.background=D(i.background)),i}function z(o,a){const i="mesh"!==o.geometryType&&o.worldScale?o.view:null;switch(o.geometryType){case"point":case"multipoint":{const o=a;return w({color:o.color,noDataColor:o.noDataColor,outline:o.outline,size:o.size,noDataSize:o.noDataSize,minSize:o.minSize,maxSize:o.maxSize,opacity:o.opacity||1},i)}case"polyline":{const o=a;return S({color:o.color,noDataColor:o.noDataColor,width:o.width,noDataWidth:o.noDataWidth,minWidth:o.minWidth,maxWidth:o.maxWidth},i)}case"polygon":{const o=a,t=o.marker;return delete t.opacity,k({marker:t,background:o.background,opacity:o.opacity||1},i)}}}function w(a,i){return{color:new o(a.color),noDataColor:new o(a.noDataColor),outline:{color:new o(a.outline.color),width:a.outline.width},size:i?r(a.size,i):a.size,noDataSize:i?r(a.noDataSize,i):a.noDataSize,minSize:i?r(a.minSize,i):a.minSize,maxSize:i?r(a.maxSize,i):a.maxSize,opacity:a.opacity}}function S(a,i){return{color:new o(a.color),noDataColor:new o(a.noDataColor),width:i?r(a.width,i):a.width,noDataWidth:i?r(a.noDataWidth,i):a.noDataWidth,minWidth:i?r(a.minWidth,i):a.minWidth,maxWidth:i?r(a.maxWidth,i):a.maxWidth,opacity:1}}function k(a,i){const t=w(a.marker,i);delete t.opacity;return{marker:t,background:{color:new o(a.background.color),outline:{color:new o(a.background.outline.color),width:a.background.outline.width}},opacity:a.opacity}}export{D as cloneScheme,x as getSchemes,s as getThemes};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import"../../Color.js";import"./support/colors.js";import"./support/symbologyUtils.js";import"./support/utils.js";export{c as cloneScheme,b as getSchemeByName,g as getSchemes,d as getSchemesByTag,a as getThemes}from"../../chunks/type.js";
5
+ import o from"../../Color.js";import a from"./support/colors.js";import{createThemes as t,getThemesforBasemap as e,getRawSchemes as n,filterSchemesByName as r,filterSchemesByTag as c}from"./support/symbologyUtils.js";import{toWorldScale as i}from"./support/utils.js";const s={light:{color:[153,153,153,.25],width:"1px"},dark:{color:[153,153,153,.25],width:"1px"},darker:{color:[26,26,26,.25],width:"1px"}},l=["tropical-bliss","desert-blooms","under-the-sea","vibrant-rainbow","ocean-bay","prairie-summer","pastel-chalk"],m=["predominant-v1","predominant-v2","predominant-v3","predominant-v4","predominant-v5","predominance-race","predominance-money","predominance-race-ethnic","predominance-rainbow","predominance-sequence"],p=["cat-symbols-strong","cat-symbols-autumnal","cat-symbols-bright","cat-symbols-midrange","cat-symbols-subdued","cat-symbols-pastel","cat-symbols-red","cat-symbols-blue","cat-symbols-green","cat-symbols-gray"],u="#aaaaaa",d="12px",h=t({themeDictionary:{default:{name:"default",label:"Default",description:"Default theme for visualizing features by their type.",schemes:{point:{light:{common:{noDataColor:u,outline:s.light,size:"8px"},primary:"cat-dark",secondary:["cat-light"].concat(p).concat(l).concat(m)},dark:{common:{noDataColor:u,outline:s.darker,size:"8px"},primary:"cat-light",secondary:["cat-dark"].concat(p).concat(l).concat(m)}},polyline:{light:{common:{noDataColor:u,width:"2px"},primary:"cat-dark",secondary:["cat-light"].concat(p).concat(l).concat(m)},dark:{common:{noDataColor:u,width:"2px"},primary:"cat-light",secondary:["cat-dark"].concat(p).concat(l).concat(m)}},polygon:{light:{common:{noDataColor:u,outline:s.light,fillOpacity:.8},primary:"cat-dark",secondary:["cat-light"].concat(p).concat(l).concat(m)},dark:{common:{noDataColor:u,outline:s.dark,fillOpacity:.8},primary:"cat-light",secondary:["cat-dark"].concat(p).concat(l).concat(m)}}}},"point-cloud-class":{name:"point-cloud-class",label:"Point Cloud Class",description:"Default theme for visualizing point cloud data based on classification.",schemes:{point:{light:{primary:"point-cloud-class-scheme",secondary:[]},dark:{primary:"point-cloud-class-scheme",secondary:[]}}}}}});function y(o){return e(h,o)}function g(o){const a=o.theme||"default",t=n({basemap:o.basemap,geometryType:o.geometryType,basemapTheme:o.basemapTheme,theme:h.get(a)});if(!t)return;const{schemesInfo:e,basemapId:r,basemapTheme:c}=t,i=e.common;return{primaryScheme:D(o,e.primary,i),secondarySchemes:e.secondary.map((a=>D(o,a,i))).filter(Boolean),basemapId:r,basemapTheme:c}}function f(o){return r(o.name,g(o))}function w(o){return c(o.includedTags,o.excludedTags,g(o))}function b(a){if(!a)return;const t={...a};return t.colors=t.colors.map((a=>new o(a))),t.tags=[...t.tags],"noDataColor"in t&&t.noDataColor&&(t.noDataColor=new o(t.noDataColor)),"outline"in t&&t.outline&&(t.outline={color:t.outline.color&&new o(t.outline.color),width:t.outline.width}),t}function D(o,t,e){const n=o.theme||"default",r=a[t];if(!r)return;const c=r.stops,i="mesh"!==o.geometryType&&o.worldScale?o.view:null;switch(o.geometryType){case"point":case"multipoint":{if("point-cloud-class"===n)return C({theme:n,name:r.name,tags:r.tags,colors:c});const o=e;return k({name:r.name,tags:r.tags,theme:n,colors:c,noDataColor:o.noDataColor,opacity:1,outline:o.outline,size:o.size},i)}case"polyline":{const o=e;return z({name:r.name,tags:r.tags,theme:n,colors:c,noDataColor:o.noDataColor,opacity:1,width:o.width},i)}case"polygon":{const o=e;return x({name:r.name,tags:r.tags,theme:n,colors:c,noDataColor:o.noDataColor,opacity:o.fillOpacity||1,outline:o.outline,size:d},i)}case"mesh":{const o=e;return T({name:r.name,tags:r.tags,theme:n,colors:c,noDataColor:o.noDataColor,opacity:o.fillOpacity||1})}default:return}}function C(a){return{name:a.name,tags:[...a.tags],theme:a.theme,colors:a.colors.map((a=>new o(a)))}}function k(a,t){return{name:a.name,tags:[...a.tags],theme:a.theme,colors:a.colors.map((a=>new o(a))),noDataColor:new o(a.noDataColor),outline:{color:new o(a.outline.color),width:a.outline.width},size:t?i(a.size,t):a.size,opacity:a.opacity}}function z(a,t){return{name:a.name,tags:[...a.tags],theme:a.theme,colors:a.colors.map((a=>new o(a))),noDataColor:new o(a.noDataColor),width:t?i(a.width,t):a.width,opacity:a.opacity}}function x(a,t){return{name:a.name,tags:[...a.tags],theme:a.theme,colors:a.colors.map((a=>new o(a))),noDataColor:new o(a.noDataColor),outline:{color:new o(a.outline.color),width:a.outline.width},opacity:a.opacity,size:t?i(a.size,t):a.size}}function T(a){return{name:a.name,tags:[...a.tags],theme:a.theme,colors:a.colors.map((a=>new o(a))),noDataColor:new o(a.noDataColor),opacity:a.opacity}}export{b as cloneScheme,f as getSchemeByName,g as getSchemes,w as getSchemesByTag,y as getThemes};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- const c="20220401",e="f9643e3e61565caa4964ad21cc75ef6864d1d583";export{c as buildDate,e as commitHash};
5
+ const c="20220404",f="a38df0b5effc5639dd377e147cf247074679c961";export{c as buildDate,f as commitHash};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../core/Error.js";import{on as t}from"../../../core/events.js";import i from"../../../core/has.js";import{isSome as r}from"../../../core/maybe.js";import{watch as s,initial as n}from"../../../core/reactiveUtils.js";import{addFrameTask as a}from"../../../core/scheduling.js";import{t as o}from"../../../chunks/common.js";import{a as h,r as l}from"../../../chunks/mat2d.js";import{c as d}from"../../../chunks/mat2df64.js";import{c}from"../../../chunks/mat3f32.js";import{s as p,t as m}from"../../../chunks/vec2.js";import{a as u}from"../../../chunks/vec2f64.js";import _ from"../../../symbols/cim/CIMResourceManager.js";import{Container as g}from"./Container.js";import{WGLDrawPhase as f}from"./webgl/enums.js";import b from"./webgl/Painter.js";import{Profiler as R}from"./webgl/Profiler.js";import{stencil as w}from"./webgl/shaders/StencilPrograms.js";import{Timeline as O}from"../support/Timeline.js";import{resampleHermite as E,encodeResult as F,createEmptyImageData as T}from"../../support/screenshotUtils.js";import{BufferObject as y}from"../../webgl/BufferObject.js";import{createContextOrErrorHTML as C}from"../../webgl/context-util.js";import{TargetType as x,DepthStencilTargetType as B,StencilOperation as P,CompareFunction as S,PrimitiveType as j,DataType as L,TextureSamplingMode as v,PixelFormat as A,PixelType as D,Usage as k}from"../../webgl/enums.js";import{FramebufferObject as M}from"../../webgl/FramebufferObject.js";import{createProgram as H}from"../../webgl/ProgramTemplate.js";import{RenderingContext as I}from"../../webgl/RenderingContext.js";import{VertexArrayObject as U}from"../../webgl/VertexArrayObject.js";import{VertexElementDescriptor as q}from"../../webgl/VertexElementDescriptor.js";const W=2e3;class V extends g{constructor(s,n){super(),this._trash=new Set,this._clipData=new Float32Array(8),this._upperLeft=u(),this._upperRight=u(),this._lowerLeft=u(),this._lowerRight=u(),this._mat2=d(),this._clipRendererInitialized=!1,this._renderRemainingTime=0,this._lastFrameRenderTime=0,this.renderRequested=!1,this.stage=this,this._stationary=!0;const{canvas:o=document.createElement("canvas"),alpha:h=!0,stencil:l=!0,contextOptions:c={}}=n;this._canvas=o;const p=C("2d",o,{alpha:h,antialias:!1,depth:!0,stencil:l});this.context=new I(r(p)?p:null,c),this.resourceManager=new _,this.painter=new b(this.context,this,this.resourceManager),i("esri-2d-profiler")&&(this._debugOutput=document.createElement("div"),this._debugOutput.setAttribute("style","margin: 24px 64px; position: absolute; color: red;"),s.appendChild(this._debugOutput)),this._renderParameters={drawPhase:0,state:this.state,pixelRatio:window.devicePixelRatio,stationary:!1,globalOpacity:1,blendMode:null,deltaTime:-1,time:0,inFadeTransition:!1,effects:null,context:this.context,painter:this.painter,timeline:n.timeline||new O,renderingOptions:n.renderingOptions,requireFBO:!1,profiler:new R(this.context,this._debugOutput),dataUploadCounter:0},this._taskHandle=a({render:e=>this.renderFrame(e)}),this._taskHandle.pause(),this._lostWebGLContextHandle=t(o,"webglcontextlost",(()=>{this.emit("webgl-error",{error:new e("webgl-context-lost")})})),o.setAttribute("style","width: 100%; height:100%; display:block;"),s.appendChild(o)}destroy(){this.removeAllChildren(),this._emptyTrash(),this._taskHandle.remove(),this._taskHandle=null,this._boundFBO=null,this._clipFBO&&(this._clipFBO.dispose(),this._clipFBO=null),this._clipVAO&&(this._clipVAO.dispose(),this._clipVAO=null,this._clipVBO=null),this._clipStencilProgram&&(this._clipStencilProgram.dispose(),this._clipStencilProgram=null),this._lostWebGLContextHandle&&(this._lostWebGLContextHandle.remove(),this._lostWebGLContextHandle=null),this._canvas.parentNode&&this._canvas.parentNode.removeChild(this._canvas),this._debugOutput&&this._debugOutput.parentNode&&this._debugOutput.parentNode.removeChild(this._debugOutput),this.highlightOptions=null,this.resourceManager.destroy(),this.painter.dispose(),this.context.dispose(),this._canvas=null}get background(){return this._background}set background(e){this._background=e,this.requestRender()}get highlightOptions(){return this._highlightOptions}set highlightOptions(e){this._highlightOptionsHandle&&(this._highlightOptionsHandle.remove(),this._highlightOptionsHandle=null),this._highlightOptions=e,this._highlightOptions&&(this._highlightOptionsHandle=s((()=>{var e;return null==(e=this._highlightOptions)?void 0:e.version}),(()=>{this.painter.setHighlightOptions(e),this.requestRender()}),n))}get renderingOptions(){return this._renderingOptions}set renderingOptions(e){this._renderingOptions=e,this.requestRender()}get state(){return this._state}set state(e){this._state=e,this.requestRender()}get stationary(){return this._stationary}set stationary(e){this._stationary!==e&&(this._stationary=e,this.requestRender())}trashDisplayObject(e){this._trash.add(e),this.requestRender()}untrashDisplayObject(e){return this._trash.delete(e)}requestRender(){this._renderRemainingTime=W,this.renderRequested||(this.renderRequested=!0,this.emit("will-render"),this._taskHandle.resume())}renderFrame(e){const t=this._lastFrameRenderTime?e.time-this._lastFrameRenderTime:0;this._renderRemainingTime-=t,this._renderRemainingTime<=0&&this._taskHandle.pause(),this._lastFrameRenderTime=e.time,this.renderRequested=!1,this._renderParameters.state=this._state,this._renderParameters.stationary=this.stationary,this._renderParameters.pixelRatio=window.devicePixelRatio,this._renderParameters.globalOpacity=1,this._renderParameters.time=e.time,this._renderParameters.deltaTime=e.deltaTime,this._renderParameters.effects=null,this.processRender(this._renderParameters),this._emptyTrash(),this.emit("post-render")}_createTransforms(){return{dvs:c()}}renderChildren(e){for(const t of this.children)t.beforeRender(e);this._renderChildren(this.children,e);for(const t of this.children)t.afterRender(e)}_renderChildren(e,t){const r=this.context;t.profiler.recordStart("drawLayers"),t.dataUploadCounter=0,this._beforeRenderChildren(t),t.drawPhase=f.MAP,this.painter.beforeRenderLayers(r,this.background);for(const i of e)i.processRender(t);this.painter.renderLayers(r),t.drawPhase=f.HIGHLIGHT,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r);if(this._isLabelDrawPhaseRequired(e)){t.drawPhase=f.LABEL,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r)}if(i("esri-tiles-debug")){t.drawPhase=f.DEBUG,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r)}t.profiler.recordEnd("drawLayers"),this._afterRenderChildren()}_beforeRenderChildren(e){const{context:t}=this,{state:i,pixelRatio:r}=e;t.setClearDepth(1),t.setClearColor(0,0,0,0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT);const{size:s,rotation:n}=i,a=Math.round(s[0]*r),d=Math.round(s[1]*r);this._boundFBO=t.getBoundFramebufferObject();if(!i.spatialReference.isWrappable)return void(this._clipFrame=!1);const c=o(n),u=Math.abs(Math.cos(c)),_=Math.abs(Math.sin(c)),g=Math.round(a*u+d*_),f=Math.round(i.worldScreenWidth);if(g<=f)return void(this._clipFrame=!1);this._clipFBO&&this._clipFBO.width===a&&this._clipFBO.height===d||(this._clipFBO=new M(t,{colorTarget:x.TEXTURE,depthStencilTarget:B.DEPTH_STENCIL_RENDER_BUFFER,width:a,height:d}));const b=(this.state.padding.left-this.state.padding.right)/2,R=(this.state.padding.bottom-this.state.padding.top)/2,w=.5*a,O=.5*d,E=1/a,F=1/d,T=f*r*.5,y=.5*(a*_+d*u),C=this._upperLeft,P=this._upperRight,S=this._lowerLeft,j=this._lowerRight;p(C,-T,-y),p(P,T,-y),p(S,-T,y),p(j,T,y),h(this._mat2,[w+b,O-R]),0!==n&&l(this._mat2,this._mat2,c),m(C,C,this._mat2),m(P,P,this._mat2),m(S,S,this._mat2),m(j,j,this._mat2);const L=this._clipData;L.set([2*S[0]*E-1,2*(d-S[1])*F-1,2*j[0]*E-1,2*(d-j[1])*F-1,2*C[0]*E-1,2*(d-C[1])*F-1,2*P[0]*E-1,2*(d-P[1])*F-1]),this._clipRendererInitialized||this._initializeClipRenderer(t),this._clipVBO.setData(L),this._boundFBO=t.getBoundFramebufferObject(),t.bindFramebuffer(this._clipFBO),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),t.setClearColor(0,0,0,0),t.setClearDepth(1),t.setClearStencil(0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT|t.gl.STENCIL_BUFFER_BIT),t.setDepthWriteEnabled(!1),this._clipFrame=!0}_afterRenderChildren(){const e=this.context;if(e.logIno(),this._clipFrame&&this._clipRendererInitialized){if(e.bindFramebuffer(this._boundFBO),this._boundFBO=null,e.bindVAO(this._clipVAO),e.useProgram(this._clipStencilProgram),e.setDepthWriteEnabled(!1),e.setDepthTestEnabled(!1),e.setStencilTestEnabled(!0),e.setBlendingEnabled(!1),e.setColorMask(!1,!1,!1,!1),e.setStencilOp(P.KEEP,P.KEEP,P.REPLACE),e.setStencilWriteMask(255),e.setStencilFunction(S.ALWAYS,1,255),e.drawElements(j.TRIANGLES,6,L.UNSIGNED_SHORT,0),e.bindVAO(),e.setColorMask(!0,!0,!0,!0),null!=this.background){const{r:t,g:i,b:r,a:s}=this.background.color;e.setClearColor(s*t/255,s*i/255,s*r/255,s)}else e.setClearColor(0,0,0,0);e.clear(e.gl.COLOR_BUFFER_BIT),e.setBlendingEnabled(!0),e.setStencilFunction(S.EQUAL,1,255),this.painter.blitTexture(e,this._clipFBO.colorTexture,v.NEAREST,1),e.setStencilTestEnabled(!1)}}doRender(e){const t=this.context,{state:i,pixelRatio:r}=e;this._resizeCanvas(e),t.setViewport(0,0,r*i.size[0],r*i.size[1]),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),super.doRender(e)}async takeScreenshot(e){const{framebufferWidth:t,framebufferHeight:i}={framebufferWidth:Math.round(this._renderParameters.state.size[0]*e.resolutionScale),framebufferHeight:Math.round(this._renderParameters.state.size[1]*e.resolutionScale)},r=1,s=this.context,n=this._state.clone();if(null!=e.rotation){const t=n.viewpoint;n.viewpoint.rotation=e.rotation,n.viewpoint=t}const a={...this._renderParameters,drawPhase:null,globalOpacity:1,stationary:!0,state:n,pixelRatio:r,time:performance.now(),deltaTime:0,blendMode:null,effects:null,inFadeTransition:!1},o=new M(s,{colorTarget:x.TEXTURE,depthStencilTarget:B.DEPTH_STENCIL_RENDER_BUFFER,width:t,height:i}),h=s.getBoundFramebufferObject(),l=s.getViewport();s.bindFramebuffer(o),s.setViewport(0,0,t,i),this._renderChildren(e.children,a);const d=this._readbackScreenshot(o,{...e.cropArea,y:i-(e.cropArea.y+e.cropArea.height)});s.bindFramebuffer(h),s.setViewport(l.x,l.y,l.width,l.height),this.requestRender();const c=await d;let p;1===e.outputScale?p=c:(p=new ImageData(Math.round(c.width*e.outputScale),Math.round(c.height*e.outputScale)),E(c,p,!0));return F(p,{format:e.format,quality:e.quality,rotation:0,disableDecorations:!1},document.createElement("canvas"),{flipY:!0,premultipliedAlpha:!0})}async _readbackScreenshot(e,t){const i=T(t.width,t.height,document.createElement("canvas"));return await e.readPixelsAsync(t.x,t.y,t.width,t.height,A.RGBA,D.UNSIGNED_BYTE,new Uint8Array(i.data.buffer)),i}_resizeCanvas(e){const t=this._canvas,i=t.style,{state:{size:r},pixelRatio:s}=e,n=r[0],a=r[1],o=Math.round(n*s),h=Math.round(a*s);t.width===o&&t.height===h||(t.width=o,t.height=h),i.width=n+"px",i.height=a+"px"}_initializeClipRenderer(e){if(this._clipRendererInitialized)return!0;const t=H(e,w);if(!t)return!1;const i=y.createVertex(e,k.STREAM_DRAW,this._clipData),r=new Uint16Array([0,1,2,2,1,3]),s=y.createIndex(e,k.STATIC_DRAW,r),n=w.attributes,a={geometry:[new q("a_pos",2,L.FLOAT,0,8)]},o=new U(e,n,a,{geometry:i},s);return this._clipStencilProgram=t,this._clipVBO=i,this._clipVAO=o,this._clipRendererInitialized=!0,!0}_emptyTrash(){for(;this._trash.size>0;){const e=Array.from(this._trash);this._trash.clear();for(const t of e)t.processDetach()}}_isLabelDrawPhaseRequired(e){let t=!1;for(const i of e){if(!(i instanceof g)){t=t||!1;break}if(i.hasLabels)return!0;t=t||this._isLabelDrawPhaseRequired(i.children)}return t}}export{W as EXTRA_RENDER_TIME,V as Stage};
5
+ import e from"../../../core/Error.js";import{on as t}from"../../../core/events.js";import i from"../../../core/has.js";import{isSome as r}from"../../../core/maybe.js";import{watch as s,initial as n}from"../../../core/reactiveUtils.js";import{addFrameTask as a}from"../../../core/scheduling.js";import{t as o}from"../../../chunks/common.js";import{a as h,r as l}from"../../../chunks/mat2d.js";import{c as d}from"../../../chunks/mat2df64.js";import{c}from"../../../chunks/mat3f32.js";import{s as p,t as m}from"../../../chunks/vec2.js";import{a as u}from"../../../chunks/vec2f64.js";import _ from"../../../symbols/cim/CIMResourceManager.js";import{Container as g}from"./Container.js";import{WGLDrawPhase as f}from"./webgl/enums.js";import b from"./webgl/Painter.js";import{Profiler as R}from"./webgl/Profiler.js";import{stencil as w}from"./webgl/shaders/StencilPrograms.js";import{Timeline as O}from"../support/Timeline.js";import{resampleHermite as E,createEmptyImageData as F}from"../../support/screenshotUtils.js";import{BufferObject as T}from"../../webgl/BufferObject.js";import{createContextOrErrorHTML as y}from"../../webgl/context-util.js";import{TargetType as C,DepthStencilTargetType as x,StencilOperation as B,CompareFunction as P,PrimitiveType as S,DataType as j,TextureSamplingMode as L,PixelFormat as v,PixelType as A,Usage as D}from"../../webgl/enums.js";import{FramebufferObject as k}from"../../webgl/FramebufferObject.js";import{createProgram as M}from"../../webgl/ProgramTemplate.js";import{RenderingContext as H}from"../../webgl/RenderingContext.js";import{VertexArrayObject as I}from"../../webgl/VertexArrayObject.js";import{VertexElementDescriptor as U}from"../../webgl/VertexElementDescriptor.js";const q=2e3;class W extends g{constructor(s,n){super(),this._trash=new Set,this._clipData=new Float32Array(8),this._upperLeft=u(),this._upperRight=u(),this._lowerLeft=u(),this._lowerRight=u(),this._mat2=d(),this._clipRendererInitialized=!1,this._renderRemainingTime=0,this._lastFrameRenderTime=0,this.renderRequested=!1,this.stage=this,this._stationary=!0;const{canvas:o=document.createElement("canvas"),alpha:h=!0,stencil:l=!0,contextOptions:c={}}=n;this._canvas=o;const p=y("2d",o,{alpha:h,antialias:!1,depth:!0,stencil:l});this.context=new H(r(p)?p:null,c),this.resourceManager=new _,this.painter=new b(this.context,this,this.resourceManager),i("esri-2d-profiler")&&(this._debugOutput=document.createElement("div"),this._debugOutput.setAttribute("style","margin: 24px 64px; position: absolute; color: red;"),s.appendChild(this._debugOutput)),this._renderParameters={drawPhase:0,state:this.state,pixelRatio:window.devicePixelRatio,stationary:!1,globalOpacity:1,blendMode:null,deltaTime:-1,time:0,inFadeTransition:!1,effects:null,context:this.context,painter:this.painter,timeline:n.timeline||new O,renderingOptions:n.renderingOptions,requestRender:()=>this.requestRender(),requireFBO:!1,profiler:new R(this.context,this._debugOutput),dataUploadCounter:0},this._taskHandle=a({render:e=>this.renderFrame(e)}),this._taskHandle.pause(),this._lostWebGLContextHandle=t(o,"webglcontextlost",(()=>{this.emit("webgl-error",{error:new e("webgl-context-lost")})})),o.setAttribute("style","width: 100%; height:100%; display:block;"),s.appendChild(o)}destroy(){this.removeAllChildren(),this._emptyTrash(),this._taskHandle.remove(),this._taskHandle=null,this._boundFBO=null,this._clipFBO&&(this._clipFBO.dispose(),this._clipFBO=null),this._clipVAO&&(this._clipVAO.dispose(),this._clipVAO=null,this._clipVBO=null),this._clipStencilProgram&&(this._clipStencilProgram.dispose(),this._clipStencilProgram=null),this._lostWebGLContextHandle&&(this._lostWebGLContextHandle.remove(),this._lostWebGLContextHandle=null),this._canvas.parentNode&&this._canvas.parentNode.removeChild(this._canvas),this._debugOutput&&this._debugOutput.parentNode&&this._debugOutput.parentNode.removeChild(this._debugOutput),this.highlightOptions=null,this.resourceManager.destroy(),this.painter.dispose(),this.context.dispose(),this._canvas=null}get background(){return this._background}set background(e){this._background=e,this.requestRender()}get highlightOptions(){return this._highlightOptions}set highlightOptions(e){this._highlightOptionsHandle&&(this._highlightOptionsHandle.remove(),this._highlightOptionsHandle=null),this._highlightOptions=e,this._highlightOptions&&(this._highlightOptionsHandle=s((()=>{var e;return null==(e=this._highlightOptions)?void 0:e.version}),(()=>{this.painter.setHighlightOptions(e),this.requestRender()}),n))}get renderingOptions(){return this._renderingOptions}set renderingOptions(e){this._renderingOptions=e,this.requestRender()}get state(){return this._state}set state(e){this._state=e,this.requestRender()}get stationary(){return this._stationary}set stationary(e){this._stationary!==e&&(this._stationary=e,this.requestRender())}trashDisplayObject(e){this._trash.add(e),this.requestRender()}untrashDisplayObject(e){return this._trash.delete(e)}requestRender(){this._renderRemainingTime=q,this.renderRequested||(this.renderRequested=!0,this.emit("will-render"),this._taskHandle.resume())}renderFrame(e){const t=this._lastFrameRenderTime?e.time-this._lastFrameRenderTime:0;this._renderRemainingTime-=t,this._renderRemainingTime<=0&&this._taskHandle.pause(),this._lastFrameRenderTime=e.time,this.renderRequested=!1,this._renderParameters.state=this._state,this._renderParameters.stationary=this.stationary,this._renderParameters.pixelRatio=window.devicePixelRatio,this._renderParameters.globalOpacity=1,this._renderParameters.time=e.time,this._renderParameters.deltaTime=e.deltaTime,this._renderParameters.effects=null,this.processRender(this._renderParameters),this._emptyTrash(),this.emit("post-render")}_createTransforms(){return{dvs:c()}}renderChildren(e){for(const t of this.children)t.beforeRender(e);this._renderChildren(this.children,e);for(const t of this.children)t.afterRender(e)}_renderChildren(e,t){const r=this.context;t.profiler.recordStart("drawLayers"),t.dataUploadCounter=0,this._beforeRenderChildren(t),t.drawPhase=f.MAP,this.painter.beforeRenderLayers(r,this.background);for(const i of e)i.processRender(t);this.painter.renderLayers(r),t.drawPhase=f.HIGHLIGHT,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r);if(this._isLabelDrawPhaseRequired(e)){t.drawPhase=f.LABEL,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r)}if(i("esri-tiles-debug")){t.drawPhase=f.DEBUG,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r)}t.profiler.recordEnd("drawLayers"),this._afterRenderChildren()}_beforeRenderChildren(e){const{context:t}=this,{state:i,pixelRatio:r}=e;t.setClearDepth(1),t.setClearColor(0,0,0,0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT);const{size:s,rotation:n}=i,a=Math.round(s[0]*r),d=Math.round(s[1]*r);this._boundFBO=t.getBoundFramebufferObject();if(!i.spatialReference.isWrappable)return void(this._clipFrame=!1);const c=o(n),u=Math.abs(Math.cos(c)),_=Math.abs(Math.sin(c)),g=Math.round(a*u+d*_),f=Math.round(i.worldScreenWidth);if(g<=f)return void(this._clipFrame=!1);this._clipFBO&&this._clipFBO.width===a&&this._clipFBO.height===d||(this._clipFBO=new k(t,{colorTarget:C.TEXTURE,depthStencilTarget:x.DEPTH_STENCIL_RENDER_BUFFER,width:a,height:d}));const b=(this.state.padding.left-this.state.padding.right)/2,R=(this.state.padding.bottom-this.state.padding.top)/2,w=.5*a,O=.5*d,E=1/a,F=1/d,T=f*r*.5,y=.5*(a*_+d*u),B=this._upperLeft,P=this._upperRight,S=this._lowerLeft,j=this._lowerRight;p(B,-T,-y),p(P,T,-y),p(S,-T,y),p(j,T,y),h(this._mat2,[w+b,O-R]),0!==n&&l(this._mat2,this._mat2,c),m(B,B,this._mat2),m(P,P,this._mat2),m(S,S,this._mat2),m(j,j,this._mat2);const L=this._clipData;L.set([2*S[0]*E-1,2*(d-S[1])*F-1,2*j[0]*E-1,2*(d-j[1])*F-1,2*B[0]*E-1,2*(d-B[1])*F-1,2*P[0]*E-1,2*(d-P[1])*F-1]),this._clipRendererInitialized||this._initializeClipRenderer(t),this._clipVBO.setData(L),this._boundFBO=t.getBoundFramebufferObject(),t.bindFramebuffer(this._clipFBO),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),t.setClearColor(0,0,0,0),t.setClearDepth(1),t.setClearStencil(0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT|t.gl.STENCIL_BUFFER_BIT),t.setDepthWriteEnabled(!1),this._clipFrame=!0}_afterRenderChildren(){const e=this.context;if(e.logIno(),this._clipFrame&&this._clipRendererInitialized){if(e.bindFramebuffer(this._boundFBO),this._boundFBO=null,e.bindVAO(this._clipVAO),e.useProgram(this._clipStencilProgram),e.setDepthWriteEnabled(!1),e.setDepthTestEnabled(!1),e.setStencilTestEnabled(!0),e.setBlendingEnabled(!1),e.setColorMask(!1,!1,!1,!1),e.setStencilOp(B.KEEP,B.KEEP,B.REPLACE),e.setStencilWriteMask(255),e.setStencilFunction(P.ALWAYS,1,255),e.drawElements(S.TRIANGLES,6,j.UNSIGNED_SHORT,0),e.bindVAO(),e.setColorMask(!0,!0,!0,!0),null!=this.background){const{r:t,g:i,b:r,a:s}=this.background.color;e.setClearColor(s*t/255,s*i/255,s*r/255,s)}else e.setClearColor(0,0,0,0);e.clear(e.gl.COLOR_BUFFER_BIT),e.setBlendingEnabled(!0),e.setStencilFunction(P.EQUAL,1,255),this.painter.blitTexture(e,this._clipFBO.colorTexture,L.NEAREST,1),e.setStencilTestEnabled(!1)}}doRender(e){const t=this.context,{state:i,pixelRatio:r}=e;this._resizeCanvas(e),t.setViewport(0,0,r*i.size[0],r*i.size[1]),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),super.doRender(e)}async takeScreenshot(e){const{framebufferWidth:t,framebufferHeight:i}={framebufferWidth:Math.round(this._renderParameters.state.size[0]*e.resolutionScale),framebufferHeight:Math.round(this._renderParameters.state.size[1]*e.resolutionScale)},r=1,s=this.context,n=this._state.clone();if(null!=e.rotation){const t=n.viewpoint;n.viewpoint.rotation=e.rotation,n.viewpoint=t}const a={...this._renderParameters,drawPhase:null,globalOpacity:1,stationary:!0,state:n,pixelRatio:r,time:performance.now(),deltaTime:0,blendMode:null,effects:null,inFadeTransition:!1},o=new k(s,{colorTarget:C.TEXTURE,depthStencilTarget:x.DEPTH_STENCIL_RENDER_BUFFER,width:t,height:i}),h=s.getBoundFramebufferObject(),l=s.getViewport();s.bindFramebuffer(o),s.setViewport(0,0,t,i),this._renderChildren(e.children,a);const d=this._readbackScreenshot(o,{...e.cropArea,y:i-(e.cropArea.y+e.cropArea.height)});s.bindFramebuffer(h),s.setViewport(l.x,l.y,l.width,l.height),this.requestRender();const c=await d;let p;return 1===e.outputScale?p=c:(p=new ImageData(Math.round(c.width*e.outputScale),Math.round(c.height*e.outputScale)),E(c,p,!0)),p}async _readbackScreenshot(e,t){const i=F(t.width,t.height,document.createElement("canvas"));return await e.readPixelsAsync(t.x,t.y,t.width,t.height,v.RGBA,A.UNSIGNED_BYTE,new Uint8Array(i.data.buffer)),i}_resizeCanvas(e){const t=this._canvas,i=t.style,{state:{size:r},pixelRatio:s}=e,n=r[0],a=r[1],o=Math.round(n*s),h=Math.round(a*s);t.width===o&&t.height===h||(t.width=o,t.height=h),i.width=n+"px",i.height=a+"px"}_initializeClipRenderer(e){if(this._clipRendererInitialized)return!0;const t=M(e,w);if(!t)return!1;const i=T.createVertex(e,D.STREAM_DRAW,this._clipData),r=new Uint16Array([0,1,2,2,1,3]),s=T.createIndex(e,D.STATIC_DRAW,r),n=w.attributes,a={geometry:[new U("a_pos",2,j.FLOAT,0,8)]},o=new I(e,n,a,{geometry:i},s);return this._clipStencilProgram=t,this._clipVBO=i,this._clipVAO=o,this._clipRendererInitialized=!0,!0}_emptyTrash(){for(;this._trash.size>0;){const e=Array.from(this._trash);this._trash.clear();for(const t of e)t.processDetach()}}_isLabelDrawPhaseRequired(e){let t=!1;for(const i of e){if(!(i instanceof g)){t=t||!1;break}if(i.hasLabels)return!0;t=t||this._isLabelDrawPhaseRequired(i.children)}return t}}export{q as EXTRA_RENDER_TIME,W as Stage};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{isNone as e}from"../../../../core/maybe.js";import t from"../webgl/brushes/WGLBrush.js";import{CompareFunction as n,BlendFactor as r,PrimitiveType as a,DataType as s}from"../../../webgl/enums.js";class i extends t{dispose(){}prepareState(e){const{context:t}=e;t.setColorMask(!0,!0,!0,!0),t.setStencilFunction(n.EQUAL,0,255)}draw(t,n){const{context:i}=t,{displayData:o}=n;if(e(o))return;if("loaded"===o.state.name&&o.prepareForRendering(i),"attached"!==o.state.name)return;const f=o.state.resources;i.setFaceCullingEnabled(!1),i.setBlendingEnabled(!0),i.setBlendFunctionSeparate(r.ONE,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE);const d=[];"ramp"===f.values.lineColor.kind&&d.push("vvLineColor"),"ramp"===f.values.lineOpacity.kind&&d.push("vvLineOpacity"),"ramp"===f.values.lineRenderWidth.kind&&d.push("vvLineRenderWidth");const u=t.painter.materialManager.getProgram({vsPath:"raster/flow",fsPath:"raster/flow",attributes:f.locations},d);i.useProgram(u),u.setUniform1f("u_time",t.time/1e3),u.setUniform1f("u_fadeDuration",o.flowStyle.renderSettings.fadeDuration),u.setUniform1f("u_lineSpeed",o.flowStyle.renderSettings.lineSpeed),u.setUniformMatrix3fv("u_dvsMat3",n.transforms.dvs),u.setUniformMatrix3fv("u_displayViewMat3",t.state.displayViewMat3),l(u,"lineColor","vec4",o.flowStyle.renderSettings.lineColor),l(u,"lineOpacity","float",o.flowStyle.renderSettings.lineOpacity),l(u,"lineRenderWidth","float",o.flowStyle.renderSettings.lineRenderWidth),i.bindVAO(f.vertexArray),i.drawElements(a.TRIANGLES,f.indexBuffer.size,s.UNSIGNED_INT,0),o.flowStyle.animated&&n.requestRender()}}function o(e,t,n,r){switch(t){case"int":e.setUniform1iv(n,r);break;case"float":e.setUniform1fv(n,r);break;case"vec2":e.setUniform2fv(n,r);break;case"vec3":e.setUniform3fv(n,r);break;case"vec4":e.setUniform4fv(n,r)}}function l(e,t,n,r){"constant"===r.kind?o(e,n,`u_${t}`,r.value):(o(e,"float",`u_${t}_stops`,r.stops),o(e,n,`u_${t}_values`,r.values),o(e,"int",`u_${t}_count`,[r.count]))}export{i as default};
5
+ import{isNone as e,isSome as t}from"../../../../core/maybe.js";import n from"../webgl/brushes/WGLBrush.js";import{CompareFunction as r,BlendFactor as a,PrimitiveType as s,DataType as i}from"../../../webgl/enums.js";class o extends n{dispose(){}prepareState(e){const{context:t}=e;t.setColorMask(!0,!0,!0,!0),t.setStencilFunction(r.EQUAL,0,255)}draw(n,r){const{context:o,requestRender:l}=n,{displayData:f}=r;if(e(f))return;if("loaded"===f.state.name&&f.prepareForRendering(o),"attached"!==f.state.name)return;const u=f.state.resources,c=[];"ramp"===u.values.lineColor.kind&&c.push("vvLineColor"),"ramp"===u.values.lineOpacity.kind&&c.push("vvLineOpacity"),"ramp"===u.values.lineRenderWidth.kind&&c.push("vvLineRenderWidth");const m=n.painter.materialManager.getProgram({vsPath:"raster/flow",fsPath:"raster/flow",attributes:u.locations},c);!t(l)||m.isCompiled?(o.useProgram(m),o.setFaceCullingEnabled(!1),o.setBlendingEnabled(!0),o.setBlendFunctionSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE),m.setUniform1f("u_time",n.time/1e3),m.setUniform1f("u_fadeDuration",f.flowStyle.renderSettings.fadeDuration),m.setUniform1f("u_lineSpeed",f.flowStyle.renderSettings.lineSpeed),m.setUniformMatrix3fv("u_dvsMat3",r.transforms.dvs),m.setUniformMatrix3fv("u_displayViewMat3",n.state.displayViewMat3),d(m,"lineColor","vec4",f.flowStyle.renderSettings.lineColor),d(m,"lineOpacity","float",f.flowStyle.renderSettings.lineOpacity),d(m,"lineRenderWidth","float",f.flowStyle.renderSettings.lineRenderWidth),o.bindVAO(u.vertexArray),o.drawElements(s.TRIANGLES,u.indexBuffer.size,i.UNSIGNED_INT,0),f.flowStyle.animated&&r.requestRender()):l()}}function l(e,t,n,r){switch(t){case"int":e.setUniform1iv(n,r);break;case"float":e.setUniform1fv(n,r);break;case"vec2":e.setUniform2fv(n,r);break;case"vec3":e.setUniform3fv(n,r);break;case"vec4":e.setUniform4fv(n,r)}}function d(e,t,n,r){"constant"===r.kind?l(e,n,`u_${t}`,r.value):(l(e,"float",`u_${t}_stops`,r.stops),l(e,n,`u_${t}_values`,r.values),l(e,"int",`u_${t}_count`,[r.count]))}export{o as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{hasSource as e}from"./RasterBitmap.js";import t from"../webgl/VertexStream.js";import r from"../webgl/brushes/WGLBrush.js";import{BlendFactor as s,CompareFunction as a}from"../../../webgl/enums.js";import{setTextures as i,getCommonUniforms as o,setUniforms as n,getColormapUniforms as h,getStretchUniforms as l,getShadedReliefUniforms as c,getUniformLocationInfos as p,getBasicGridUniforms as d}from"../../../webgl/rasterUtils.js";class u extends r{constructor(){super(...arguments),this._desc={lut:{vsPath:"raster/lut",fsPath:"raster/lut",attributes:new Map([["a_position",0],["a_texcoord",1]])},stretch:{vsPath:"raster/stretch",fsPath:"raster/stretch",attributes:new Map([["a_position",0],["a_texcoord",1]])},hillshade:{vsPath:"raster/hillshade",fsPath:"raster/hillshade",attributes:new Map([["a_position",0],["a_texcoord",1]])}},this._rendererUniformInfos=new Map}dispose(){this._quad&&this._quad.dispose()}prepareState({context:e},t){e.setBlendingEnabled(!0),e.setBlendFunctionSeparate(s.ONE,s.ONE_MINUS_SRC_ALPHA,s.ONE,s.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilFunction(a.EQUAL,t.stencilRef,255)}draw(t,r){var s;if(!e(r)||r.suspended)return;t.timeline.begin(this.name);const a=!(null!=(s=t.context.capabilities.textureFloat)&&s.textureFloatLinear);r.updateTexture(t);const i=this._getShaderVariations(r,a),o=t.painter.materialManager.getProgram(this._desc[r.symbolizerParameters.type],i);this._drawWithProgram(t.context,o,r),t.timeline.end(this.name)}_drawWithProgram(e,r,s,a=1,p=[0,0],u=!1){this._quad||(this._quad=new t(e,[0,0,1,0,0,1,1,1]));const{symbolizerParameters:m,transformGrid:f,width:_,height:g,opacity:b}=s,P=m.type;e.useProgram(r);const S=this._getShaderVariations(s),w=this._getUniformInfos(P,e,r,S),{names:x,textures:y}=s.getTextures();i(e,r,x,y);const M=d(a,p),U=o(f,[_,g],[s.source.width,s.source.height],b,u);if(n(r,w,{u_coordScale:s.coordScale,u_dvsMat3:s.transforms.dvs,...M,...U}),m.colormap){const{colormap:e,colormapOffset:t}=m,s=h(e,t);n(r,w,s)}if("stretch"===m.type){const e=l(m);n(r,w,e)}else if("hillshade"===m.type){const e=c(m);n(r,w,e)}this._quad.draw()}_getUniformInfos(e,t,r,s){const a=s.length>0?e+"-"+s.join("-"):e;if(this._rendererUniformInfos.has(a))return this._rendererUniformInfos.get(a);const i=p(t,r);return this._rendererUniformInfos.set(a,i),i}_getShaderVariations(e,t=!1){const r=[],{interpolation:s}=e,{type:a,colormap:i}=e.symbolizerParameters;return"cubic"===s?r.push("bicubic"):"bilinear"===s&&"stretch"===a&&null!=i?(r.push("bilinear"),r.push("nnedge")):t&&"bilinear"===s&&r.push("bilinear"),e.isRendereredSource?r.push("noop"):i&&r.push("applyColormap"),e.transformGrid&&(r.push("applyProjection"),1===e.transformGrid.spacing[0]&&r.push("lookupProjection")),r}}export{u as default};
5
+ import{isSome as e}from"../../../../core/maybe.js";import{hasSource as t}from"./RasterBitmap.js";import r from"../webgl/VertexStream.js";import s from"../webgl/brushes/WGLBrush.js";import{BlendFactor as a,CompareFunction as i}from"../../../webgl/enums.js";import{setTextures as o,getCommonUniforms as n,setUniforms as h,getColormapUniforms as l,getStretchUniforms as c,getShadedReliefUniforms as p,getUniformLocationInfos as d,getBasicGridUniforms as u}from"../../../webgl/rasterUtils.js";class m extends s{constructor(){super(...arguments),this._desc={lut:{vsPath:"raster/lut",fsPath:"raster/lut",attributes:new Map([["a_position",0],["a_texcoord",1]])},stretch:{vsPath:"raster/stretch",fsPath:"raster/stretch",attributes:new Map([["a_position",0],["a_texcoord",1]])},hillshade:{vsPath:"raster/hillshade",fsPath:"raster/hillshade",attributes:new Map([["a_position",0],["a_texcoord",1]])}},this._rendererUniformInfos=new Map}dispose(){this._quad&&this._quad.dispose()}prepareState({context:e},t){e.setBlendingEnabled(!0),e.setBlendFunctionSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilFunction(i.EQUAL,t.stencilRef,255)}draw(e,r){var s;if(!t(r)||r.suspended)return;const{timeline:a,context:i,painter:o,requestRender:n}=e;a.begin(this.name);const h=!(null!=(s=i.capabilities.textureFloat)&&s.textureFloatLinear);r.updateTexture(e);const l=this._getShaderVariations(r,h),c=o.materialManager.getProgram(this._desc[r.symbolizerParameters.type],l);this._drawWithProgram(i,c,r,n),a.end(this.name)}_drawWithProgram(t,s,a,i,d=1,m=[0,0],f=!1){if(this._quad||(this._quad=new r(t,[0,0,1,0,0,1,1,1])),e(i)&&!s.isCompiled)return void i();const{symbolizerParameters:_,transformGrid:g,width:b,height:P,opacity:S}=a,w=_.type;t.useProgram(s);const x=this._getShaderVariations(a),y=this._getUniformInfos(w,t,s,x),{names:M,textures:U}=a.getTextures();o(t,s,M,U);const j=u(d,m),I=n(g,[b,P],[a.source.width,a.source.height],S,f);if(h(s,y,{u_coordScale:a.coordScale,u_dvsMat3:a.transforms.dvs,...j,...I}),_.colormap){const{colormap:e,colormapOffset:t}=_,r=l(e,t);h(s,y,r)}if("stretch"===_.type){const e=c(_);h(s,y,e)}else if("hillshade"===_.type){const e=p(_);h(s,y,e)}this._quad.draw()}_getUniformInfos(e,t,r,s){const a=s.length>0?e+"-"+s.join("-"):e;if(this._rendererUniformInfos.has(a))return this._rendererUniformInfos.get(a);const i=d(t,r);return this._rendererUniformInfos.set(a,i),i}_getShaderVariations(e,t=!1){const r=[],{interpolation:s}=e,{type:a,colormap:i}=e.symbolizerParameters;return"cubic"===s?r.push("bicubic"):"bilinear"===s&&"stretch"===a&&null!=i?(r.push("bilinear"),r.push("nnedge")):t&&"bilinear"===s&&r.push("bilinear"),e.isRendereredSource?r.push("noop"):i&&r.push("applyColormap"),e.transformGrid&&(r.push("applyProjection"),1===e.transformGrid.spacing[0]&&r.push("lookupProjection")),r}}export{m as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{isNone as e}from"../../../../core/maybe.js";import a from"../webgl/brushes/WGLBrush.js";import{BlendFactor as t,StencilOperation as r,CompareFunction as s,PrimitiveType as o,DataType as n}from"../../../webgl/enums.js";const i=new Float32Array([.27058823529411763,.4588235294117647,.7098039215686275,1,.396078431372549,.5372549019607843,.7215686274509804,1,.5176470588235295,.6196078431372549,.7294117647058823,1,.6352941176470588,.7058823529411765,.7411764705882353,1,.7529411764705882,.8,.7450980392156863,1,.8705882352941177,.8901960784313725,.7490196078431373,1,1,1,.7490196078431373,1,1,.8627450980392157,.6313725490196078,1,.9803921568627451,.7254901960784313,.5176470588235295,1,.9607843137254902,.596078431372549,.4117647058823529,1,.9294117647058824,.4588235294117647,.3176470588235294,1,.9098039215686274,.08235294117647059,.08235294117647059,1]),l={beaufort_ft:i,beaufort_m:i,beaufort_km:i,beaufort_mi:i,beaufort_kn:new Float32Array([.1568627450980392,.5725490196078431,.7803921568627451,1,.34901960784313724,.6352941176470588,.7294117647058823,1,.5058823529411764,.7019607843137254,.6705882352941176,1,.6274509803921569,.7607843137254902,.6078431372549019,1,.7490196078431373,.8313725490196079,.5411764705882353,1,.8549019607843137,.9019607843137255,.4666666666666667,1,.9803921568627451,.9803921568627451,.39215686274509803,1,.9882352941176471,.8352941176470589,.3254901960784314,1,.9882352941176471,.7019607843137254,.4,1,.9803921568627451,.5529411764705883,.20392156862745098,1,.9686274509803922,.43137254901960786,.16470588235294117,1,.9411764705882353,.2784313725490196,.11372549019607843,1]),classified_arrow:new Float32Array([.2196078431372549,.6588235294117647,0,1,.5450980392156862,1.2117647058823529,0,1,1,1,0,1,1,.5019607843137255,0,1,1,0,0,1]),ocean_current_m:new Float32Array([.3058823529411765,.10196078431372549,.6,1,.7019607843137254,.10588235294117647,.10196078431372549,1,.792156862745098,.5019607843137255,.10196078431372549,1,.6941176470588235,.6941176470588235,.6941176470588235,1]),ocean_current_kn:new Float32Array([0,0,0,1,0,.1450980392156863,.39215686274509803,1,.3058823529411765,.10196078431372549,.6,1,.592156862745098,0,.39215686274509803,1,.7019607843137254,.10588235294117647,.10196078431372549,1,.6941176470588235,.3058823529411765,.10196078431372549,1,.792156862745098,.5019607843137255,.10196078431372549,1,.6941176470588235,.7019607843137254,.20392156862745098,1,.6941176470588235,.6941176470588235,.6941176470588235,1]),single_arrow:new Float32Array([0,92/255,230/255,1]),wind_speed:new Float32Array([0,0,0,1])};class c extends a{constructor(){super(...arguments),this._desc={magdir:{vsPath:"raster/magdir",fsPath:"raster/magdir",attributes:new Map([["a_pos",0],["a_offset",1],["a_vv",2]])},scalar:{vsPath:"raster/scalar",fsPath:"raster/scalar",attributes:new Map([["a_pos",0],["a_offset",1],["a_vv",2]])}}}dispose(){}prepareState({context:e},a){e.setBlendingEnabled(!0),e.setBlendFunctionSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilOp(r.KEEP,r.KEEP,r.REPLACE),e.setStencilFunction(s.EQUAL,a.stencilRef,255)}draw(a,t){if(e(t.source)||0===t.source.validPixelCount)return;const{timeline:r}=a;if(r.begin(this.name),t.updateVectorFieldVAO(a),"scalar"===a.renderPass){const e=t.vaoData.scalar;e&&this._drawScalars(a,t,e.vao,e.elementCount)}else{const e=t.vaoData.magdir;e&&this._drawTriangles(a,t,e.vao,e.elementCount)}r.end(this.name)}_drawTriangles(e,a,t,r){const{context:s,painter:i}=e,{symbolizerParameters:c}=a,m=c.dataRange?["dataRange"]:[];"geographic"===c.rotationType&&m.push("rotationGeographic");const d=i.materialManager.getProgram(this._desc.magdir,m);s.useProgram(d);const{coordScale:f,opacity:_,transforms:u}=a;d.setUniform2fv("u_coordScale",f),d.setUniform1f("u_opacity",_),d.setUniformMatrix3fv("u_dvsMat3",u.dvs);const{style:g,dataRange:p,rotation:y,symbolPercentRange:b}=c;d.setUniform4fv("u_colors",l[g]||l.single_arrow),d.setUniform2fv("u_dataRange",p),d.setUniform1f("u_rotation",y),d.setUniform2fv("u_symbolPercentRange",b);const S=this._getSymbolSize(e,a);d.setUniform2fv("u_symbolSize",S),s.bindVAO(t),s.drawElements(o.TRIANGLES,r,n.UNSIGNED_INT,0)}_drawScalars(e,a,t,r){const{context:s,painter:i}=e,{symbolizerParameters:l}=a,c=[];"wind_speed"===l.style?c.push("innerCircle"):l.dataRange&&c.push("dataRange"),"geographic"===l.rotationType&&c.push("rotationGeographic");const m=i.materialManager.getProgram(this._desc.scalar,c);s.useProgram(m);const{coordScale:d,opacity:f,transforms:_}=a;m.setUniform2fv("u_coordScale",d),m.setUniform1f("u_opacity",f),m.setUniformMatrix3fv("u_dvsMat3",_.dvs);const{dataRange:u,symbolPercentRange:g}=l;m.setUniform2fv("u_dataRange",u),m.setUniform2fv("u_symbolPercentRange",g);const p=this._getSymbolSize(e,a);m.setUniform2fv("u_symbolSize",p),s.bindVAO(t),s.drawElements(o.TRIANGLES,r,n.UNSIGNED_INT,0)}_getSymbolSize(e,a){const t=a.key?2**(e.displayLevel-a.key.level):a.resolution/e.state.resolution,{symbolTileSize:r}=a.symbolizerParameters;return[r/(Math.round((a.width-a.offset[0])/r)*r)/t,r/(Math.round((a.height-a.offset[1])/r)*r)/t]}}export{c as default};
5
+ import{isNone as e,isSome as t}from"../../../../core/maybe.js";import a from"../webgl/brushes/WGLBrush.js";import{BlendFactor as r,StencilOperation as s,CompareFunction as o,PrimitiveType as n,DataType as i}from"../../../webgl/enums.js";const l=new Float32Array([.27058823529411763,.4588235294117647,.7098039215686275,1,.396078431372549,.5372549019607843,.7215686274509804,1,.5176470588235295,.6196078431372549,.7294117647058823,1,.6352941176470588,.7058823529411765,.7411764705882353,1,.7529411764705882,.8,.7450980392156863,1,.8705882352941177,.8901960784313725,.7490196078431373,1,1,1,.7490196078431373,1,1,.8627450980392157,.6313725490196078,1,.9803921568627451,.7254901960784313,.5176470588235295,1,.9607843137254902,.596078431372549,.4117647058823529,1,.9294117647058824,.4588235294117647,.3176470588235294,1,.9098039215686274,.08235294117647059,.08235294117647059,1]),c={beaufort_ft:l,beaufort_m:l,beaufort_km:l,beaufort_mi:l,beaufort_kn:new Float32Array([.1568627450980392,.5725490196078431,.7803921568627451,1,.34901960784313724,.6352941176470588,.7294117647058823,1,.5058823529411764,.7019607843137254,.6705882352941176,1,.6274509803921569,.7607843137254902,.6078431372549019,1,.7490196078431373,.8313725490196079,.5411764705882353,1,.8549019607843137,.9019607843137255,.4666666666666667,1,.9803921568627451,.9803921568627451,.39215686274509803,1,.9882352941176471,.8352941176470589,.3254901960784314,1,.9882352941176471,.7019607843137254,.4,1,.9803921568627451,.5529411764705883,.20392156862745098,1,.9686274509803922,.43137254901960786,.16470588235294117,1,.9411764705882353,.2784313725490196,.11372549019607843,1]),classified_arrow:new Float32Array([.2196078431372549,.6588235294117647,0,1,.5450980392156862,1.2117647058823529,0,1,1,1,0,1,1,.5019607843137255,0,1,1,0,0,1]),ocean_current_m:new Float32Array([.3058823529411765,.10196078431372549,.6,1,.7019607843137254,.10588235294117647,.10196078431372549,1,.792156862745098,.5019607843137255,.10196078431372549,1,.6941176470588235,.6941176470588235,.6941176470588235,1]),ocean_current_kn:new Float32Array([0,0,0,1,0,.1450980392156863,.39215686274509803,1,.3058823529411765,.10196078431372549,.6,1,.592156862745098,0,.39215686274509803,1,.7019607843137254,.10588235294117647,.10196078431372549,1,.6941176470588235,.3058823529411765,.10196078431372549,1,.792156862745098,.5019607843137255,.10196078431372549,1,.6941176470588235,.7019607843137254,.20392156862745098,1,.6941176470588235,.6941176470588235,.6941176470588235,1]),single_arrow:new Float32Array([0,92/255,230/255,1]),wind_speed:new Float32Array([0,0,0,1])};class m extends a{constructor(){super(...arguments),this._desc={magdir:{vsPath:"raster/magdir",fsPath:"raster/magdir",attributes:new Map([["a_pos",0],["a_offset",1],["a_vv",2]])},scalar:{vsPath:"raster/scalar",fsPath:"raster/scalar",attributes:new Map([["a_pos",0],["a_offset",1],["a_vv",2]])}}}dispose(){}prepareState({context:e},t){e.setBlendingEnabled(!0),e.setBlendFunctionSeparate(r.ONE,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilOp(s.KEEP,s.KEEP,s.REPLACE),e.setStencilFunction(o.EQUAL,t.stencilRef,255)}draw(t,a){if(e(a.source)||0===a.source.validPixelCount)return;const{timeline:r}=t;if(r.begin(this.name),a.updateVectorFieldVAO(t),"scalar"===t.renderPass){const e=a.vaoData.scalar;e&&this._drawScalars(t,a,e.vao,e.elementCount)}else{const e=a.vaoData.magdir;e&&this._drawTriangles(t,a,e.vao,e.elementCount)}r.end(this.name)}_drawTriangles(e,a,r,s){const{context:o,painter:l,requestRender:m}=e,{symbolizerParameters:d}=a,f=d.dataRange?["dataRange"]:[];"geographic"===d.rotationType&&f.push("rotationGeographic");const u=l.materialManager.getProgram(this._desc.magdir,f);if(t(m)&&!u.isCompiled)return void m();o.useProgram(u);const{coordScale:_,opacity:g,transforms:p}=a;u.setUniform2fv("u_coordScale",_),u.setUniform1f("u_opacity",g),u.setUniformMatrix3fv("u_dvsMat3",p.dvs);const{style:y,dataRange:v,rotation:b,symbolPercentRange:S}=d;u.setUniform4fv("u_colors",c[y]||c.single_arrow),u.setUniform2fv("u_dataRange",v),u.setUniform1f("u_rotation",b),u.setUniform2fv("u_symbolPercentRange",S);const h=this._getSymbolSize(e,a);u.setUniform2fv("u_symbolSize",h),o.bindVAO(r),o.drawElements(n.TRIANGLES,s,i.UNSIGNED_INT,0)}_drawScalars(e,a,r,s){const{context:o,painter:l,requestRender:c}=e,{symbolizerParameters:m}=a,d=[];"wind_speed"===m.style?d.push("innerCircle"):m.dataRange&&d.push("dataRange"),"geographic"===m.rotationType&&d.push("rotationGeographic");const f=l.materialManager.getProgram(this._desc.scalar,d);if(t(c)&&!f.isCompiled)return void c();o.useProgram(f);const{coordScale:u,opacity:_,transforms:g}=a;f.setUniform2fv("u_coordScale",u),f.setUniform1f("u_opacity",_),f.setUniformMatrix3fv("u_dvsMat3",g.dvs);const{dataRange:p,symbolPercentRange:y}=m;f.setUniform2fv("u_dataRange",p),f.setUniform2fv("u_symbolPercentRange",y);const v=this._getSymbolSize(e,a);f.setUniform2fv("u_symbolSize",v),o.bindVAO(r),o.drawElements(n.TRIANGLES,s,i.UNSIGNED_INT,0)}_getSymbolSize(e,t){const a=t.key?2**(e.displayLevel-t.key.level):t.resolution/e.state.resolution,{symbolTileSize:r}=t.symbolizerParameters;return[r/(Math.round((t.width-t.offset[0])/r)*r)/a,r/(Math.round((t.height-t.offset[1])/r)*r)/a]}}export{m as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../geometry.js";import e from"../../../../Viewpoint.js";import t from"../../ViewState.js";import i from"../../../../geometry/Point.js";const r=.125;class a{constructor(){this._renderParams={context:null,drawPhase:1,state:new t({viewpoint:new e({targetGeometry:new i(0,0),scale:1,rotation:0}),size:[256,256]}),stationary:!0,pixelRatio:1,displayLevel:-1,requiredLevel:-1,globalOpacity:1,renderPass:"background",styleLayer:null,styleLayerUID:-1,painter:null,glyphMosaic:null,spriteMosaic:null,profiler:null,renderingOptions:null,deltaTime:-1,timeline:null,time:0,hasClipping:!1,blendMode:null,dataUploadCounter:0,effects:null,inFadeTransition:!1,requireFBO:!1}}dispose(){this._renderParams=null}render(e,t,i,a,s,l,n,o,p,d){const c=l.adjustLevel(t[0]),u=this._renderParams;u.context=e,u.painter=a,u.glyphMosaic=a.glyphMosaic,u.spriteMosaic=a.spriteMosaic,u.pixelRatio=d,u.displayLevel=c,u.requiredLevel=c;const m=l.getScale(t[0]),[g,y]=l.getShift(t,n*m),h=r*n*m/p,f=i.transforms.dvs;f[0]=h,f[4]=-h,f[6]=-1-g-o[0]*n*2,f[7]=1+y+(1-o[1])*n*2-2,u.state.size[0]=p,u.state.size[1]=p,i.stage||i.attachWithContext(e),i.triangleCount=0,a.drawTile(u,i,s)}}export{a as VectorTileRendererHelper3D};
5
+ import"../../../../geometry.js";import e from"../../../../Viewpoint.js";import t from"../../ViewState.js";import i from"../../../../geometry/Point.js";const r=.125;class s{constructor(){this._renderParams={context:null,drawPhase:1,state:new t({viewpoint:new e({targetGeometry:new i(0,0),scale:1,rotation:0}),size:[256,256]}),stationary:!0,pixelRatio:1,displayLevel:-1,requiredLevel:-1,globalOpacity:1,renderPass:"background",styleLayer:null,styleLayerUID:-1,painter:null,glyphMosaic:null,spriteMosaic:null,profiler:null,renderingOptions:null,requestRender:null,deltaTime:-1,timeline:null,time:0,hasClipping:!1,blendMode:null,dataUploadCounter:0,effects:null,inFadeTransition:!1,requireFBO:!1}}dispose(){this._renderParams=null}render(e,t,i,s,a,l,n,o,p,d){const u=l.adjustLevel(t[0]),c=this._renderParams;c.context=e,c.painter=s,c.glyphMosaic=s.glyphMosaic,c.spriteMosaic=s.spriteMosaic,c.pixelRatio=d,c.displayLevel=u,c.requiredLevel=u;const m=l.getScale(t[0]),[g,y]=l.getShift(t,n*m),h=r*n*m/p,f=i.transforms.dvs;f[0]=h,f[4]=-h,f[6]=-1-g-o[0]*n*2,f[7]=1+y+(1-o[1])*n*2-2,c.state.size[0]=p,c.state.size[1]=p,i.stage||i.attachWithContext(e),i.triangleCount=0,s.drawTile(c,i,a)}}export{s as VectorTileRendererHelper3D};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{isSome as e,isNone as t}from"../../../../core/maybe.js";import{brushes as s}from"../brushes.js";import r from"../vectorTiles/shaders/VTLMaterialManager.js";import{BitBlitRenderer as i}from"./BitBlitRenderer.js";import{WGLGeometryType as n,WGLDrawPhase as o}from"./enums.js";import a from"./MaterialManager.js";import h from"./TextureManager.js";import{AnimationEffect as f}from"./effects/AnimationEffect.js";import{BlendEffect as l}from"./effects/BlendEffect.js";import{FeatureEffect as c}from"./effects/FeatureEffect.js";import _ from"./effects/HighlightEffect.js";import{HittestEffect as d}from"./effects/HittestEffect.js";import{HittestEffectVTL as b}from"./effects/HittestEffectVTL.js";import{EffectManager as g}from"./effects/post-processing/EffectManager.js";import u from"./painter/RenderPass.js";import{TextureType as E,PixelFormat as p,PixelType as m,TextureSamplingMode as T,TextureWrapMode as M,TargetType as F,DepthStencilTargetType as R,RenderbufferFormat as w,BlendFactor as C}from"../../../webgl/enums.js";import{FramebufferObject as B}from"../../../webgl/FramebufferObject.js";import{Renderbuffer as O}from"../../../webgl/Renderbuffer.js";const S={[n.FILL]:s.fill,[n.LINE]:s.line,[n.MARKER]:s.marker,[n.TEXT]:s.text};class P{constructor(e,t,s){this.context=e,this._blitRenderer=new i,this._brushCache=new Map,this._vtlMaterialManager=new r,this._blendEffect=new l,this._fboPool=[],this.effects={highlight:new _,hittest:new d,hittestVTL:new b,integrate:new f,insideEffect:new c("inside"),outsideEffect:new c("outside")},this.materialManager=new a(e),this.textureManager=new h(t,s),this._effectsManager=new g(t)}get vectorTilesMaterialManager(){return this._vtlMaterialManager}getRenderTarget(){return this._renderTarget}setRenderTarget(e){this._renderTarget=e}getFbos(e,t){if(e!==this._lastWidth||t!==this._lastHeight){if(this._lastWidth=e,this._lastHeight=t,this._fbos){for(const s in this._fbos)this._fbos[s].resize(e,t);return this._fbos}const s={target:E.TEXTURE_2D,pixelFormat:p.RGBA,dataType:m.UNSIGNED_BYTE,samplingMode:T.NEAREST,wrapMode:M.CLAMP_TO_EDGE,width:e,height:t},r={colorTarget:F.TEXTURE,depthStencilTarget:R.DEPTH_STENCIL_RENDER_BUFFER},i=new O(this.context,{width:e,height:t,internalFormat:w.DEPTH_STENCIL});this._stencilBuf=i,this._fbos={output:new B(this.context,r,s,i),blend:new B(this.context,r,s,i),effect0:new B(this.context,r,s,i)}}return this._fbos}acquireFbo(e,t){let s;s=this._fboPool.length>0?this._fboPool.pop():new B(this.context,{colorTarget:F.TEXTURE,depthStencilTarget:R.DEPTH_STENCIL_RENDER_BUFFER},{target:E.TEXTURE_2D,pixelFormat:p.RGBA,dataType:m.UNSIGNED_BYTE,samplingMode:T.NEAREST,wrapMode:M.CLAMP_TO_EDGE,width:e,height:t},this._stencilBuf);const r=s.descriptor;return r.width===e&&r.height===t||s.resize(e,t),s}releaseFbo(e){this._fboPool.push(e)}getSharedStencilBuffer(){return this._stencilBuf}beforeRenderLayers(t,s=null){const{width:r,height:i}=t.getViewport();this._prevFBO=t.getBoundFramebufferObject();const n=this.getFbos(r,i);if(t.bindFramebuffer(n.output),t.setColorMask(!0,!0,!0,!0),t.setDepthWriteEnabled(!0),e(s)){const{r:e,g:r,b:i,a:n}=s.color;t.setClearColor(n*e/255,n*r/255,n*i/255,n)}else t.setClearColor(0,0,0,0);t.setClearDepth(1),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT),t.setDepthWriteEnabled(!1)}beforeRenderLayer(e,t,s){const{context:r,blendMode:i,effects:n,requireFBO:o,drawPhase:a}=e;if(o||N(a,i,n,s))r.bindFramebuffer(this._fbos.blend),r.setColorMask(!0,!0,!0,!0),r.setClearColor(0,0,0,0),r.setDepthWriteEnabled(!0),r.setClearDepth(1),r.clear(r.gl.COLOR_BUFFER_BIT|r.gl.DEPTH_BUFFER_BIT),r.setDepthWriteEnabled(!1);else{const e=this._getOutputFBO();r.bindFramebuffer(e)}r.setDepthWriteEnabled(!1),r.setDepthTestEnabled(!1),r.setStencilTestEnabled(!0),r.setClearStencil(t),r.setStencilWriteMask(255),r.clear(r.gl.STENCIL_BUFFER_BIT)}compositeLayer(s,r){const{context:i,blendMode:n,effects:a,requireFBO:h,drawPhase:f}=s;if(h||N(f,n,a,r)){e(a)&&a.length>0&&f===o.MAP&&this._applyEffects(s,a);const h=this._getOutputFBO();i.bindFramebuffer(h),i.setStencilTestEnabled(!1),i.setStencilWriteMask(0),i.setBlendingEnabled(!0),i.setBlendFunctionSeparate(C.ONE,C.ONE_MINUS_SRC_ALPHA,C.ONE,C.ONE_MINUS_SRC_ALPHA),i.setColorMask(!0,!0,!0,!0);const l=t(n)||f===o.HIGHLIGHT?"normal":n;this._blendEffect.draw(s,this._fbos.blend.colorTexture,T.NEAREST,l,r)}}renderLayers(e){if(e.bindFramebuffer(this._prevFBO),!this._fbos)return;const t=this._getOutputFBO();e.setStencilTestEnabled(!1),e.setStencilWriteMask(0),this.blitTexture(e,t.colorTexture,T.NEAREST)}dispose(){if(this.materialManager.dispose(),this.textureManager.dispose(),this._blitRenderer&&(this._blitRenderer.dispose(),this._blitRenderer=null),this._brushCache&&(this._brushCache.forEach((e=>e.dispose())),this._brushCache.clear(),this._brushCache=null),this._fbos)for(const e in this._fbos)this._fbos[e]&&this._fbos[e].dispose();for(const e of this._fboPool)e.dispose();if(this._fboPool.length=0,this.effects)for(const e in this.effects)this.effects[e]&&this.effects[e].dispose();this._effectsManager.dispose(),this._vtlMaterialManager&&(this._vtlMaterialManager.dispose(),this._vtlMaterialManager=null),this._prevFBO=null}getGeometryBrush(e){const t=S[e];let s=this._brushCache.get(t);return void 0===s&&(s=new t,this._brushCache.set(t,s)),this._brushCache.get(t)}renderObject(e,t,r,i){const n=s[r];if(!n)return null;let o=this._brushCache.get(n);void 0===o&&(o=new n,this._brushCache.set(n,o)),o.prepareState(e,t,i),o.draw(e,t,i)}renderObjects(e,t,r,i){const n=s[r];if(!n)return null;let o=this._brushCache.get(n);void 0===o&&(o=new n,this._brushCache.set(n,o)),o.drawMany(e,t,i)}registerRenderPass(e){const t=e.brushes.map((e=>(this._brushCache.has(e)||this._brushCache.set(e,new e),this._brushCache.get(e))));return new u(t,e)}setHighlightOptions(e){this.effects.highlight.setHighlightOptions(e)}blitTexture(e,t,s,r=1){e.setBlendingEnabled(!0),e.setBlendFunctionSeparate(C.ONE,C.ONE_MINUS_SRC_ALPHA,C.ONE,C.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),this._blitRenderer.render(e,t,s,r)}getPostProcessingEffects(e){return this._effectsManager.getPostProcessingEffects(e)}_getOutputFBO(){return null!=this._renderTarget?this._renderTarget:this._fbos.output}_applyEffects(e,t){const{context:s}=e,r=this._effectsManager.getPostProcessingEffects(t);for(const{postProcessingEffect:i,effect:n}of r)s.bindFramebuffer(this._fbos.blend),i.draw(e,this._fbos.blend,n)}}function N(t,s,r,i){return t!==o.HIGHLIGHT&&(1!==i||e(s)&&"normal"!==s||e(r)&&r.length>0)}export{P as default};
5
+ import{isSome as e,isNone as t}from"../../../../core/maybe.js";import{brushes as s}from"../brushes.js";import r from"../vectorTiles/shaders/VTLMaterialManager.js";import{BitBlitRenderer as i}from"./BitBlitRenderer.js";import{WGLGeometryType as n,WGLDrawPhase as o}from"./enums.js";import a from"./MaterialManager.js";import h from"./TextureManager.js";import{AnimationEffect as f}from"./effects/AnimationEffect.js";import{BlendEffect as l}from"./effects/BlendEffect.js";import{FeatureEffect as c}from"./effects/FeatureEffect.js";import _ from"./effects/HighlightEffect.js";import{HittestEffect as d}from"./effects/HittestEffect.js";import{HittestEffectVTL as b}from"./effects/HittestEffectVTL.js";import{EffectManager as g}from"./effects/post-processing/EffectManager.js";import u from"./painter/RenderPass.js";import{TextureType as E,PixelFormat as p,PixelType as m,TextureSamplingMode as T,TextureWrapMode as M,TargetType as F,DepthStencilTargetType as R,RenderbufferFormat as w,BlendFactor as C}from"../../../webgl/enums.js";import{FramebufferObject as B}from"../../../webgl/FramebufferObject.js";import{Renderbuffer as O}from"../../../webgl/Renderbuffer.js";const S={[n.FILL]:s.fill,[n.LINE]:s.line,[n.MARKER]:s.marker,[n.TEXT]:s.text};class P{constructor(e,t,s){this.context=e,this._blitRenderer=new i,this._brushCache=new Map,this._vtlMaterialManager=new r,this._blendEffect=new l,this._fboPool=[],this.effects={highlight:new _,hittest:new d,hittestVTL:new b,integrate:new f,insideEffect:new c("inside"),outsideEffect:new c("outside")},this.materialManager=new a(e),this.textureManager=new h(t,s),this._effectsManager=new g}get vectorTilesMaterialManager(){return this._vtlMaterialManager}getRenderTarget(){return this._renderTarget}setRenderTarget(e){this._renderTarget=e}getFbos(e,t){if(e!==this._lastWidth||t!==this._lastHeight){if(this._lastWidth=e,this._lastHeight=t,this._fbos){for(const s in this._fbos)this._fbos[s].resize(e,t);return this._fbos}const s={target:E.TEXTURE_2D,pixelFormat:p.RGBA,dataType:m.UNSIGNED_BYTE,samplingMode:T.NEAREST,wrapMode:M.CLAMP_TO_EDGE,width:e,height:t},r={colorTarget:F.TEXTURE,depthStencilTarget:R.DEPTH_STENCIL_RENDER_BUFFER},i=new O(this.context,{width:e,height:t,internalFormat:w.DEPTH_STENCIL});this._stencilBuf=i,this._fbos={output:new B(this.context,r,s,i),blend:new B(this.context,r,s,i),effect0:new B(this.context,r,s,i)}}return this._fbos}acquireFbo(e,t){let s;s=this._fboPool.length>0?this._fboPool.pop():new B(this.context,{colorTarget:F.TEXTURE,depthStencilTarget:R.DEPTH_STENCIL_RENDER_BUFFER},{target:E.TEXTURE_2D,pixelFormat:p.RGBA,dataType:m.UNSIGNED_BYTE,samplingMode:T.NEAREST,wrapMode:M.CLAMP_TO_EDGE,width:e,height:t},this._stencilBuf);const r=s.descriptor;return r.width===e&&r.height===t||s.resize(e,t),s}releaseFbo(e){this._fboPool.push(e)}getSharedStencilBuffer(){return this._stencilBuf}beforeRenderLayers(t,s=null){const{width:r,height:i}=t.getViewport();this._prevFBO=t.getBoundFramebufferObject();const n=this.getFbos(r,i);if(t.bindFramebuffer(n.output),t.setColorMask(!0,!0,!0,!0),t.setDepthWriteEnabled(!0),e(s)){const{r:e,g:r,b:i,a:n}=s.color;t.setClearColor(n*e/255,n*r/255,n*i/255,n)}else t.setClearColor(0,0,0,0);t.setClearDepth(1),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT),t.setDepthWriteEnabled(!1)}beforeRenderLayer(e,t,s){const{context:r,blendMode:i,effects:n,requireFBO:o,drawPhase:a}=e;if(o||N(a,i,n,s))r.bindFramebuffer(this._fbos.blend),r.setColorMask(!0,!0,!0,!0),r.setClearColor(0,0,0,0),r.setDepthWriteEnabled(!0),r.setClearDepth(1),r.clear(r.gl.COLOR_BUFFER_BIT|r.gl.DEPTH_BUFFER_BIT),r.setDepthWriteEnabled(!1);else{const e=this._getOutputFBO();r.bindFramebuffer(e)}r.setDepthWriteEnabled(!1),r.setDepthTestEnabled(!1),r.setStencilTestEnabled(!0),r.setClearStencil(t),r.setStencilWriteMask(255),r.clear(r.gl.STENCIL_BUFFER_BIT)}compositeLayer(s,r){const{context:i,blendMode:n,effects:a,requireFBO:h,drawPhase:f}=s;if(h||N(f,n,a,r)){e(a)&&a.length>0&&f===o.MAP&&this._applyEffects(s,a);const h=this._getOutputFBO();i.bindFramebuffer(h),i.setStencilTestEnabled(!1),i.setStencilWriteMask(0),i.setBlendingEnabled(!0),i.setBlendFunctionSeparate(C.ONE,C.ONE_MINUS_SRC_ALPHA,C.ONE,C.ONE_MINUS_SRC_ALPHA),i.setColorMask(!0,!0,!0,!0);const l=t(n)||f===o.HIGHLIGHT?"normal":n;this._blendEffect.draw(s,this._fbos.blend.colorTexture,T.NEAREST,l,r)}}renderLayers(e){if(e.bindFramebuffer(this._prevFBO),!this._fbos)return;const t=this._getOutputFBO();e.setStencilTestEnabled(!1),e.setStencilWriteMask(0),this.blitTexture(e,t.colorTexture,T.NEAREST)}dispose(){if(this.materialManager.dispose(),this.textureManager.dispose(),this._blitRenderer&&(this._blitRenderer.dispose(),this._blitRenderer=null),this._brushCache&&(this._brushCache.forEach((e=>e.dispose())),this._brushCache.clear(),this._brushCache=null),this._fbos)for(const e in this._fbos)this._fbos[e]&&this._fbos[e].dispose();for(const e of this._fboPool)e.dispose();if(this._fboPool.length=0,this.effects)for(const e in this.effects)this.effects[e]&&this.effects[e].dispose();this._effectsManager.dispose(),this._vtlMaterialManager&&(this._vtlMaterialManager.dispose(),this._vtlMaterialManager=null),this._prevFBO=null}getGeometryBrush(e){const t=S[e];let s=this._brushCache.get(t);return void 0===s&&(s=new t,this._brushCache.set(t,s)),this._brushCache.get(t)}renderObject(e,t,r,i){const n=s[r];if(!n)return null;let o=this._brushCache.get(n);void 0===o&&(o=new n,this._brushCache.set(n,o)),o.prepareState(e,t,i),o.draw(e,t,i)}renderObjects(e,t,r,i){const n=s[r];if(!n)return null;let o=this._brushCache.get(n);void 0===o&&(o=new n,this._brushCache.set(n,o)),o.drawMany(e,t,i)}registerRenderPass(e){const t=e.brushes.map((e=>(this._brushCache.has(e)||this._brushCache.set(e,new e),this._brushCache.get(e))));return new u(t,e)}setHighlightOptions(e){this.effects.highlight.setHighlightOptions(e)}blitTexture(e,t,s,r=1){e.setBlendingEnabled(!0),e.setBlendFunctionSeparate(C.ONE,C.ONE_MINUS_SRC_ALPHA,C.ONE,C.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),this._blitRenderer.render(e,t,s,r)}getPostProcessingEffects(e){return this._effectsManager.getPostProcessingEffects(e)}_getOutputFBO(){return null!=this._renderTarget?this._renderTarget:this._fbos.output}_applyEffects(e,t){const{context:s}=e,r=this._effectsManager.getPostProcessingEffects(t);for(const{postProcessingEffect:i,effect:n}of r)s.bindFramebuffer(this._fbos.blend),i.draw(e,this._fbos.blend,n)}}function N(t,s,r,i){return t!==o.HIGHLIGHT&&(1!==i||e(s)&&"normal"!==s||e(r)&&r.length>0)}export{P as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{TEXTURE_BINDING_BITMAP as e}from"../definitions.js";import t from"../VertexStream.js";import i from"./WGLBrush.js";import{TextureSamplingMode as s,BlendFactor as n,CompareFunction as a}from"../../../../webgl/enums.js";const r={nearest:{defines:[],samplingMode:s.NEAREST,mips:!1},bilinear:{defines:[],samplingMode:s.LINEAR,mips:!1},bicubic:{defines:["bicubic"],samplingMode:s.LINEAR,mips:!1},trilinear:{defines:[],samplingMode:s.LINEAR_MIPMAP_LINEAR,mips:!0}},o=(e,t,i)=>{if("dynamic"===i.samplingMode){const{state:i}=e,s=t.resolution/t.pixelRatio/i.resolution,n=Math.round(e.pixelRatio)!==e.pixelRatio,a=s>1.05||s<.95;return i.rotation||a||n||t.isSourceScaled||t.rotation?r.bilinear:r.nearest}return r[i.samplingMode]};class d extends i{constructor(){super(...arguments),this._desc={vsPath:"raster/bitmap",fsPath:"raster/bitmap",attributes:new Map([["a_position",0],["a_texcoord",1]])}}dispose(){this._quad&&this._quad.dispose()}prepareState({context:e},t){e.setBlendingEnabled(!0),"additive"===t.blendFunction?e.setBlendFunctionSeparate(n.ONE,n.ONE,n.ONE,n.ONE):e.setBlendFunctionSeparate(n.ONE,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilFunction(a.EQUAL,t.stencilRef,255)}draw(i,s){const{context:n,renderingOptions:a,painter:r}=i;if(!s.source)return;i.timeline.begin(this.name),this._quad||(this._quad=new t(n,[0,0,1,0,0,1,1,1]));const d=o(i,s,a),m=r.materialManager.getProgram(this._desc,d.defines),{coordScale:c,computedOpacity:l,transforms:p}=s;s.setSamplingProfile(d),s.bind(i.context,e),n.useProgram(m),m.setUniformMatrix3fv("u_dvsMat3",p.dvs),m.setUniform1i("u_texture",e),m.setUniform2fv("u_coordScale",c),m.setUniform1f("u_opacity",l),this._quad.draw(),i.timeline.end(this.name)}}export{d as default};
5
+ import{isSome as e}from"../../../../../core/maybe.js";import{TEXTURE_BINDING_BITMAP as t}from"../definitions.js";import i from"../VertexStream.js";import s from"./WGLBrush.js";import{TextureSamplingMode as n,BlendFactor as r,CompareFunction as o}from"../../../../webgl/enums.js";const a={nearest:{defines:[],samplingMode:n.NEAREST,mips:!1},bilinear:{defines:[],samplingMode:n.LINEAR,mips:!1},bicubic:{defines:["bicubic"],samplingMode:n.LINEAR,mips:!1},trilinear:{defines:[],samplingMode:n.LINEAR_MIPMAP_LINEAR,mips:!0}},d=(e,t,i)=>{if("dynamic"===i.samplingMode){const{state:i}=e,s=t.resolution/t.pixelRatio/i.resolution,n=Math.round(e.pixelRatio)!==e.pixelRatio,r=s>1.05||s<.95;return i.rotation||r||n||t.isSourceScaled||t.rotation?a.bilinear:a.nearest}return a[i.samplingMode]};class m extends s{constructor(){super(...arguments),this._desc={vsPath:"raster/bitmap",fsPath:"raster/bitmap",attributes:new Map([["a_position",0],["a_texcoord",1]])}}dispose(){this._quad&&this._quad.dispose()}prepareState({context:e},t){e.setBlendingEnabled(!0),"additive"===t.blendFunction?e.setBlendFunctionSeparate(r.ONE,r.ONE,r.ONE,r.ONE):e.setBlendFunctionSeparate(r.ONE,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilFunction(o.EQUAL,t.stencilRef,255)}draw(s,n){const{context:r,renderingOptions:o,painter:a,requestRender:m}=s;if(!n.source)return;const c=d(s,n,o),l=a.materialManager.getProgram(this._desc,c.defines);if(e(m)&&!l.isCompiled)return void m();s.timeline.begin(this.name),this._quad||(this._quad=new i(r,[0,0,1,0,0,1,1,1]));const{coordScale:p,computedOpacity:u,transforms:f}=n;n.setSamplingProfile(c),n.bind(s.context,t),r.useProgram(l),l.setUniformMatrix3fv("u_dvsMat3",f.dvs),l.setUniform1i("u_texture",t),l.setUniform2fv("u_coordScale",p),l.setUniform1f("u_opacity",u),this._quad.draw(),s.timeline.end(this.name)}}export{m as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{isNone as r}from"../../../../../core/maybe.js";import{f as t}from"../../../../../chunks/vec4f32.js";import{createProgramDescriptor as e}from"../Utils.js";import s from"./WGLBrush.js";import{background as o}from"../shaders/BackgroundPrograms.js";import{StencilOperation as i,CompareFunction as a,DataType as m,PrimitiveType as n}from"../../../../webgl/enums.js";import{createProgram as p}from"../../../../webgl/ProgramTemplate.js";const c=()=>e("clip",{geometry:[{location:0,name:"a_pos",count:2,type:m.SHORT}]});class l extends s{constructor(){super(...arguments),this._color=t(0,1,0,1)}dispose(){this._program&&this._program.dispose()}prepareState({context:r}){r.setStencilTestEnabled(!0),r.setBlendingEnabled(!1),r.setFaceCullingEnabled(!1),r.setColorMask(!1,!1,!1,!1),r.setStencilOp(i.KEEP,i.KEEP,i.REPLACE),r.setStencilWriteMask(255),r.setStencilFunction(a.ALWAYS,0,255)}draw(t,e){const{context:s,state:i}=t,a=c(),l=e.getVAO(s,i,a.attributes,a.bufferLayouts);r(l.indexBuffer)||(this._program||(this._program=p(s,o)),s.useProgram(this._program),this._program.setUniform2fv("u_coord_range",[1,1]),this._program.setUniform4fv("u_color",this._color),this._program.setUniformMatrix3fv("u_dvsMat3",i.displayMat3),s.bindVAO(l),s.drawElements(n.TRIANGLES,l.indexBuffer.size,m.UNSIGNED_INT,0),s.bindVAO())}}export{l as default};
5
+ import{isNone as r,isSome as t}from"../../../../../core/maybe.js";import{f as e}from"../../../../../chunks/vec4f32.js";import{createProgramDescriptor as s}from"../Utils.js";import o from"./WGLBrush.js";import{background as i}from"../shaders/BackgroundPrograms.js";import{StencilOperation as a,CompareFunction as m,DataType as n,PrimitiveType as p}from"../../../../webgl/enums.js";import{createProgram as l}from"../../../../webgl/ProgramTemplate.js";const c=()=>s("clip",{geometry:[{location:0,name:"a_pos",count:2,type:n.SHORT}]});class f extends o{constructor(){super(...arguments),this._color=e(0,1,0,1)}dispose(){this._program&&this._program.dispose()}prepareState({context:r}){r.setStencilTestEnabled(!0),r.setBlendingEnabled(!1),r.setFaceCullingEnabled(!1),r.setColorMask(!1,!1,!1,!1),r.setStencilOp(a.KEEP,a.KEEP,a.REPLACE),r.setStencilWriteMask(255),r.setStencilFunction(m.ALWAYS,0,255)}draw(e,s){const{context:o,state:a,requestRender:m}=e,f=c(),d=s.getVAO(o,a,f.attributes,f.bufferLayouts);r(d.indexBuffer)||(this._program||(this._program=l(o,i)),!t(m)||this._program.isCompiled?(o.useProgram(this._program),this._program.setUniform2fv("u_coord_range",[1,1]),this._program.setUniform4fv("u_color",this._color),this._program.setUniformMatrix3fv("u_dvsMat3",a.displayMat3),o.bindVAO(d),o.drawElements(p.TRIANGLES,d.indexBuffer.size,n.UNSIGNED_INT,0),o.bindVAO()):m())}}export{f as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{f as t}from"../../../../../chunks/vec4f32.js";import{Pos2b as e}from"../DefaultVertexAttributeLayouts.js";import r from"./WGLBrush.js";import{background as i}from"../shaders/BackgroundPrograms.js";import{tileInfo as s}from"../shaders/TileInfoPrograms.js";import{BufferObject as o}from"../../../../webgl/BufferObject.js";import{BlendFactor as n,PrimitiveType as a,Usage as l,TextureType as u,PixelFormat as _,PixelType as m,TextureSamplingMode as f,TextureWrapMode as c}from"../../../../webgl/enums.js";import{createProgram as h}from"../../../../webgl/ProgramTemplate.js";import{Texture as g}from"../../../../webgl/Texture.js";import{VertexArrayObject as d}from"../../../../webgl/VertexArrayObject.js";const A=300,b=32;class p extends r{constructor(){super(...arguments),this._color=t(1,0,0,1)}dispose(){this._outlineProgram&&(this._outlineProgram.dispose(),this._outlineProgram=null),this._tileInfoProgram&&(this._tileInfoProgram.dispose(),this._tileInfoProgram=null),this._outlineVertexArrayObject&&(this._outlineVertexArrayObject.dispose(),this._outlineVertexArrayObject=null),this._tileInfoVertexArrayObject&&(this._tileInfoVertexArrayObject.dispose(),this._tileInfoVertexArrayObject=null),this._canvas=null}prepareState({context:t}){t.setBlendingEnabled(!0),t.setBlendFunctionSeparate(n.ONE,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA),t.setColorMask(!0,!0,!0,!0),t.setStencilWriteMask(0),t.setStencilTestEnabled(!1)}draw(t,e){const{context:r}=t;if(!e.isReady)return;this._loadWGLResources(r),r.bindVAO(this._outlineVertexArrayObject),r.useProgram(this._outlineProgram),this._outlineProgram.setUniformMatrix3fv("u_dvsMat3",e.transforms.dvs),this._outlineProgram.setUniform2f("u_coord_range",e.rangeX,e.rangeY),this._outlineProgram.setUniform1f("u_depth",0),this._outlineProgram.setUniform4fv("u_color",this._color),r.drawArrays(a.LINE_STRIP,0,4);const i=this._getTexture(r,e);i?(r.bindVAO(this._tileInfoVertexArrayObject),r.useProgram(this._tileInfoProgram),r.bindTexture(i,0),this._tileInfoProgram.setUniformMatrix3fv("u_dvsMat3",e.transforms.dvs),this._tileInfoProgram.setUniform1f("u_depth",0),this._tileInfoProgram.setUniform2f("u_coord_ratio",e.rangeX/e.width,e.rangeY/e.height),this._tileInfoProgram.setUniform2f("u_delta",8,8),this._tileInfoProgram.setUniform2f("u_dimensions",i.descriptor.width,i.descriptor.height),r.drawArrays(a.TRIANGLE_STRIP,0,4),r.bindVAO()):r.bindVAO()}_loadWGLResources(t){if(this._outlineProgram&&this._tileInfoProgram)return;const r=h(t,i),n=h(t,s),a=new Int8Array([0,0,1,0,1,1,0,1]),u=o.createVertex(t,l.STATIC_DRAW,a),_=new d(t,i.attributes,e,{geometry:u}),m=new Int8Array([0,0,1,0,0,1,1,1]),f=o.createVertex(t,l.STATIC_DRAW,m),c=new d(t,s.attributes,e,{geometry:f});this._outlineProgram=r,this._tileInfoProgram=n,this._outlineVertexArrayObject=_,this._tileInfoVertexArrayObject=c}_getTexture(t,e){if(e.texture&&e.triangleCountReportedInDebug===e.triangleCount)return e.texture;e.triangleCountReportedInDebug=e.triangleCount,this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.setAttribute("id","canvas2d"),this._canvas.setAttribute("width",`${A}`),this._canvas.setAttribute("height",`${b}`),this._canvas.setAttribute("style","display:none"));const r=e.triangleCount;let i=e.key.id;e.triangleCount>0&&(i+=`, ${r}`);const s=this._canvas,o=s.getContext("2d");return o.font="24px sans-serif",o.textAlign="left",o.textBaseline="top",o.clearRect(0,0,A,b),r>1e5?(o.fillStyle="red",o.fillRect(0,0,A,b),o.fillStyle="black"):(o.clearRect(0,0,A,b),o.fillStyle="blue"),o.fillText(i,0,0),e.texture=new g(t,{target:u.TEXTURE_2D,pixelFormat:_.RGBA,dataType:m.UNSIGNED_BYTE,samplingMode:f.NEAREST,wrapMode:c.CLAMP_TO_EDGE},s),e.texture}}export{p as default};
5
+ import{isSome as t}from"../../../../../core/maybe.js";import{f as e}from"../../../../../chunks/vec4f32.js";import{Pos2b as r}from"../DefaultVertexAttributeLayouts.js";import i from"./WGLBrush.js";import{background as o}from"../shaders/BackgroundPrograms.js";import{tileInfo as s}from"../shaders/TileInfoPrograms.js";import{BufferObject as n}from"../../../../webgl/BufferObject.js";import{BlendFactor as a,PrimitiveType as l,Usage as u,TextureType as m,PixelFormat as _,PixelType as f,TextureSamplingMode as h,TextureWrapMode as c}from"../../../../webgl/enums.js";import{createProgram as g}from"../../../../webgl/ProgramTemplate.js";import{Texture as d}from"../../../../webgl/Texture.js";import{VertexArrayObject as p}from"../../../../webgl/VertexArrayObject.js";const A=300,b=32;class x extends i{constructor(){super(...arguments),this._color=e(1,0,0,1)}dispose(){this._outlineProgram&&(this._outlineProgram.dispose(),this._outlineProgram=null),this._tileInfoProgram&&(this._tileInfoProgram.dispose(),this._tileInfoProgram=null),this._outlineVertexArrayObject&&(this._outlineVertexArrayObject.dispose(),this._outlineVertexArrayObject=null),this._tileInfoVertexArrayObject&&(this._tileInfoVertexArrayObject.dispose(),this._tileInfoVertexArrayObject=null),this._canvas=null}prepareState({context:t}){t.setBlendingEnabled(!0),t.setBlendFunctionSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA),t.setColorMask(!0,!0,!0,!0),t.setStencilWriteMask(0),t.setStencilTestEnabled(!1)}draw(e,r){const{context:i,requestRender:o}=e;if(!r.isReady)return;if(this._loadWGLResources(i),t(o)&&(!this._outlineProgram.isCompiled||!this._tileInfoProgram.isCompiled))return void o();i.bindVAO(this._outlineVertexArrayObject),i.useProgram(this._outlineProgram),this._outlineProgram.setUniformMatrix3fv("u_dvsMat3",r.transforms.dvs),this._outlineProgram.setUniform2f("u_coord_range",r.rangeX,r.rangeY),this._outlineProgram.setUniform1f("u_depth",0),this._outlineProgram.setUniform4fv("u_color",this._color),i.drawArrays(l.LINE_STRIP,0,4);const s=this._getTexture(i,r);s?(i.bindVAO(this._tileInfoVertexArrayObject),i.useProgram(this._tileInfoProgram),i.bindTexture(s,0),this._tileInfoProgram.setUniformMatrix3fv("u_dvsMat3",r.transforms.dvs),this._tileInfoProgram.setUniform1f("u_depth",0),this._tileInfoProgram.setUniform2f("u_coord_ratio",r.rangeX/r.width,r.rangeY/r.height),this._tileInfoProgram.setUniform2f("u_delta",8,8),this._tileInfoProgram.setUniform2f("u_dimensions",s.descriptor.width,s.descriptor.height),i.drawArrays(l.TRIANGLE_STRIP,0,4),i.bindVAO()):i.bindVAO()}_loadWGLResources(t){if(this._outlineProgram&&this._tileInfoProgram)return;const e=g(t,o),i=g(t,s),a=new Int8Array([0,0,1,0,1,1,0,1]),l=n.createVertex(t,u.STATIC_DRAW,a),m=new p(t,o.attributes,r,{geometry:l}),_=new Int8Array([0,0,1,0,0,1,1,1]),f=n.createVertex(t,u.STATIC_DRAW,_),h=new p(t,s.attributes,r,{geometry:f});this._outlineProgram=e,this._tileInfoProgram=i,this._outlineVertexArrayObject=m,this._tileInfoVertexArrayObject=h}_getTexture(t,e){if(e.texture&&e.triangleCountReportedInDebug===e.triangleCount)return e.texture;e.triangleCountReportedInDebug=e.triangleCount,this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.setAttribute("id","canvas2d"),this._canvas.setAttribute("width",`${A}`),this._canvas.setAttribute("height",`${b}`),this._canvas.setAttribute("style","display:none"));const r=e.triangleCount;let i=e.key.id;e.triangleCount>0&&(i+=`, ${r}`);const o=this._canvas,s=o.getContext("2d");return s.font="24px sans-serif",s.textAlign="left",s.textBaseline="top",s.clearRect(0,0,A,b),r>1e5?(s.fillStyle="red",s.fillRect(0,0,A,b),s.fillStyle="black"):(s.clearRect(0,0,A,b),s.fillStyle="blue"),s.fillText(i,0,0),e.texture=new d(t,{target:m.TEXTURE_2D,pixelFormat:_.RGBA,dataType:f.UNSIGNED_BYTE,samplingMode:h.NEAREST,wrapMode:c.CLAMP_TO_EDGE},o),e.texture}}export{x as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{f as t}from"../../../../../chunks/vec4f32.js";import{Pos2b as r}from"../DefaultVertexAttributeLayouts.js";import e from"./WGLBrush.js";import{background as i}from"../shaders/BackgroundPrograms.js";import{BufferObject as s}from"../../../../webgl/BufferObject.js";import{StencilOperation as o,Face as a,CompareFunction as n,PrimitiveType as l,Usage as d}from"../../../../webgl/enums.js";import{createProgram as m}from"../../../../webgl/ProgramTemplate.js";import{VertexArrayObject as _}from"../../../../webgl/VertexArrayObject.js";class c extends e{constructor(){super(...arguments),this._color=t(1,0,0,1),this._initialized=!1}dispose(){this._solidProgram&&(this._solidProgram.dispose(),this._solidProgram=null),this._solidVertexArrayObject&&(this._solidVertexArrayObject.dispose(),this._solidVertexArrayObject=null)}prepareState({context:t},r){t.setDepthWriteEnabled(!1),t.setDepthTestEnabled(!1),t.setStencilTestEnabled(!0),t.setBlendingEnabled(!1),t.setColorMask(!1,!1,!1,!1),t.setStencilOp(o.KEEP,o.KEEP,o.REPLACE),t.setStencilWriteMask(255),t.setStencilFunctionSeparate(a.FRONT_AND_BACK,n.GREATER,r.stencilRef,255)}draw(t,r){const{context:e}=t;this._initialized||this._initialize(e),e.bindVAO(this._solidVertexArrayObject),e.useProgram(this._solidProgram),this._solidProgram.setUniformMatrix3fv("u_dvsMat3",r.transforms.dvs),this._solidProgram.setUniform2fv("u_coord_range",[r.rangeX,r.rangeY]),this._solidProgram.setUniform1f("u_depth",0),this._solidProgram.setUniform4fv("u_color",this._color),e.drawArrays(l.TRIANGLE_STRIP,0,4),e.bindVAO()}_initialize(t){if(this._initialized)return!0;const e=m(t,i);if(!e)return!1;const o=new Int8Array([0,0,1,0,0,1,1,1]),a=s.createVertex(t,d.STATIC_DRAW,o),n=new _(t,i.attributes,r,{geometry:a});return this._solidProgram=e,this._solidVertexArrayObject=n,this._initialized=!0,!0}}export{c as default};
5
+ import{isSome as r}from"../../../../../core/maybe.js";import{f as t}from"../../../../../chunks/vec4f32.js";import{Pos2b as e}from"../DefaultVertexAttributeLayouts.js";import i from"./WGLBrush.js";import{background as s}from"../shaders/BackgroundPrograms.js";import{BufferObject as o}from"../../../../webgl/BufferObject.js";import{StencilOperation as a,Face as l,CompareFunction as n,PrimitiveType as d,Usage as m}from"../../../../webgl/enums.js";import{createProgram as _}from"../../../../webgl/ProgramTemplate.js";import{VertexArrayObject as c}from"../../../../webgl/VertexArrayObject.js";class h extends i{constructor(){super(...arguments),this._color=t(1,0,0,1),this._initialized=!1}dispose(){this._solidProgram&&(this._solidProgram.dispose(),this._solidProgram=null),this._solidVertexArrayObject&&(this._solidVertexArrayObject.dispose(),this._solidVertexArrayObject=null)}prepareState({context:r},t){r.setDepthWriteEnabled(!1),r.setDepthTestEnabled(!1),r.setStencilTestEnabled(!0),r.setBlendingEnabled(!1),r.setColorMask(!1,!1,!1,!1),r.setStencilOp(a.KEEP,a.KEEP,a.REPLACE),r.setStencilWriteMask(255),r.setStencilFunctionSeparate(l.FRONT_AND_BACK,n.GREATER,t.stencilRef,255)}draw(t,e){const{context:i,requestRender:s}=t;this._initialized||this._initialize(i),!r(s)||this._solidProgram.isCompiled?(i.bindVAO(this._solidVertexArrayObject),i.useProgram(this._solidProgram),this._solidProgram.setUniformMatrix3fv("u_dvsMat3",e.transforms.dvs),this._solidProgram.setUniform2fv("u_coord_range",[e.rangeX,e.rangeY]),this._solidProgram.setUniform1f("u_depth",0),this._solidProgram.setUniform4fv("u_color",this._color),i.drawArrays(d.TRIANGLE_STRIP,0,4),i.bindVAO()):s()}_initialize(r){if(this._initialized)return!0;const t=_(r,s);if(!t)return!1;const i=new Int8Array([0,0,1,0,0,1,1,1]),a=o.createVertex(r,m.STATIC_DRAW,i),l=new c(r,s.attributes,e,{geometry:a});return this._solidProgram=t,this._solidVertexArrayObject=l,this._initialized=!0,!0}}export{h as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{nextPowerOfTwo as t}from"../../../../../core/mathUtils.js";import{isSome as r}from"../../../../../core/maybe.js";import{c as o}from"../../../../../chunks/mat3f32.js";import{f as e}from"../../../../../chunks/vec4f32.js";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as i,VTL_HIGH_RES_CUTOFF as s}from"../definitions.js";import{WGLDrawPhase as a}from"../enums.js";import{u32to4Xu8 as n}from"../number.js";import c from"./WGLBrush.js";import{BufferObject as m}from"../../../../webgl/BufferObject.js";import{TextureSamplingMode as f,CompareFunction as l,PrimitiveType as u,Usage as p}from"../../../../webgl/enums.js";import{VertexArrayObject as _}from"../../../../webgl/VertexArrayObject.js";class d extends c{constructor(){super(...arguments),this._color=e(1,0,0,1),this._patternMatrix=o(),this._programOptions={id:!1,pattern:!1}}dispose(){this._vao&&(this._vao.dispose(),this._vao=null)}drawMany(o,e){const{context:c,painter:m,styleLayerUID:p}=o;this._loadWGLResources(o);const _=o.displayLevel,d=o.styleLayer,h=d.backgroundMaterial,g=m.vectorTilesMaterialManager,v=d.getPaintValue("background-color",_),b=d.getPaintValue("background-opacity",_),y=d.getPaintValue("background-pattern",_),M=void 0!==y,x=v[3]*b,j=1|window.devicePixelRatio,U=o.spriteMosaic;let L,w;const A=j>s?2:1,P=o.drawPhase===a.HITTEST,I=this._programOptions;I.id=P,I.pattern=M;const k=g.getMaterialProgram(c,h,I);if(c.bindVAO(this._vao),c.useProgram(k),M){const t=U.getMosaicItemPosition(y,!0);if(r(t)){const{tl:o,br:e,page:s}=t;L=e[0]-o[0],w=e[1]-o[1];const a=U.getPageSize(s);r(a)&&(U.bind(c,f.LINEAR,s,i),k.setUniform4f("u_tlbr",o[0],o[1],e[0],e[1]),k.setUniform2fv("u_mosaicSize",a),k.setUniform1i("u_texture",i))}k.setUniform1f("u_opacity",b)}else this._color[0]=x*v[0],this._color[1]=x*v[1],this._color[2]=x*v[2],this._color[3]=x,k.setUniform4fv("u_color",this._color);if(k.setUniform1f("u_depth",d.z||0),P){const t=n(p+1);k.setUniform4fv("u_id",t)}for(const r of e){if(k.setUniform1f("u_coord_range",r.rangeX),k.setUniformMatrix3fv("u_dvsMat3",r.transforms.dvs),M){const o=Math.max(2**(Math.round(_)-r.key.level),1),e=A*r.width*o,i=e/t(L),s=e/t(w);this._patternMatrix[0]=i,this._patternMatrix[4]=s,k.setUniformMatrix3fv("u_pattern_matrix",this._patternMatrix)}c.setStencilFunction(l.EQUAL,r.stencilRef,255),c.drawArrays(u.TRIANGLE_STRIP,0,4)}}_loadWGLResources(t){if(this._vao)return;const{context:r,styleLayer:o}=t,e=o.backgroundMaterial,i=new Int8Array([0,0,1,0,0,1,1,1]),s=m.createVertex(r,p.STATIC_DRAW,i),a=new _(r,e.getAttributeLocations(),e.getLayoutInfo(),{geometry:s});this._vao=a}}export{d as WGLBrushVTLBackground};
5
+ import{nextPowerOfTwo as t}from"../../../../../core/mathUtils.js";import{isSome as r}from"../../../../../core/maybe.js";import{c as e}from"../../../../../chunks/mat3f32.js";import{f as o}from"../../../../../chunks/vec4f32.js";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as i,VTL_HIGH_RES_CUTOFF as s}from"../definitions.js";import{WGLDrawPhase as a}from"../enums.js";import{u32to4Xu8 as n}from"../number.js";import c from"./WGLBrush.js";import{BufferObject as m}from"../../../../webgl/BufferObject.js";import{TextureSamplingMode as f,CompareFunction as l,PrimitiveType as u,Usage as p}from"../../../../webgl/enums.js";import{VertexArrayObject as _}from"../../../../webgl/VertexArrayObject.js";class d extends c{constructor(){super(...arguments),this._color=o(1,0,0,1),this._patternMatrix=e(),this._programOptions={id:!1,pattern:!1}}dispose(){this._vao&&(this._vao.dispose(),this._vao=null)}drawMany(e,o){const{context:c,painter:m,styleLayerUID:p,requestRender:_}=e;this._loadWGLResources(e);const d=e.displayLevel,h=e.styleLayer,g=h.backgroundMaterial,v=m.vectorTilesMaterialManager,b=h.getPaintValue("background-color",d),y=h.getPaintValue("background-opacity",d),M=h.getPaintValue("background-pattern",d),x=void 0!==M,j=b[3]*y,U=1|window.devicePixelRatio,L=e.spriteMosaic;let w,A;const P=U>s?2:1,I=e.drawPhase===a.HITTEST,R=this._programOptions;R.id=I,R.pattern=x;const k=v.getMaterialProgram(c,g,R);if(!r(_)||I||k.isCompiled){if(c.bindVAO(this._vao),c.useProgram(k),x){const t=L.getMosaicItemPosition(M,!0);if(r(t)){const{tl:e,br:o,page:s}=t;w=o[0]-e[0],A=o[1]-e[1];const a=L.getPageSize(s);r(a)&&(L.bind(c,f.LINEAR,s,i),k.setUniform4f("u_tlbr",e[0],e[1],o[0],o[1]),k.setUniform2fv("u_mosaicSize",a),k.setUniform1i("u_texture",i))}k.setUniform1f("u_opacity",y)}else this._color[0]=j*b[0],this._color[1]=j*b[1],this._color[2]=j*b[2],this._color[3]=j,k.setUniform4fv("u_color",this._color);if(k.setUniform1f("u_depth",h.z||0),I){const t=n(p+1);k.setUniform4fv("u_id",t)}for(const r of o){if(k.setUniform1f("u_coord_range",r.rangeX),k.setUniformMatrix3fv("u_dvsMat3",r.transforms.dvs),x){const e=Math.max(2**(Math.round(d)-r.key.level),1),o=P*r.width*e,i=o/t(w),s=o/t(A);this._patternMatrix[0]=i,this._patternMatrix[4]=s,k.setUniformMatrix3fv("u_pattern_matrix",this._patternMatrix)}c.setStencilFunction(l.EQUAL,r.stencilRef,255),c.drawArrays(u.TRIANGLE_STRIP,0,4)}}else _()}_loadWGLResources(t){if(this._vao)return;const{context:r,styleLayer:e}=t,o=e.backgroundMaterial,i=new Int8Array([0,0,1,0,0,1,1,1]),s=m.createVertex(r,p.STATIC_DRAW,i),a=new _(r,o.getAttributeLocations(),o.getLayoutInfo(),{geometry:s});this._vao=a}}export{d as WGLBrushVTLBackground};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{isNone as e}from"../../../../../core/maybe.js";import{TranslateAnchor as t}from"../../vectorTiles/style/StyleDefinition.js";import{WGLDrawPhase as r}from"../enums.js";import{u32to4Xu8 as i}from"../number.js";import n from"./WGLBrush.js";import{CompareFunction as a,PrimitiveType as s,DataType as o}from"../../../../webgl/enums.js";class l extends n{constructor(){super(...arguments),this._programOptions={id:!1}}dispose(){}drawMany(n,l){const{context:c,displayLevel:m,requiredLevel:u,state:f,drawPhase:d,painter:p,spriteMosaic:y,styleLayerUID:v}=n;if(!l.some((e=>{var t,r;return null!=(t=null==(r=e.layerData.get(v))?void 0:r.circleIndexCount)&&t})))return;const g=n.styleLayer,E=g.circleMaterial,M=p.vectorTilesMaterialManager,T=1.2,x=g.getPaintValue("circle-translate",m),I=g.getPaintValue("circle-translate-anchor",m),U=d===r.HITTEST,_=this._programOptions;_.id=U;const h=M.getMaterialProgram(c,E,_);c.useProgram(h),h.setUniformMatrix3fv("u_displayMat3",I===t.VIEWPORT?f.displayMat3:f.displayViewMat3),h.setUniform2fv("u_circleTranslation",x),h.setUniform1f("u_depth",g.z),h.setUniform1f("u_antialiasingWidth",T);let L=-1;if(U){const e=i(v+1);h.setUniform4fv("u_id",e)}for(const t of l){if(!t.layerData.has(v))continue;t.key.level!==L&&(L=t.key.level,E.setDataUniforms(h,m,g,L,y));const r=t.layerData.get(v);if(!r.circleIndexCount)continue;r.prepareForRendering(c);const i=r.circleVertexArrayObject;e(i)||(c.bindVAO(i),h.setUniformMatrix3fv("u_dvsMat3",t.transforms.dvs),u!==t.key.level?c.setStencilFunction(a.EQUAL,t.stencilRef,255):c.setStencilFunction(a.GREATER,255,255),c.drawElements(s.TRIANGLES,r.circleIndexCount,o.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*r.circleIndexStart),t.triangleCount+=r.circleIndexCount/3)}}}export{l as WGLBrushVTLCircle};
5
+ import{isSome as e,isNone as t}from"../../../../../core/maybe.js";import{TranslateAnchor as r}from"../../vectorTiles/style/StyleDefinition.js";import{WGLDrawPhase as i}from"../enums.js";import{u32to4Xu8 as n}from"../number.js";import a from"./WGLBrush.js";import{CompareFunction as s,PrimitiveType as o,DataType as l}from"../../../../webgl/enums.js";class c extends a{constructor(){super(...arguments),this._programOptions={id:!1}}dispose(){}drawMany(a,c){const{context:m,displayLevel:u,requiredLevel:f,state:d,drawPhase:p,painter:y,spriteMosaic:v,styleLayerUID:g,requestRender:E}=a;if(!c.some((e=>{var t,r;return null!=(t=null==(r=e.layerData.get(g))?void 0:r.circleIndexCount)&&t})))return;const M=a.styleLayer,T=M.circleMaterial,x=y.vectorTilesMaterialManager,I=1.2,U=M.getPaintValue("circle-translate",u),_=M.getPaintValue("circle-translate-anchor",u),h=p===i.HITTEST,L=this._programOptions;L.id=h;const R=x.getMaterialProgram(m,T,L);if(!h&&e(E)&&!R.isCompiled)return void E();m.useProgram(R),R.setUniformMatrix3fv("u_displayMat3",_===r.VIEWPORT?d.displayMat3:d.displayViewMat3),R.setUniform2fv("u_circleTranslation",U),R.setUniform1f("u_depth",M.z),R.setUniform1f("u_antialiasingWidth",I);let S=-1;if(h){const e=n(g+1);R.setUniform4fv("u_id",e)}for(const e of c){if(!e.layerData.has(g))continue;e.key.level!==S&&(S=e.key.level,T.setDataUniforms(R,u,M,S,v));const r=e.layerData.get(g);if(!r.circleIndexCount)continue;r.prepareForRendering(m);const i=r.circleVertexArrayObject;t(i)||(m.bindVAO(i),R.setUniformMatrix3fv("u_dvsMat3",e.transforms.dvs),f!==e.key.level?m.setStencilFunction(s.EQUAL,e.stencilRef,255):m.setStencilFunction(s.GREATER,255,255),m.drawElements(o.TRIANGLES,r.circleIndexCount,l.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*r.circleIndexStart),e.triangleCount+=r.circleIndexCount/3)}}}export{c as WGLBrushVTLCircle};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{isNone as t,isSome as e}from"../../../../../core/maybe.js";import{TranslateAnchor as i}from"../../vectorTiles/style/StyleDefinition.js";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as a,VTL_HIGH_RES_CUTOFF as n}from"../definitions.js";import{WGLDrawPhase as r}from"../enums.js";import{u32to4Xu8 as o}from"../number.js";import l from"./WGLBrush.js";import{TextureSamplingMode as s,CompareFunction as f,PrimitiveType as u,DataType as c}from"../../../../webgl/enums.js";const d=1/65536;class m extends l{constructor(){super(...arguments),this._fillProgramOptions={id:!1,pattern:!1},this._outlineProgramOptions={id:!1}}dispose(){}drawMany(t,e){const{displayLevel:i,drawPhase:a,renderPass:n,spriteMosaic:l,styleLayerUID:s}=t;let f=!1;for(const r of e)if(r.layerData.has(s)){const t=r.layerData.get(s);if(t.fillIndexCount>0||t.outlineIndexCount>0){f=!0;break}}if(!f)return;const u=t.styleLayer,c=u.getPaintProperty("fill-pattern"),d=void 0!==c,m=d&&c.isDataDriven;let p;if(d&&!m){const t=c.getValue(i);p=l.getMosaicItemPosition(t,!0)}const y=!d&&u.getPaintValue("fill-antialias",i);let g=!0,_=1;if(!d){const t=u.getPaintProperty("fill-color"),e=u.getPaintProperty("fill-opacity");if(!(null!=t&&t.isDataDriven||null!=e&&e.isDataDriven)){const t=u.getPaintValue("fill-color",i);_=u.getPaintValue("fill-opacity",i)*t[3],_>=1&&(g=!1)}}if(g&&"opaque"===n)return;let E;a===r.HITTEST&&(E=o(s+1));const M=u.getPaintValue("fill-translate",i),P=u.getPaintValue("fill-translate-anchor",i);(g||"translucent"!==n)&&this._drawFill(t,s,u,e,M,P,d,p,m,E);const v=!u.hasDataDrivenOutlineColor&&u.outlineUsesFillColor&&_<1;y&&"opaque"!==n&&!v&&this._drawOutline(t,s,u,e,M,P,E)}_drawFill(o,l,m,p,y,g,_,E,M,P){if(_&&!M&&t(E))return;const{context:v,displayLevel:I,state:T,drawPhase:U,painter:x,pixelRatio:h,spriteMosaic:D}=o,S=m.fillMaterial,N=x.vectorTilesMaterialManager,w=h>n?2:1,L=U===r.HITTEST,R=this._fillProgramOptions;R.id=L,R.pattern=_;const A=N.getMaterialProgram(v,S,R);if(v.useProgram(A),e(E)){const{page:t}=E,i=D.getPageSize(t);e(i)&&(D.bind(v,s.LINEAR,t,a),A.setUniform2fv("u_mosaicSize",i),A.setUniform1i("u_texture",a))}A.setUniformMatrix3fv("u_displayMat3",g===i.VIEWPORT?T.displayMat3:T.displayViewMat3),A.setUniform2fv("u_fillTranslation",y),A.setUniform1f("u_depth",m.z+d),L&&A.setUniform4fv("u_id",P);let V=-1;for(const i of p){if(!i.layerData.has(l))continue;i.key.level!==V&&(V=i.key.level,S.setDataUniforms(A,I,m,V,D));const n=i.layerData.get(l);if(!n.fillIndexCount)continue;n.prepareForRendering(v);const r=n.fillVertexArrayObject;if(!t(r)){if(v.bindVAO(r),A.setUniformMatrix3fv("u_dvsMat3",i.transforms.dvs),v.setStencilFunction(f.EQUAL,i.stencilRef,255),_){const t=Math.max(2**(Math.round(I)-i.key.level),1),e=i.rangeX/(w*i.width*t);A.setUniform1f("u_patternFactor",e)}if(M){const t=n.patternMap;if(!t)continue;for(const[i,n]of t){const t=D.getPageSize(i);e(t)&&(D.bind(v,s.LINEAR,i,a),A.setUniform2fv("u_mosaicSize",t),A.setUniform1i("u_texture",a),v.drawElements(u.TRIANGLES,n[1],c.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*n[0]))}}else v.drawElements(u.TRIANGLES,n.fillIndexCount,c.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*n.fillIndexStart);i.triangleCount+=n.fillIndexCount/3}}}_drawOutline(e,a,n,o,l,s,m){const{context:p,displayLevel:y,state:g,drawPhase:_,painter:E,pixelRatio:M,spriteMosaic:P}=e,v=n.outlineMaterial,I=E.vectorTilesMaterialManager,T=.75/M,U=_===r.HITTEST,x=this._outlineProgramOptions;x.id=U;const h=I.getMaterialProgram(p,v,x);p.useProgram(h),h.setUniformMatrix3fv("u_displayMat3",s===i.VIEWPORT?g.displayMat3:g.displayViewMat3),h.setUniform2fv("u_fillTranslation",l),h.setUniform1f("u_depth",n.z+d),h.setUniform1f("u_outline_width",T),U&&h.setUniform4fv("u_id",m);let D=-1;for(const i of o){if(!i.layerData.has(a))continue;i.key.level!==D&&(D=i.key.level,v.setDataUniforms(h,y,n,D,P));const e=i.layerData.get(a);if(e.prepareForRendering(p),!e.outlineIndexCount)continue;const r=e.outlineVertexArrayObject;t(r)||(p.bindVAO(r),h.setUniformMatrix3fv("u_dvsMat3",i.transforms.dvs),p.setStencilFunction(f.EQUAL,i.stencilRef,255),p.drawElements(u.TRIANGLES,e.outlineIndexCount,c.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*e.outlineIndexStart),i.triangleCount+=e.outlineIndexCount/3)}}}export{m as WGLBrushVTLFill};
5
+ import{isNone as t,isSome as e}from"../../../../../core/maybe.js";import{TranslateAnchor as i}from"../../vectorTiles/style/StyleDefinition.js";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as n,VTL_HIGH_RES_CUTOFF as r}from"../definitions.js";import{WGLDrawPhase as a}from"../enums.js";import{u32to4Xu8 as o}from"../number.js";import s from"./WGLBrush.js";import{TextureSamplingMode as l,CompareFunction as f,PrimitiveType as u,DataType as d}from"../../../../webgl/enums.js";const c=1/65536;class m extends s{constructor(){super(...arguments),this._fillProgramOptions={id:!1,pattern:!1},this._outlineProgramOptions={id:!1}}dispose(){}drawMany(t,e){const{displayLevel:i,drawPhase:n,renderPass:r,spriteMosaic:s,styleLayerUID:l}=t;let f=!1;for(const a of e)if(a.layerData.has(l)){const t=a.layerData.get(l);if(t.fillIndexCount>0||t.outlineIndexCount>0){f=!0;break}}if(!f)return;const u=t.styleLayer,d=u.getPaintProperty("fill-pattern"),c=void 0!==d,m=c&&d.isDataDriven;let p;if(c&&!m){const t=d.getValue(i);p=s.getMosaicItemPosition(t,!0)}const y=!c&&u.getPaintValue("fill-antialias",i);let g=!0,_=1;if(!c){const t=u.getPaintProperty("fill-color"),e=u.getPaintProperty("fill-opacity");if(!(null!=t&&t.isDataDriven||null!=e&&e.isDataDriven)){const t=u.getPaintValue("fill-color",i);_=u.getPaintValue("fill-opacity",i)*t[3],_>=1&&(g=!1)}}if(g&&"opaque"===r)return;let E;n===a.HITTEST&&(E=o(l+1));const v=u.getPaintValue("fill-translate",i),M=u.getPaintValue("fill-translate-anchor",i);(g||"translucent"!==r)&&this._drawFill(t,l,u,e,v,M,c,p,m,E);const P=!u.hasDataDrivenOutlineColor&&u.outlineUsesFillColor&&_<1;y&&"opaque"!==r&&!P&&this._drawOutline(t,l,u,e,v,M,E)}_drawFill(o,s,m,p,y,g,_,E,v,M){if(_&&!v&&t(E))return;const{context:P,displayLevel:I,state:T,drawPhase:U,painter:x,pixelRatio:h,spriteMosaic:D,requestRender:S}=o,R=m.fillMaterial,N=x.vectorTilesMaterialManager,w=h>r?2:1,L=U===a.HITTEST,A=this._fillProgramOptions;A.id=L,A.pattern=_;const C=N.getMaterialProgram(P,R,A);if(e(S)&&!L&&!C.isCompiled)return void S();if(P.useProgram(C),e(E)){const{page:t}=E,i=D.getPageSize(t);e(i)&&(D.bind(P,l.LINEAR,t,n),C.setUniform2fv("u_mosaicSize",i),C.setUniform1i("u_texture",n))}C.setUniformMatrix3fv("u_displayMat3",g===i.VIEWPORT?T.displayMat3:T.displayViewMat3),C.setUniform2fv("u_fillTranslation",y),C.setUniform1f("u_depth",m.z+c),L&&C.setUniform4fv("u_id",M);let V=-1;for(const i of p){if(!i.layerData.has(s))continue;i.key.level!==V&&(V=i.key.level,R.setDataUniforms(C,I,m,V,D));const r=i.layerData.get(s);if(!r.fillIndexCount)continue;r.prepareForRendering(P);const a=r.fillVertexArrayObject;if(!t(a)){if(P.bindVAO(a),C.setUniformMatrix3fv("u_dvsMat3",i.transforms.dvs),P.setStencilFunction(f.EQUAL,i.stencilRef,255),_){const t=Math.max(2**(Math.round(I)-i.key.level),1),e=i.rangeX/(w*i.width*t);C.setUniform1f("u_patternFactor",e)}if(v){const t=r.patternMap;if(!t)continue;for(const[i,r]of t){const t=D.getPageSize(i);e(t)&&(D.bind(P,l.LINEAR,i,n),C.setUniform2fv("u_mosaicSize",t),C.setUniform1i("u_texture",n),P.drawElements(u.TRIANGLES,r[1],d.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*r[0]))}}else P.drawElements(u.TRIANGLES,r.fillIndexCount,d.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*r.fillIndexStart);i.triangleCount+=r.fillIndexCount/3}}}_drawOutline(n,r,o,s,l,m,p){const{context:y,displayLevel:g,state:_,drawPhase:E,painter:v,pixelRatio:M,spriteMosaic:P,requestRender:I}=n,T=o.outlineMaterial,U=v.vectorTilesMaterialManager,x=.75/M,h=E===a.HITTEST,D=this._outlineProgramOptions;D.id=h;const S=U.getMaterialProgram(y,T,D);if(e(I)&&!h&&!S.isCompiled)return void I();y.useProgram(S),S.setUniformMatrix3fv("u_displayMat3",m===i.VIEWPORT?_.displayMat3:_.displayViewMat3),S.setUniform2fv("u_fillTranslation",l),S.setUniform1f("u_depth",o.z+c),S.setUniform1f("u_outline_width",x),h&&S.setUniform4fv("u_id",p);let R=-1;for(const e of s){if(!e.layerData.has(r))continue;e.key.level!==R&&(R=e.key.level,T.setDataUniforms(S,g,o,R,P));const i=e.layerData.get(r);if(i.prepareForRendering(y),!i.outlineIndexCount)continue;const n=i.outlineVertexArrayObject;t(n)||(y.bindVAO(n),S.setUniformMatrix3fv("u_dvsMat3",e.transforms.dvs),y.setStencilFunction(f.EQUAL,e.stencilRef,255),y.drawElements(u.TRIANGLES,i.outlineIndexCount,d.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*i.outlineIndexStart),e.triangleCount+=i.outlineIndexCount/3)}}}export{m as WGLBrushVTLFill};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{isSome as e,isNone as t}from"../../../../../core/maybe.js";import{TranslateAnchor as i}from"../../vectorTiles/style/StyleDefinition.js";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as n}from"../definitions.js";import{WGLDrawPhase as a}from"../enums.js";import{u32to4Xu8 as r}from"../number.js";import o from"./WGLBrush.js";import{TextureSamplingMode as s,CompareFunction as l,PrimitiveType as f,DataType as m}from"../../../../webgl/enums.js";class u extends o{constructor(){super(...arguments),this._programOptions={id:!1,pattern:!1,sdf:!1}}dispose(){}drawMany(o,u){const{context:c,displayLevel:p,state:d,drawPhase:g,painter:y,pixelRatio:E,spriteMosaic:v,styleLayerUID:M}=o;if(!u.some((e=>{var t,i;return null!=(t=null==(i=e.layerData.get(M))?void 0:i.lineIndexCount)&&t})))return;const _=o.styleLayer,U=_.lineMaterial,I=y.vectorTilesMaterialManager,P=_.getPaintValue("line-translate",p),x=_.getPaintValue("line-translate-anchor",p),T=_.getPaintProperty("line-pattern"),S=void 0!==T,D=S&&T.isDataDriven;let L,N;if(S&&!D){const e=T.getValue(p);L=v.getMosaicItemPosition(e)}let V=!1;if(!S){const e=_.getPaintProperty("line-dasharray");if(N=void 0!==e,V=N&&e.isDataDriven,N&&!V){const t=e.getValue(p),i=_.getDashKey(t,_.getLayoutValue("line-cap",p));L=v.getMosaicItemPosition(i)}}const R=1/E,h=g===a.HITTEST,A=this._programOptions;A.id=h,A.pattern=S,A.sdf=N;const j=I.getMaterialProgram(c,U,A);if(c.useProgram(j),j.setUniformMatrix3fv("u_displayViewMat3",d.displayViewMat3),j.setUniformMatrix3fv("u_displayMat3",x===i.VIEWPORT?d.displayMat3:d.displayViewMat3),j.setUniform2fv("u_lineTranslation",P),j.setUniform1f("u_depth",_.z),j.setUniform1f("u_antialiasing",R),h){const e=r(M+1);j.setUniform4fv("u_id",e)}if(L&&e(L)){const{page:t}=L,i=v.getPageSize(t);e(i)&&(v.bind(c,s.LINEAR,t,n),j.setUniform2fv("u_mosaicSize",i),j.setUniform1i("u_texture",n))}let w=-1;for(const i of u){if(!i.layerData.has(M))continue;i.key.level!==w&&(w=i.key.level,U.setDataUniforms(j,p,_,w,v));const a=2**(p-w)/E;j.setUniform1f("u_zoomFactor",a);const r=i.layerData.get(M);if(!r.lineIndexCount)continue;r.prepareForRendering(c);const o=r.lineVertexArrayObject;if(!t(o)){if(c.bindVAO(o),j.setUniformMatrix3fv("u_dvsMat3",i.transforms.dvs),c.setStencilFunction(l.EQUAL,i.stencilRef,255),D||V){const t=r.patternMap;if(!t)continue;for(const[i,a]of t){const t=v.getPageSize(i);e(t)&&(v.bind(c,s.LINEAR,i,n),j.setUniform2fv("u_mosaicSize",t),j.setUniform1i("u_texture",n),c.drawElements(f.TRIANGLES,a[1],m.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*a[0]))}}else c.drawElements(f.TRIANGLES,r.lineIndexCount,m.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*r.lineIndexStart);i.triangleCount+=r.lineIndexCount/3}}}}export{u as WGLBrushVTLLine};
5
+ import{isSome as e,isNone as t}from"../../../../../core/maybe.js";import{TranslateAnchor as i}from"../../vectorTiles/style/StyleDefinition.js";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as n}from"../definitions.js";import{WGLDrawPhase as r}from"../enums.js";import{u32to4Xu8 as a}from"../number.js";import o from"./WGLBrush.js";import{TextureSamplingMode as s,CompareFunction as l,PrimitiveType as f,DataType as m}from"../../../../webgl/enums.js";class u extends o{constructor(){super(...arguments),this._programOptions={id:!1,pattern:!1,sdf:!1}}dispose(){}drawMany(o,u){const{context:c,displayLevel:d,state:p,drawPhase:g,painter:y,pixelRatio:v,spriteMosaic:E,styleLayerUID:M,requestRender:_}=o;if(!u.some((e=>{var t,i;return null!=(t=null==(i=e.layerData.get(M))?void 0:i.lineIndexCount)&&t})))return;const U=o.styleLayer,I=U.lineMaterial,P=y.vectorTilesMaterialManager,x=U.getPaintValue("line-translate",d),T=U.getPaintValue("line-translate-anchor",d),S=U.getPaintProperty("line-pattern"),D=void 0!==S,L=D&&S.isDataDriven;let N,R;if(D&&!L){const e=S.getValue(d);N=E.getMosaicItemPosition(e)}let V=!1;if(!D){const e=U.getPaintProperty("line-dasharray");if(R=void 0!==e,V=R&&e.isDataDriven,R&&!V){const t=e.getValue(d),i=U.getDashKey(t,U.getLayoutValue("line-cap",d));N=E.getMosaicItemPosition(i)}}const h=1/v,A=g===r.HITTEST,j=this._programOptions;j.id=A,j.pattern=D,j.sdf=R;const w=P.getMaterialProgram(c,I,j);if(e(_)&&!A&&!w.isCompiled)return void _();if(c.useProgram(w),w.setUniformMatrix3fv("u_displayViewMat3",p.displayViewMat3),w.setUniformMatrix3fv("u_displayMat3",T===i.VIEWPORT?p.displayMat3:p.displayViewMat3),w.setUniform2fv("u_lineTranslation",x),w.setUniform1f("u_depth",U.z),w.setUniform1f("u_antialiasing",h),A){const e=a(M+1);w.setUniform4fv("u_id",e)}if(N&&e(N)){const{page:t}=N,i=E.getPageSize(t);e(i)&&(E.bind(c,s.LINEAR,t,n),w.setUniform2fv("u_mosaicSize",i),w.setUniform1i("u_texture",n))}let b=-1;for(const i of u){if(!i.layerData.has(M))continue;i.key.level!==b&&(b=i.key.level,I.setDataUniforms(w,d,U,b,E));const r=2**(d-b)/v;w.setUniform1f("u_zoomFactor",r);const a=i.layerData.get(M);if(!a.lineIndexCount)continue;a.prepareForRendering(c);const o=a.lineVertexArrayObject;if(!t(o)){if(c.bindVAO(o),w.setUniformMatrix3fv("u_dvsMat3",i.transforms.dvs),c.setStencilFunction(l.EQUAL,i.stencilRef,255),L||V){const t=a.patternMap;if(!t)continue;for(const[i,r]of t){const t=E.getPageSize(i);e(t)&&(E.bind(c,s.LINEAR,i,n),w.setUniform2fv("u_mosaicSize",t),w.setUniform1i("u_texture",n),c.drawElements(f.TRIANGLES,r[1],m.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*r[0]))}}else c.drawElements(f.TRIANGLES,a.lineIndexCount,m.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*a.lineIndexStart);i.triangleCount+=a.lineIndexCount/3}}}}export{u as WGLBrushVTLLine};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{isNone as e}from"../../../../../core/maybe.js";import{c as t,f as a}from"../../../../../chunks/vec2f32.js";import{FADE_DURATION as i}from"../../vectorTiles/decluttering/config.js";import{RotationAlignment as r,SymbolPlacement as s,TranslateAnchor as n}from"../../vectorTiles/style/StyleDefinition.js";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as o,VTL_TEXTURE_BINDING_UNIT_GLYPHS as l}from"../definitions.js";import{WGLDrawPhase as f}from"../enums.js";import{degToByte as c}from"../GeometryUtils.js";import{u32to4Xu8 as m}from"../number.js";import p from"./WGLBrush.js";import{TextureSamplingMode as u,CompareFunction as g,PrimitiveType as y,DataType as d}from"../../../../webgl/enums.js";const _=1/65536;class h extends p{constructor(){super(...arguments),this._iconProgramOptions={id:!1,sdf:!1},this._sdfProgramOptions={id:!1},this._spritesTextureSize=t()}dispose(){}drawMany(e,t){const{drawPhase:a,styleLayerUID:i}=e,r=e.styleLayer;let s;a===f.HITTEST&&(s=m(i+1)),this._drawIcons(e,r,t,s),this._drawText(e,r,t,s)}_drawIcons(t,a,l,m){const{context:p,displayLevel:u,drawPhase:g,painter:y,spriteMosaic:d,state:_,styleLayerUID:h}=t,M=a.iconMaterial,P=y.vectorTilesMaterialManager;let T,U=!1;for(const e of l)if(e.layerData.has(h)&&(T=e.layerData.get(h),T.iconPerPageElementsMap.size>0)){U=!0;break}if(!U)return;const E=a.getPaintValue("icon-translate",u),x=a.getPaintValue("icon-translate-anchor",u);let v=a.getLayoutValue("icon-rotation-alignment",u);v===r.AUTO&&(v=a.getLayoutValue("symbol-placement",u)===s.POINT?r.VIEWPORT:r.MAP);const I=v===r.MAP,S=a.getLayoutValue("icon-keep-upright",u)&&I,D=T.isIconSDF,V=g===f.HITTEST,R=this._iconProgramOptions;R.id=V,R.sdf=D;const w=P.getMaterialProgram(p,M,R);p.useProgram(w),w.setUniformMatrix3fv("u_displayViewMat3",v===r.MAP?_.displayViewMat3:_.displayMat3),w.setUniformMatrix3fv("u_displayMat3",x===n.VIEWPORT?_.displayMat3:_.displayViewMat3),w.setUniform2fv("u_iconTranslation",E),w.setUniform1f("u_depth",a.z),w.setUniform1f("u_mapRotation",c(_.rotation)),w.setUniform1f("u_keepUpright",S?1:0),w.setUniform1f("u_level",10*u),w.setUniform1i("u_texture",o),w.setUniform1f("u_fadeDuration",i/1e3),V&&w.setUniform4fv("u_id",m);let A=-1;for(const i of l){if(!i.layerData.has(h))continue;if(i.key.level!==A&&(A=i.key.level,M.setDataUniforms(w,u,a,A,d)),T=i.layerData.get(h),0===T.iconPerPageElementsMap.size)continue;T.prepareForRendering(p),T.updateOpacityInfo();const r=T.iconVertexArrayObject;if(!e(r)){p.bindVAO(r),w.setUniformMatrix3fv("u_dvsMat3",i.transforms.dvs),w.setUniform1f("u_time",(performance.now()-T.lastOpacityUpdate)/1e3);for(const[e,a]of T.iconPerPageElementsMap)this._renderIconRange(t,w,a,e,i)}}}_renderIconRange(e,t,a,i,r){const{context:s,spriteMosaic:n}=e;this._spritesTextureSize[0]=n.getWidth(i)/4,this._spritesTextureSize[1]=n.getHeight(i)/4,t.setUniform2fv("u_mosaicSize",this._spritesTextureSize),n.bind(s,u.LINEAR,i,o),s.setStencilTestEnabled(!0),s.setStencilFunction(g.GREATER,255,255),s.setStencilWriteMask(0),s.drawElements(y.TRIANGLES,a[1],d.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*a[0]),r.triangleCount+=a[1]/3}_drawText(t,o,m,p){const{context:u,displayLevel:y,drawPhase:d,glyphMosaic:h,painter:M,pixelRatio:P,spriteMosaic:T,state:U,styleLayerUID:E}=t,x=o.textMaterial,v=M.vectorTilesMaterialManager;let I,S=!1;for(const e of m)if(e.layerData.has(E)&&(I=e.layerData.get(E),I.glyphPerPageElementsMap.size>0)){S=!0;break}if(!S)return;const D=o.getPaintProperty("text-opacity");if(D&&!D.isDataDriven&&0===D.getValue(y))return;const V=o.getPaintProperty("text-color"),R=!V||V.isDataDriven||V.getValue(y)[3]>0,w=o.getPaintProperty("text-halo-width"),A=o.getPaintProperty("text-halo-color"),L=(!w||w.isDataDriven||w.getValue(y)>0)&&(!A||A.isDataDriven||A.getValue(y)[3]>0);if(!R&&!L)return;const O=24/8;let N=o.getLayoutValue("text-rotation-alignment",y);N===r.AUTO&&(N=o.getLayoutValue("symbol-placement",y)===s.POINT?r.VIEWPORT:r.MAP);const b=N===r.MAP,z=o.getLayoutValue("text-keep-upright",y)&&b,k=d===f.HITTEST,j=.8*O/P;this._glyphTextureSize||(this._glyphTextureSize=a(h.width/4,h.height/4));const G=o.getPaintValue("text-translate",y),W=o.getPaintValue("text-translate-anchor",y),F=this._sdfProgramOptions;F.id=k;const B=v.getMaterialProgram(u,x,F);u.useProgram(B),B.setUniformMatrix3fv("u_displayViewMat3",N===r.MAP?U.displayViewMat3:U.displayMat3),B.setUniformMatrix3fv("u_displayMat3",W===n.VIEWPORT?U.displayMat3:U.displayViewMat3),B.setUniform2fv("u_textTranslation",G),B.setUniform1f("u_depth",o.z+_),B.setUniform2fv("u_mosaicSize",this._glyphTextureSize),B.setUniform1f("u_mapRotation",c(U.rotation)),B.setUniform1f("u_keepUpright",z?1:0),B.setUniform1f("u_level",10*y),B.setUniform1i("u_texture",l),B.setUniform1f("u_antialiasingWidth",j),B.setUniform1f("u_fadeDuration",i/1e3),k&&B.setUniform4fv("u_id",p);let H=-1;for(const a of m){if(!a.layerData.has(E))continue;if(a.key.level!==H&&(H=a.key.level,x.setDataUniforms(B,y,o,H,T)),I=a.layerData.get(E),0===I.glyphPerPageElementsMap.size)continue;I.prepareForRendering(u),I.updateOpacityInfo();const t=I.textVertexArrayObject;if(e(t))continue;u.bindVAO(t),B.setUniformMatrix3fv("u_dvsMat3",a.transforms.dvs),u.setStencilTestEnabled(!0),u.setStencilFunction(g.GREATER,255,255),u.setStencilWriteMask(0);const i=(performance.now()-I.lastOpacityUpdate)/1e3;B.setUniform1f("u_time",i),I.glyphPerPageElementsMap.forEach(((e,t)=>{this._renderGlyphRange(u,e,t,h,B,L,R,a)}))}}_renderGlyphRange(e,t,a,i,r,s,n,o){i.bind(e,u.LINEAR,a,l),s&&(r.setUniform1f("u_halo",1),e.drawElements(y.TRIANGLES,t[1],d.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*t[0]),o.triangleCount+=t[1]/3),n&&(r.setUniform1f("u_halo",0),e.drawElements(y.TRIANGLES,t[1],d.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*t[0]),o.triangleCount+=t[1]/3)}}export{h as WGLBrushVTLSymbol};
5
+ import{isSome as e,isNone as t}from"../../../../../core/maybe.js";import{c as i,f as a}from"../../../../../chunks/vec2f32.js";import{FADE_DURATION as r}from"../../vectorTiles/decluttering/config.js";import{RotationAlignment as s,SymbolPlacement as n,TranslateAnchor as o}from"../../vectorTiles/style/StyleDefinition.js";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as l,VTL_TEXTURE_BINDING_UNIT_GLYPHS as f}from"../definitions.js";import{WGLDrawPhase as u}from"../enums.js";import{degToByte as m}from"../GeometryUtils.js";import{u32to4Xu8 as p}from"../number.js";import c from"./WGLBrush.js";import{TextureSamplingMode as d,CompareFunction as g,PrimitiveType as y,DataType as _}from"../../../../webgl/enums.js";const h=1/65536;class M extends c{constructor(){super(...arguments),this._iconProgramOptions={id:!1,sdf:!1},this._sdfProgramOptions={id:!1},this._spritesTextureSize=i()}dispose(){}drawMany(e,t){const{drawPhase:i,styleLayerUID:a}=e,r=e.styleLayer;let s;i===u.HITTEST&&(s=p(a+1)),this._drawIcons(e,r,t,s),this._drawText(e,r,t,s)}_drawIcons(i,a,f,p){const{context:c,displayLevel:d,drawPhase:g,painter:y,spriteMosaic:_,state:h,styleLayerUID:M,requestRender:P}=i,T=a.iconMaterial,U=y.vectorTilesMaterialManager;let E,x=!1;for(const e of f)if(e.layerData.has(M)&&(E=e.layerData.get(M),E.iconPerPageElementsMap.size>0)){x=!0;break}if(!x)return;const v=a.getPaintValue("icon-translate",d),I=a.getPaintValue("icon-translate-anchor",d);let S=a.getLayoutValue("icon-rotation-alignment",d);S===s.AUTO&&(S=a.getLayoutValue("symbol-placement",d)===n.POINT?s.VIEWPORT:s.MAP);const D=S===s.MAP,V=a.getLayoutValue("icon-keep-upright",d)&&D,R=E.isIconSDF,w=g===u.HITTEST,A=this._iconProgramOptions;A.id=w,A.sdf=R;const L=U.getMaterialProgram(c,T,A);if(e(P)&&!w&&!L.isCompiled)return void P();c.useProgram(L),L.setUniformMatrix3fv("u_displayViewMat3",S===s.MAP?h.displayViewMat3:h.displayMat3),L.setUniformMatrix3fv("u_displayMat3",I===o.VIEWPORT?h.displayMat3:h.displayViewMat3),L.setUniform2fv("u_iconTranslation",v),L.setUniform1f("u_depth",a.z),L.setUniform1f("u_mapRotation",m(h.rotation)),L.setUniform1f("u_keepUpright",V?1:0),L.setUniform1f("u_level",10*d),L.setUniform1i("u_texture",l),L.setUniform1f("u_fadeDuration",r/1e3),w&&L.setUniform4fv("u_id",p);let O=-1;for(const e of f){if(!e.layerData.has(M))continue;if(e.key.level!==O&&(O=e.key.level,T.setDataUniforms(L,d,a,O,_)),E=e.layerData.get(M),0===E.iconPerPageElementsMap.size)continue;E.prepareForRendering(c),E.updateOpacityInfo();const r=E.iconVertexArrayObject;if(!t(r)){c.bindVAO(r),L.setUniformMatrix3fv("u_dvsMat3",e.transforms.dvs),L.setUniform1f("u_time",(performance.now()-E.lastOpacityUpdate)/1e3);for(const[t,a]of E.iconPerPageElementsMap)this._renderIconRange(i,L,a,t,e)}}}_renderIconRange(e,t,i,a,r){const{context:s,spriteMosaic:n}=e;this._spritesTextureSize[0]=n.getWidth(a)/4,this._spritesTextureSize[1]=n.getHeight(a)/4,t.setUniform2fv("u_mosaicSize",this._spritesTextureSize),n.bind(s,d.LINEAR,a,l),s.setStencilTestEnabled(!0),s.setStencilFunction(g.GREATER,255,255),s.setStencilWriteMask(0),s.drawElements(y.TRIANGLES,i[1],_.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*i[0]),r.triangleCount+=i[1]/3}_drawText(i,l,p,c){const{context:d,displayLevel:y,drawPhase:_,glyphMosaic:M,painter:P,pixelRatio:T,spriteMosaic:U,state:E,styleLayerUID:x,requestRender:v}=i,I=l.textMaterial,S=P.vectorTilesMaterialManager;let D,V=!1;for(const e of p)if(e.layerData.has(x)&&(D=e.layerData.get(x),D.glyphPerPageElementsMap.size>0)){V=!0;break}if(!V)return;const R=l.getPaintProperty("text-opacity");if(R&&!R.isDataDriven&&0===R.getValue(y))return;const w=l.getPaintProperty("text-color"),A=!w||w.isDataDriven||w.getValue(y)[3]>0,L=l.getPaintProperty("text-halo-width"),O=l.getPaintProperty("text-halo-color"),N=(!L||L.isDataDriven||L.getValue(y)>0)&&(!O||O.isDataDriven||O.getValue(y)[3]>0);if(!A&&!N)return;const b=24/8;let z=l.getLayoutValue("text-rotation-alignment",y);z===s.AUTO&&(z=l.getLayoutValue("symbol-placement",y)===n.POINT?s.VIEWPORT:s.MAP);const k=z===s.MAP,j=l.getLayoutValue("text-keep-upright",y)&&k,G=_===u.HITTEST,W=.8*b/T;this._glyphTextureSize||(this._glyphTextureSize=a(M.width/4,M.height/4));const C=l.getPaintValue("text-translate",y),F=l.getPaintValue("text-translate-anchor",y),B=this._sdfProgramOptions;B.id=G;const H=S.getMaterialProgram(d,I,B);if(e(v)&&!G&&!H.isCompiled)return void v();d.useProgram(H),H.setUniformMatrix3fv("u_displayViewMat3",z===s.MAP?E.displayViewMat3:E.displayMat3),H.setUniformMatrix3fv("u_displayMat3",F===o.VIEWPORT?E.displayMat3:E.displayViewMat3),H.setUniform2fv("u_textTranslation",C),H.setUniform1f("u_depth",l.z+h),H.setUniform2fv("u_mosaicSize",this._glyphTextureSize),H.setUniform1f("u_mapRotation",m(E.rotation)),H.setUniform1f("u_keepUpright",j?1:0),H.setUniform1f("u_level",10*y),H.setUniform1i("u_texture",f),H.setUniform1f("u_antialiasingWidth",W),H.setUniform1f("u_fadeDuration",r/1e3),G&&H.setUniform4fv("u_id",c);let Y=-1;for(const e of p){if(!e.layerData.has(x))continue;if(e.key.level!==Y&&(Y=e.key.level,I.setDataUniforms(H,y,l,Y,U)),D=e.layerData.get(x),0===D.glyphPerPageElementsMap.size)continue;D.prepareForRendering(d),D.updateOpacityInfo();const i=D.textVertexArrayObject;if(t(i))continue;d.bindVAO(i),H.setUniformMatrix3fv("u_dvsMat3",e.transforms.dvs),d.setStencilTestEnabled(!0),d.setStencilFunction(g.GREATER,255,255),d.setStencilWriteMask(0);const a=(performance.now()-D.lastOpacityUpdate)/1e3;H.setUniform1f("u_time",a),D.glyphPerPageElementsMap.forEach(((t,i)=>{this._renderGlyphRange(d,t,i,M,H,N,A,e)}))}}_renderGlyphRange(e,t,i,a,r,s,n,o){a.bind(e,d.LINEAR,i,f),s&&(r.setUniform1f("u_halo",1),e.drawElements(y.TRIANGLES,t[1],_.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*t[0]),o.triangleCount+=t[1]/3),n&&(r.setUniform1f("u_halo",0),e.drawElements(y.TRIANGLES,t[1],_.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*t[0]),o.triangleCount+=t[1]/3)}}export{M as WGLBrushVTLSymbol};