@arcgis/core 6.0.0-next.36 → 6.0.0-next.38
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.
- package/analysis/DimensionAnalysis.js +1 -1
- package/analysis/DimensionSimpleStyle.js +1 -1
- package/analysis/LengthDimension.js +1 -1
- package/analysis/LineOfSightAnalysis.js +1 -1
- package/analysis/LineOfSightAnalysisTarget.js +1 -1
- package/analysis/Viewshed.js +1 -1
- package/analysis/ViewshedAnalysis.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{0202eb8c2b2865f99981.js → 00311d1b18d5952a014b.js} +1 -1
- package/assets/esri/core/workers/chunks/{9503eedfdda55fc5adab.js → 091ec4fe83038f3558f4.js} +1 -1
- package/assets/esri/core/workers/chunks/0b21d0e2e5a91c34a108.js +1 -0
- package/assets/esri/core/workers/chunks/{322b22a5d54e404bebd5.js → 0c893837f67829757df7.js} +1 -1
- package/assets/esri/core/workers/chunks/123541f79be7adff0818.js +1 -0
- package/assets/esri/core/workers/chunks/{155861fbd0e5fc2db80c.js → 1a91443970d64a59521d.js} +1 -1
- package/assets/esri/core/workers/chunks/1e37337f47f45d6d8005.js +1 -0
- package/assets/esri/core/workers/chunks/{4e5405134d079bdf9b7a.js → 1f76f6dcdae9f55389cb.js} +1 -1
- package/assets/esri/core/workers/chunks/{f717005e14a7e9141df7.js → 2050c844b5a29b1df28a.js} +1 -1
- package/assets/esri/core/workers/chunks/2c3612379111457c3221.js +1 -0
- package/assets/esri/core/workers/chunks/2d16b5a44f840147e882.js +1 -0
- package/assets/esri/core/workers/chunks/{d9a240a3c6bf85124474.js → 342a97974a78007b25e0.js} +1 -1
- package/assets/esri/core/workers/chunks/34467f7d84baffd772a3.js +1 -0
- package/assets/esri/core/workers/chunks/396299c22994c502e41c.js +1 -0
- package/assets/esri/core/workers/chunks/{03daf6f235c6edef6268.js → 398ec098fffe6abceedd.js} +1 -1
- package/assets/esri/core/workers/chunks/3b32a24488b3068f0cb7.js +1 -0
- package/assets/esri/core/workers/chunks/3b5e9e0b180dc10491ec.js +1 -0
- package/assets/esri/core/workers/chunks/{4d18b48d4a282a0f341c.js → 427d929dc7f89b0a1ea9.js} +1 -1
- package/assets/esri/core/workers/chunks/432728c557be5dfa26b5.js +1 -0
- package/assets/esri/core/workers/chunks/46969f379623810b2eca.js +1 -0
- package/assets/esri/core/workers/chunks/46edd6c9ed6701e6b975.js +1 -0
- package/assets/esri/core/workers/chunks/{8b0d5551978ab0aac0d1.js → 520f499d79fa71f262c7.js} +1 -1
- package/assets/esri/core/workers/chunks/5473409fee59db80f87d.js +1 -0
- package/assets/esri/core/workers/chunks/553a8bf5bc5c56d1bcaf.js +1 -0
- package/assets/esri/core/workers/chunks/{2211ff0a1f1ae8100231.js → 585ae43c7bcb86a26762.js} +1 -1
- package/assets/esri/core/workers/chunks/58716a3a6106a1b0fb9d.js +1 -0
- package/assets/esri/core/workers/chunks/{aa6ee2aa4ff6e6d41efb.js → 5882f349f3771868e67f.js} +1 -1
- package/assets/esri/core/workers/chunks/592b5db1459c02cf6a0c.js +1 -0
- package/assets/esri/core/workers/chunks/{1b17f5f720f6cf3f6d73.js → 5be386b3af867b19ff39.js} +1 -1
- package/assets/esri/core/workers/chunks/{ea81f9d71b0842a4be26.js → 5e48898cebb6dbaf09b5.js} +1 -1
- package/assets/esri/core/workers/chunks/6a21dc13a465757ba007.js +1 -0
- package/assets/esri/core/workers/chunks/{139e753d95cfc9470e74.js → 6a65fc1a2931230fe994.js} +1 -1
- package/assets/esri/core/workers/chunks/{3e406043a374ee17475b.js → 6f2e7e663229b223b4df.js} +1 -1
- package/assets/esri/core/workers/chunks/{379db67f78161ebd5468.js → 7023651ed6398dcf8efb.js} +1 -1
- package/assets/esri/core/workers/chunks/{90360c0bd053d3e3fd77.js → 7027a0e7bfabb3bb7fc2.js} +1 -1
- package/assets/esri/core/workers/chunks/76e80381fa6d1e084796.js +1 -0
- package/assets/esri/core/workers/chunks/78818c2a898444f7e890.js +1 -0
- package/assets/esri/core/workers/chunks/{40c2674dae73f0942751.js → 7d497df6e13162156342.js} +1 -1
- package/assets/esri/core/workers/chunks/{3b380e64566a6cce59e2.js → 7e0ed6e8f7b77e43f628.js} +1 -1
- package/assets/esri/core/workers/chunks/8c3779de09291170497f.js +1 -0
- package/assets/esri/core/workers/chunks/8e391b5b82429f39791e.js +1 -0
- package/assets/esri/core/workers/chunks/947f3a1cad976bba9738.js +1 -0
- package/assets/esri/core/workers/chunks/{59a1b637d2c107504a04.js → 966204d6dedc8149c3e9.js} +1 -1
- package/assets/esri/core/workers/chunks/9826baa3c15ea2062669.js +1 -0
- package/assets/esri/core/workers/chunks/{d3369ffed19f4c264dcd.js → 9ab0735e86cf8932bf9d.js} +1 -1
- package/assets/esri/core/workers/chunks/ab0ea4042f4e13874aed.js +1 -0
- package/assets/esri/core/workers/chunks/ab98ade3257360015d6c.js +1 -0
- package/assets/esri/core/workers/chunks/ac107079342251a984dd.js +1 -0
- package/assets/esri/core/workers/chunks/{572aec57593a08b8045b.js → b15a8d4322f3b7819d2f.js} +1 -1
- package/assets/esri/core/workers/chunks/{552c36b40e5a5ec117fb.js → b472c0a21ae29e653f7d.js} +1 -1
- package/assets/esri/core/workers/chunks/b90271ce38522bcf813b.js +1 -0
- package/assets/esri/core/workers/chunks/ba91df9835cdea7698a9.js +1 -0
- package/assets/esri/core/workers/chunks/bdd76a0b6c14e7fb6984.js +1 -0
- package/assets/esri/core/workers/chunks/bfe13ac9fa1aafb190a1.js +1 -0
- package/assets/esri/core/workers/chunks/{f372f4eb5527238c46f5.js → c31830ee897d5a7f2582.js} +1 -1
- package/assets/esri/core/workers/chunks/c48d97c38e821be17dc5.js +1 -0
- package/assets/esri/core/workers/chunks/{0a508e25ec05363e1f04.js → c7ad62f54d2abe1d17a0.js} +1 -1
- package/assets/esri/core/workers/chunks/cb1642ea8b66231cbfb5.js +1 -0
- package/assets/esri/core/workers/chunks/ce0274847ccce6a1ac53.js +1 -0
- package/assets/esri/core/workers/chunks/cf21b217b13770757cb8.js +1 -0
- package/assets/esri/core/workers/chunks/cf2e5f827cea7d7319ce.js +1 -0
- package/assets/esri/core/workers/chunks/d42a4f47843e075c56a8.js +1 -0
- package/assets/esri/core/workers/chunks/dae2036faa28dade2119.js +1 -0
- package/assets/esri/core/workers/chunks/e2430bc3a1edeb5c3266.js +1 -0
- package/assets/esri/core/workers/chunks/e9457a67befc61e11095.js +1 -0
- package/assets/esri/core/workers/chunks/f06ef153e106b26a6748.js +1 -0
- package/assets/esri/core/workers/chunks/faae3c43048b42341536.js +1 -0
- package/assets/esri/core/workers/chunks/fc77eb7683e708774168.js +1 -0
- package/assets/esri/core/workers/chunks/fd967a9f3cf0e2890dbb.js +1 -0
- package/chunks/Clouds.glsl.js +7 -11
- package/chunks/h.js +2 -0
- package/chunks/projector.js +2 -0
- package/config.js +1 -1
- package/core/libs/gl-matrix-2/math/vec3.js +1 -1
- package/core/sanitizerUtils.js +1 -1
- package/form/FormTemplate.js +1 -1
- package/form/elements/Element.js +1 -1
- package/form/elements/FieldElement.js +1 -1
- package/geometry/ellipsoidUtils.js +4 -4
- package/geometry/support/frustumPlanes.js +1 -1
- package/geometry/support/plane.js +1 -1
- package/geometry/support/triangle.js +1 -1
- package/kernel.js +1 -1
- package/layers/BaseElevationLayer.js +1 -1
- package/layers/ElevationLayer.js +1 -1
- package/layers/GraphicsLayer.js +1 -1
- package/layers/IntegratedMesh3DTilesLayer.js +1 -1
- package/layers/IntegratedMeshLayer.d.ts +2 -0
- package/layers/IntegratedMeshLayer.js +1 -1
- package/layers/Lyr3DWasmPerSceneView.js +1 -1
- package/layers/geospatialPDF/geospatialPDFParserUtils.js +1 -1
- package/layers/geospatialPDF/support/datumUtils.js +2 -0
- package/layers/geospatialPDF/support/ellipsoidUtils.js +2 -0
- package/layers/geospatialPDF/support/geographicProjectionUtils.js +2 -0
- package/layers/geospatialPDF/support/parameterUtils.js +2 -0
- package/layers/geospatialPDF/support/projectedProjectionUtils.js +3 -0
- package/layers/geospatialPDF/support/projectionToSpatialReference.js +2 -0
- package/layers/geospatialPDF/support/statePlaneUtils.js +2 -0
- package/layers/geospatialPDF/support/unitUtils.js +2 -0
- package/layers/geospatialPDF/support/validateProjectionUtils.js +2 -0
- package/layers/graphics/sources/support/clientSideDefaults.js +2 -2
- package/layers/knowledgeGraph/KnowledgeGraphLayerDataManager.js +1 -1
- package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
- package/layers/ogc/ogcFeatureUtils.js +1 -1
- package/layers/save/imageryUtils.js +1 -1
- package/layers/save/mediaLayerUtils.js +1 -1
- package/layers/save/streamLayerUtils.js +1 -1
- package/layers/support/ControlPoint.js +1 -1
- package/layers/support/ControlPointsGeoreference.js +1 -1
- package/layers/support/DimensionalDefinition.js +1 -1
- package/layers/support/ElevationQuery.js +1 -1
- package/layers/support/LabelClass.js +1 -1
- package/layers/support/LabelExpressionInfo.js +1 -1
- package/layers/support/MediaElementBase.js +1 -1
- package/layers/support/MosaicRule.js +1 -1
- package/layers/support/MultidimensionalSubset.js +1 -1
- package/layers/support/RasterBandInfo.js +1 -1
- package/layers/support/RasterFunction.js +1 -1
- package/layers/support/RasterFunctionTemplate.js +1 -1
- package/layers/support/RasterInfo.js +1 -1
- package/layers/support/RasterSensorInfo.js +1 -1
- package/layers/support/RasterStorageInfo.js +1 -1
- package/layers/support/VideoElement.js +1 -1
- package/layers/support/layersLoader.js +1 -1
- package/layers/video/VideoController.js +3 -3
- package/layers/video/types.d.ts +12 -0
- package/legend/ActiveLayerInfo.d.ts +5 -1
- package/legend/ActiveLayerInfo.js +1 -1
- package/libs/maquette-advanced-projector/projector.js +1 -1
- package/linkChart/LayoutSettings.js +1 -1
- package/linkChart/RootedLayoutSettings.js +1 -1
- package/package.json +3 -3
- package/renderers/FlowRenderer.js +1 -1
- package/renderers/RasterColormapRenderer.js +1 -1
- package/renderers/RasterShadedReliefRenderer.js +1 -1
- package/renderers/RasterStretchRenderer.js +1 -1
- package/renderers/VectorFieldRenderer.js +1 -1
- package/renderers/support/ColormapInfo.js +1 -1
- package/renderers/support/RasterPresetRenderer.js +1 -1
- package/renderers/support/rasterRendererHelper.js +1 -1
- package/rest/knowledgeGraph/GraphApplyEdits.js +1 -1
- package/rest/support/BaseImageMeasureParameters.js +1 -1
- package/rest/support/BaseImageMeasureResult.js +1 -1
- package/rest/support/FindImagesParameters.js +1 -1
- package/rest/support/FindImagesResult.js +1 -1
- package/rest/support/ImageAngleParameters.js +1 -1
- package/rest/support/ImageAngleResult.js +1 -1
- package/rest/support/ImageAreaParameters.js +1 -1
- package/rest/support/ImageAreaResult.js +1 -1
- package/rest/support/ImageBoundaryParameters.js +1 -1
- package/rest/support/ImageBoundaryResult.js +1 -1
- package/rest/support/ImageDistanceParameters.js +1 -1
- package/rest/support/ImageDistanceResult.js +1 -1
- package/rest/support/ImageGPSInfoParameters.js +1 -1
- package/rest/support/ImageGPSInfoResult.js +1 -1
- package/rest/support/ImageHeightParameters.js +1 -1
- package/rest/support/ImageHeightResult.js +1 -1
- package/rest/support/ImageHistogramParameters.js +1 -1
- package/rest/support/ImageIdentifyParameters.js +1 -1
- package/rest/support/ImageIdentifyResult.js +1 -1
- package/rest/support/ImagePixelLocationParameters.js +1 -1
- package/rest/support/ImagePixelLocationResult.js +1 -1
- package/rest/support/ImagePointParameters.js +1 -1
- package/rest/support/ImagePointResult.js +1 -1
- package/rest/support/ImageSample.js +1 -1
- package/rest/support/ImageSampleParameters.js +1 -1
- package/rest/support/ImageSampleResult.js +1 -1
- package/rest/support/ImageToMapMultirayParameters.js +1 -1
- package/rest/support/ImageToMapParameters.js +1 -1
- package/rest/support/ImageUrlParameters.js +1 -1
- package/rest/support/ImageUrlResult.js +1 -1
- package/rest/support/ImageVolumeParameters.js +1 -1
- package/rest/support/ImageVolumeResult.js +1 -1
- package/rest/support/MapToImageParameters.js +1 -1
- package/rest/support/MeasureAreaFromImageResult.js +1 -1
- package/rest/support/MeasureFromImageParameters.js +1 -1
- package/rest/support/MeasureLengthFromImageResult.js +1 -1
- package/symbols/support/cimSymbolUtils.js +1 -1
- package/symbols/support/renderUtils.js +1 -1
- package/views/2d/ViewState.d.ts +3 -3
- package/views/2d/ViewState.js +1 -1
- package/views/2d/ViewStateManager.js +1 -1
- package/views/2d/engine/Bitmap.js +1 -1
- package/views/2d/engine/flow/styles/Imagery.js +1 -1
- package/views/2d/engine/vectorTiles/SpriteMosaic.js +1 -1
- package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +1 -1
- package/views/2d/engine/vectorTiles/style/geoJSONVectorTileUtils.js +1 -1
- package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
- package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
- package/views/2d/engine/webgl/Overlay.js +1 -1
- package/views/2d/engine/webgl/OverlayMultipoint.js +1 -1
- package/views/2d/engine/webgl/SpriteMosaic.js +1 -1
- package/views/2d/engine/webgl/VideoScreenRenderer.js +1 -1
- package/views/2d/engine/webgl/animations/store/AnimationStore.js +1 -1
- package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
- package/views/2d/engine/webgl/collisions/LabelStore.js +1 -1
- package/views/2d/engine/webgl/effects/highlight/HighlightGradient.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/blend/BlendTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/colorize/ColorizeTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityResources.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/drop-shadow/DropShadowTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapResources.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterHighlightTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/textureUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/FillShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTexture.js +1 -1
- package/views/2d/engine/webgl/textureUtils.js +1 -1
- package/views/2d/engine/webgl/util/IntervalMatcher.js +1 -1
- package/views/2d/layers/LayerView2D.js +1 -1
- package/views/2d/webglDeps.js +1 -1
- package/views/3d/FocusAreasView.js +1 -1
- package/views/3d/GroundView3D.js +1 -1
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
- package/views/3d/layers/graphics/ElevationAligners.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
- package/views/3d/layers/i3s/I3SBinaryReader.js +1 -1
- package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
- package/views/3d/state/ConstraintsManager.js +1 -1
- package/views/3d/state/ViewState.js +1 -1
- package/views/3d/state/ViewStateManager.js +1 -1
- package/views/3d/support/engineContent/line.js +1 -1
- package/views/3d/support/engineContent/marker.js +1 -1
- package/views/3d/support/flow/StreamlineResources3D.js +1 -1
- package/views/3d/support/flow/StreamlineResources3DOverlay.js +1 -1
- package/views/3d/support/flow/StreamlineResources3DShape.js +1 -1
- package/views/3d/support/flow/geometryUtils.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatOrderTexture.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatTextureAtlas.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianTileBuilder.js +2 -0
- package/views/3d/support/gaussianSplatting/GaussianTileLifecycle.js +2 -0
- package/views/3d/support/gaussianSplatting/formatConstants.js +2 -0
- package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
- package/views/3d/terrain/OverlayManager.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/Tile.js +1 -1
- package/views/3d/terrain/TileCompositor.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/terrain/tileUtils.js +1 -1
- package/views/3d/webgl/RenderNode.d.ts +1 -1
- package/views/3d/webgl-engine/core/FBOCache.js +1 -1
- package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatUnpacking.glsl.js +15 -11
- package/views/3d/webgl-engine/effects/WeatherFader.js +1 -1
- package/views/3d/webgl-engine/effects/atmosphere/LocalAtmosphere.js +1 -1
- package/views/3d/webgl-engine/effects/atmosphere/MarsAtmosphere.js +1 -1
- package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
- package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +19 -9
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
- package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
- package/views/3d/webgl-engine/lib/AttributeView.js +1 -1
- package/views/3d/webgl-engine/lib/BasisUtil.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/DDSUtil.js +1 -1
- package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderUtils.js +1 -1
- package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
- package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
- package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBuffer.js +1 -1
- package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBufferView.js +1 -1
- package/views/3d/webgl-engine/lib/VerticesView.js +2 -0
- package/views/3d/webgl-engine/lib/attributeViewUtils.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/strokes.js +1 -1
- package/views/3d/webgl-engine/lib/geometryDataUtils.js +1 -1
- package/views/3d/webgl-engine/lib/glUtil3D.js +1 -1
- package/views/3d/webgl-engine/lib/screenPolygonOverlapUtils.js +1 -1
- package/views/3d/webgl-engine/lib/screenPolygonTriangleIntersections.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterialBaseInstance.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/internal/WaterTextureRepository.js +1 -1
- package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
- package/views/3d/webgl-engine/materials/internal/lineMarkerBufferUtils.js +2 -0
- package/views/3d/webgl-engine/materials/internal/ribbonLineBufferUtils.js +2 -0
- package/views/3d/webgl-engine/materials/renderers/VaoRenderer.js +1 -1
- package/views/3d/webgl-engine/materials/stippleTextureRepository.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/hudMaterialLayouts.js +2 -0
- package/views/3d/webgl-engine/shaders/lineMarkerLayouts.js +2 -0
- package/views/draw/support/ManagedTooltipField.js +1 -1
- package/views/overlay/LineOverlayItem.js +1 -1
- package/views/overlay/TextOverlayItem.js +1 -1
- package/views/overlay/ViewOverlay.js +1 -1
- package/views/support/GroundElevationSampler.js +1 -1
- package/views/support/HighlightOptions.d.ts +2 -2
- package/views/support/HighlightOptions.js +1 -1
- package/views/support/TextureCompressionHelper.js +1 -1
- package/views/support/imageReprojection.js +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/Texture.js +1 -1
- package/views/webgl/Util.js +1 -1
- package/views/webgl/rasterUtils.js +1 -1
- package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
- package/widgets/FeatureTable/Grid/Grid.js +1 -1
- package/widgets/Legend/styles/support/univariateUtils.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/ScaleRangeSlider/types.d.ts +3 -3
- package/assets/esri/core/workers/chunks/01f55004d64309f8538b.js +0 -1
- package/assets/esri/core/workers/chunks/039d9bc5b5015012f811.js +0 -1
- package/assets/esri/core/workers/chunks/08140725277de5d2e41a.js +0 -1
- package/assets/esri/core/workers/chunks/0d99bfb75dcb9fa29080.js +0 -1
- package/assets/esri/core/workers/chunks/144bad0c2415c345736a.js +0 -1
- package/assets/esri/core/workers/chunks/165ca7a97b611c8f26c4.js +0 -1
- package/assets/esri/core/workers/chunks/16cda273927ab0a39544.js +0 -1
- package/assets/esri/core/workers/chunks/1989410a618865f02dec.js +0 -1
- package/assets/esri/core/workers/chunks/29c610ce1c81ebb84a6b.js +0 -1
- package/assets/esri/core/workers/chunks/3223f9fbc76ba9ef8d13.js +0 -1
- package/assets/esri/core/workers/chunks/338d800d4efcc91cead1.js +0 -1
- package/assets/esri/core/workers/chunks/3415531224f8494d79ca.js +0 -1
- package/assets/esri/core/workers/chunks/3fdcc383bbd9cf0d274c.js +0 -1
- package/assets/esri/core/workers/chunks/46c290108a90518ef695.js +0 -1
- package/assets/esri/core/workers/chunks/48b8b57f559a53c6c513.js +0 -1
- package/assets/esri/core/workers/chunks/4a979fce1c971b614a18.js +0 -1
- package/assets/esri/core/workers/chunks/59a88dd53f8806bbec06.js +0 -1
- package/assets/esri/core/workers/chunks/5aeb5e18514644fe2cf9.js +0 -1
- package/assets/esri/core/workers/chunks/5bd1414220e42cb8ebcf.js +0 -1
- package/assets/esri/core/workers/chunks/5d781c2c6204cffffd0d.js +0 -1
- package/assets/esri/core/workers/chunks/6edc13a426e00bb93a9b.js +0 -1
- package/assets/esri/core/workers/chunks/723df53cfa0189837d01.js +0 -1
- package/assets/esri/core/workers/chunks/7400b8c454b47ee4fb3c.js +0 -1
- package/assets/esri/core/workers/chunks/7862abd24fb5c3b12e6b.js +0 -1
- package/assets/esri/core/workers/chunks/796c6195b6bf59dcc9bd.js +0 -1
- package/assets/esri/core/workers/chunks/7af4edc6e87d27b9d467.js +0 -1
- package/assets/esri/core/workers/chunks/81bcc495e6eaf2cf7474.js +0 -1
- package/assets/esri/core/workers/chunks/934e1f2153e6fad6ed23.js +0 -1
- package/assets/esri/core/workers/chunks/990e96139b5a1dccb061.js +0 -1
- package/assets/esri/core/workers/chunks/a607541959169741a943.js +0 -1
- package/assets/esri/core/workers/chunks/aa779896fd9e5c341349.js +0 -1
- package/assets/esri/core/workers/chunks/c131e0dd180a4c10e12e.js +0 -1
- package/assets/esri/core/workers/chunks/c7adb7b77721c75891f4.js +0 -1
- package/assets/esri/core/workers/chunks/cd55cad81accf51d2989.js +0 -1
- package/assets/esri/core/workers/chunks/ce324dde6d7daea33638.js +0 -1
- package/assets/esri/core/workers/chunks/d3412518a7b518860fbb.js +0 -1
- package/assets/esri/core/workers/chunks/dac69c0047488fdf986d.js +0 -1
- package/assets/esri/core/workers/chunks/dba5f44c4e4a3f075df2.js +0 -1
- package/assets/esri/core/workers/chunks/e67ea2f1714e5abeae44.js +0 -1
- package/assets/esri/core/workers/chunks/e8fb2ba7b7a4f0916325.js +0 -1
- package/assets/esri/core/workers/chunks/f10c883eb26330e3421c.js +0 -1
- package/assets/esri/core/workers/chunks/f3b4159c0722df8ffe13.js +0 -1
- package/assets/esri/core/workers/chunks/f75eec2cbc541eec9712.js +0 -1
- package/layers/geospatialPDF/projectionToWKTUtils.js +0 -3
- package/libs/maquette/cache.js +0 -2
- package/libs/maquette/dom.js +0 -2
- package/libs/maquette/h.js +0 -2
- package/libs/maquette/index.js +0 -2
- package/libs/maquette/mapping.js +0 -2
- package/libs/maquette/projection.js +0 -2
- package/libs/maquette/projector.js +0 -2
- package/libs/maquette/utilities/window-performance-projector-logger.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../Viewpoint.js";import n from"../../core/Accessor.js";import r from"../../core/Error.js";import has from"../../core/has.js";import i from"../../core/Logger.js";import{watch as a,sync as o}from"../../core/reactiveUtils.js";import{createScreenPoint as s}from"../../core/screenUtils.js";import c from"../../core/Warning.js";import{property as l,subclass as u}from"../../core/accessorSupport/decorators.js";import d from"../../geometry/Extent.js";import{i as f}from"../../chunks/pe.js";import p from"../../geometry/Point.js";import{project as m}from"../../geometry/projectionUtils.js";import{equals as h}from"../../geometry/support/spatialReferenceUtils.js";import g from"./PaddedViewState.js";import{centerAt as _,setExtent as v,rotateTo as y,scaleTo as b,copy as x,extentToScale as S,angleBetween as C,resize as w}from"./viewpointUtils.js";let T=class extends n{constructor(e){super(e),this.constraints=null,this.ready=!1,this.resizeAlign=`center`,this.addHandles([a(()=>this.constraints?.version,e=>{this.constraints&&e&&this.ready&&(this.state.viewpoint=this.constraints.fit(this.state.paddedViewState.viewpoint))},o)])}get center(){if(!this.ready)return this._get(`center`);let{center:e,spatialReference:t}=this.state.paddedViewState;return this.state.commitProperty(`id`),new p({x:e[0],y:e[1],spatialReference:t})}set center(e){if(e==null)return;if(!this.ready){this._set(`center`,e);return}let t;try{t=this._project(e,this.state.spatialReference)}catch(t){i.getLogger(this).error(new r(`mapview:invalid-center`,`could not project the value in the view's spatial reference`,{input:e,error:t}));return}let n=this.viewpoint;_(n,n,t),this.viewpoint=n}get extent(){return this.ready?(this.state.commitProperty(`id`),this.state.paddedViewState.extent.clone()):this._get(`extent`)}set extent(e){if(e==null)return;let t=e;if(!t.width||!t.height){i.getLogger(this).error(new r(`mapview:invalid-extent`,`invalid extent size`));return}if(!this.ready){this._set(`extent`,t),this._set(`center`,void 0),this._set(`viewpoint`,void 0),this._set(`scale`,void 0),this._set(`zoom`,void 0);return}try{t=this._project(t,this.state.spatialReference)}catch(e){i.getLogger(this).error(new r(`mapview:invalid-extent`,`could not project the value in the view's spatial reference`,{error:e}));return}let n=this.viewpoint;v(n,n,t,this.state.size,{constraints:this.constraints}),this.viewpoint=n}get padding(){return this.ready?this.state.padding:this._get(`padding`)}set padding(e){this.ready?(this.state.padding=e,this._set(`padding`,this.state.padding)):this._set(`padding`,e)}get resolution(){return this.ready?
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../Viewpoint.js";import n from"../../core/Accessor.js";import r from"../../core/Error.js";import has from"../../core/has.js";import i from"../../core/Logger.js";import{watch as a,sync as o}from"../../core/reactiveUtils.js";import{createScreenPoint as s}from"../../core/screenUtils.js";import c from"../../core/Warning.js";import{property as l,subclass as u}from"../../core/accessorSupport/decorators.js";import d from"../../geometry/Extent.js";import{i as f}from"../../chunks/pe.js";import p from"../../geometry/Point.js";import{project as m}from"../../geometry/projectionUtils.js";import{equals as h}from"../../geometry/support/spatialReferenceUtils.js";import g from"./PaddedViewState.js";import{centerAt as _,setExtent as v,rotateTo as y,scaleTo as b,copy as x,extentToScale as S,angleBetween as C,resize as w}from"./viewpointUtils.js";let T=class extends n{constructor(e){super(e),this.constraints=null,this.ready=!1,this.resizeAlign=`center`,this.addHandles([a(()=>this.constraints?.version,e=>{this.constraints&&e&&this.ready&&(this.state.viewpoint=this.constraints.fit(this.state.paddedViewState.viewpoint))},o)])}get center(){if(!this.ready)return this._get(`center`);let{center:e,spatialReference:t}=this.state.paddedViewState;return this.state.commitProperty(`id`),new p({x:e[0],y:e[1],spatialReference:t})}set center(e){if(e==null)return;if(!this.ready){this._set(`center`,e);return}let t;try{t=this._project(e,this.state.spatialReference)}catch(t){i.getLogger(this).error(new r(`mapview:invalid-center`,`could not project the value in the view's spatial reference`,{input:e,error:t}));return}let n=this.viewpoint;_(n,n,t),this.viewpoint=n}get extent(){return this.ready?(this.state.commitProperty(`id`),this.state.paddedViewState.extent.clone()):this._get(`extent`)}set extent(e){if(e==null)return;let t=e;if(!t.width||!t.height){i.getLogger(this).error(new r(`mapview:invalid-extent`,`invalid extent size`));return}if(!this.ready){this._set(`extent`,t),this._set(`center`,void 0),this._set(`viewpoint`,void 0),this._set(`scale`,void 0),this._set(`zoom`,void 0);return}try{t=this._project(t,this.state.spatialReference)}catch(e){i.getLogger(this).error(new r(`mapview:invalid-extent`,`could not project the value in the view's spatial reference`,{error:e}));return}let n=this.viewpoint;v(n,n,t,this.state.size,{constraints:this.constraints}),this.viewpoint=n}get padding(){return this.ready?this.state.padding:this._get(`padding`)}set padding(e){this.ready?(this.state.padding=e,this._set(`padding`,this.state.padding)):this._set(`padding`,e)}get resolution(){return this.ready?this.state.resolution:0}get rotation(){return this.ready?this.state.rotation:this._get(`rotation`)}set rotation(e){if(isNaN(e))return;if(!this.ready){this._set(`rotation`,e);return}let t=this.viewpoint;y(t,t,e),this.viewpoint=t}get scale(){return this.ready?this.state.scale:this._get(`scale`)}set scale(e){if(!e||isNaN(e))return;if(!this.ready){this._set(`scale`,e),this._set(`zoom`,void 0);let t=this._get(`extent`);t&&(this._set(`extent`,void 0),this._set(`center`,t.center));return}let t=this.viewpoint;b(t,t,e),this.viewpoint=t}get viewpoint(){return this.ready?this.state.paddedViewState.viewpoint.clone():this._get(`viewpoint`)}set viewpoint(e){if(e==null)return;if(!this.ready){this._set(`viewpoint`,e),this._set(`extent`,void 0),this._set(`center`,void 0),this._set(`zoom`,void 0),this._set(`scale`,void 0);return}let n,a;try{n=this._project(e,this.state.spatialReference),!e.scale||isNaN(e.scale)?a=new r(`mapview:invalid-viewpoint`,`invalid scale value of ${e.scale}`):e.targetGeometry??(a=new r(`mapview:invalid-viewpoint`,`geometry not defined`))}catch(e){a=new r(`mapview:invalid-viewpoint`,`could not project the value in the view's spatial reference`,{error:e})}if(a){i.getLogger(this).error(a);return}this._scaleBeforeChangingSpatialReference=null;let o=new t({targetGeometry:new p,scale:0,rotation:0});x(o,n),this.constraints?.constrain(o,this.state.paddedViewState.viewpoint),this.state.viewpoint=o,this._set(`viewpoint`,o)}get visibleArea(){return this.ready?this.state.visibleArea:null}get zoom(){return this.ready?this.constraints?.scaleToZoom(this.scale)??-1:this._get(`zoom`)}set zoom(e){if(!(e>=0))return;if(!this.ready){this._set(`zoom`,e),this._set(`scale`,void 0);let t=this._get(`extent`);t&&(this._set(`extent`,void 0),this._set(`center`,t.center));return}let t=this.constraints?.zoomToScale(e)??0;if(!t){this._set(`zoom`,-1);return}let n=this.viewpoint;b(n,n,t),this.viewpoint=n,this._set(`zoom`,this.constraints?.scaleToZoom(this.scale)??-1)}getUserStartupOptions(e){if(!e[0]&&!e[1])return{center:void 0,rotation:void 0,scale:void 0};let{padding:t,constraints:n}=this,r=this._get(`center`),i=this._get(`extent`),a=this._get(`scale`),o=this._get(`rotation`),s=this._get(`viewpoint`),c=this._get(`zoom`),l=c!=null&&n!=null&&n.zoomToScale(c)||void 0,u,d,f,p=s?.rotation,m=s?.targetGeometry;m?.type===`extent`?u=m:m?.type===`point`&&(d=m,f=s?.scale);let h=i??u;return{center:r??d??h?.center,rotation:o??p,scale:(a??l??f??(h&&S(h,[e[0]-t.left-t.right,e[1]-t.top-t.bottom])))||void 0}}startup(e,t,n,r){let a=e.targetGeometry;try{this._project(e,n)}catch(t){i.getLogger(this).warn(new c(`mapview:startup-projection-error`,`projection of initial viewpoint to the view's spatial reference, defaulting to the initial viewpoint.`,{center:a.toJSON(),spatialReference:n,error:t})),e.targetGeometry=r||new p({x:0,y:0,spatialReference:n})}this.constraints?.fit(e),this._set(`state`,new g({padding:this.padding,size:t,viewpoint:e})),this._set(`ready`,!0)}teardown(){this._set(`ready`,!1);let{center:[e,t],spatialReference:n,rotation:r,scale:i}=this.state.paddedViewState,a=new p({x:e,y:t,spatialReference:n});this._set(`viewpoint`,null),this._set(`extent`,null),this._set(`center`,a),this._set(`zoom`,-1),this._set(`rotation`,r),this._set(`scale`,i),this._set(`state`,null)}changeSpatialReference(e){let n=this.state.paddedViewState.clone();if(this._scaleBeforeChangingSpatialReference==null)this._scaleBeforeChangingSpatialReference=n.scale;else{let e=n.viewpoint.clone();e.scale=this._scaleBeforeChangingSpatialReference,n.viewpoint=e}let r=n.clone(),[a,o]=n.center,s=null;try{s=this._project(new p({x:a,y:o,spatialReference:n.spatialReference}),e)}catch(t){f()||i.getLogger(this).warn(new c(`mapview:spatial-reference-change`,`could not project the view's center to the new spatial reference`,{center:s?.toJSON(),spatialReference:e,error:t}))}s||=new p({x:0,y:0,spatialReference:e});let l=_(new t({targetGeometry:new p,scale:0,rotation:0}),n.viewpoint,s);r.viewpoint=l;try{let t=[n.size[0]/2,n.size[1]/2],i=[t[0]+20,t[1]],a=n.toMap([0,0],i),{x:o,y:s}=this._project(new p({x:a[0],y:a[1],spatialReference:n.spatialReference}),e);a[0]=o,a[1]=s,r.toScreen(a,a);let c=C(t,a,i),u=Math.hypot(a[0]-t[0],a[1]-t[1])/20;!Number.isFinite(u)||Math.abs(u)>4?(l.rotation=0,l.targetGeometry=new p({x:0,y:0,spatialReference:e})):(l.scale*=u,l.scale>has(`mapview-srswitch-adjust-rotation-scale-threshold`)?l.rotation=0:l.rotation+=Number.isFinite(c)?c:0)}catch{}this._get(`constraints`)?.constrain(l,void 0),this._get(`state`).viewpoint=l}resize(e,t){if(!this.ready)return;let n=this.state,r=this.state.paddedViewState.viewpoint,i=this.state.paddedViewState.size.slice();n.size=[e,t],w(r,r,i,this.state.paddedViewState.size,this.resizeAlign),r=this.constraints?.constrain(r,void 0)??r,this.state.viewpoint=r}toMap(e){if(!this.ready)return null;let[t,n]=this.state.toMap([0,0],[e.x,e.y]),r=this.state.spatialReference;return new p({x:t,y:n,spatialReference:r})}toScreen(e,t){if(!this.ready)return null;let n=this._project(e,this.state.spatialReference),r=[n.x,n.y];return t?.pickClosestTarget===!1||this.state.paddedViewState.wrapMapCoordinate(r,r),this.state.toScreen(r,r),s(r[0],r[1])}_project(e,t){let n=e?.targetGeometry||e;if(!t)return e;if(!n)return null;if(t.imageCoordinateSystem||n.spatialReference?.imageCoordinateSystem||h(t,n.spatialReference))return e;let i=m(n,t);if(!i)throw new r(`mapview:projection-not-possible`,`projecting input geometry to target spatial reference returned a null value`,{geometry:n,spatialReference:t});return E(e)?(e.targetGeometry=i,e):i}};e([l({type:p})],T.prototype,`center`,null),e([l()],T.prototype,`constraints`,void 0),e([l({type:d})],T.prototype,`extent`,null),e([l({value:{top:0,right:0,bottom:0,left:0},cast:e=>({top:0,right:0,bottom:0,left:0,...e})})],T.prototype,`padding`,null),e([l()],T.prototype,`ready`,void 0),e([l()],T.prototype,`resizeAlign`,void 0),e([l({readOnly:!0})],T.prototype,`resolution`,null),e([l({type:Number})],T.prototype,`rotation`,null),e([l({type:Number})],T.prototype,`scale`,null),e([l({readOnly:!0})],T.prototype,`state`,void 0),e([l({type:t})],T.prototype,`viewpoint`,null),e([l({readOnly:!0})],T.prototype,`visibleArea`,null),e([l()],T.prototype,`zoom`,null),T=e([u(`esri.views.2d.ViewStateManager`)],T);function E(e){return e?.declaredClass===`esri.Viewpoint`}export{T as ViewStateManager};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{onAbortOrThrow as e,throwIfNotAbortError as t}from"../../../core/promiseUtils.js";import{identity as n,translate as r,rotate as i,scaleByVec2 as a}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as o}from"../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{fromValues as s}from"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{DisplayObject as c}from"./DisplayObject.js";import l from"./ImageryBitmapSource.js";import{SizedPixelFormat as u}from"../../webgl/enums.js";import d
|
|
2
|
+
import{onAbortOrThrow as e,throwIfNotAbortError as t}from"../../../core/promiseUtils.js";import{identity as n,translate as r,rotate as i,scaleByVec2 as a}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as o}from"../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{fromValues as s}from"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{DisplayObject as c}from"./DisplayObject.js";import l from"./ImageryBitmapSource.js";import{SizedPixelFormat as u}from"../../webgl/enums.js";import{Texture as d}from"../../webgl/Texture.js";import{TextureDescriptor as f}from"../../webgl/TextureDescriptor.js";function p(e){e instanceof ImageBitmap&&e.close()}function m(e){return e&&`render`in e}function h(e){let t=document.createElement(`canvas`);return t.width=e.width,t.height=e.height,e.render(t.getContext(`2d`)),t}function g(e){return m(e)?e instanceof l?e.getRenderedRasterPixels()?.renderedRasterPixels:h(e):e}class _ extends c{constructor(e=null,t=!1){super(),this.blendFunction=`standard`,this._sourceWidth=0,this._sourceHeight=0,this._textureInvalidated=!1,this.stencilRef=0,this.coordScale=[1,1],this._height=void 0,this.pixelRatio=1,this.resolution=0,this.rotation=0,this._source=null,this._texture=null,this._width=void 0,this.x=0,this.y=0,this.immutable=t,this.source=e,this.requestRender=this.requestRender.bind(this)}destroy(){super.destroy(),this._texture&&=(this._texture.dispose(),null),this._source&&p(this._source),this._uploadStatus!=null&&(this._uploadStatus.controller.abort(),this._uploadStatus=null)}get isSourceScaled(){return this.width!==this._sourceWidth||this.height!==this._sourceHeight}get height(){return this._height===void 0?this._sourceHeight:this._height}set height(e){this._height=e}get source(){return this._source}set source(e){(e!=null||this._source!=null)&&(this._source&&p(this._source),this._source=e,this.invalidateTexture(),this.requestRender())}get texture(){return this._texture}get width(){return this._width===void 0?this._sourceWidth:this._width}set width(e){this._width=e}beforeRender(e){super.beforeRender(e),this.updateTexture(e)}async setSourceAsync(t,n){this._uploadStatus!=null&&this._uploadStatus.controller.abort();let r=new AbortController,i=Promise.withResolvers();return e(n,()=>r.abort()),e(r,e=>i.reject(e)),this._uploadStatus={controller:r,resolver:i},this.source=t,i.promise}invalidateTexture(){this._textureInvalidated||(this._textureInvalidated=!0,this._source instanceof HTMLImageElement?(this._sourceHeight=this._source.naturalHeight,this._sourceWidth=this._source.naturalWidth):this._source&&(this._sourceHeight=this._source.height,this._sourceWidth=this._source.width))}transitionStep(e,t){e>=64&&(this.fadeTransitionEnabled=!1),super.transitionStep(e,t)}setTransform(e){let t=n(this.transforms.localToScreenMat3),[o,c]=e.toScreenNoRotation([0,0],[this.x,this.y]),l=this.resolution/this.pixelRatio/e.resolution,u=l*this.width,d=l*this.height,f=Math.PI*this.rotation/180;r(t,t,s(o,c)),r(t,t,s(u/2,d/2)),i(t,t,-f),r(t,t,s(-u/2,-d/2)),a(t,t,s(u,d))}setSamplingProfile(e){this._texture&&(e.mips&&!this._texture.descriptor.hasMipmap&&this._texture.generateMipmap(),this._texture.setSamplingMode(e.samplingMode))}bind(e,t){this._texture&&e.bindTexture(this._texture,t)}async updateTexture({context:e,painter:n}){if(!this._textureInvalidated)return;if(this._textureInvalidated=!1,this._texture||=this._createTexture(e),!this.source){this._texture.setData(null);return}this._texture.resize(this._sourceWidth,this._sourceHeight);let r=g(this.source);try{if(this._uploadStatus!=null){let{controller:e,resolver:t}=this._uploadStatus,i={signal:e.signal},{width:a,height:o}=this,s=this._texture;await n.textureUploadManager.enqueueTextureUpdate({data:r,texture:s,width:a,height:o},i),t.resolve(),this._uploadStatus=null}else this._texture.setData(r);this.ready()}catch(e){t(e)}}onDetach(){this.destroy()}_createTransforms(){return{displayViewScreenMat3:o(),localToScreenMat3:o()}}_createTexture(e){let t=this.immutable,n=new f(this._sourceWidth,this._sourceHeight);return n.internalFormat=t?u.RGBA8:6408,n.wrapMode=33071,n.isImmutable=t,new d(e,n)}}export{_ as Bitmap,m as isImageSource,h as rasterize};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{throwIfAborted as e}from"../../../../../core/promiseUtils.js";import{timeExtentsEqual as t,getFlowFloatUniforms as n,getFlowColorUniforms as r}from"../utils.js";import{AFlowResources as i}from"./AFlowResources.js";import{Mesh as a}from"../../webgl/meshing/Mesh.js";import{FlowImageryShader as o}from"../../webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js";import{PrimitiveType as s,DataType as c}from"../../../../webgl/enums.js";import l
|
|
2
|
+
import{throwIfAborted as e}from"../../../../../core/promiseUtils.js";import{timeExtentsEqual as t,getFlowFloatUniforms as n,getFlowColorUniforms as r}from"../utils.js";import{AFlowResources as i}from"./AFlowResources.js";import{Mesh as a}from"../../webgl/meshing/Mesh.js";import{FlowImageryShader as o}from"../../webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js";import{PrimitiveType as s,DataType as c}from"../../../../webgl/enums.js";import{Texture as l}from"../../../../webgl/Texture.js";import{TextureDescriptor as u}from"../../../../webgl/TextureDescriptor.js";import{VertexElementDescriptor as d}from"../../../../webgl/VertexElementDescriptor.js";class f{constructor(e){this._params=e,this.supportsContinuation=!1,this.slideoutDuration=0,this.animated=!1}isCompatible(e){if(!(e instanceof f)||!t(this._params.timeExtent,e._params.timeExtent))return!1;let n=!0;return n&&=this._params.loadImagery===e._params.loadImagery,n&&=this._params.color.kind===e._params.color.kind,n&&=this._params.opacity.kind===e._params.opacity.kind,n}updateResource(e){e.update(this._params.color,this._params.opacity)}async load(t,n,r){let{extent:i,size:a}=t;e(r);let o=await this._params.loadImagery(i,a[0],a[1],this._params.timeExtent,r);return new m(o,t,[],o,{color:this._params.color,opacity:this._params.opacity})}}const p=[new d(`position`,2,c.UNSIGNED_SHORT,0,8),new d(`texcoord`,2,c.UNSIGNED_SHORT,4,8)];class m extends i{static{this._shader=new o}constructor(e,t,n,r,i){super(t,n,r),this._flowData=e,this._values=i,this.kind=`imagery`}attach(e){let{context:t}=e,{width:n,height:r}=this._flowData;this.mesh=new a(t,{vertex:{geometry:{data:new Uint16Array([0,0,0,1,n,0,1,1,0,r,0,0,n,r,1,0]),layout:p}},groups:[{primitive:s.TRIANGLE_STRIP}],parts:[{group:0,start:0,count:4}]});let i=1e6,o=-1e6;for(let e=0;e<r;e++)for(let t=0;t<n;t++)if(this._flowData.mask[e*n+t]!==0){let r=this._flowData.data[(e*n+t)*2],a=this._flowData.data[(e*n+t)*2+1],s=Math.sqrt(r*r+a*a);i=Math.min(i,s),o=Math.max(o,s)}let c=new Uint8Array(4*n*r);for(let e=0;e<r;e++)for(let t=0;t<n;t++)if(this._flowData.mask[e*n+t]!==0){let r=this._flowData.data[(e*n+t)*2],a=this._flowData.data[(e*n+t)*2+1],s=(Math.sqrt(r*r+a*a)-i)/(o-i);c[(e*n+t)*4]=s*255,c[(e*n+t)*4+1]=0,c[(e*n+t)*4+2]=0,c[(e*n+t)*4+3]=255}else c[(e*n+t)*4]=0,c[(e*n+t)*4+1]=0,c[(e*n+t)*4+2]=0,c[(e*n+t)*4+3]=0;let d=new u(n,r);d.internalFormat=6408,d.wrapMode=33071,d.flipped=!0;let f=new l(t,d,c);this.texture=f,this.min=i,this.max=o,this._flowData=null}detach(){this.mesh.destroy(),this.texture.dispose()}get ready(){return!0}update(e,t){this._values={color:e,opacity:t}}getProgramSpec(e){return{shader:m._shader,uniforms:{transform:{localToScreenMat3:e.localToScreenMat3},state:{time:e.time,displayOpacity:e.displayOpacity,startTime:e.startTime,endTime:e.endTime},config:{min:this.min,max:this.max},color:r(this._values.color),opacity:n(this._values.opacity)},textures:{texture:{texture:this.texture,unit:0}},defines:{vvColor:this._values.color.kind===`ramp`,vvOpacity:this._values.opacity.kind===`ramp`},optionalAttributes:null}}}export{f as Imagery,m as ImageryResources};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import"../../../../core/has.js";import{rasterizeDash as e}from"../../../../symbols/cim/rasterizingUtils.js";import{log2 as t}from"./GeometryUtils.js";import n from"../webgl/Rect.js";import r from"../webgl/RectangleBinPack.js";import i
|
|
2
|
+
import"../../../../core/has.js";import{rasterizeDash as e}from"../../../../symbols/cim/rasterizingUtils.js";import{log2 as t}from"./GeometryUtils.js";import n from"../webgl/Rect.js";import r from"../webgl/RectangleBinPack.js";import{Texture as i}from"../../../webgl/Texture.js";import{TextureDescriptor as a}from"../../../webgl/TextureDescriptor.js";class o{constructor(e,t,n=0){this._mosaicPages=[],this._currentPage=0,this._maxItemSize=0,this._pageWidth=0,this._pageHeight=0,this._mosaicRects={},t<=0&&console.error(`Sprites mosaic defaultWidth and defaultHeight must be greater than zero!`),this._pageWidth=e,this._pageHeight=t,n>0&&(this._maxItemSize=n),this._binPack=new r(e-4,t-4),this._mosaicPages.push({mosaicsData:{type:`static`,data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0})}destroy(){this.dispose()}dispose(){if(this._binPack=null,this._mosaicPages!==null){for(let e of this._mosaicPages){let t=e.texture;t&&t.dispose()}this._mosaicPages=null}}getWidth(e){return e<0||e>=this._mosaicPages.length?-1:this._mosaicPages[e].size[0]}getHeight(e){return e<0||e>=this._mosaicPages.length?-1:this._mosaicPages[e].size[1]}getPageSize(e){return e<0||e>=this._mosaicPages.length?null:this._mosaicPages[e].size}getTexture(e){return e<0||e>=this._mosaicPages.length?null:this._mosaicPages[e].texture||null}setSpriteSource(e){for(let e of this._mosaicPages)e.texture&&=(e.texture.dispose(),null),e.dirty=!0;if(this._mosaicPages.length===0){this._binPack=new r(this._pageWidth-4,this._pageHeight-4);let e=Math.floor(this._pageWidth)*Math.floor(this._pageHeight),t=new Uint32Array(e);for(let n=0;n<e;n++)t[n]=0;this._mosaicPages.push({mosaicsData:{type:`static`,data:t},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:null})}this._sprites=e}getSpriteItem(e,t=!1){let n=this._mosaicRects[e];if(n)return n;let r,i;if(e&&e.startsWith(`dasharray-`))[r,i]=this._rasterizeDash(e),t=!0;else{if(!this._sprites||this._sprites.loadStatus!==`loaded`)return null;r=this._sprites.getSpriteInfo(e)}if(!r?.width||!r.height||r.width<0||r.height<0)return null;let a=r.width,o=r.height,[s,c,l]=this._allocateImage(a,o);return s.width<=0?null:(this._copy(s,r,c,l,t,i),n={type:`sprite`,rect:s,width:a,height:o,sdf:r.sdf,simplePattern:!1,rasterizationScale:r.pixelRatio??1,samplingMode:`Linear`,page:c},this._mosaicRects[e]=n,n)}getSpriteItems(e){let t={};for(let n of e)t[n.name]=this.getSpriteItem(n.name,n.repeat);return t}getMosaicItemPosition(e,t){let n=this.getSpriteItem(e,t),r=n?.rect;if(!r)return null;r.width=n.width,r.height=n.height;let i=n.width,a=n.height;return{tl:[r.x+2,r.y+2],br:[r.x+2+i,r.y+2+a],page:n.page}}bind(e,t,n=0,r=0){if(n>=this._mosaicPages.length||n>=this._mosaicPages.length)return;let o=this._mosaicPages[n],s=o.texture;if(!s){let t=new a(o.size[0],o.size[1]);t.wrapMode=33071,s=new i(e,t),o.texture=s}if(s.setSamplingMode(t),e.bindTexture(s,r),o.dirty){let e=o.mosaicsData.data;s.setData(new Uint8Array(e.buffer))}o.dirty=!1}static _copyBits(e,t,n,r,i,a,o,s,c,l,u){let d=r*t+n,f=s*a+o;if(u){f-=a;for(let o=-1;o<=l;o++,d=((o+l)%l+r)*t+n,f+=a)for(let t=-1;t<=c;t++)i[f+t]=e[d+(t+c)%c]}else for(let n=0;n<l;n++){for(let t=0;t<c;t++)i[f+t]=e[d+t];d+=t,f+=a}}_copy(e,t,n,r,i,a){if(n>=this._mosaicPages.length||!a&&(!this._sprites||this._sprites.loadStatus!==`loaded`))return;let s=this._mosaicPages[n],c=s.mosaicsData.data,l=new Uint32Array(a?a.buffer:this._sprites.image.buffer),u=a?t.width:this._sprites.width;o._copyBits(l,u,t.x,t.y,c,r[0],e.x+2,e.y+2,t.width,t.height,i),s.dirty=!0}_allocateImage(e,i){e+=2,i+=2;let a=Math.max(e,i);if(this._maxItemSize&&this._maxItemSize<a){let r=2**Math.ceil(t(e)),a=2**Math.ceil(t(i)),o=new n(0,0,e,i);return this._mosaicPages.push({mosaicsData:{type:`static`,data:new Uint32Array(r*a)},size:[r,a],dirty:!0,texture:null}),[o,this._mosaicPages.length-1,[r,a]]}let o=e%4?4-e%4:4,s=i%4?4-i%4:4;o===1&&(o=5),s===1&&(s=5);let c=this._binPack.allocate(e+o,i+s);if(c.width<=0){let t=this._mosaicPages[this._currentPage];return t.dirty||(t.mosaicsData.data=null),this._currentPage=this._mosaicPages.length,this._mosaicPages.push({mosaicsData:{type:`static`,data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:null}),this._binPack=new r(this._pageWidth-4,this._pageHeight-4),this._allocateImage(e,i)}return[c,this._currentPage,[this._pageWidth,this._pageHeight]]}_rasterizeDash(t){let n=t.match(/\[(.*?)\]/);if(!n)return null;let r=n[1].split(`,`).map(Number),i=t.slice(t.lastIndexOf(`-`)+1),[a,o,s]=e(r,i),c=new Uint8Array(a.buffer);return[{x:0,y:0,width:o,height:s,sdf:!0,pixelRatio:1},c]}}export{o as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{RenderingDevice as e}from"../webgl/RenderingDevice.js";import{simplePipelineState as t}from"../webgl/shaderGraph/utils.js";import{VTLTechniquesRepo as n}from"../webgl/shaderGraph/techniques/vectorTiles/VTLTechniques.js";const r=1e-6;class i{constructor(t,r){this.spriteMosaic=t,this.glyphMosaic=r,this._vtlTechniques=new n,this._context=null,this._vtlTechniques.startup(),this._renderingDevice=new e}dispose(){this._vtlTechniques&&this._vtlTechniques.shutdown(this._context),this.spriteMosaic.dispose(),this._renderingDevice.dispose(),this._context=null}drawSymbols(e,t,n){this._context??=e.context;let i=n.layers;e.renderPass=`translucent`;let o=this._vtlTechniques.getTechnique(3);a[0]=t;for(let
|
|
2
|
+
import{RenderingDevice as e}from"../webgl/RenderingDevice.js";import{simplePipelineState as t}from"../webgl/shaderGraph/utils.js";import{VTLTechniquesRepo as n}from"../webgl/shaderGraph/techniques/vectorTiles/VTLTechniques.js";const r=1e-6;class i{constructor(t,r){this.spriteMosaic=t,this.glyphMosaic=r,this._vtlTechniques=new n,this._context=null,this._vtlTechniques.startup(),this._renderingDevice=new e}dispose(){this._vtlTechniques&&this._vtlTechniques.shutdown(this._context),this.spriteMosaic.dispose(),this._renderingDevice.dispose(),this._context=null}drawSymbols(e,t,n){this._context??=e.context;let i=n.layers;e.renderPass=`translucent`;let o=this._vtlTechniques.getTechnique(3);a[0]=t;for(let n=0;n<i.length;n++){let s=i[n];if(s.type!==3||!t.layerData.has(s.uid))continue;let c=s.getLayoutProperty(`visibility`);if(c&&c.getValue()===1)continue;let l=e.displayLevel;s.minzoom!==void 0&&s.minzoom>l+r||s.maxzoom!==void 0&&s.maxzoom<=l-r||(e.styleLayerUID=s.uid,e.styleLayer=s,o.render(e,{tiles:a}))}a[0]=null}drawBackground(e,t,n){if(n.backgroundBucketIds.length===0)return;this._context??=e.context;let{displayLevel:i}=e;this._renderingDevice.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:`composite`},stencil:!1,depth:{write:!1,test:519}}),e.renderPass=`background`;let o=this._vtlTechniques.getTechnique(0);a[0]=t,n.backgroundBucketIds.forEach(t=>{let s=n.getLayerById(t);if(s.type!==0)return;let c=s.getLayoutProperty(`visibility`);c&&c.getValue()===1||s.minzoom!==void 0&&s.minzoom>i+r||s.maxzoom!==void 0&&s.maxzoom<=i-r||(e.styleLayerUID=s.uid,e.styleLayer=s,o.render(e,{tiles:a}))}),a[0]=null}drawTile(e,n,r,i){this._context??=e.context;let a=r.layers,o=i?e=>i!==e.type||!n.layerData.has(e.uid):e=>!n.layerData.has(e.uid),s=a.filter(e=>!(o(e)||e.getLayoutProperty(`visibility`)?.getValue()===1)),{context:c}=e,l=c.getPipelineState(),{depthWrite:u}=l;n.disposeLayerData();let d=0,f=1;u?.zNear!==void 0&&u.zFar!==void 0&&(d=u.zNear,f=u.zFar),this._renderingDevice.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:`none`},stencil:!1,depth:{write:{zNear:d,zFar:f},test:515}}),e.renderPass=`opaque`;for(let t=s.length-1;t>=0;--t)this._renderStyleLayer(s[t],e,n);this._renderingDevice.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:`composite`},stencil:!1,depth:{write:!1,test:515}}),e.renderPass=`translucent`,s.forEach(t=>this._renderStyleLayer(t,e,n)),this._renderingDevice.setPipelineState(t),c.setPipelineState(l)}setShader(e){return this._renderingDevice.setShader(e)}setPipelineState(e){return this._renderingDevice.setPipelineState(e)}getPipelineState(){return this._renderingDevice.getPipelineState()}submitDraw(e,t,n){return this._renderingDevice.submitDraw(e,t,n)}submitDrawMesh(e,t,n,r){this._renderingDevice.submitDrawMesh(e,t,n,r)}submitDrawMeshUntyped(e,t,n,r){this._renderingDevice.submitDrawMeshUntyped(e,t,n,r)}updatePipelineState(e){return this._renderingDevice.updatePipelineState(e)}setStencilRef(e,t){return this._renderingDevice.setStencilRef(e,t)}_renderStyleLayer(e,t,n){let{renderPass:i}=t,o;switch(e.type){case 0:if(i!==`background`)return;o=this._vtlTechniques.getTechnique(0);break;case 1:if(i!==`opaque`&&i!==`translucent`)return;o=this._vtlTechniques.getTechnique(1);break;case 2:if(i!==`translucent`)return;o=this._vtlTechniques.getTechnique(2);break;case 4:if(i!==`translucent`)return;o=this._vtlTechniques.getTechnique(4);break;case 3:if(i!==`translucent`)return;o=this._vtlTechniques.getTechnique(3)}let{displayLevel:s}=t,{minzoom:c,maxzoom:l}=e;if(c!==void 0&&c>s+r||l!==void 0&&l<=s-r||!o)return;let u=this._renderingDevice.getPipelineState();e.type===3&&this._renderingDevice.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:`composite`},stencil:!1,depth:!1}),t.styleLayerUID=e.uid,t.styleLayer=e,a[0]=n,o.render(t,{tiles:a}),a[0]=null,e.type===3&&this._renderingDevice.setPipelineState(u)}}const a=[null];export{i as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{clone as e}from"../../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{collisionGridCellSize as t}from"./config.js";import{GridIndex as n}from"./util.js";class r{constructor(r,i,a,o,s,c,l){this._symbols=r,this._styleRepository=o,this._zoom=s,this._scale=c,this._currentLayerCursor=0,this._currentSymbolCursor=0,this._styleProps=new Map,this._allNeededMatrices=new Map,this._gridIndex=new n(i,a,t),this._si=Math.sin(Math.PI*l/180),this._co=Math.cos(Math.PI*l/180),o.cachedStyles&&(this._styleProps=o.cachedStyles);for(let t of r)for(let n of t.symbols)this._allNeededMatrices.has(n.tile)||this._allNeededMatrices.set(n.tile,e(n.tile.transforms.tileUnitsToPixels))}work(e){let t=performance.now();for(;this._currentLayerCursor<this._symbols.length;this._currentLayerCursor++,this._currentSymbolCursor=0){let n=this._symbols[this._currentLayerCursor],r=this._getProperties(n.styleLayerUID),i=this._styleRepository.layerContexts?.get(n.styleLayerUID);for(;this._currentSymbolCursor<n.symbols.length;this._currentSymbolCursor++){if(this._currentSymbolCursor%100==99&&performance.now()-t>e)return!1;let a=n.symbols[this._currentSymbolCursor];if(!
|
|
2
|
+
import{clone as e}from"../../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{collisionGridCellSize as t}from"./config.js";import{GridIndex as n}from"./util.js";class r{constructor(r,i,a,o,s,c,l){this._symbols=r,this._styleRepository=o,this._zoom=s,this._scale=c,this._currentLayerCursor=0,this._currentSymbolCursor=0,this._styleProps=new Map,this._allNeededMatrices=new Map,this._gridIndex=new n(i,a,t),this._si=Math.sin(Math.PI*l/180),this._co=Math.cos(Math.PI*l/180),o.cachedStyles&&(this._styleProps=o.cachedStyles);for(let t of r)for(let n of t.symbols)this._allNeededMatrices.has(n.tile)||this._allNeededMatrices.set(n.tile,e(n.tile.transforms.tileUnitsToPixels))}work(e){let t=performance.now();for(;this._currentLayerCursor<this._symbols.length;this._currentLayerCursor++,this._currentSymbolCursor=0){let n=this._symbols[this._currentLayerCursor],r=this._getProperties(n.styleLayerUID),i=this._styleRepository.layerContexts?.get(n.styleLayerUID);for(;this._currentSymbolCursor<n.symbols.length;this._currentSymbolCursor++){if(this._currentSymbolCursor%100==99&&performance.now()-t>e)return!1;let a=n.symbols[this._currentSymbolCursor];this._collideSymbol(a,r,i)}}return!0}_collideSymbol(e,t,n){if(!e.uniqueSymbol?.show)return;e.setAlternate?.(-1);let r=this._computeCoordinates(e,t,n),i=e.uniqueSymbol;if(i.show){if(this._collideColliders(i,r,t))i.show=!1;else{let a=e.labelStoreId;a&&n?.labelStore.writeAnchor(a,e.xTile,e.yTile),this._insertColliders(i.parts,r,t)}}}_collideColliders(e,t,n){let{iconAllowOverlap:r,textAllowOverlap:i}=n,a=!1;for(let n of t){if(!n.enabled)continue;let t=e.parts[n.partIndex];t.show&&!(n.partIndex?i:r)&&this._doesCollide(n)&&(n.hard?a=!0:t.show=!1)}return a}_insertColliders(e,t,n){let{iconIgnorePlacement:r,textIgnorePlacement:i}=n;for(let n of t){if(!n.enabled||(n.partIndex?i:r)||!e[n.partIndex].show)continue;let t=n.xScreen+n.dxScreen,a=n.yScreen+n.dyScreen,o=t+n.width,s=a+n.height,[c,l,u,d]=this._gridIndex.getCellSpan(t,a,o,s);for(let e=l;e<=d;e++)for(let t=c;t<=u;t++)this._gridIndex.cells[e][t].push(n)}}_setScreenCoords(e,t,n){let{iconRotationAlignment:r,textRotationAlignment:i,iconTranslate:a,iconTranslateAnchor:o,textTranslate:s,textTranslateAnchor:c}=n,l=this._si,u=this._co,d=this._zoom,[f,p]=e.partIndex===0?a:s,m=e.partIndex===0?o:c,h=e.minLod<=d&&d<=e.maxLod;return e.enabled=h,e.xScreen=e.xTile*t[0]+e.yTile*t[3]+t[6],e.yScreen=e.xTile*t[1]+e.yTile*t[4]+t[7],m===0?(e.xScreen+=u*f-l*p,e.yScreen+=l*f+u*p):(e.xScreen+=f,e.yScreen+=p),(e.partIndex===0?r:i)===1?(e.dxScreen=e.dxPixels,e.dyScreen=e.dyPixels):(e.dxScreen=u*(e.dxPixels+e.width/2)-l*(e.dyPixels+e.height/2)-e.width/2,e.dyScreen=l*(e.dxPixels+e.width/2)+u*(e.dyPixels+e.height/2)-e.height/2),h}_computeCoordinates(e,t,n){let r=this._allNeededMatrices.get(e.tile),i=e.uniqueSymbol,a=e.colliders(n,this._scale),o=0;for(let e of a)this._setScreenCoords(e,r,t)||o++;return a.length>0&&o===a.length&&i&&(i.show=!1),a}_getProperties(e){let t=this._styleProps.get(e);if(t)return t;let n=this._styleRepository.getLayerStyleProperties?.(e,this._zoom);return this._styleProps.set(e,n),n}_doesCollide(e){let t=e.xScreen+e.dxScreen,n=e.yScreen+e.dyScreen,r=t+e.width,i=n+e.height,[a,o,s,c]=this._gridIndex.getCellSpan(t,n,r,i);for(let l=o;l<=c;l++)for(let o=a;o<=s;o++){let a=this._gridIndex.cells[l][o];for(let o of a){if(o.labelId!=null&&e.labelId!=null&&o.labelId===e.labelId)continue;let a=o.xScreen+o.dxScreen,s=o.yScreen+o.dyScreen,c=a+o.width,l=s+o.height;if(!(r<a||t>c||i<s||n>l))return!0}}return!1}}export{r as CollisionJob};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{getScaleForResolution as e}from"../../../../../geometry/support/scaleUtils.js";import{
|
|
2
|
+
import{getScaleForResolution as e}from"../../../../../geometry/support/scaleUtils.js";import{equals as t,getInfo as n}from"../../../../../geometry/support/spatialReferenceUtils.js";import{project as r}from"../../../../../geometry/support/webMercatorUtils.js";import i from"../../../../../layers/support/TileInfo.js";import a from"../../../tiling/TileInfoViewPOT.js";function o(t,r=22){let a=n(t),o=t.isWGS84?360/512:78271.51696400007,s=t.isWGS84?e(o,t):295828763.7957775;return i.fromJSON({rows:512,cols:512,dpi:96,format:`pbf`,origin:{x:a.origin[0],y:a.origin[1]},spatialReference:t.toJSON(),lods:Array.from({length:r+1},(e,t)=>({level:t,resolution:o/2**t,scale:s/2**t}))})}function s(e,n){return t(e.tileInfo?.spatialReference,n)||l(e)&&(n.isWGS84||n.isWebMercator)}function c(e,n){let i=l(e)&&s(e,n)?o(n,e.tileInfo.lods.length-1):e.tileInfo,c=t(e.spatialReference,i.spatialReference)?e.fullExtent:r(e.fullExtent,i.spatialReference);return c&&i.spatialReference.isWebMercator&&e.spatialReference.isWGS84&&(c.ymin=Math.max(c.ymin,-i.origin.y),c.ymax=Math.min(c.ymax,i.origin.y)),new a(i,c)}function l(e){let t=Object.values(e.sourceNameToSource);return t.length>0&&t.every(e=>e.type===`geojson`)}export{o as createTileInfo,c as createTileInfoView,s as supportsSpatialReference};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../../core/Error.js";import has from"../../../../core/has.js";import t from"../../../../core/Logger.js";import{estimateNumberArrayMemory as n}from"../../../../core/memoryEstimations.js";import{signal as r}from"../../../../core/signal.js";import{dataDrivenUnit2 as i,dataDrivenUnit1 as a,dataDrivenUnit0 as o,visualVariableUnit as s,localTimeOriginUnit as c,gpgpuUnit as l,animationUnit as u,filterFlagsUnit as d}from"./definitions.js";import{getDisplayIdTexel as f}from"./DisplayId.js";import{SizedPixelFormat as p,PixelType as m}from"../../../webgl/enums.js";import{DisposableFramebufferObject as h}from"../../../webgl/FramebufferObject.js";import g
|
|
2
|
+
import e from"../../../../core/Error.js";import has from"../../../../core/has.js";import t from"../../../../core/Logger.js";import{estimateNumberArrayMemory as n}from"../../../../core/memoryEstimations.js";import{signal as r}from"../../../../core/signal.js";import{dataDrivenUnit2 as i,dataDrivenUnit1 as a,dataDrivenUnit0 as o,visualVariableUnit as s,localTimeOriginUnit as c,gpgpuUnit as l,animationUnit as u,filterFlagsUnit as d}from"./definitions.js";import{getDisplayIdTexel as f}from"./DisplayId.js";import{SizedPixelFormat as p,PixelType as m}from"../../../webgl/enums.js";import{DisposableFramebufferObject as h}from"../../../webgl/FramebufferObject.js";import{Texture as g}from"../../../webgl/Texture.js";import{TextureDescriptor as _}from"../../../webgl/TextureDescriptor.js";const v=()=>t.getLogger(`esri.views.2d.engine.webgl.AttributeStoreView`),y=t=>{switch(t){case m.UNSIGNED_BYTE:return 1;case m.UNSIGNED_SHORT_4_4_4_4:return 2;case m.FLOAT:return 4;default:v().error(new e(`webgl-utils`,`Unable to handle type ${t}`));return}},b=t=>{switch(t){case m.UNSIGNED_BYTE:return Uint8Array;case m.UNSIGNED_SHORT_4_4_4_4:return Uint16Array;case m.FLOAT:return Float32Array;default:v().error(new e(`webgl-utils`,`Unable to handle type ${t}`));return}};class x{constructor(e,t,n){this._texture=null,this._lastTexture=null,this._fbos={},this.texelSize=4;let{buffer:r,pixelType:i,textureOnly:a}=e,o=b(i);this.blockIndex=n,this.pixelType=i,this.size=t,this.textureOnly=a,a||(this.data=new o(r)),this._resetRange()}destroy(){this._texture?.dispose();for(let e in this._fbos){let t=this._fbos[e];t&&(e===`0`&&t.detachColorTexture(),t.dispose()),this._fbos[e]=null}this._texture=null}get _textureDesc(){let e=new _(this.size);return e.wrapMode=33071,e.samplingMode=9728,e.dataType=this.pixelType,this.blockIndex===2&&(e.pixelFormat=6403,e.internalFormat=p.R8),e}get usedMemory(){return this.data==null?0:n(this.data)}setData(e,t,n){let r=f(e),i=this.data,a=r*this.texelSize+t;!i||a>=i.length||(i[a]=n,this.dirtyStart=Math.min(this.dirtyStart,r),this.dirtyEnd=Math.max(this.dirtyEnd,r))}getData(e,t){if(this.data==null)return null;let n=f(e)*this.texelSize+t;return!this.data||n>=this.data.length?null:this.data[n]}getTexture(e){return this._texture??this._initTexture(e)}getFBO(e,t=0){if(!this._fbos[t]){let n=t===0?this.getTexture(e):this._textureDesc;this._fbos[t]=new h(e,n)}return this._fbos[t]}get hasDirty(){let e=this.dirtyStart;return this.dirtyEnd>=e}updateTexture(t,n){try{let r=this.dirtyStart,i=this.dirtyEnd;if(!this.hasDirty)return;has(`esri-2d-update-debug`)&&console.debug(`Version[${n}] AttributeStoreView.updateTexture`,{start:r,end:i,firstBytes:new Uint8Array(this.data.buffer.slice(0,16)),block:this}),this._resetRange();let a=this.data.buffer,o=this.getTexture(t),s=(r-r%this.size)/this.size,c=(i-i%this.size)/this.size,l=s,u=this.size,d=c,f=s*this.size*4,p=(u+d*this.size)*4-f,m=b(this.pixelType),h=m.BYTES_PER_ELEMENT,g=new m(a,f*h,p),_=this.size,y=d-l+1;if(y>this.size){v().error(new e(`mapview-webgl`,`Out-of-bounds index when updating AttributeData`));return}o.updateData(0,0,l,_,y,g)}catch{}}update(e){let{data:t,start:n,end:r}=e;if(t!=null&&this.data!=null){let r=this.data,i=n*this.texelSize;for(let n=0;n<t.length;n++){let a=1<<n%this.texelSize;e.layout&a&&(r[i+n]=t[n])}}this.dirtyStart=Math.min(this.dirtyStart,n),this.dirtyEnd=Math.max(this.dirtyEnd,r)}resize(e,t){let n=this.size;if(this.size=t,this.textureOnly){n!==this.size&&(this._lastTexture=this._texture,this._texture=null);return}let r=b(this.pixelType);this.destroy(),this.data=new r(e.buffer)}_resetRange(){this.dirtyStart=2147483647,this.dirtyEnd=0}_initTexture(e){let t=new g(e,this._textureDesc,this.data??void 0);if(this._lastTexture!=null&&this._fbos[0]){let n=this._lastTexture.descriptor.width,r=this._lastTexture.descriptor.height,i=this._lastTexture.descriptor.dataType,a=this._lastTexture.descriptor.pixelFormat,o=this.getFBO(e),s=y(i),c=new(b(i))(new ArrayBuffer(n*r*s*this.texelSize)),l=e.boundFramebuffer,{x:u,y:d,width:f,height:p}=e.getViewport();e.bindFramebuffer(o),o.readPixels(0,0,n,r,a,i,c),t.updateData(0,0,0,n*2,r/2,c),e.setViewport(u,d,f,p),e.bindFramebuffer(l)}return this.destroy(),this._texture=t,this._texture}}class S{constructor(){this.size=0,this._pendingAttributeUpdates=[],this._version=0,this._epoch=0,this._hasPendingUpdate=r(!1),this._locked=!1}get updating(){return this._hasPendingUpdate.value}get locked(){return this._locked}get usedMemory(){let e=0;for(let t of this._data??[])t!=null&&(e+=t.usedMemory);return e}_initialize(e){if(!e)throw Error(`InternalError: initArgs must be defined`);let t=e.blockDescriptors;if(this.size=e.blockSize,has(`esri-2d-update-debug`)&&console.debug(`AttributeStoreView.initialize`,{message:e}),this._data==null)this._data=t.map((e,t)=>e==null?null:new x(e,this.size,t));else for(let e=0;e<this._data.length;e++){let n=this._data[e],r=t[e];r!=null&&(n==null?this._data[e]=new x(r,this.size,e):n.resize(r,this.size))}}destroy(){for(let e of this._data??[])e?.destroy();this._defaultTexture?.dispose(),this._defaultTexture=null,this._pendingAttributeUpdates=[]}isEmpty(){return this._data==null}getBlock(e){return this._data==null?null:this._data[e]}setLabelMinZoom(e,t){this.setData(e,0,1,t)}setLocalTimeOrigin(e,t){this.setData(e,7,0,t)}getLabelMinZoom(e){return this.getData(e,0,1,255)}getFilterFlags(e){return this.getData(e,0,0,0)}getVisualVariableData(e,t){return this.getData(e,3,t,0)}getData(e,t,n,r){if(!this._data)return 0;let i=this._data[t];return i==null?0:i.getData(e,n)??r}setData(e,t,n,r){this._data[t].setData(e,n,r)}lockTextureUploads(){this._locked=!0}unlockTextureUploads(){return this._locked=!1,this.update()}requestUpdate(e){this._version=e.version,this._pendingAttributeUpdates.push(e),this._hasPendingUpdate.value=!0,has(`esri-2d-update-debug`)&&console.debug(`Version[${this._version}] AttributeStoreView.requestUpdate`,{message:e})}get currentEpoch(){return this._epoch}get hasPendingUpdates(){return this._pendingAttributeUpdates.length>0}update(){if(this._locked)return!1;let e=this._pendingAttributeUpdates;this._pendingAttributeUpdates=[];let t=!!e.length;for(let t of e){let{blockData:e,initArgs:n,sendUpdateEpoch:r,version:i}=t;has(`esri-2d-update-debug`)&&console.debug(`Version[${this._version}] Epoch[${r}] AttributeStoreView.applyUpdate`),this._version=i,this._epoch=r,n!=null&&this._initialize(n);let a=this._data;for(let t=0;t<e.length;t++){let n=e[t],r=a[t];r!=null&&n!=null&&(has(`esri-2d-update-debug`)&&console.debug(`Version[${this._version}] CpuBlock[${t}] AttributeStoreView.update`,{block:n}),r.update(n))}}return this._hasPendingUpdate.value=!1,t}getUniforms(){return{size:this.size}}getTextures(e){return{filterFlags:{texture:this._getTexture(e,0),unit:d},animation:{texture:this._getTexture(e,1),unit:u},gpgpu:{texture:this._getTexture(e,2),unit:l},localTimeOrigin:{texture:this._getTexture(e,7),unit:c},visualVariableData:{texture:this._getTexture(e,3),unit:s},dataDriven0:{texture:this._getTexture(e,4),unit:o},dataDriven1:{texture:this._getTexture(e,5),unit:a},dataDriven2:{texture:this._getTexture(e,6),unit:i}}}_getTexture(e,t){let n=this._data?.[t];return n?(n.updateTexture(e,this._version),n.getTexture(e)):this._getDefaultTexture(e)}_getDefaultTexture(e){if(this._defaultTexture==null){let t=new _(1);t.wrapMode=33071,t.samplingMode=9728,this._defaultTexture=new g(e,t,new Uint8Array(4))}return this._defaultTexture}}export{S as AttributeStoreView};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import has from"../../../../core/has.js";import{open as e}from"../../../../core/workers.js";import{decorGlyphRect as t}from"./decorGlyphRect.js";import{sdfBufferServer as n}from"./definitions.js";import r from"./Rect.js";import i
|
|
2
|
+
import has from"../../../../core/has.js";import{open as e}from"../../../../core/workers.js";import{decorGlyphRect as t}from"./decorGlyphRect.js";import{sdfBufferServer as n}from"./definitions.js";import r from"./Rect.js";import{Texture as i}from"../../../webgl/Texture.js";import{TextureDescriptor as a}from"../../../webgl/TextureDescriptor.js";const o=new r(0,0,11,8),s=new r(11,0,11,8);class c{constructor(e,t,n,r){this._snapCoords=n,this._setTextureKey=r,this.width=0,this.height=0,this._dirties=[],this._pageData=[],this._currentPage=0,this._textures=[],this._worker=this._load(),this.width=e,this.height=t,this._pageData.push(new Uint8Array(e*t)),this._dirties.push(!0),this._textures.push(null),this._initDecorationGlyphs()}dispose(){for(let e of this._textures)e&&e.dispose();this._textures.length=0,this._pageData.length=0,this._worker.then(e=>e.connection.close())}async openMessagePorts(){return(await this._worker).connection.openPorts()}async rasterizeText(e,t,n){return(await this._worker).worker.rasterizeText(e,t,n)}getTexture(e,t){if(!this._textures[t]){let n=new a(this.width,this.height);n.pixelFormat=6406,n.wrapMode=33071,this._textures[t]=new i(e,n,new Uint8Array(this.width*this.height))}return this._dirties[t]&&(this._textures[t].setData(this._pageData[t]),this._dirties[t]=!1),this._textures[t]}bind(e,t,n,r){let i=this.getTexture(e,n);i.setSamplingMode(t),e.bindTexture(i,r)}async _load(){let t=await e(`GlyphWorker`,{client:{getOptions:()=>({width:this.width,height:this.height,snapCoords:!!this._snapCoords}),recordGlyphs:e=>{let t=n;for(let n of e)n.sdf&&this.recordGlyph(n.mosaicItem,n.rect,n.sdf.buffer,t),this._setTextureKey&&n.mosaicItem.textureKey!==0&&this._setTextureKey(n.mosaicItem)}},strategy:`dedicated`});return{worker:t.createInvokeProxy(),connection:t}}_invalidate(){this._dirties[this._currentPage]=!0}recordGlyph(e,t,n,r){let{page:i,rect:a}=e;if(t.width===0)return;let o=t.width+r*2,s=t.height+r*2;this._pageData[i]||this._allocNewPage(i);let c=this._pageData[i];for(let e=0;e<s;e++){let t=o*e,r=this.width*(a.y+e)+a.x;for(let e=0;e<o;e++)c[r+e]=n[t+e]}has(`esri-glyph-debug`)&&this._showDebugPage(c),this._invalidate()}_allocNewPage(e){this._dirties[this._currentPage]||(this._pageData[this._currentPage]=null),this._currentPage=e,this._pageData[e]=new Uint8Array(this.width*this.height),this._dirties[e]=!0,this._textures[e]=null,this._initDecorationGlyphs()}_initDecorationGlyphs(){let e=[117,149,181,207,207,181,149,117],r=[],i=[];for(let t=0;t<e.length;t++){let n=e[t];for(let e=0;e<11;e++){let a=t>=3&&t<5&&e>=3&&e<8?255:0;r.push(n),i.push(a)}}let a=new Uint8Array(r),c={rect:o,page:this._currentPage,sdf:!0},l=new Uint8Array(i),u={rect:s,page:this._currentPage,sdf:!0};this.recordGlyph(c,t,a,n),this.recordGlyph(u,t,l,n)}_showDebugPage(e){let t=document.createElement(`canvas`),n=t.getContext(`2d`),r=new ImageData(this.width,this.height),i=r.data;t.width=this.width,t.height=this.height,t.style.border=`1px solid black`;for(let t=0;t<e.length;++t)i[t*4]=e[t],i[t*4+1]=0,i[t*4+2]=0,i[t*4+3]=255;n.putImageData(r,0,0),document.body.appendChild(t)}}export{c as GlyphMosaic};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../../core/Error.js";import{on as t}from"../../../../core/events.js";import n from"../../../../core/Handles.js";import r from"../../../../core/Logger.js";import{disposeMaybe as i}from"../../../../core/maybe.js";import{getProjectiveTransform as a}from"../../../../core/perspectiveUtils.js";import{watch as o,initial as s,when as c}from"../../../../core/reactiveUtils.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{set as u}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as d}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{getClosestDenormalizedXToReference as f}from"../../../../geometry/support/normalizeUtils.js";import{isVideoElement as p}from"../../../../support/mediaLayerUtils.js";import{DisplayObject as m}from"../DisplayObject.js";import{createPlayer as h,updateIfNeeded as g}from"./animatedFormats/utils.js";import _
|
|
2
|
+
import e from"../../../../core/Error.js";import{on as t}from"../../../../core/events.js";import n from"../../../../core/Handles.js";import r from"../../../../core/Logger.js";import{disposeMaybe as i}from"../../../../core/maybe.js";import{getProjectiveTransform as a}from"../../../../core/perspectiveUtils.js";import{watch as o,initial as s,when as c}from"../../../../core/reactiveUtils.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{set as u}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as d}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{getClosestDenormalizedXToReference as f}from"../../../../geometry/support/normalizeUtils.js";import{isVideoElement as p}from"../../../../support/mediaLayerUtils.js";import{DisplayObject as m}from"../DisplayObject.js";import{createPlayer as h,updateIfNeeded as g}from"./animatedFormats/utils.js";import{Texture as _}from"../../../webgl/Texture.js";import{TextureDescriptor as v}from"../../../webgl/TextureDescriptor.js";const y=[1,1],b=l(),x={none:`None`,loop:`Loop`,oscillate:`Oscillate`};function S(e){return e?{type:`CIMAnimatedSymbolProperties`,...e,playAnimation:e.playing,repeatType:e.repeatType?x[e.repeatType]:void 0}:{type:`CIMAnimatedSymbolProperties`}}class C extends m{constructor(a){super(),this.elementView=a,this.isWrapAround=!1,this.wrapAroundShift=0,this.perspectiveTransform=d(),this._handles=new n,this._vertices=new Float32Array(8),this._indices=new Uint16Array([0,0,0,1,1,0,1,1,1,1,0,0,0,0,0,1,1,0,1,1]),this._playAnimation=!0,this._handles.add([o(()=>this.elementView.element.opacity,e=>this.opacity=e,s),o(()=>[this.elementView.coords],()=>{this.requestRender()},s),o(()=>[`animationOptions`in this.elementView.element&&this.elementView.element.animationOptions],()=>{this.texture=i(this.texture),this.requestRender()},s),c(()=>this.elementView.element.loaded,()=>{let e=this.elementView.element;this.ready(),p(e)&&e.content!=null&&(this._handles.add([t(e.content,`play`,()=>this.requestRender()),t(e.content,`loadeddata`,()=>this.requestRender()),t(e.content,`loaded`,()=>this.requestRender())]),`requestVideoFrameCallback`in e.content?e.content.requestVideoFrameCallback(()=>this.requestRender()):this._handles.add([t(e.content,`seeked`,()=>this.requestRender())]),this.requestRender())},s)]),a.element.load().catch(t=>{r.getLogger(`esri.views.2d.layers.MediaLayerView2D`).error(new e(`element-load-error`,`Element cannot be displayed`,{element:a,error:t}))})}getMesh(e){throw Error(`Method not implemented.`)}destroy(){super.destroy(),this._handles.destroy(),this.texture=i(this.texture)}get textureSize(){return y}beforeRender(e){let{context:t}=e,n=this.elementView.element.content;if(n!=null){let r=n instanceof HTMLImageElement,i=n instanceof HTMLVideoElement,a=r?n.naturalWidth:i?n.videoWidth:n.width,o=r?n.naturalHeight:i?n.videoHeight:n.height;if(this._updatePerspectiveTransform(a,o),!this.texture){let e=new v(a,o);if(e.wrapMode=33071,e.preMultiplyAlpha=!0,`getFrame`in n){let r=n=>{this.texture?this.texture.setData(n):this.texture=new _(t,e,n)};if(`animationOptions`in this.elementView.element){let e=S(this.elementView.element.animationOptions);this._playAnimation=e.playAnimation??!1,this._player=h(n,e,null,r)}}else this.texture=new _(t,e,n);this.texture.generateMipmap(),i&&this._requestVideoFrame(n)}else if(i){if(n.readyState>=n.HAVE_CURRENT_DATA)e.animationsEnabled&&this._updateTextureAndRequestRender(n);else{let e=()=>{this._updateTextureAndRequestRender(n),n.removeEventListener(`canplay`,e),n.removeEventListener(`seeked`,e)};n.addEventListener(`canplay`,e),n.addEventListener(`seeked`,e)}}else`getFrame`in n&&e.animationsEnabled&&this.requestRender()}super.beforeRender(e)}_updateTextureAndRequestRender(e){this.texture.setData(e),this.texture.generateMipmap(),this._requestVideoFrame(e)}_requestVideoFrame(e){`requestVideoFrameCallback`in e?e.requestVideoFrameCallback(()=>this.requestRender()):e.paused||this.requestRender()}_createTransforms(){return null}draw(e,t){!this.isReady||this.texture==null?this.requestRender():(this._playAnimation&&g(e,this._player),t.render(e,{config:{perspective:this.perspectiveTransform,texSize:y,wrapAroundShift:this.wrapAroundShift,isWrapAround:this.isWrapAround,opacity:this.opacity},texture:{texture:this.texture,unit:0},position:this._vertices,tex:this._indices}))}updateDrawCoords(e,t,n,r){let{coords:i,bounds:a}=this.elementView;if(i==null||a==null)return;let[o,s,c,l]=i.rings[0],u=this._vertices,d=(a[0]+a[2])/2,p=f(e.x,d,i.spatialReference),m=e.y;u.set([s[0]-p,s[1]-m,o[0]-p,o[1]-m,c[0]-p,c[1]-m,l[0]-p,l[1]-m]);let h=0;if(r){let{worldWidth:e}=r,t=e/2,n=a[0]-p,i=a[2]-p;n<-t?h=e:i>t&&(h=-e)}this.wrapAroundShift=h,this.isWrapAround=h!==0}_updatePerspectiveTransform(e,t){let n=this._vertices;a(b,[0,0,e,0,0,t,e,t],[n[0],n[1],n[4],n[5],n[2],n[3],n[6],n[7]]),u(this.perspectiveTransform,b[6]/b[8]*e,b[7]/b[8]*t)}}export{C as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{on as e}from"../../../../core/events.js";import t from"../../../../core/Handles.js";import{disposeMaybe as n}from"../../../../core/maybe.js";import{when as r,initial as i}from"../../../../core/reactiveUtils.js";import{createScreenPoint as a}from"../../../../core/screenUtils.js";import{create as o}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import s from"../../../../geometry/Point.js";import c from"../../../../geometry/Polygon.js";import{project as l}from"../../../../geometry/projectionUtils.js";import u from"../../../../layers/support/ControlPoint.js";import{DisplayObject as d}from"../DisplayObject.js";import f from"../../../layers/support/GeometryClipArea.js";import p
|
|
2
|
+
import{on as e}from"../../../../core/events.js";import t from"../../../../core/Handles.js";import{disposeMaybe as n}from"../../../../core/maybe.js";import{when as r,initial as i}from"../../../../core/reactiveUtils.js";import{createScreenPoint as a}from"../../../../core/screenUtils.js";import{create as o}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import s from"../../../../geometry/Point.js";import c from"../../../../geometry/Polygon.js";import{project as l}from"../../../../geometry/projectionUtils.js";import u from"../../../../layers/support/ControlPoint.js";import{DisplayObject as d}from"../DisplayObject.js";import f from"../../../layers/support/GeometryClipArea.js";import{Texture as p}from"../../../webgl/Texture.js";import{TextureDescriptor as m}from"../../../webgl/TextureDescriptor.js";class h extends d{constructor(n){super(),this.element=n,this._handles=new t,this.isWrapAround=!1,this.perspectiveTransform=o(),this.wrapAroundShift=0,this.clipGeometry=null,this._handles.add(r(()=>this.element,()=>{let t=this.element;this.ready(),t&&this._handles.add(e(t,`play`,()=>this.requestRender()))},i))}getMesh(e){throw Error(`Method not implemented.`)}destroy(){super.destroy(),this._handles.destroy(),this.texture=n(this.texture)}get textureSize(){if(!this.texture)return[1,1];let e=this.texture.descriptor;return[e.width,e.height]}beforeRender(e){let t=this.element;if(t==null)return;let{context:n}=e,{videoWidth:r,videoHeight:i}=t;if(r!==0&&i!==0){if(this.texture)t.paused||e.animationsEnabled&&this.texture.setData(t);else{let e=new m(r,i);e.wrapMode=33071,e.preMultiplyAlpha=!0,this.texture=new p(n,e,t)}!t.paused&&this._vertices!=null&&this.texture.generateMipmap(),super.beforeRender(e)}}_createTransforms(){return null}updateDrawCoords(e,t,n,r){let i=this.element,a=this._getFrameInfo();if(!i||!a)return;let{spatialReference:o}=n;this._initializeData(e,a,o);let{controlPoints:s,horizon:u}=a,d=Math.sqrt(s.length),p=d,{x:m,y:h}=e,g=this._vertices,_=s[0],v=s[d-1],y=s[(p-1)*d],b=s[(p-1)*d+d-1],x=l(u?u[0].mapPoint:_.mapPoint,o),S=l(u?u[1].mapPoint:v.mapPoint,o),C=l(y.mapPoint,o),w=l(b.mapPoint,o);this.clipGeometry=u?new f({geometry:c.fromJSON({rings:[[[C.x,C.y],[w.x,w.y],[S.x,S.y],[x.x,x.y],[C.x,C.y]]],spatialReference:o})}):null;for(let e=0;e<s.length;e++){let{sourcePoint:t,mapPoint:n}=s[e];if(t==null||n==null)continue;let r=l(n,o);g[e*2+0]=r.x-m,g[e*2+1]=r.y-h}let T=t;if(r){let e=Math.min(x.x,S.x,C.x,w.x),t=Math.max(x.x,S.x,C.x,w.x),{worldWidth:n,xBounds:i}=r,[a,o]=i;e<a&&t>a?T=n:t>o&&e<o&&(T=-n)}this.wrapAroundShift=T,this.isWrapAround=T!==0}draw(e,t){this.visible&&(!this.isReady||!this._vertices||!this._indices||!this._texCoords?this.requestRender():(this.stage||console.warn(`OverlayMultipoint: stage is null`),t.render(e,{config:{perspective:this.perspectiveTransform,texSize:this.textureSize,wrapAroundShift:this.wrapAroundShift,isWrapAround:this.isWrapAround,opacity:this.opacity},texture:{texture:this.texture,unit:0},position:this._vertices,tex:this._texCoords,index:this._indices})))}_initializeData(e,t,n){if(this._vertices!=null&&this._indices!=null)return;let{controlPoints:r}=t,i=Math.sqrt(r.length),a=i,o=new Float32Array(2*r.length),s=new Uint16Array(2*r.length);for(let t=0;t<r.length;t++){let{sourcePoint:i,mapPoint:a}=r[t];if(i==null||a==null)continue;let c=l(a,n);o[t*2+0]=c.x-e.x,o[t*2+1]=c.y-e.y,s[t*2+0]=i.x,s[t*2+1]=i.y}let c=new Uint16Array(a*i+(a-2)*(i+2)),u=0;for(let e=0;e<a;e++){for(let t=0;t<i;t++)c[u++]=e*i+t,c[u++]=(e+1)*i+t;e<a-2&&(c[u++]=(e+1)*i+(i-1),c[u++]=(e+1)*i)}this._vertices=o,this._texCoords=s,this._indices=c}_getFrameInfo(){if(!this.groundControlPoints)return null;let e=this._getFrameControlPoints(),t=this.frameHorizonPoints,n=null;if(t){let e=t.startX,r=t.startY,i=t.endX,o=t.endY;n=[new u({sourcePoint:a(e,r),mapPoint:new s(t.startLongitude,t.startLatitude)}),new u({sourcePoint:a(i,o),mapPoint:new s(t.endLongitude,t.endLatitude)})]}return{controlPoints:e,horizon:n}}_getFrameControlPoints(){let e=this.groundControlPoints,t=e?.length;if(!t)return[];let n=Array(t),r=Math.max(...e.map(({x:e})=>e)),i=this.element.videoWidth/r;for(let r=0;r<t;r++){let{x:t,y:o,lat:c,lon:l}=e[r];n[r]=new u({sourcePoint:a(t*i,-o*i),mapPoint:new s(l,c)})}return n}}export{h as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../../core/Error.js";import has from"../../../../core/has.js";import{spritePadding as t}from"./definitions.js";import{log2 as n}from"./GeometryUtils.js";import r from"./Rect.js";import i from"./RectangleBinPack.js";import a
|
|
2
|
+
import e from"../../../../core/Error.js";import has from"../../../../core/has.js";import{spritePadding as t}from"./definitions.js";import{log2 as n}from"./GeometryUtils.js";import r from"./Rect.js";import i from"./RectangleBinPack.js";import{Texture as a}from"../../../webgl/Texture.js";import{TextureDescriptor as o}from"../../../webgl/TextureDescriptor.js";function s(e){return e&&e.type===`static`}class c{constructor(e,t,n=0){this._mosaicPages=[],this._maxItemSize=0,this._currentPage=0,this._pageWidth=0,this._pageHeight=0,this._mosaicRects=new Map,this._pageWidth=e,this._pageHeight=t,n>0&&(this._maxItemSize=n),this._binPack=new i(this._pageWidth,this._pageHeight);let r=Math.floor(this._pageWidth),a=Math.floor(this._pageHeight);this._mosaicPages.push({mosaicsData:{type:`static`,data:new Uint32Array(r*a)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0})}getSize(e){return e>=this._mosaicPages.length?[0,0]:this._mosaicPages[e].size}has(e){return this._mosaicRects.has(e)}getSpriteItem(e){return this._mosaicRects.get(e)}addSpriteItem(e,n,i,a,o,c,l=1,u=`Linear`,d=.5,f=1){if(this._mosaicRects.has(e))return this._mosaicRects.get(e);let p,m,h;if(s(i)?[p,m,h]=this._allocateImage(n[0],n[1]):(p=new r(0,0,n[0],n[1]),m=this._mosaicPages.length,this._mosaicPages.push({mosaicsData:i,size:[n[0]+2*t,n[1]+2*t],dirty:!0,texture:void 0})),p.width<=0||p.height<=0)return null;let g={type:`sprite`,rect:p,width:n[0],height:n[1],sdf:o,simplePattern:c,rasterizationScale:l,samplingMode:u,sdfPaddingRatio:d,sdfDecodeCoeff:f,page:m};return this._mosaicRects.set(e,g),s(i)&&(has(`esri-mosaic-debug`)&&this._showDebugSprite(n,i.data),this._copy({rect:p,spriteSize:n,spriteData:i.data,page:m,pageSize:h,repeat:a,sdf:o})),g}getTexture(e,t=0){let{context:n}=e,r=this._mosaicPages[t],i=r.mosaicsData,a=r.texture;if(a||(a=u(n,r.size),r.texture=a),s(i))r.dirty&&(a.setData(new Uint8Array(i.data.buffer)),a.generateMipmap(),has(`esri-mosaic-debug`)&&this._showDebugPage(t));else{let t=i.data;t.update(e),t.hasFrameData&&(t.loadFrame(a),a.generateMipmap())}return r.dirty=!1,a}dispose(){this._binPack=null;for(let e of this._mosaicPages){let t=e.texture;t&&t.dispose();let n=e.mosaicsData;s(n)||n.data.destroy()}this._mosaicPages=null,this._mosaicRects.clear()}static _copyBits(e,t,n,r,i,a,o,s,c,l,u){let d=r*t+n,f=s*a+o;if(u){f-=a;for(let o=-1;o<=l;o++,d=((o+l)%l+r)*t+n,f+=a)for(let t=-1;t<=c;t++)i[f+t]=e[d+(t+c)%c]}else for(let n=0;n<l;n++){for(let t=0;t<c;t++)i[f+t]=e[d+t];d+=t,f+=a}}_copy(n){if(n.page>=this._mosaicPages.length)return;let r=this._mosaicPages[n.page],i=r.mosaicsData;if(!s(r.mosaicsData))throw new e(`mapview-invalid-resource`,`unsuitable data type!`);let a=n.spriteData,o=i.data;c._copyBits(a,n.spriteSize[0],0,0,o,n.pageSize[0],n.rect.x+t,n.rect.y+t,n.spriteSize[0],n.spriteSize[1],n.repeat),r.dirty=!0}_allocateImage(e,a){e+=2*t,a+=2*t;let o=Math.max(e,a);if(this._maxItemSize&&this._maxItemSize<o){let t=2**Math.ceil(n(e)),i=2**Math.ceil(n(a)),o=new r(0,0,e,a);return this._mosaicPages.push({mosaicsData:{type:`static`,data:new Uint32Array(t*i)},size:[t,i],dirty:!0,texture:void 0}),[o,this._mosaicPages.length-1,[t,i]]}let c=this._binPack.allocate(e,a);if(c.width<=0){let t=this._mosaicPages[this._currentPage];return!t.dirty&&s(t.mosaicsData)&&(t.mosaicsData.data=null),this._currentPage=this._mosaicPages.length,this._mosaicPages.push({mosaicsData:{type:`static`,data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0}),this._binPack=new i(this._pageWidth,this._pageHeight),this._allocateImage(e,a)}return[c,this._currentPage,[this._pageWidth,this._pageHeight]]}_showDebugSprite([e,t],n){let r=document.createElement(`canvas`);r.width=e,r.height=t,r.setAttribute(`style`,`position: absolute; top: ${4+204*l++}px; right: 208px; width: 200px; height: 200px; border: 1px solid black;`);let i=r.getContext(`2d`),a=new ImageData(e,t);a.data.set(new Uint8Array(n.buffer)),i.putImageData(a,0,0),document.body.appendChild(r)}_showDebugPage(e){let{size:[t,n],mosaicsData:r}=this._mosaicPages[e];if(!s(r))return;let i=`mosaicDebugPage${e}`,a=document.getElementById(i)??document.createElement(`canvas`);a.id=i,a.width=t,a.height=n,a.setAttribute(`style`,`position: absolute; top: ${4+204*e}px; right: 4px; width: 200px; height: 200px; border: 1px solid black;`);let o=a.getContext(`2d`),c=new ImageData(t,n);c.data.set(new Uint8Array(r.data.buffer)),o.putImageData(c,0,0),document.body.appendChild(a)}}let l=0;function u(e,n){let r=new o(n[0],n[1]);return r.wrapMode=33071,r.maxMipLevel=Math.floor(Math.log2(t/2)),new a(e,r,null)}export{c as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{disposeMaybe as e}from"../../../../core/maybe.js";import{create as t}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import r from"../../../../geometry/Point.js";import{projectLoad as i,projectExecute as a}from"../../../../geometry/operators/projectOperator.js";import{DisplayObject as o}from"../DisplayObject.js";import{VideoScreenTechnique as s}from"./shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js";import{ColorAttachment0 as c,SizedPixelFormat as l}from"../../../webgl/enums.js";import{DisposableFramebufferObject as u}from"../../../webgl/FramebufferObject.js";import d
|
|
2
|
+
import{disposeMaybe as e}from"../../../../core/maybe.js";import{create as t}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import r from"../../../../geometry/Point.js";import{projectLoad as i,projectExecute as a}from"../../../../geometry/operators/projectOperator.js";import{DisplayObject as o}from"../DisplayObject.js";import{VideoScreenTechnique as s}from"./shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js";import{ColorAttachment0 as c,SizedPixelFormat as l}from"../../../webgl/enums.js";import{DisposableFramebufferObject as u}from"../../../webgl/FramebufferObject.js";import{Texture as d}from"../../../webgl/Texture.js";import{TextureDescriptor as f}from"../../../webgl/TextureDescriptor.js";class p extends o{constructor(e,t){super(),this._controlPointsOwner=t,this.readbackScreenCoords=n(),this.videoTextureCoords=Array(36),this.overlayTextureCoords=Array(36),this._prevFBO=null,this._acquiredFBO=null,this._isBound=!1,this._hasCoordinates=!1,this._geIsLoaded=!1,this._ndcRect=[0,0,2,2],this._technique=new s,this.visible=!1,this.stage=e;for(let e=0;e<6;e++){let t=e/5;for(let n=0;n<6;n++){let r=n/5;this.videoTextureCoords[e*6+n]={u:r,v:t}}}}getMesh(e){throw Error(`Method not implemented.`)}destroy(){super.destroy(),e(this._readbackTexture)}bind(e){let{context:t,pixelRatio:n,state:r}=e;if(this._update(e),!this.ready||this.readbackScreenCoords[2]===0||this.readbackScreenCoords[3]===0)return this.requestRender(),!1;let{size:i}=r,a=Math.round(n*i[0]),o=Math.round(n*i[1]),s=new f(a,o);return s.samplingMode=9729,s.wrapMode=33071,this._acquiredFBO??=new u(t,s),this._acquiredFBO.resize(a,o),t.bindFramebuffer(this._acquiredFBO),this._isBound=!0,!0}unbind(e){if(!this._isBound)return;let{context:t,pixelRatio:n,state:r}=e,{size:i}=r,a=this._acquiredFBO;if(!a.getColorTexture(c))throw Error(`Failed to get color texture from FBO.`);let o=this._getReadbackTexture(e),s=this.readbackScreenCoords,l=Math.round(n*s[0]),u=Math.round(n*(i[1]-s[1]))-o.descriptor.height,d=l+o.descriptor.width,f=u+o.descriptor.height,p=Math.max(l,0),m=Math.max(u,0),h=Math.min(d,a.width),g=Math.min(f,a.height),_=h-p,v=g-m;_>0&&v>0&&a.copyToTexture(p,m,_,v,p-l,m-u,o),t.bindFramebuffer(this._prevFBO)}_update(e){let{state:n}=e,o=this._controlPointsOwner,s=o.groundControlPoints(),c=o.getSize(),l=n.size,u=s?.length;if(!u)return;if(i().then(()=>{this._geIsLoaded=!0}),!this._geIsLoaded){this.requestRender();return}let d=c[0],f=c[1],p=l[0],m=f/l[1],h=d/p;if(m>h){let e=h/m*2,t=(2-e)/2;this._ndcRect[0]=-1+t,this._ndcRect[1]=1,this._ndcRect[2]=e,this._ndcRect[3]=2}else{let e=m/h*2,t=(2-e)/2;this._ndcRect[0]=-1,this._ndcRect[1]=1-t,this._ndcRect[2]=2,this._ndcRect[3]=e}let g=Array(u),_=n.spatialReference;for(let e=0;e<u;e++){let{lat:t,lon:n}=s[e],i=new r(n,t);g[e]=a(i,_)}let v=[],y=1/0,b=1/0,x=-1/0,S=-1/0;for(let e of g){let r=t();n.toScreen(r,e.x,e.y),v.push({x:r[0],y:r[1]}),y=Math.min(y,r[0]),b=Math.min(b,r[1]),x=Math.max(x,r[0]),S=Math.max(S,r[1])}let C=[y,S],w=[x,b];this.readbackScreenCoords[0]=Math.max(Math.floor(C[0]),0),this.readbackScreenCoords[1]=Math.max(Math.floor(w[1]),0),this.readbackScreenCoords[2]=Math.ceil(w[0]),this.readbackScreenCoords[3]=Math.ceil(C[1]);for(let e=0;e<v.length;e++){let t=v[e],n=(t.x-y)/(x-y),r=(S-t.y)/(S-b);this.overlayTextureCoords[e]={u:n,v:r}}this._hasCoordinates=!0}_createTransforms(){return null}doRender(e){!this._readbackTexture||!this._hasCoordinates?this.requestRender():this._technique.render(e,{texture:this._readbackTexture,textureCoords:this.overlayTextureCoords,opacity:1,ndcRect:this._ndcRect})}_getReadbackTexture(e){let{context:t,pixelRatio:n}=e,r=Math.round(n*Math.abs(this.readbackScreenCoords[2]-this.readbackScreenCoords[0])),i=Math.round(n*Math.abs(this.readbackScreenCoords[3]-this.readbackScreenCoords[1]));if(this._readbackTexture)this._readbackTexture.resize(r,i);else{let e=new f(r,i);e.wrapMode=33071,e.internalFormat=l.RGBA8,this._readbackTexture=new d(t,e)}return this._readbackTexture}}export{p as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{PixelType as e}from"../../../../../webgl/enums.js";import t
|
|
2
|
+
import{PixelType as e}from"../../../../../webgl/enums.js";import{Texture as t}from"../../../../../webgl/Texture.js";import{TextureDescriptor as n}from"../../../../../webgl/TextureDescriptor.js";import{ValidatedTextureDescriptor as r}from"../../../../../webgl/ValidatedTextureDescriptor.js";class i{constructor(){this._entries=new o,this._nodes=new Map,this._book=new s}add(e){let t=this._entries.get(e);if(!t){let n=this._book.add(e),r={};t={location:n,references:0,handle:r};let i=this._entries.set(e,t);this._nodes.set(r,i)}return t.references++,t}remove(e){let t=this._nodes.get(e.handle);t&&t.payload&&(t.payload.references--,t.payload.references===0&&(this._book.remove(t.payload.location),this._entries.delete(t),this._nodes.delete(e.handle)))}getTexture(e,t){return this._book.getTexture(e,t)}destroy(){this._book.destroy()}}class a{constructor(e,t){this.parent=e,this.key=t,this.payload=null,this._children=new Map}get(e){return this._children.get(e)}ensure(e){let t=this._children.get(e);return t||(t=new a(this,e),this._children.set(e,t)),t}delete(e){this._children.delete(e)}}class o{constructor(){this._root=new a(null,NaN)}set(e,t){let n=this._root;for(let t of e)for(let e of t)n=n.ensure(e);return n.payload=t,n}delete(e){e.parent?.delete(e.key)}get(e){let t=this._root;for(let n of e)for(let e of n){let n=t.get(e);if(!n)return;t=n}return t.payload||void 0}}class s{constructor(){this._pages=[]}add(e){this._pages.length===0&&this._pages.push(new c);let t=this._pages.length-1,n=this._pages[t].add(e);if(n||=(this._pages.push(new c),t=this._pages.length-1,this._pages[t].add(e)),!n)throw Error(`Data allocation failed.`);return{...n,page:t}}remove(e){this._pages[e.page].remove(e)}getTexture(e,t){return this._pages[t].getTexture(e)}destroy(){}}class c{constructor(){this._cursor={row:0,column:0},this._columns=1024,this._rows=1024,this._data=new Float32Array(this._columns*this._rows*4),this._texture=null,this._textureCursor={row:0,column:0}}add(e){if(e.length>this._columns)throw Error(`The maximum allocation size is ${this._columns} texels.`);let t={...this._cursor};if(t.column+=e.length,t.column>=this._columns&&(t.column=e.length,t.row++),t.row>=this._rows)return null;this._cursor=t;let n={...this._cursor};n.column-=e.length;let r=4*(n.row*this._columns+n.column);for(let t=0;t<e.length;t++)this._data[r++]=e[t][0],this._data[r++]=e[t][1],this._data[r++]=e[t][2],this._data[r++]=e[t][3];return n}remove(e){}getTexture(i){if(!this._texture){let a=new n(this._columns,this._rows);a.pixelFormat=6408,a.dataType=e.FLOAT,a.wrapMode=33071,a.samplingMode=9728,a.hasMipmap=!1;let o=new r(i,a);this._texture=new t(i,o)}if(this._cursor.row===this._textureCursor.row&&this._cursor.column===this._textureCursor.column)return this._texture;let a=this._textureCursor.row,o=this._cursor.row-a+1;return this._texture.updateData(0,0,a,this._columns,o,this._data,a),this._textureCursor.row=this._cursor.row,this._textureCursor.column=this._cursor.column,this._texture}destroy(){this._texture?.dispose()}}export{i as AnimationStore,o as PrefixMap};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{pt2px as e}from"../../../../../core/screenUtils.js";import{labelPlacementOffsetPadding as t}from"../definitions.js";import n from"./BoundingBox.js";import{serializeList as r,deserializeList as i}from"../util/serializationUtils.js";class a{constructor(e,t,n,r,i,a,o,s,c,l,u,d=[],f=
|
|
2
|
+
import{pt2px as e}from"../../../../../core/screenUtils.js";import{labelPlacementOffsetPadding as t}from"../definitions.js";import n from"./BoundingBox.js";import{serializeList as r,deserializeList as i}from"../util/serializationUtils.js";class a{constructor(e,t,n,r,i,a,o,s,c,l,u,d=[],f=[],p=0,m=0,h=[]){this.displayId=e,this.labelClassId=t,this.labelIdHash=n,this.hash=r,this.anchorX=i,this.anchorY=a,this.directionX=o,this.directionY=s,this.maxScale=c,this.minScale=l,this.referenceBounds=u,this.alternativePositions=d,this.bounds=f,this.recordStart=p,this.recordCount=m,this.additionalRecordRanges=h,this.priority=0,this._selectedAlternate=-1,this._colliders=null,this.referenceSymbolVVOffset=[0,0],this.uniqueSymbol=null,this.labelStoreId=null,this.selectedForRendering=!1,this._calloutCollisionBounds=null}get xTile(){return this.anchorX}get yTile(){return this.anchorY}setAlternate(e){this._colliders=null,this._selectedAlternate=e,e!=null&&e>=this.alternativePositions.length&&console.error(`invalid index!`)}invalidateColliders(){this._colliders=null}colliders(n,r){if(!this._colliders||r!=null&&r!==this._collidersScale){if(!n||r==null)throw Error(`InternalError: Label collision context and view scale are required to compute colliders`);let i=n.attributeView,a=t,o=this.referenceBounds?.size??0,s=Math.round(e(o)),c=n.labelingCollisionInfos[0].vvEvaluators[0];if(this.referenceSymbolVVOffset=[0,0],c!=null){let e=c(i.getVisualVariableData(this.displayId,0),r);if(!isNaN(e)&&e!=null&&e!==1/0){o=e;let t=(o-s)/2;this.referenceSymbolVVOffset=[this.directionX*t,this.directionY*t]}}let[l,u]=this._selectedAlternate>=0?this.alternativePositions[this._selectedAlternate]:[this.anchorX,this.anchorY],d=this.minScale?n.tilingScheme.scaleToZoom(this.minScale):0,f=this.maxScale?n.tilingScheme.scaleToZoom(this.maxScale):25,p=e(this.referenceBounds?.offsetX??0)+this.directionX*(a+o/2),m=-e(this.referenceBounds?.offsetY??0)+this.directionY*(a+o/2);this._colliders=this.bounds.map(e=>({labelId:this.labelIdHash,xTile:l,yTile:u,dxPixels:e.x-e.halfWidth+p,dyPixels:e.y-e.halfHeight+m,hard:!0,partIndex:1,width:e.width+2,height:e.height+2,angle:0,xScreen:0,yScreen:0,dxScreen:0,dyScreen:0,enabled:!0,minLod:d,maxLod:f})),this._collidersScale=r}return this._colliders}get id(){return this.displayId}includeRecordRange(e,t){t!==0&&(e===this.recordStart+this.recordCount?this.recordCount+=t:this.additionalRecordRanges.push({recordStart:e,recordCount:t}))}includeCalloutCollisionBounds(e){let t=o(e);t&&(this._calloutCollisionBounds?this._calloutCollisionBounds.extend(t):(this._calloutCollisionBounds=t,this.bounds.push(t)),this.invalidateColliders())}includeCalloutPartCollisionBounds(e){let t=o(e);t&&!this.bounds.some(e=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height)&&(this.bounds.push(t),this.invalidateColliders())}serialize(e){e.push(this.displayId),e.push(this.labelClassId),e.push(this.labelIdHash),e.push(this.hash),e.push(this.recordStart),e.push(this.recordCount),e.push(this.additionalRecordRanges.length);for(let t of this.additionalRecordRanges)e.push(t.recordStart),e.push(t.recordCount);e.writeF32(this.anchorX),e.writeF32(this.anchorY),e.writeF32(this.directionX),e.writeF32(this.directionY),e.writeF32(this.maxScale),e.writeF32(this.minScale),this.referenceBounds?(e.writeF32(this.referenceBounds.size),e.writeF32(this.referenceBounds.offsetX),e.writeF32(this.referenceBounds.offsetY)):(e.writeF32(0),e.writeF32(0),e.writeF32(0)),e.push(this.alternativePositions.length);for(let[t,n]of this.alternativePositions)e.writeF32(t),e.writeF32(n);r(e,this.bounds)}static deserialize(e){let t=e.readInt32(),r=e.readInt32(),o=e.readInt32(),s=e.readInt32(),c=e.readInt32(),l=e.readInt32(),u=e.readInt32(),d=[];for(let t=0;t<u;t++)d.push({recordStart:e.readInt32(),recordCount:e.readInt32()});let f=e.readF32(),p=e.readF32(),m=e.readF32(),h=e.readF32(),g=e.readF32(),_=e.readF32(),v=e.readF32(),y=e.readF32(),b=e.readF32(),x=e.readInt32(),S=[];for(let t=0;t<x;t++)S.push([e.readF32(),e.readF32()]);let C=i(e,n)??[];return new a(t,r,o,s,f,p,m,h,g,_,{size:v,offsetX:y,offsetY:b},S,C,c,l,d)}}function o(e){let t=e.xmax-e.xmin,r=e.ymax-e.ymin;return e.xmin==null||isNaN(e.xmin)||e.ymin==null||isNaN(e.ymin)||e.xmax==null||isNaN(e.xmax)||e.ymax==null||isNaN(e.ymax)||t<=0||r<=0?null:new n(e.xmin+t/2,-(e.ymin+r/2),t,r)}export{a as LabelMetric};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../../../core/Logger.js";import{labelAnchorStoreUnit as t,labelStoreUnit as n}from"../definitions.js";import{PixelType as r}from"../../../../webgl/enums.js";import i
|
|
2
|
+
import e from"../../../../../core/Logger.js";import{labelAnchorStoreUnit as t,labelStoreUnit as n}from"../definitions.js";import{PixelType as r}from"../../../../webgl/enums.js";import{Texture as i}from"../../../../webgl/Texture.js";import{TextureDescriptor as a}from"../../../../webgl/TextureDescriptor.js";const o=()=>e.getLogger(`esri.views.2d.engine.webgl.collisions.LabelStore`);class s{constructor(){this._data=new Uint8Array(4096),this._anchors=new Float32Array(4096),this._dirtyStart=0,this._dirtyEnd=0,this._entries=new Map,this._freeIds=[],this._nextId=1,this._size=32,this._data[3]=255}get size(){return this._size}get usedMemory(){return this._data.byteLength+this._anchors.byteLength}destroy(){this._entries.size&&o().warn(`InternalError: Leaking label store entries`),this._texture?.dispose(),this._anchorTexture?.dispose(),this._texture=null,this._anchorTexture=null,this._entries.clear(),this._freeIds.length=0}acquire(e){if(e.labelStoreId!=null)return e.labelStoreId;let t=this._freeIds.pop()??this._nextId++;return this._ensureCapacity(t),this._entries.set(t,e),this._writeFeatureId(t,e.displayId),this.writeAnchor(t,e.anchorX,e.anchorY),this._data[t*4+3]=255,this._markDirty(t),e.labelStoreId=t,t}release(e){let t=e.labelStoreId;if(t!=null){if(this._entries.get(t)!==e)throw Error(`InternalError: expected label store entry`);this._entries.delete(t),this._data.fill(0,t*4,t*4+4),this._data[t*4+3]=255,this._anchors.fill(0,t*4,t*4+4),this._markDirty(t),e.labelStoreId=null,this._freeIds.push(t)}}invalidateColliders(){for(let e of this._entries.values())e.invalidateColliders()}setVisibility(e,t){let n=e.labelStoreId;if(n==null||this._entries.get(n)!==e)throw Error(`InternalError: expected label metric to have a store id`);let r=t?0:255,i=n*4+3;this._writeReferenceSymbolVVOffset(n,e.referenceSymbolVVOffset),this._data[i]!==r&&(this._data[i]=r,this._markDirty(n))}getVisibility(e){let t=e.labelStoreId;return t==null?255:this._data[t*4+3]}has(e){return e.labelStoreId!=null&&this._entries.get(e.labelStoreId)===e}getAnchor(e){if(!this._entries.has(e))return null;let t=e*4;return[this._anchors[t],this._anchors[t+1]]}getReferenceSymbolVVOffset(e){if(!this._entries.has(e))return null;let t=e*4;return[this._anchors[t+2],this._anchors[t+3]]}upload(e){let t=this._texture??this._createTexture(e,!1),n=this._anchorTexture??this._createTexture(e,!0);this._uploadDirty(t,n)}getTexture(e){let r=this._texture??this._createTexture(e,!1),i=this._anchorTexture??this._createTexture(e,!0);if(this._dirtyStart!==1/0)throw Error(`InternalError: expected label store to be uploaded before rendering`);return{labelStoreTexture:{texture:r,unit:n},labelAnchorStoreTexture:{texture:i,unit:t}}}_createTexture(e,t){let n=new a(this._size);n.wrapMode=33071,n.samplingMode=9728,n.pixelFormat=6408,n.dataType=t?r.FLOAT:r.UNSIGNED_BYTE;let o=new i(e,n,t?this._anchors:this._data);return t?this._anchorTexture=o:this._texture=o,o}_ensureCapacity(e){if(e<this._size*this._size)return;let t=this._size;for(;e>=t*t;)t*=2;let n=new Uint8Array(t*t*4);n.set(this._data),this._data=n;let r=new Float32Array(t*t*4);r.set(this._anchors),this._anchors=r,this._size=t,this._texture?.dispose(),this._anchorTexture?.dispose(),this._texture=null,this._anchorTexture=null,this._dirtyStart=0,this._dirtyEnd=e}_writeFeatureId(e,t){let n=e*4;this._data[n]=t&255,this._data[n+1]=t>>8&255,this._data[n+2]=t>>16&255,this._markDirty(e)}writeAnchor(e,t,n){let r=e*4;this._anchors[r]=t,this._anchors[r+1]=n,this._markDirty(e)}_writeReferenceSymbolVVOffset(e,[t,n]){let r=e*4;(this._anchors[r+2]!==t||this._anchors[r+3]!==n)&&(this._anchors[r+2]=t,this._anchors[r+3]=n,this._markDirty(e))}_markDirty(e){this._dirtyStart=Math.min(this._dirtyStart,e),this._dirtyEnd=Math.max(this._dirtyEnd,e)}_uploadDirty(e,t){if(this._dirtyStart===1/0)return;let n=Math.floor(this._dirtyStart/this._size),r=Math.floor(this._dirtyEnd/this._size),i=n*this._size*4,a=(r+1)*this._size*4;e.updateData(0,0,n,this._size,r-n+1,this._data.subarray(i,a)),t.updateData(0,0,n,this._size,r-n+1,this._anchors.subarray(i,a)),this._dirtyStart=1/0,this._dirtyEnd=0}}export{s as LabelStore};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../../../../core/Logger.js";import{maxHighlightGroups as t}from"../../definitions.js";import{shadeTextureSize as n,sigma as r}from"./parameters.js";import i from"../../../../../support/HighlightOptions.js";import a
|
|
2
|
+
import e from"../../../../../../core/Logger.js";import{maxHighlightGroups as t}from"../../definitions.js";import{shadeTextureSize as n,sigma as r}from"./parameters.js";import i from"../../../../../support/HighlightOptions.js";import{Texture as a}from"../../../../../webgl/Texture.js";import{TextureDescriptor as o}from"../../../../../webgl/TextureDescriptor.js";const s=()=>e.getLogger(`esri.views.2d.engine.webgl.painter.highlight.HighlightGradient`);function c(e,t){t.fillColor[0]=e.color.r/255,t.fillColor[1]=e.color.g/255,t.fillColor[2]=e.color.b/255,t.fillColor[3]=e.color.a,e.haloColor?(t.outlineColor[0]=e.haloColor.r/255,t.outlineColor[1]=e.haloColor.g/255,t.outlineColor[2]=e.haloColor.b/255,t.outlineColor[3]=e.haloColor.a):(t.outlineColor[0]=t.fillColor[0],t.outlineColor[1]=t.fillColor[1],t.outlineColor[2]=t.fillColor[2],t.outlineColor[3]=t.fillColor[3]),t.fillColor[3]*=e.fillOpacity,t.outlineColor[3]*=e.haloOpacity,t.fillColor[0]*=t.fillColor[3],t.fillColor[1]*=t.fillColor[3],t.fillColor[2]*=t.fillColor[3],t.outlineColor[0]*=t.outlineColor[3],t.outlineColor[1]*=t.outlineColor[3],t.outlineColor[2]*=t.outlineColor[3],t.outlineWidth=(1-e.haloBlur)*e.haloWidth,t.outerHaloWidth=e.haloBlur*e.haloWidth/2,t.innerHaloWidth=e.haloBlur*e.haloWidth/2,t.outlinePosition=0}const l=[0,0,0,0];class u{constructor(){this.type=`single`,this._highlightOptions=new i,this._convertedHighlightOptions={fillColor:[0,0,0,0],outlineColor:[0,0,0,0],outlinePosition:0,outlineWidth:0,innerHaloWidth:0,outerHaloWidth:0},this._optionsShadeTexKey=``,this._texelData=new Uint8Array(n*4),this._minMaxDistance=[0,0]}setHighlightOptions(e){this._highlightOptions=e}getProgramState(e){return this._updateGradientTexture(e),{minMaxDistance:this._minMaxDistance,shadeTexture:this._shadeTex}}destroy(){this._shadeTex?.dispose(),this._shadeTex=null}getGroupsWithGradients(){return[{activeGroups:(1<<t)-1,activeGradient:this}]}_updateGradientTexture(e){let t=d(this._highlightOptions);if(t===this._optionsShadeTexKey)return;this._optionsShadeTexKey=t,c(this._highlightOptions,this._convertedHighlightOptions);let i=this._convertedHighlightOptions,u=i.outlinePosition-i.outlineWidth/2-i.outerHaloWidth,f=i.outlinePosition-i.outlineWidth/2,p=i.outlinePosition+i.outlineWidth/2,m=i.outlinePosition+i.outlineWidth/2+i.innerHaloWidth,h=Math.sqrt(Math.PI/2)*r,g=Math.abs(u)>h?Math.round((Math.abs(u)-h)*10)/10:0,_=Math.abs(m)>h?Math.round((Math.abs(m)-h)*10)/10:0;g&&!_?s().error(`The outer rim of the highlight is `+g+`px away from the edge of the feature; consider reducing some width values or shifting the outline position towards positive values (inwards).`):!g&&_?s().error(`The inner rim of the highlight is `+_+`px away from the edge of the feature; consider reducing some width values or shifting the outline position towards negative values (outwards).`):g&&_&&s().error(`The highlight is `+Math.max(g,_)+`px away from the edge of the feature; consider reducing some width values.`);let v,y=[void 0,void 0,void 0,void 0];function b(e,t,n){y[0]=(1-n)*e[0]+n*t[0],y[1]=(1-n)*e[1]+n*t[1],y[2]=(1-n)*e[2]+n*t[2],y[3]=(1-n)*e[3]+n*t[3]}let{_texelData:x}=this;for(let e=0;e<n;++e)v=u+e/(n-1)*(m-u),v<u?(y[0]=0,y[1]=0,y[2]=0,y[3]=0):v<f?b(l,i.outlineColor,(v-u)/(f-u)):v<p?[y[0],y[1],y[2],y[3]]=i.outlineColor:v<m?b(i.outlineColor,i.fillColor,(v-p)/(m-p)):[y[0],y[1],y[2],y[3]]=i.fillColor,x[e*4]=255*y[0],x[e*4+1]=255*y[1],x[e*4+2]=255*y[2],x[e*4+3]=255*y[3];if(this._minMaxDistance[0]=u,this._minMaxDistance[1]=m,!this._shadeTex){let t=new o(n,1);t.wrapMode=33071,this._shadeTex=new a(e,t)}this._shadeTex.updateData(0,0,0,n,1,this._texelData)}}function d(e){return`${e.color};${e.haloColor};${e.haloOpacity};${e.fillOpacity};${e.haloWidth};${e.haloBlur}`}export{u as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import"../../../../../../core/has.js";import{isPowerOfTwo as e,nextPowerOfTwo as t}from"../../../../../../core/mathUtils.js";import{disposeMaybe as n}from"../../../../../../core/maybe.js";import{simplePipelineState as r}from"../utils.js";import{Technique as i}from"./Technique.js";import{TextureStatisticsDiffShader as a}from"./shaders/TextureStatisticsDiffShader.js";import{TextureStatisticsMinMaxSumShader as o}from"./shaders/TextureStatisticsMinMaxSumShader.js";import{TextureStatisticsStdDevShader as s}from"./shaders/TextureStatisticsStdDevShader.js";import{TextureStatisticsSumOfSquaredDiffShader as c}from"./shaders/TextureStatisticsSumOfSquaredDiffShader.js";import{getWebGLCapabilities as l}from"../../../../../webgl/capabilities.js";import{ColorAttachment2 as u,ColorAttachment3 as d,ColorAttachment0 as f,ColorAttachment1 as p,SizedPixelFormat as m,PixelType as h}from"../../../../../webgl/enums.js";import{DisposableFramebufferObject as g}from"../../../../../webgl/FramebufferObject.js";import _
|
|
2
|
+
import"../../../../../../core/has.js";import{isPowerOfTwo as e,nextPowerOfTwo as t}from"../../../../../../core/mathUtils.js";import{disposeMaybe as n}from"../../../../../../core/maybe.js";import{simplePipelineState as r}from"../utils.js";import{Technique as i}from"./Technique.js";import{TextureStatisticsDiffShader as a}from"./shaders/TextureStatisticsDiffShader.js";import{TextureStatisticsMinMaxSumShader as o}from"./shaders/TextureStatisticsMinMaxSumShader.js";import{TextureStatisticsStdDevShader as s}from"./shaders/TextureStatisticsStdDevShader.js";import{TextureStatisticsSumOfSquaredDiffShader as c}from"./shaders/TextureStatisticsSumOfSquaredDiffShader.js";import{getWebGLCapabilities as l}from"../../../../../webgl/capabilities.js";import{ColorAttachment2 as u,ColorAttachment3 as d,ColorAttachment0 as f,ColorAttachment1 as p,SizedPixelFormat as m,PixelType as h}from"../../../../../webgl/enums.js";import{DisposableFramebufferObject as g}from"../../../../../webgl/FramebufferObject.js";import{Texture as _}from"../../../../../webgl/Texture.js";import{TextureDescriptor as v}from"../../../../../webgl/TextureDescriptor.js";const y=1048576;class b extends i{constructor(){super(...arguments),this.type=36,this._width=0,this._height=0,this._framebuffers=null,this._minTexture=null,this._maxTexture=null,this._sumTexture=null,this._numOfNoDataTexture=null,this._resultsFramebuffer=null,this._startFramebuffer=null,this._diffFramebuffer=null,this._scaleFbo=null,this.shaders={textureStatisticsMinMaxSum:new o,textureStatisticsSum:new c,textureStatisticsDiff:new a,textureStatisticsStdDev:new s}}dispose(){this.shaders.textureStatisticsMinMaxSum=null,this._framebuffers&&=(this._framebuffers.forEach(e=>n(e)),null),n(this._resultsFramebuffer),n(this._startFramebuffer),n(this._diffFramebuffer),n(this._scaleFbo),n(this._minTexture),n(this._maxTexture),n(this._sumTexture),n(this._numOfNoDataTexture)}get minValuesTexture(){return this._minTexture||null}get maxValuesTexture(){return this._maxTexture||null}get meanValuesTexture(){return this._resultsFramebuffer?.getColorTexture(u)||null}get stdDevValuesTexture(){return this._resultsFramebuffer?.getColorTexture(d)||null}get statsFbo(){return this._resultsFramebuffer}render(t,n){let{context:i,painter:a}=t,o=n.fbo.width,s=n.fbo.height,c=n.fbo,l=i.gl,u=i.boundFramebuffer;if(o*s>y||!e(o)||!e(s)){let r=o/s;if(o*s>y){let e=Math.max(Math.floor(Math.sqrt(y/r)),1);o=Math.max(Math.floor(r*e),1),s=e}if(e(o)||(o=w(o)),e(s)||(s=w(s)),this._scaleFbo)this._scaleFbo.resize(o,s);else{let{dataType:e,internalFormat:t}=n.fbo.getColorTexture(f).descriptor,r=t??m.RGBA8;this._scaleFbo=S(i,o,s,e,r)}i.bindFramebuffer(this._scaleFbo),i.setViewport(0,0,o,s),a.blitTexture(t,c.getColorTexture(f),9728),c=this._scaleFbo}this._updateResources(t,c),a.setPipelineState({...r,color:{write:[!0,!0,!0,!0],blendMode:`none`}});let d=this._applyReductionPass(t);l.readBuffer(l.COLOR_ATTACHMENT3),d.copyToTexture(0,0,1,1,0,0,this._numOfNoDataTexture),l.readBuffer(l.COLOR_ATTACHMENT2),d.copyToTexture(0,0,1,1,0,0,this._sumTexture),l.readBuffer(l.COLOR_ATTACHMENT1),d.copyToTexture(0,0,1,1,0,0,this._maxTexture),l.readBuffer(l.COLOR_ATTACHMENT0),d.copyToTexture(0,0,1,1,0,0,this._minTexture);let p=n.fbo.getColorTexture(f);if(!p)throw Error(`Start buffer color texture is not available, cannot compute diff.`);this._computeDiff(t,p,this._sumTexture,this._numOfNoDataTexture,o,s);let h=this._applySecondReductionPass(t,o,s).getColorTexture(f);this._computeSdtDev(t,this._minTexture,this._maxTexture,this._sumTexture,this._numOfNoDataTexture,h,o,s),i.bindFramebuffer(u),i.setViewport(0,0,n.fbo.width,n.fbo.height),a.setPipelineState(r)}_applyReductionPass(e){let{context:t,painter:n}=e,r=this.shaders.textureStatisticsMinMaxSum,i=this._framebuffers;if(i===null)throw Error(`Framebuffers are not initialized, cannot apply reduction pass.`);let a=this._startFramebuffer,o=a.getColorTexture(f),s=a.getColorTexture(p),c=a.getColorTexture(u),l=a.getColorTexture(d),m=o,h=s,g=c,_=l,v=i,y=0;for(let e of v){t.setViewport(0,0,e.width,e.height),t.bindFramebuffer(e),t.setClearColor(0,0,0,0),t.clear(16384);let i={shader:r,uniforms:{config:{width:e.width,height:e.height,isFirstPass:+(y===0)}},textures:{minTexture:{texture:m,unit:1},maxTexture:{texture:h,unit:2},sumTexture:{texture:g,unit:3},numOfNoDataTexture:{texture:_,unit:4}},defines:null,optionalAttributes:null,useComputeBuffer:!1};n.submitDrawMesh(t,i,n.quadMesh),m=e.getColorTexture(f),h=e.getColorTexture(p),g=e.getColorTexture(u),_=e.getColorTexture(d),y++}return i.at(-1)}_applySecondReductionPass(e,t,n){let{context:r,painter:i}=e,a=this.shaders.textureStatisticsSum,o=this._framebuffers;if(o===null||this._diffFramebuffer==null)throw Error(`Framebuffers are not initialized, cannot apply reduction pass.`);let s=this._diffFramebuffer.getColorTexture(f),c=o;for(let e of c){r.setViewport(0,0,e.width,e.height),r.bindFramebuffer(e),r.setClearColor(0,0,0,0),r.clear(16384);let t={shader:a,uniforms:{config:{width:e.width,height:e.height}},textures:{sumTexture:{texture:s,unit:2}},defines:null,optionalAttributes:null,useComputeBuffer:!1};i.submitDrawMesh(r,t,i.quadMesh),s=e.getColorTexture(f)}return o.at(-1)}_updateResources(e,t){let{context:n}=e,r=t.width,i=t.height;if(this._startFramebuffer===null){if(!l().supportsColorBufferFloat)throw Error(`WebGL does not support color buffer float, cannot compute texture statistics.`);let e=t.getColorTexture(f);if(!e)throw Error(`Input FBO does not have a color attachment 0, cannot compute texture statistics.`);let{dataType:a,internalFormat:o}=e.descriptor,s=S(n,r,i,a,o??m.RGBA8,4),c=s.getColorTexture(f),g=s.getColorTexture(p),_=s.getColorTexture(u),v=s.getColorTexture(d);t.copyToTexture(0,0,r,i,0,0,c),t.copyToTexture(0,0,r,i,0,0,g),t.copyToTexture(0,0,r,i,0,0,_),t.copyToTexture(0,0,r,i,0,0,v),this._startFramebuffer=s,this._diffFramebuffer=S(n,r,i,h.FLOAT,m.RGBA32F),this._resultsFramebuffer=S(n,1,1,h.FLOAT,m.RGBA32F,4),this._minTexture=C(n,1,1,h.FLOAT,m.RGBA32F),this._maxTexture=C(n,1,1,h.FLOAT,m.RGBA32F),this._sumTexture=C(n,1,1,h.FLOAT,m.RGBA32F),this._numOfNoDataTexture=C(n,1,1,h.FLOAT,m.R32F)}else{let e=this._startFramebuffer;e.resize(r,i);let n=e.getColorTexture(f),a=e.getColorTexture(p),o=e.getColorTexture(u),s=e.getColorTexture(d);t.copyToTexture(0,0,r,i,0,0,n),t.copyToTexture(0,0,r,i,0,0,a),t.copyToTexture(0,0,r,i,0,0,o),t.copyToTexture(0,0,r,i,0,0,s),this._diffFramebuffer.resize(r,i)}if(this._width===r&&this._height===i&&this._framebuffers!==null)return;let a=(this._framebuffers||[]).reverse();this._framebuffers=null,this._width=r,this._height=i,this._framebuffers=this._updateFramebuffers(n,r,i,a,4)}_updateFramebuffers(e,t,r,i,a=1){let o=[],s=t,c=r;for(;s>1||c>1;){let t=Math.max(1,Math.floor(s/2)),n=Math.max(1,Math.floor(c/2)),r=x(e,t,n,i,a);o.push(r),s=t,c=n}return o.at(-1),i.forEach(e=>n(e)),i.length=0,o}_computeDiff(e,t,n,r,i,a){let{context:o,painter:s}=e;o.bindFramebuffer(this._diffFramebuffer),o.setViewport(0,0,i,a),o.setClearColor(0,0,0,0),o.clear(16384);let c={shader:this.shaders.textureStatisticsDiff,uniforms:{config:{numTexels:i*a}},textures:{inputTexture:{texture:t,unit:1},sumTexture:{texture:n,unit:2},numOfNoDataTexture:{texture:r,unit:3}},defines:null,optionalAttributes:null,useComputeBuffer:!1};s.submitDrawMesh(o,c,s.quadMesh)}_computeSdtDev(e,t,n,r,i,a,o,s){let{context:c,painter:l}=e;c.bindFramebuffer(this._resultsFramebuffer),c.setViewport(0,0,1,1),c.setClearColor(0,0,0,0),c.clear(16384);let u={shader:this.shaders.textureStatisticsStdDev,uniforms:{config:{numTexels:o*s}},textures:{minTexture:{texture:t,unit:1},maxTexture:{texture:n,unit:2},sumTexture:{texture:r,unit:3},numOfNoDataTexture:{texture:i,unit:4},diffSqTexture:{texture:a,unit:5}},defines:null,optionalAttributes:null,useComputeBuffer:!1};l.submitDrawMesh(c,u,l.quadMesh)}}function x(e,t,n,r,i=1){let a=r.pop();return a===void 0?a=S(e,t,n,h.FLOAT,m.RGBA32F,i):a.resize(t,n),a}function S(e,t,n,r,i,a=1){if(a<1||a>4)throw Error(`Number of color attachments must be between 1 and 4.`);let o=new g(e,C(e,t,n,r,i));for(let s=1;s<a;s++){let a=C(e,t,n,r,i);o.attachColorTexture(a,f+s)}return o}function C(e,t,n,r,i){let a=new v(t,n);return a.samplingMode=9728,a.wrapMode=33071,a.pixelFormat=6408,a.dataType=r,a.internalFormat=i,new _(e,a)}function w(e){let n=t(e),r=n/2;return Math.abs(n-e)<Math.abs(r-e)?n:r}export{b as TextureStatisticsTechnique};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{animationDebugFlags as t}from"../../../../../../../symbols/cim/animationDebugFlags.js";import{generateVirtualMachineSource as n}from"../../../animations/instructions.js";import{location as r,uniform as i,texture as a,option as o}from"../../GraphShaderModule.js";import{Vec2 as s,Vec4 as c,Float as l,Sampler2D as u,cond as d,equal as f,negate as p,step as m,sin as h,cos as g,Mat3 as _,Vec3 as v,lessThanEqual as y,ifElse as b,texture2D as x,clamp as S,abs as C,block as w}from"../../graph/glsl.js";import{AnimationUniformInfo as T}from"./AnimationUniformInfo.js";import{MarkerConstants as E}from"../markers/markerConstants.js";import{FeatureVertexInput as D,AFeatureShader as O,FeatureFragmentInput as k}from"../shaders/AFeatureShader.js";import{softEdgeRatio as A}from"../shaders/constants.js";import{LocalTileOffset as j}from"../shaders/LocalTileOffset.js";import{MosaicInfo as M}from"../shaders/MosaicInfo.js";import{getBit as N,rgba2float as P}from"../shaders/utils.js";import{VisualVariableColor as F}from"../shaders/VisualVariableColor.js";import{VisualVariableOpacity as I}from"../shaders/VisualVariableOpacity.js";import{VisualVariableRotation as L}from"../shaders/VisualVariableRotation.js";import{VisualVariableSizeMinMaxValue as R}from"../shaders/VisualVariableSizeMinMaxValue.js";import{VisualVariableSizeScaleStops as z}from"../shaders/VisualVariableSizeScaleStops.js";import{VisualVariableSizeStops as B}from"../shaders/VisualVariableSizeStops.js";import{VisualVariableSizeUnitValue as V}from"../shaders/VisualVariableSizeUnitValue.js";import{getVisualVariableSize as H,getVisualVariableAngle as U}from"../shaders/vvUtils.js";class W extends D{}e([r(3,s)],W.prototype,`offset`,void 0),e([r(4,c)],W.prototype,`sizing`,void 0),e([r(5,c)],W.prototype,`value1Position2Value2`,void 0),e([r(6,c)],W.prototype,`animationPointerAndBaseSizeAndReferenceSize`,void 0),e([r(7,s)],W.prototype,`zoomRange`,void 0),e([r(8,l)],W.prototype,`lineLength`,void 0);class G extends k{}class K extends O{_vertexPreamble(e,t,n,r){let{animationPointerAndBaseSizeAndReferenceSize:i,sizing:a}=e,o=r??e.offset,s=this.getFeatureId(e.id,e.bitset),c=i.xy,u=i.z,h=i.w,g=a.xy,_=d([f(N(e.bitset,E.bitset.isMapAligned),new l(1)),this.view.getRotation().divide(180).multiply(Math.PI)],[!0,new l(0)]),v=p(_.add(t)),y=this._getEvalParams(e,g,n,v),b,x;if(!e.value1Position2Value2)x=e.pos,b=new l(0);else{let t;t=this.hittestRequest?new l(0):q(c,6,y).a.multiply(this.tile.getDisplayZoomFactor(this.tileInfo));let n=e.pos,r=e.value1Position2Value2.yz,i=e.value1Position2Value2.x,a=e.value1Position2Value2.w,o=t.subtract(i).divide(a.subtract(i));x=n.add(r.subtract(n).multiply(o)),b=m(new l(1),o).add(m(new l(0),p(o)))}
|
|
2
|
+
import{__decorate as e}from"tslib";import{animationDebugFlags as t}from"../../../../../../../symbols/cim/animationDebugFlags.js";import{generateVirtualMachineSource as n}from"../../../animations/instructions.js";import{location as r,uniform as i,texture as a,option as o}from"../../GraphShaderModule.js";import{Vec2 as s,Vec4 as c,Float as l,Sampler2D as u,cond as d,equal as f,negate as p,step as m,sin as h,cos as g,Mat3 as _,Vec3 as v,lessThanEqual as y,ifElse as b,texture2D as x,clamp as S,abs as C,block as w}from"../../graph/glsl.js";import{AnimationUniformInfo as T}from"./AnimationUniformInfo.js";import{MarkerConstants as E}from"../markers/markerConstants.js";import{FeatureVertexInput as D,AFeatureShader as O,FeatureFragmentInput as k}from"../shaders/AFeatureShader.js";import{softEdgeRatio as A}from"../shaders/constants.js";import{LocalTileOffset as j}from"../shaders/LocalTileOffset.js";import{MosaicInfo as M}from"../shaders/MosaicInfo.js";import{getBit as N,rgba2float as P}from"../shaders/utils.js";import{VisualVariableColor as F}from"../shaders/VisualVariableColor.js";import{VisualVariableOpacity as I}from"../shaders/VisualVariableOpacity.js";import{VisualVariableRotation as L}from"../shaders/VisualVariableRotation.js";import{VisualVariableSizeMinMaxValue as R}from"../shaders/VisualVariableSizeMinMaxValue.js";import{VisualVariableSizeScaleStops as z}from"../shaders/VisualVariableSizeScaleStops.js";import{VisualVariableSizeStops as B}from"../shaders/VisualVariableSizeStops.js";import{VisualVariableSizeUnitValue as V}from"../shaders/VisualVariableSizeUnitValue.js";import{getVisualVariableSize as H,getVisualVariableAngle as U}from"../shaders/vvUtils.js";class W extends D{}e([r(3,s)],W.prototype,`offset`,void 0),e([r(4,c)],W.prototype,`sizing`,void 0),e([r(5,c)],W.prototype,`value1Position2Value2`,void 0),e([r(6,c)],W.prototype,`animationPointerAndBaseSizeAndReferenceSize`,void 0),e([r(7,s)],W.prototype,`zoomRange`,void 0),e([r(8,l)],W.prototype,`lineLength`,void 0);class G extends k{}class K extends O{_vertexPreamble(e,t,n,r){let{animationPointerAndBaseSizeAndReferenceSize:i,sizing:a}=e,o=r??e.offset,s=this.getFeatureId(e.id,e.bitset),c=i.xy,u=i.z,h=i.w,g=a.xy,_=d([f(N(e.bitset,E.bitset.isMapAligned),new l(1)),this.view.getRotation().divide(180).multiply(Math.PI)],[!0,new l(0)]),v=p(_.add(t)),y=this._getEvalParams(e,g,n,v),b,x;if(!e.value1Position2Value2)x=e.pos,b=new l(0);else{let t;t=this.hittestRequest?new l(0):q(c,6,y).a.multiply(this.tile.getDisplayZoomFactor(this.tileInfo));let n=e.pos,r=e.value1Position2Value2.yz,i=e.value1Position2Value2.x,a=e.value1Position2Value2.w,o=t.subtract(i).divide(a.subtract(i));x=n.add(r.subtract(n).multiply(o)),b=m(new l(1),o).add(m(new l(0),p(o)))}let S=a.z,C=N(e.bitset,E.bitset.isStroke),w=a.w,T=N(e.bitset,E.bitset.scaleSymbolsProportionally),D=q(c,0,y),O=D.xy,k=D.z,A=D.w,j=N(e.bitset,E.bitset.isSDF),M=H(this,s,new l(h)).divide(new l(h));return{baseSize:u,animationPointer:c,strokeWidth:S,isOutline:C,unscaledDistanceToPx:w,scaleSymbolsProportionally:T,isSDF:j,position:this._getScreenPosition({id:s,pos:x,offset:o,referenceSize:h,translation:O,rotation:k,scale:A,vvScale:M}),evalParams:y,vvScale:M,scale:A,clip:b}}_getScreenPosition(e){let{pos:t,translation:n,rotation:r,scale:i,offset:a,id:o,vvScale:s}=e,c=U(this,o).multiply(Math.PI/180),u=n.x.multiply(4/3),d=n.y.multiply(-1).multiply(4/3),f=h(c),m=g(c),y=m.multiply(u).add(p(f).multiply(d)),b=f.multiply(u).add(m.multiply(d)),x=h(r.subtract(c)),S=g(r.subtract(c)),C=new l(0),w=new l(1),T=new _(w,C,C,C,w,C,y,b,w),E=new _(S,x.multiply(-1),C,x,S,C,0,0,w),D=i.multiply(s).multiply(4/3),O=E.multiply(D),k=this.tile.getViewScreenMat3(this.view).multiply(new v(t,1)),A=T.multiply(k).xy,j=O.multiply(new v(a,0)).xy;return A.add(j)}_clip(e,n,r){let i=super.clip(e,n,r),a=y(this._getLocalTimeOrigin(e),new l(0));return t.forceGlobalTimeOrigin||(i=i.add(d([a,()=>new l(2)],[!0,()=>new l(0)]))),i}_getLocalTimeOrigin(e){return this.getLocalTimeOrigin(e)}_toNdc(e){return this.view.displayMat3.multiply(new v(e,1)).xy}_getEvalParams(e,t,n,r){let{globalTime:i,animationTextureSize:a}=this.animationInfo;return{globalTime:i,localTimeOrigin:this._getLocalTimeOrigin(this.getFeatureId(e.id,e.bitset)),animationTextureSize:a,animationTexture:this.animationTexture,pixelDimensions:t,lineLength:n.divide(this.tile.getDisplayZoomFactor(this.tileInfo)),globalRotation:r}}_getColor(e,t){return b(f(t.isSDF,new l(1)),this._getSDFColor(e,t),this._getSpriteColor(e,t))}_getSpriteColor(e,t){return x(this.mosaicTexture,e).multiply(t.color)}_getSDFColor(e,t){let n=x(this.mosaicTexture,e),r=new l(.5).subtract(P(n)).multiply(t.distanceToPx).multiply(A),i=S(new l(.5).subtract(r),new l(0),new l(1)),a=t.color.multiply(i),o=t.outlineSize.multiply(.5),s=C(r).subtract(o),c=S(new l(.5).subtract(s),new l(0),new l(1)),u=t.outlineColor.multiply(c);return new l(1).subtract(u.a).multiply(a).add(u)}}e([i(M)],K.prototype,`mosaicInfo`,void 0),e([i(T)],K.prototype,`animationInfo`,void 0),e([i(j)],K.prototype,`localTileOffset`,void 0),e([a(u)],K.prototype,`mosaicTexture`,void 0),e([o(F)],K.prototype,`visualVariableColor`,void 0),e([o(I)],K.prototype,`visualVariableOpacity`,void 0),e([o(R)],K.prototype,`visualVariableSizeMinMaxValue`,void 0),e([o(z)],K.prototype,`visualVariableSizeScaleStops`,void 0),e([o(B)],K.prototype,`visualVariableSizeStops`,void 0),e([o(V)],K.prototype,`visualVariableSizeUnitValue`,void 0),e([o(L)],K.prototype,`visualVariableRotation`,void 0),e([a(u)],K.prototype,`animationTexture`,void 0);function q(e,t,r){let i=e.add(new s(t,0)),a=x(r.animationTexture,i.add(.5).divide(r.animationTextureSize)).xy;return e=e.add(a),w({animationPointer:e,...r},c,null,e=>{let{out:t}=e;if(!t)throw Error(`out is null`);return n({...e,out:t})})}export{G as AAnimatedFragmentInput,K as AAnimatedShader,W as AAnimatedVertexInput,q as getValue};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e,__param as t}from"tslib";import{animationDebugFlags as n}from"../../../../../../../symbols/cim/animationDebugFlags.js";import{location as r,input as i,ComputeVertexInput as a}from"../../GraphShaderModule.js";import{Vec2 as o,Float as s,Vec4 as c,ifElse as l,or as u,Bool as d,mix as f,Mat3 as p,lessThan as m,Vec3 as h,distance as g,greaterThan as _,negate as v}from"../../graph/glsl.js";import{AAnimatedVertexInput as y,AAnimatedShader as b,getValue as x,AAnimatedFragmentInput as S}from"./AAnimatedShader.js";import{MarkerConstants as C}from"../markers/markerConstants.js";import{noHit as w,trueHit as T}from"../shaders/constants.js";import{isRectHittest as E,hittestMarkerRect as D,isPolygonHittest as O,hittestPolygon as k,isPointHittest as A,distPointTriangle as j,xyToBarycentric as M,inTriangle as N}from"../shaders/hittestUtils.js";import{getBitBool as P}from"../shaders/utils.js";import{getVisualVariableColor as F,getVisualVariableOpacity as I}from"../shaders/vvUtils.js";class L extends y{}e([r(9,o)],L.prototype,`uv`,void 0),e([r(10,s)],L.prototype,`angle`,void 0);class R extends a{}e([r(11,o)],R.prototype,`offsetNextVertex1`,void 0),e([r(12,o)],R.prototype,`offsetNextVertex2`,void 0),e([r(13,o)],R.prototype,`textureUVNextVertex1`,void 0),e([r(14,o)],R.prototype,`textureUVNextVertex2`,void 0);class z extends S{}function B(e,t,n,r){return t.multiply(e.x).add(n.multiply(e.y)).add(r.multiply(e.z))}class V extends b{constructor(){super(...arguments),this.type=`AnimatedMarkerShader`,this.computeAttributes={offset:[`offsetNextVertex1`,`offsetNextVertex2`],uv:[`textureUVNextVertex1`,`textureUVNextVertex2`]}}vertex(e,t){let n=e.uv.divide(this.mosaicInfo.size),{position:r,animationPointer:i,evalParams:a,isOutline:o,unscaledDistanceToPx:m,vvScale:h,strokeWidth:g,scaleSymbolsProportionally:_,scale:v,isSDF:y,baseSize:b,clip:S}=this._vertexPreamble(e,e.angle,e.lineLength||new s(0)),w=this._toNdc(r),T=x(i,1,a);T=new c(T.rgb.multiply(T.a),T.a);let E=l(P(e.bitset,C.bitset.colorLocked),T,x(i,2,a));E=new c(E.rgb.multiply(E.a),E.a);let D=x(i,3,a);D=new c(D.rgb.multiply(D.a),D.a);let O=x(i,4,a).a,k=x(i,5,a).a,A=this.getFeatureId(e.id,e.bitset),j=F(this,A,T,u(P(e.bitset,C.bitset.colorLocked),new d(o))),M=f(j,E,D),N=I(this,A),L=f(N,O,k),R=M.multiply(L),z=this.clip(e.id,e.bitset,e.zoomRange).add(S.multiply(2)),B=m.multiply(h);return{glPosition:new c(w,z,1),uv:n,color:R.multiply(new s(1).subtract(o)),outlineColor:R.multiply(o),distanceToPx:B,strokeWidth:g.multiply(f(new s(1),v,_)),isOutline:o,isSDF:y,...this.maybeRunHittest(e,t,{pos:
|
|
2
|
+
import{__decorate as e,__param as t}from"tslib";import{animationDebugFlags as n}from"../../../../../../../symbols/cim/animationDebugFlags.js";import{location as r,input as i,ComputeVertexInput as a}from"../../GraphShaderModule.js";import{Vec2 as o,Float as s,Vec4 as c,ifElse as l,or as u,Bool as d,mix as f,Mat3 as p,lessThan as m,Vec3 as h,distance as g,greaterThan as _,negate as v}from"../../graph/glsl.js";import{AAnimatedVertexInput as y,AAnimatedShader as b,getValue as x,AAnimatedFragmentInput as S}from"./AAnimatedShader.js";import{MarkerConstants as C}from"../markers/markerConstants.js";import{noHit as w,trueHit as T}from"../shaders/constants.js";import{isRectHittest as E,hittestMarkerRect as D,isPolygonHittest as O,hittestPolygon as k,isPointHittest as A,distPointTriangle as j,xyToBarycentric as M,inTriangle as N}from"../shaders/hittestUtils.js";import{getBitBool as P}from"../shaders/utils.js";import{getVisualVariableColor as F,getVisualVariableOpacity as I}from"../shaders/vvUtils.js";class L extends y{}e([r(9,o)],L.prototype,`uv`,void 0),e([r(10,s)],L.prototype,`angle`,void 0);class R extends a{}e([r(11,o)],R.prototype,`offsetNextVertex1`,void 0),e([r(12,o)],R.prototype,`offsetNextVertex2`,void 0),e([r(13,o)],R.prototype,`textureUVNextVertex1`,void 0),e([r(14,o)],R.prototype,`textureUVNextVertex2`,void 0);class z extends S{}function B(e,t,n,r){return t.multiply(e.x).add(n.multiply(e.y)).add(r.multiply(e.z))}class V extends b{constructor(){super(...arguments),this.type=`AnimatedMarkerShader`,this.computeAttributes={offset:[`offsetNextVertex1`,`offsetNextVertex2`],uv:[`textureUVNextVertex1`,`textureUVNextVertex2`]}}vertex(e,t){let n=e.uv.divide(this.mosaicInfo.size),{position:r,animationPointer:i,evalParams:a,isOutline:o,unscaledDistanceToPx:m,vvScale:h,strokeWidth:g,scaleSymbolsProportionally:_,scale:v,isSDF:y,baseSize:b,clip:S}=this._vertexPreamble(e,e.angle,e.lineLength||new s(0)),w=this._toNdc(r),T=x(i,1,a);T=new c(T.rgb.multiply(T.a),T.a);let E=l(P(e.bitset,C.bitset.colorLocked),T,x(i,2,a));E=new c(E.rgb.multiply(E.a),E.a);let D=x(i,3,a);D=new c(D.rgb.multiply(D.a),D.a);let O=x(i,4,a).a,k=x(i,5,a).a,A=this.getFeatureId(e.id,e.bitset),j=F(this,A,T,u(P(e.bitset,C.bitset.colorLocked),new d(o))),M=f(j,E,D),N=I(this,A),L=f(N,O,k),R=M.multiply(L),z=this.clip(e.id,e.bitset,e.zoomRange).add(S.multiply(2)),B=m.multiply(h);return{glPosition:new c(w,z,1),uv:n,color:R.multiply(new s(1).subtract(o)),outlineColor:R.multiply(o),distanceToPx:B,strokeWidth:g.multiply(f(new s(1),v,_)),isOutline:o,isSDF:y,...this.maybeRunHittest(e,t,{pos:e.pos,size:b,sizeCorrection:new s(1),isMapAligned:new s(1),vvRotationMat3:new p(1,0,0,0,1,0,0,0,1),placementMat3:new p(1,0,0,0,1,0,0,0,1),outlineSize:new s(1),distanceToPx:B,isSDF:y})}}computeHittestTriangle(e,t,n){let r=new s(0);return{pos0:this._vertexPreamble(e,e.angle,r).position,pos1:this._vertexPreamble(e,e.angle,r,t.offsetNextVertex1).position,pos2:this._vertexPreamble(e,e.angle,r,t.offsetNextVertex2).position}}fragment(e){let t=this._getColor(e.uv,{color:e.color,distanceToPx:e.distanceToPx,isSDF:e.isSDF,outlineColor:e.outlineColor,outlineSize:e.strokeWidth});return n.spotlightAnimatedSymbols&&(t=t.add(new c(0,.3,0,.3))),this.getFragmentOutput(t,e)}hittest(e,t,n){let r=this.computeHittestTriangle(e,t,n);return l(A(this.hittestRequest),()=>l(m(n.size,this.hittestRequest.smallSymbolSizeThreshold),this._hittestSmallMarker(e,t,n),this._hittestMarker(e,t,n)),()=>l(E(this.hittestRequest),D(r,this.hittestRequest.rect.xy,this.hittestRequest.rect.zw),l(O(this.hittestRequest),k(r,this.hittestRequest.viewSize,this.hittestMaskTexture),new s(w))))}_hittestSmallMarker(e,t,n){let{position:r,distance:i,smallSymbolDistance:a}=this.hittestRequest,o=i.subtract(a),c=this.tile.getViewScreenMat3(this.view).multiply(new h(n.pos,1)).xy,u=n.size.multiply(.5),d=g(c,r).subtract(u).add(o);return l(_(d,this.hittestRequest.distance),new s(w),new s(T))}_hittestMarker(e,t,n){let{pos0:r,pos1:i,pos2:a}=this.computeHittestTriangle(e,t,n),o=this.hittestRequest.position,c=this.hittestRequest.distance,u=j(o,r,i,a);return l(_(u,c),new s(w),this._hittestSamples(r,i,a,e,t,n))}_hittestSamples(e,t,n,r,i,a){let{outlineSize:u,isSDF:d,distanceToPx:f}=a,p=this.hittestRequest.position,m=this.hittestRequest.distance,h=M(p.add(new o(v(m),v(m))),e,t,n),g=M(p.add(new o(0,v(m))),e,t,n),y=M(p.add(new o(m,v(m))),e,t,n),b=M(p.add(new o(v(m),0)),e,t,n),x=M(p,e,t,n),S=M(p.add(new o(m,0)),e,t,n),C=M(p.add(new o(v(m),m)),e,t,n),E=M(p.add(new o(0,m)),e,t,n),D=M(p.add(new o(m,m)),e,t,n),O=r.uv.divide(this.mosaicInfo.size),k=i.textureUVNextVertex1.divide(this.mosaicInfo.size),A=i.textureUVNextVertex2.divide(this.mosaicInfo.size),j={color:new c(1,1,1,1),outlineSize:u,outlineColor:new c(1,1,1,1),isSDF:d,distanceToPx:f},P=new s(0);return P=P.add(N(h).multiply(this._getColor(B(h,O,k,A),j).a)),P=P.add(N(g).multiply(this._getColor(B(g,O,k,A),j).a)),P=P.add(N(y).multiply(this._getColor(B(y,O,k,A),j).a)),P=P.add(N(b).multiply(this._getColor(B(b,O,k,A),j).a)),P=P.add(N(x).multiply(this._getColor(B(x,O,k,A),j).a)),P=P.add(N(S).multiply(this._getColor(B(S,O,k,A),j).a)),P=P.add(N(C).multiply(this._getColor(B(C,O,k,A),j).a)),P=P.add(N(E).multiply(this._getColor(B(E,O,k,A),j).a)),P=P.add(N(D).multiply(this._getColor(B(D,O,k,A),j).a)),l(_(P,new s(.05)),new s(T),new s(w))}}e([t(0,i(L)),t(1,i(R))],V.prototype,`vertex`,null),e([t(0,i(z))],V.prototype,`fragment`,null);export{z as AnimatedMarkerFragmentInput,V as AnimatedMarkerShader,L as AnimatedMarkerVertexInput};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{simplePipelineState as e}from"../../utils.js";import{Technique as t}from"../Technique.js";import{BlendShader as n}from"../shaders/BlendShader.js";import{OpacityShader as r}from"../shaders/OpacityShader.js";import i
|
|
2
|
+
import{simplePipelineState as e}from"../../utils.js";import{Technique as t}from"../Technique.js";import{BlendShader as n}from"../shaders/BlendShader.js";import{OpacityShader as r}from"../shaders/OpacityShader.js";import{Texture as i}from"../../../../../../webgl/Texture.js";import{TextureDescriptor as a}from"../../../../../../webgl/TextureDescriptor.js";class o extends t{constructor(){super(...arguments),this.type=5,this._backBufferTexture=null,this.shaders={blend:new n,opacity:new r}}shutdown(){super.shutdown(),this._backBufferTexture!==null&&(this._backBufferTexture.dispose(),this._backBufferTexture=null)}render(t,n){let{context:r,state:i,pixelRatio:a,inFadeTransition:o,painter:s}=t,{size:c}=i,l=r.boundFramebuffer,u,d;l==null?(u=Math.round(a*c[0]),d=Math.round(a*c[1])):(u=l.width,d=l.height);let{blendMode:f}=n;if(f===`normal`){let t={shader:this.shaders.opacity,uniforms:{config:{opacity:n.config.opacity}},textures:{layerTexture:{texture:n.colorTexture,unit:0}},defines:null,optionalAttributes:null,useComputeBuffer:!1};s.setPipelineState(e),s.submitDrawMesh(r,t,s.quadMesh);return}let p=this._createOrResizeTexture(t,u,d);l?.copyToTexture(0,0,u,d,0,0,p);let m={...e,color:{write:[!0,!0,!0,!0],blendMode:`custom`,blendParameters:{srcRGB:1,dstRGB:0,srcAlpha:1,dstAlpha:0},blendEquation:32774},depth:!1,stencil:!1};s.setPipelineState(m);let h={inFadeOpacity:+!!o,...n.config},g={shader:this.shaders.blend,uniforms:{config:h},textures:{backbufferTexture:{texture:p,unit:0},layerTexture:{texture:n.colorTexture,unit:1}},defines:{blendMode:f},optionalAttributes:null,useComputeBuffer:!1};s.submitDrawMesh(r,g,s.quadMesh)}_createOrResizeTexture(e,t,n){let{context:r}=e;if(this._backBufferTexture!==null&&this._backBufferTexture.descriptor?.width===t&&this._backBufferTexture.descriptor?.height===n)return this._backBufferTexture;if(this._backBufferTexture===null){let e=new a(t,n);e.internalFormat=6408,e.wrapMode=33071,this._backBufferTexture=new i(r,e)}else this._backBufferTexture.resize(t,n);return this._backBufferTexture}}export{o as BlendTechnique};
|