@arcgis/core 5.1.0-next.71 → 5.1.0-next.72
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/PopupTemplate.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/003fd7745966fe03510c.js +1 -0
- package/assets/esri/core/workers/chunks/00bae4b7e179336e0362.js +1 -0
- package/assets/esri/core/workers/chunks/{36031cb53c486630f3c9.js → 026d3fa331caec1ea3d2.js} +1 -1
- package/assets/esri/core/workers/chunks/027c3ea756db68e51f0a.js +1 -0
- package/assets/esri/core/workers/chunks/{c06d021180418f2014de.js → 02876e434dc91c42b2f4.js} +1 -1
- package/assets/esri/core/workers/chunks/041c372e98a6fba90b36.js +1 -0
- package/assets/esri/core/workers/chunks/{a5a46d0a0831497cf1b4.js → 0783890816bac45277b9.js} +1 -1
- package/assets/esri/core/workers/chunks/07aac6245a0d1adbb2d4.js +1 -0
- package/assets/esri/core/workers/chunks/0839da55707f7c4cf780.js +1 -0
- package/assets/esri/core/workers/chunks/0c00e5e4bd18467bcecd.js +1 -0
- package/assets/esri/core/workers/chunks/{d69110ec4078c583a05e.js → 0d96e39380fd84cea9ba.js} +1 -1
- package/assets/esri/core/workers/chunks/0dad0bca8d58b2c63d22.js +1 -0
- package/assets/esri/core/workers/chunks/0ef93722524620023f69.js +1 -0
- package/assets/esri/core/workers/chunks/127cd8fee3717a473fc5.js +1 -0
- package/assets/esri/core/workers/chunks/1286f41f245ef22b3a26.js +1 -0
- package/assets/esri/core/workers/chunks/161d60fdac2013c15543.js +1 -0
- package/assets/esri/core/workers/chunks/1661684357912726a72a.js +1 -0
- package/assets/esri/core/workers/chunks/168de44a789d1cecc1f8.js +1 -0
- package/assets/esri/core/workers/chunks/1961b59756933e0a82f2.js +1 -0
- package/assets/esri/core/workers/chunks/1d9d7915cf7449e5d468.js +1 -0
- package/assets/esri/core/workers/chunks/1f85646936200a399c15.js +1 -0
- package/assets/esri/core/workers/chunks/{deb8a0b306d7b9c86b97.js → 2171aaa147aa4d9fc5b5.js} +1 -1
- package/assets/esri/core/workers/chunks/235cb82952a18ff8d206.js +1 -0
- package/assets/esri/core/workers/chunks/260d4571722cb1ff1366.js +1 -0
- package/assets/esri/core/workers/chunks/{3e972ae291df1844017d.js → 266ba61b72a278d93a26.js} +1 -1
- package/assets/esri/core/workers/chunks/27b80c386cebadcaca3c.js +1 -0
- package/assets/esri/core/workers/chunks/29d3890a5a43d934067a.js +1 -0
- package/assets/esri/core/workers/chunks/{333a0038d782d8a34d58.js → 2abf124e2956e4f76688.js} +1 -1
- package/assets/esri/core/workers/chunks/2f17438d215bea3ce70f.js +1 -0
- package/assets/esri/core/workers/chunks/{f6d5dd2eef0d9918096e.js → 30e710ec4d22c43d4e7e.js} +1 -1
- package/assets/esri/core/workers/chunks/356cb86606b8c674f947.js +1 -0
- package/assets/esri/core/workers/chunks/398e0dd2bc7e1ab84831.js +1 -0
- package/assets/esri/core/workers/chunks/3b1052aa30af3f6186cc.js +1 -0
- package/assets/esri/core/workers/chunks/3bbf684ee2484eb44c9f.js +1 -0
- package/assets/esri/core/workers/chunks/3cd9bd20e75ba4d5b294.js +1 -0
- package/assets/esri/core/workers/chunks/3e87e3ad857d72f6ecbb.js +1 -0
- package/assets/esri/core/workers/chunks/{7cb6d8f7eaf762279632.js → 3ea5a18b264628dc37f0.js} +1 -1
- package/assets/esri/core/workers/chunks/41809c16544ec25120fa.js +1 -0
- package/assets/esri/core/workers/chunks/41913575dd45c65d645e.js +1 -0
- package/assets/esri/core/workers/chunks/42e483fde18f12da32a6.js +1 -0
- package/assets/esri/core/workers/chunks/43ab44d37bc0ea97ef98.js +1 -0
- package/assets/esri/core/workers/chunks/46e622857ba92a72a317.js +1 -0
- package/assets/esri/core/workers/chunks/47f2113357b2aa4f4f37.js +1 -0
- package/assets/esri/core/workers/chunks/488ed9584b527ec47be3.js +1 -0
- package/assets/esri/core/workers/chunks/4ad32580e0c0699fde1f.js +1 -0
- package/assets/esri/core/workers/chunks/4d0f793dee4ad919221b.js +1 -0
- package/assets/esri/core/workers/chunks/4eed175277eb0df3c821.js +1 -0
- package/assets/esri/core/workers/chunks/{916a8f3eed1fafdc7242.js → 54d07eadf113f0e4e506.js} +1 -1
- package/assets/esri/core/workers/chunks/54ed37ec9682ea739deb.js +1 -0
- package/assets/esri/core/workers/chunks/{9187d1caca1fd2d713e0.js → 55369c5bd65bcaf78da1.js} +1 -1
- package/assets/esri/core/workers/chunks/56fd3da911c2c4511e5d.js +1 -0
- package/assets/esri/core/workers/chunks/59592bb25f226865e88a.js +1 -0
- package/assets/esri/core/workers/chunks/{e77d958cb62536b8eebc.js → 5a4d7ba6dc1d4b41d80d.js} +1 -1
- package/assets/esri/core/workers/chunks/5d55b4449bcb24cd72b6.js +1 -0
- package/assets/esri/core/workers/chunks/5d8fe41a3c06ddb4094b.js +1 -0
- package/assets/esri/core/workers/chunks/{fe68c28d3c61f116ff23.js → 5ef37f37e405b3bb5450.js} +1 -1
- package/assets/esri/core/workers/chunks/608d707fd9d9f9088473.js +1 -0
- package/assets/esri/core/workers/chunks/{c92352b0e39576ca317a.js → 61ef14e42bc09b787d89.js} +1 -1
- package/assets/esri/core/workers/chunks/656d6963e8f837fbf28f.js +1 -0
- package/assets/esri/core/workers/chunks/68b47a5a50e0b5fffca2.js +1 -0
- package/assets/esri/core/workers/chunks/{a5afcd633b32e6ee31a7.js → 6a0352d20596ca3f4b64.js} +1 -1
- package/assets/esri/core/workers/chunks/6c7ff968bd4fc816442d.js +1 -0
- package/assets/esri/core/workers/chunks/6e526c06825ecc6c99c0.js +1 -0
- package/assets/esri/core/workers/chunks/6ea8b0d68881d16a2432.js +1 -0
- package/assets/esri/core/workers/chunks/6f9ea461c268c421f9c9.js +1 -0
- package/assets/esri/core/workers/chunks/7027d93dc5a4595d70c6.js +1 -0
- package/assets/esri/core/workers/chunks/70b35b2446558d5280e3.js +1 -0
- package/assets/esri/core/workers/chunks/7349cb45a93e6916f115.js +1 -0
- package/assets/esri/core/workers/chunks/751609831b283903ba48.js +1 -0
- package/assets/esri/core/workers/chunks/76edaeaf8fe344bb77a8.js +1 -0
- package/assets/esri/core/workers/chunks/76fe5b821d6b54db5721.js +1 -0
- package/assets/esri/core/workers/chunks/81d30c9062ad0120a863.js +1 -0
- package/assets/esri/core/workers/chunks/84772b023d04e415f17f.js +1 -0
- package/assets/esri/core/workers/chunks/{123e920e4460124ec3bb.js → 88b480a1d1fb01778798.js} +9 -30
- package/assets/esri/core/workers/chunks/88c5f7c712c6b89b5109.js +1 -0
- package/assets/esri/core/workers/chunks/88e469b82d2594f23649.js +1 -0
- package/assets/esri/core/workers/chunks/8a14e3db28c403b046cf.js +1 -0
- package/assets/esri/core/workers/chunks/8a664451845a47048859.js +1 -0
- package/assets/esri/core/workers/chunks/8a8242e7cc7e6a9e7876.js +1 -0
- package/assets/esri/core/workers/chunks/{4d51261d6131c07402cd.js → 8acee3fba488f202f82f.js} +1 -1
- package/assets/esri/core/workers/chunks/91a0227a64a944af3286.js +596 -0
- package/assets/esri/core/workers/chunks/9444ed8ea117861ae89b.js +1 -0
- package/assets/esri/core/workers/chunks/96bba4d93a32ad34a1c8.js +1 -0
- package/assets/esri/core/workers/chunks/9a38fd68b02b617c45d3.js +1 -0
- package/assets/esri/core/workers/chunks/9d434360dfce1e49b7b9.js +1 -0
- package/assets/esri/core/workers/chunks/9f4b97204def91567e3c.js +1 -0
- package/assets/esri/core/workers/chunks/a37c28e3c4a2be9fd1d5.js +1 -0
- package/assets/esri/core/workers/chunks/{58b3c888c8bfedbe6443.js → a37fc886227365f7ecd5.js} +1 -1
- package/assets/esri/core/workers/chunks/a8d7f59927bdad564141.js +1 -0
- package/assets/esri/core/workers/chunks/{f89976ec97938bf86996.js → abc06d10c7ac8ba5b0e4.js} +1 -1
- package/assets/esri/core/workers/chunks/abe22ae8ee0dcc9efbb7.js +1 -0
- package/assets/esri/core/workers/chunks/{fef5dc19736f12dfa99a.js → af5db0372d526e592fcc.js} +1 -1
- package/assets/esri/core/workers/chunks/{eb3cdc4ff45243fc3cc5.js → b475f5492c6e3fd4cca8.js} +1 -1
- package/assets/esri/core/workers/chunks/b495f14d90abe8d1a558.js +1 -0
- package/assets/esri/core/workers/chunks/{6ac5ec3ecbca8860338b.js → b54b7cc6b23a70fed700.js} +1 -1
- package/assets/esri/core/workers/chunks/b702279c48f3009f6dd8.js +1 -0
- package/assets/esri/core/workers/chunks/b79058f5bda6fcac22f8.js +1 -0
- package/assets/esri/core/workers/chunks/b801631b58e6fc6cec8a.js +1 -0
- package/assets/esri/core/workers/chunks/{31071a43e2c03984d619.js → b92794def31592a6a25f.js} +1 -1
- package/assets/esri/core/workers/chunks/be1d6a571f76933dfbb0.js +1 -0
- package/assets/esri/core/workers/chunks/bea70be8e38b8c83ccd2.js +1 -0
- package/assets/esri/core/workers/chunks/bfcdc5c315131aae34d8.js +1 -0
- package/assets/esri/core/workers/chunks/c0f624a2ca0d07ef8f8c.js +1 -0
- package/assets/esri/core/workers/chunks/c1838822b096d5f36a8b.js +1 -0
- package/assets/esri/core/workers/chunks/c3381b9a36299210ee47.js +1 -0
- package/assets/esri/core/workers/chunks/{c2882a9e67124b7c18be.js → c503c79ba5761f7abbeb.js} +1 -1
- package/assets/esri/core/workers/chunks/cb5e4b9b4a59c2622eb5.js +1 -0
- package/assets/esri/core/workers/chunks/d201a5dff18a5bb467ab.js +1 -0
- package/assets/esri/core/workers/chunks/{3b7cda16e656db450f11.js → d2aa75816e84b1e7fd25.js} +1 -1
- package/assets/esri/core/workers/chunks/{4d8670f6fa8952b7bab6.js → d950d5c2844206502ff0.js} +1 -1
- package/assets/esri/core/workers/chunks/db3c484bfa607dec6050.js +1 -0
- package/assets/esri/core/workers/chunks/db588bf3256e95c977b7.js +1 -0
- package/assets/esri/core/workers/chunks/{967758a05170545cd371.js → dcc719e15b2e0cce1f3b.js} +1 -1
- package/assets/esri/core/workers/chunks/{6bb090f3e5c18604cb39.js → dd5b362bded458afa2d6.js} +1 -1
- package/assets/esri/core/workers/chunks/{e957d52cb9643961a843.js → de583214195eff13cb00.js} +58 -45
- package/assets/esri/core/workers/chunks/dec6d41d614105e6fd93.js +1 -0
- package/assets/esri/core/workers/chunks/dfdd474fddcd1d6091ce.js +1 -0
- package/assets/esri/core/workers/chunks/e235ea4293d5d463acfb.js +1 -0
- package/assets/esri/core/workers/chunks/e43486113aaf72ac4dc1.js +1 -0
- package/assets/esri/core/workers/chunks/ea4c3393c5757e309a71.js +1 -0
- package/assets/esri/core/workers/chunks/ed216ddeb7f59f510bd0.js +1 -0
- package/assets/esri/core/workers/chunks/ef8886dff54063928bcb.js +1 -0
- package/assets/esri/core/workers/chunks/{231f502cd15f30d12be2.js → f1673e723b336204ad77.js} +1 -1
- package/assets/esri/core/workers/chunks/f5223ffb3be548c9b0a1.js +1 -0
- package/assets/esri/core/workers/chunks/fae147d03ed723ab234d.js +1 -0
- package/chunks/CheckerBoard.glsl.js +3 -5
- package/chunks/ColorMaterial.glsl.js +4 -6
- package/chunks/ComponentShader.glsl.js +42 -44
- package/chunks/DefaultMaterial.glsl.js +21 -23
- package/chunks/EdgeShader.glsl.js +9 -11
- package/chunks/GaussianSplat.glsl.js +8 -8
- package/chunks/ImageMaterial.glsl.js +5 -7
- package/chunks/LineCallout.glsl.js +9 -12
- package/chunks/LineMarker.glsl.js +24 -26
- package/chunks/Path.glsl.js +15 -17
- package/chunks/Pattern.glsl.js +25 -27
- package/chunks/RealisticTree.glsl.js +11 -13
- package/chunks/RibbonLine.glsl.js +42 -45
- package/chunks/ShadedColorMaterial.glsl.js +8 -9
- package/chunks/Water.glsl.js +18 -20
- package/config.js +1 -1
- package/kernel.js +1 -1
- package/layers/VoxelWasmPerSceneView.js +1 -1
- package/layers/graphics/FlatFeature.js +1 -1
- package/layers/graphics/FlatFeatureSet.js +1 -1
- package/layers/graphics/OptimizedFeature.js +1 -1
- package/layers/graphics/data/AttributesBuilder.js +1 -1
- package/layers/graphics/data/QueryEngineResult.js +1 -1
- package/layers/graphics/data/flatFeatureQueryEngineAdapter.js +1 -1
- package/layers/graphics/data/optimizedFeatureQueryEngineAdapter.js +1 -1
- package/layers/graphics/featureConversionUtils.js +1 -1
- package/layers/support/LabelClass.js +1 -1
- package/layers/support/featureLayerUtils.js +1 -1
- package/layers/support/labelUtils.js +1 -1
- package/layers/video/videoUtils.js +1 -1
- package/package.json +1 -1
- package/popupTemplateUtils.js +2 -0
- package/renderers/visualVariables/SizeVariable.js +1 -1
- package/renderers/visualVariables/support/sizeVariableUtils.js +1 -1
- package/rest/query/operations/pbfFeatureServiceParser.js +1 -1
- package/rest/support/OutDistance.js +2 -0
- package/rest/support/Query.js +1 -1
- package/smartMapping/statistics/support/utils.js +1 -1
- package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
- package/support/arcadeUtils.js +1 -1
- package/support/revision.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
- package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
- package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMeshNormals.js +1 -1
- package/views/3d/layers/StreamLayerView3D.js +1 -1
- package/views/3d/layers/graphics/featureExpressionInfoUtils.js +1 -1
- package/views/3d/state/ViewStateManager.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterialGlobalParameters.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterialRepository.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentShader.glsl.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 +20 -32
- package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +5 -3
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
- package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/Compositor.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeShader.glsl.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
- package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCalloutTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/statistics/RendererPerformanceInfo.js +1 -1
- package/views/VideoView.js +1 -1
- package/views/layers/FeatureLikeLayerView.js +1 -1
- package/views/video/VideoOperationalDataView.js +1 -1
- package/views/webgl/ShaderBuilder.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.d.ts +19 -3
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
- package/widgets/FeatureTable/VisibleElements.d.ts +15 -1
- package/widgets/FeatureTable/VisibleElements.js +1 -1
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/FeatureTable.d.ts +15 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/Search/SearchViewModel.js +1 -1
- package/assets/esri/core/workers/chunks/09ecb36e44096e577af8.js +0 -1
- package/assets/esri/core/workers/chunks/0ca06ea649bbdb93ff49.js +0 -1
- package/assets/esri/core/workers/chunks/10308c9f3f0d709d96bc.js +0 -1
- package/assets/esri/core/workers/chunks/141edf5ed890105a079b.js +0 -1
- package/assets/esri/core/workers/chunks/160b9a76b75875507c86.js +0 -1
- package/assets/esri/core/workers/chunks/16dfdee05704df249e95.js +0 -1
- package/assets/esri/core/workers/chunks/17ef955dc48e329aa184.js +0 -1
- package/assets/esri/core/workers/chunks/18001536ed345955121a.js +0 -1
- package/assets/esri/core/workers/chunks/20e715e3aeb1c3265901.js +0 -1
- package/assets/esri/core/workers/chunks/238f51d0b36f998017b8.js +0 -1
- package/assets/esri/core/workers/chunks/2cee6d751c5e73fe09d4.js +0 -1
- package/assets/esri/core/workers/chunks/314140e2e9b813191907.js +0 -1
- package/assets/esri/core/workers/chunks/3158a3487d3e8a61b680.js +0 -1
- package/assets/esri/core/workers/chunks/3b1446286a9b87f34761.js +0 -1
- package/assets/esri/core/workers/chunks/3f7fd58ee7d71989fc83.js +0 -1
- package/assets/esri/core/workers/chunks/41396724040180d2537f.js +0 -1
- package/assets/esri/core/workers/chunks/416e031bafc0189544fa.js +0 -1
- package/assets/esri/core/workers/chunks/55ee78923987ed17ea8c.js +0 -1
- package/assets/esri/core/workers/chunks/56c7d7c7217557375fb6.js +0 -1
- package/assets/esri/core/workers/chunks/5a1d975b3e9e6b7eff67.js +0 -1
- package/assets/esri/core/workers/chunks/5f6942ac94acd7842926.js +0 -1
- package/assets/esri/core/workers/chunks/6118706b9a038e9a06b8.js +0 -1
- package/assets/esri/core/workers/chunks/6d15229b3fa84a7acf4d.js +0 -599
- package/assets/esri/core/workers/chunks/7314c0131403cac84ad7.js +0 -1
- package/assets/esri/core/workers/chunks/73545bb13c70f6a347a4.js +0 -1
- package/assets/esri/core/workers/chunks/73a045061e69a22b6869.js +0 -1
- package/assets/esri/core/workers/chunks/75669912cddcb5db52c8.js +0 -1
- package/assets/esri/core/workers/chunks/7ca32806e47be15109a4.js +0 -1
- package/assets/esri/core/workers/chunks/7d6ed65bbcd279448191.js +0 -1
- package/assets/esri/core/workers/chunks/81f149e45c79b9b086fb.js +0 -1
- package/assets/esri/core/workers/chunks/84fa25f66a6949290221.js +0 -1
- package/assets/esri/core/workers/chunks/852aabbf671d2ca9cd33.js +0 -1
- package/assets/esri/core/workers/chunks/854fe80272b59fafc2e9.js +0 -1
- package/assets/esri/core/workers/chunks/861817be5e050e9522ab.js +0 -1
- package/assets/esri/core/workers/chunks/89345a682dea60ef1643.js +0 -1
- package/assets/esri/core/workers/chunks/8985402c328b90af5724.js +0 -1
- package/assets/esri/core/workers/chunks/89fdf9ad10ca8fbb08a5.js +0 -1
- package/assets/esri/core/workers/chunks/8b094330323d9b16fb5d.js +0 -1
- package/assets/esri/core/workers/chunks/90aed8c4b266832f84ca.js +0 -1
- package/assets/esri/core/workers/chunks/9776c2db337222ceceef.js +0 -1
- package/assets/esri/core/workers/chunks/990853e9df38fdfc58b5.js +0 -1
- package/assets/esri/core/workers/chunks/9a21ba0c45a96b94c05e.js +0 -1
- package/assets/esri/core/workers/chunks/9a235c92f21df2c17aa8.js +0 -1
- package/assets/esri/core/workers/chunks/9b56162ac67c992193ce.js +0 -1
- package/assets/esri/core/workers/chunks/9f1f5fb648302c43ad12.js +0 -1
- package/assets/esri/core/workers/chunks/a1e6187c239fdc7553ed.js +0 -1
- package/assets/esri/core/workers/chunks/a4b6fdbc995be03d2afb.js +0 -1
- package/assets/esri/core/workers/chunks/a760be8fa6c6ea6b745c.js +0 -1
- package/assets/esri/core/workers/chunks/a8782286ce3c0d6c20e6.js +0 -1
- package/assets/esri/core/workers/chunks/a96692514dcaa50340dd.js +0 -1
- package/assets/esri/core/workers/chunks/a994a3c912a33b2f4100.js +0 -1
- package/assets/esri/core/workers/chunks/aa7aaeae31ddb259e55e.js +0 -1
- package/assets/esri/core/workers/chunks/abcc5fb71be2bd94878c.js +0 -1
- package/assets/esri/core/workers/chunks/aecb05df4ad1454f5435.js +0 -1
- package/assets/esri/core/workers/chunks/aecb105db7cec2c9c4c5.js +0 -1
- package/assets/esri/core/workers/chunks/b19f33e026a2a43b17c4.js +0 -1
- package/assets/esri/core/workers/chunks/b3950d5f1f3352521504.js +0 -1
- package/assets/esri/core/workers/chunks/b3f0600729227b458a75.js +0 -1
- package/assets/esri/core/workers/chunks/b5922991d2f450e6a9d9.js +0 -1
- package/assets/esri/core/workers/chunks/b8643976a7f984552d94.js +0 -1
- package/assets/esri/core/workers/chunks/b8a11d32a4847513619b.js +0 -1
- package/assets/esri/core/workers/chunks/b8acb6c2538053c01cc6.js +0 -1
- package/assets/esri/core/workers/chunks/ba4259aa050169c1d523.js +0 -1
- package/assets/esri/core/workers/chunks/bbaf1d9835671c0165ca.js +0 -1
- package/assets/esri/core/workers/chunks/bcefdf9753d9d2f6f1be.js +0 -1
- package/assets/esri/core/workers/chunks/c178e2cfc34603661b1d.js +0 -1
- package/assets/esri/core/workers/chunks/c3e80c0e29ac6a7a6f80.js +0 -1
- package/assets/esri/core/workers/chunks/c79827f879d1d58d3f1b.js +0 -1
- package/assets/esri/core/workers/chunks/c92b40a532e708e506cc.js +0 -1
- package/assets/esri/core/workers/chunks/cb903ccbce87172a0757.js +0 -1
- package/assets/esri/core/workers/chunks/cda2e445eb2ac269abdf.js +0 -1
- package/assets/esri/core/workers/chunks/ce44e172e2847fd8df14.js +0 -1
- package/assets/esri/core/workers/chunks/cff7e921649aef715c78.js +0 -1
- package/assets/esri/core/workers/chunks/d315098b038a96084ff5.js +0 -1
- package/assets/esri/core/workers/chunks/d8c0d18f0132872decd3.js +0 -1
- package/assets/esri/core/workers/chunks/db0061a6d5bf454cc509.js +0 -1
- package/assets/esri/core/workers/chunks/dcfafcf4386f2940d000.js +0 -1
- package/assets/esri/core/workers/chunks/e2b034c391c603f7f825.js +0 -1
- package/assets/esri/core/workers/chunks/e3a73d9acebccd3ba49b.js +0 -1
- package/assets/esri/core/workers/chunks/e67bdd8bf38ebe89a344.js +0 -1
- package/assets/esri/core/workers/chunks/e797d45eba0884dc7e6f.js +0 -1
- package/assets/esri/core/workers/chunks/e81a3da05fcff97b4752.js +0 -1
- package/assets/esri/core/workers/chunks/e9dd60d0220036545ebb.js +0 -1
- package/assets/esri/core/workers/chunks/ea6d3b7c7d720aa7bc94.js +0 -1
- package/assets/esri/core/workers/chunks/eb9982bc866976fef960.js +0 -1
- package/assets/esri/core/workers/chunks/ec4669a0edeca94710e0.js +0 -1
- package/assets/esri/core/workers/chunks/ef9d74f8d5a502fda809.js +0 -1
- package/assets/esri/core/workers/chunks/f09446b9ff937a84d6d3.js +0 -1
- package/assets/esri/core/workers/chunks/f0bc5e8e44d53b73d431.js +0 -1
- package/assets/esri/core/workers/chunks/f653970d983f17fb764b.js +0 -1
- package/assets/esri/core/workers/chunks/f9edc685099f51363f41.js +0 -1
- package/assets/esri/core/workers/chunks/fa687ba2d66fcc2501da.js +0 -1
- package/assets/esri/core/workers/chunks/fb9a889ec9fd23739a14.js +0 -1
- package/assets/esri/core/workers/chunks/fe1b67ab7748a3aef231.js +0 -1
- package/chunks/HUDCompositing.glsl.js +0 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassGeometryTest.glsl.js +0 -5
- package/views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js +0 -8
- package/views/3d/webgl-engine/effects/fboFormatUtils.js +0 -2
- package/views/3d/webgl-engine/shaders/HUDCompositing.glsl.js +0 -2
- package/views/3d/webgl-engine/shaders/HUDCompositingTechnique.js +0 -2
package/chunks/Pattern.glsl.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as o}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as
|
|
3
|
-
const mat2 rotate45 = mat2(${
|
|
4
|
-
${
|
|
5
|
-
`),!
|
|
2
|
+
import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as o}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{VertexColor as r}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VisualVariables as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{ColorConversion as i}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as l,addCameraPosition as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{glsl as s,If as v}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as u}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as p}from"../views/3d/webgl-engine/shaders/PatternTextureBuffer.glsl.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";const f=.70710678118,g=f,w=.08715574274,b=10,h=1;function x(x){const S=p(x),j=null!=S,C=new m;j&&C.include(S.TextureBackedBufferModule,x);const{vertex:V,fragment:T,attributes:P,varyings:$}=C,R=10===x.output;l(V,x),C.include(o);let A="";j?(x.hasVVColor&&(A=S.getTextureAttribute("colorFeatureAttribute")),x.hasVertexColors?(C.varyings.add("vColor","vec4"),C.vertex.code.add(s`void forwardVertexColor() { vColor = ${S.getTextureAttribute("color")}; }`)):C.vertex.code.add(s`void forwardVertexColor() {}`),P.add("textureElementIndex","uint")):(C.include(r,x),x.hasVVColor&&(P.add("colorFeatureAttribute","float"),A="colorFeatureAttribute")),P.add("position","vec3"),V.inputs.add("position",()=>"position"),C.include(a,x),C.include(t,x),T.include(e,x),C.include(u,x),x.draped&&V.uniforms.add(new d("worldToScreenRatio",e=>1/e.screenToPCSRatio)),P.add("uvMapSpace","vec4"),x.hasVertexColors||$.add("vColor","vec4"),$.add("vpos","vec3",{invariant:!0}),$.add("vuv","vec2"),V.uniforms.add(new c("uColor",e=>e.color));const L=3===x.style||4===x.style||5===x.style;return L&&V.code.add(s`
|
|
3
|
+
const mat2 rotate45 = mat2(${s.float(f)}, ${s.float(-g)},
|
|
4
|
+
${s.float(g)}, ${s.float(f)});
|
|
5
|
+
`),!x.draped&&j&&(n(V,x),V.uniforms.add(new d("worldToScreenPerDistanceRatio",e=>1/e.camera.perScreenPixelRatio)),V.code.add(s`vec3 projectPointToLineSegment(vec3 center, vec3 halfVector, vec3 point) {
|
|
6
6
|
float projectedLength = dot(halfVector, point - center) / dot(halfVector, halfVector);
|
|
7
7
|
return center + halfVector * clamp(projectedLength, -1.0, 1.0);
|
|
8
|
-
}`),V.code.add(
|
|
8
|
+
}`),V.code.add(s`vec3 intersectRayPlane(vec3 rayDir, vec3 rayOrigin, vec3 planeNormal, vec3 planePoint) {
|
|
9
9
|
float d = dot(planeNormal, planePoint);
|
|
10
10
|
float t = (d - dot(planeNormal, rayOrigin)) / dot(planeNormal, rayDir);
|
|
11
11
|
return rayOrigin + t * rayDir;
|
|
12
|
-
}`),V.code.add(
|
|
12
|
+
}`),V.code.add(s`
|
|
13
13
|
float boundingRectDistanceToCamera() {
|
|
14
|
-
vec3 center = ${
|
|
15
|
-
vec3 halfU = ${
|
|
16
|
-
vec3 halfV = ${
|
|
14
|
+
vec3 center = ${S.getTextureAttribute("boundingRect")}[0];
|
|
15
|
+
vec3 halfU = ${S.getTextureAttribute("boundingRect")}[1];
|
|
16
|
+
vec3 halfV = ${S.getTextureAttribute("boundingRect")}[2];
|
|
17
17
|
vec3 n = normalize(cross(halfU, halfV));
|
|
18
18
|
|
|
19
19
|
vec3 viewDir = - vec3(view[0][2], view[1][2], view[2][2]);
|
|
20
20
|
|
|
21
21
|
float viewAngle = dot(viewDir, n);
|
|
22
|
-
float minViewAngle = ${
|
|
22
|
+
float minViewAngle = ${s.float(w)};
|
|
23
23
|
|
|
24
24
|
if (abs(viewAngle) < minViewAngle) {
|
|
25
25
|
// view direction is (almost) parallel to plane -> clamp it to min angle
|
|
@@ -39,12 +39,12 @@ return rayOrigin + t * rayDir;
|
|
|
39
39
|
|
|
40
40
|
return length(closestPoint - cameraPosition);
|
|
41
41
|
}
|
|
42
|
-
`)),V.code.add(
|
|
42
|
+
`)),V.code.add(s`
|
|
43
43
|
vec2 scaledUV() {
|
|
44
|
-
vec2 uv = uvMapSpace.xy ${
|
|
45
|
-
vec2 uvCellOrigin = uvMapSpace.zw ${
|
|
44
|
+
vec2 uv = uvMapSpace.xy ${v(L," * rotate45")};
|
|
45
|
+
vec2 uvCellOrigin = uvMapSpace.zw ${v(L," * rotate45")};
|
|
46
46
|
|
|
47
|
-
${
|
|
47
|
+
${v(!x.draped,s`float distanceToCamera = boundingRectDistanceToCamera();
|
|
48
48
|
float worldToScreenRatio = worldToScreenPerDistanceRatio / distanceToCamera;`)}
|
|
49
49
|
|
|
50
50
|
// Logarithmically discretize ratio to avoid jittering
|
|
@@ -53,21 +53,20 @@ return rayOrigin + t * rayDir;
|
|
|
53
53
|
discreteWorldToScreenRatio = ceil(discreteWorldToScreenRatio / step) * step;
|
|
54
54
|
discreteWorldToScreenRatio = exp(discreteWorldToScreenRatio);
|
|
55
55
|
|
|
56
|
-
vec2 uvOffset = mod(uvCellOrigin * discreteWorldToScreenRatio, ${
|
|
56
|
+
vec2 uvOffset = mod(uvCellOrigin * discreteWorldToScreenRatio, ${s.float(b)});
|
|
57
57
|
return uvOffset + (uv * discreteWorldToScreenRatio);
|
|
58
58
|
}
|
|
59
|
-
`),V.main.add(
|
|
59
|
+
`),V.main.add(s`
|
|
60
60
|
vuv = scaledUV();
|
|
61
61
|
vpos = position;
|
|
62
|
-
forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
|
|
63
62
|
forwardVertexColor();
|
|
64
63
|
forwardObjectAndLayerIdColor();
|
|
65
|
-
${
|
|
64
|
+
${x.hasVertexColors?"vColor *= uColor;":x.hasVVColor?s`vColor = uColor * interpolateVVColor(${A});`:"vColor = uColor;"}
|
|
66
65
|
gl_Position = transformPosition(proj, view, vpos);
|
|
67
|
-
`),
|
|
68
|
-
const float lineWidth = ${
|
|
69
|
-
const float spacing = ${
|
|
70
|
-
const float spacingINV = ${
|
|
66
|
+
`),T.include(i),x.draped&&T.uniforms.add(new d("texelSize",e=>1/e.camera.pixelRatio)),R||(T.code.add(s`
|
|
67
|
+
const float lineWidth = ${s.float(h)};
|
|
68
|
+
const float spacing = ${s.float(b)};
|
|
69
|
+
const float spacingINV = ${s.float(1/b)};
|
|
71
70
|
|
|
72
71
|
float coverage(float p, float txlSize) {
|
|
73
72
|
p = mod(p, spacing);
|
|
@@ -83,7 +82,7 @@ return rayOrigin + t * rayDir;
|
|
|
83
82
|
|
|
84
83
|
return coverage / txlSize;
|
|
85
84
|
}
|
|
86
|
-
`),
|
|
85
|
+
`),x.draped||T.code.add(s`const int maxSamples = 5;
|
|
87
86
|
float sampleAA(float p) {
|
|
88
87
|
vec2 dxdy = abs(vec2(dFdx(p), dFdy(p)));
|
|
89
88
|
float fwidth = dxdy.x + dxdy.y;
|
|
@@ -104,10 +103,9 @@ accumulator += coverage(p + step.x * dxdy.x + step.y * dxdy.y, fwidth);
|
|
|
104
103
|
}
|
|
105
104
|
accumulator /= float(samples.x * samples.y);
|
|
106
105
|
return accumulator;
|
|
107
|
-
}`)),
|
|
106
|
+
}`)),T.main.add(s`
|
|
108
107
|
discardBySlice(vpos);
|
|
109
|
-
discardByTerrainDepth();
|
|
110
108
|
vec4 color = vColor;
|
|
111
|
-
${
|
|
109
|
+
${v(!R,s`color.a *= ${y(x)};`)}
|
|
112
110
|
outputColorHighlightOLID(applySlice(color, vpos), color.rgb);
|
|
113
|
-
`),
|
|
111
|
+
`),C}function y(e){function o(o){return e.draped?s`coverage(vuv.${o}, texelSize)`:s`sampleAA(vuv.${o})`}switch(e.style){case 3:case 0:return o("y");case 4:case 1:return o("x");case 5:case 2:return s`1.0 - (1.0 - ${o("x")}) * (1.0 - ${o("y")})`;default:return"0.0"}}const S=Object.freeze(Object.defineProperty({__proto__:null,build:x},Symbol.toStringTag,{value:"Module"}));export{S as P,x as b};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColor as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstanceColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstanceColor.glsl.js";import{InstancedDoublePrecision as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{MaskedColorDefinition as t,CreateMaskedFromNaNColor as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/MaskedColor.glsl.js";import{NormalAttribute as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{SymbolColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VerticalOffset as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as v}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{EvaluateAmbientOcclusion as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as
|
|
2
|
+
import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColor as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstanceColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstanceColor.glsl.js";import{InstancedDoublePrecision as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{MaskedColorDefinition as t,CreateMaskedFromNaNColor as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/MaskedColor.glsl.js";import{NormalAttribute as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{SymbolColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VerticalOffset as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as v}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{EvaluateAmbientOcclusion as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as p,addAmbientBoostFactor as w,addLightingGlobalFactor as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as f,addMainLightIntensity as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PhysicallyBasedRendering as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PhysicallyBasedRenderingParameters as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapPassFragment as C,ReadShadowMapDrawFragment as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{VisualVariables as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as M}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{MixExternalColor as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js";import{addProjViewLocalOrigin as N,addCameraPosition as P}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as S}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as E}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as F,If as V}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as D}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{SnowCover as I}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{colorMixModes as $}from"../views/3d/webgl-engine/materials/internal/MaterialUtil.js";import{alphaCutoff as k}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as R}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as T}from"../views/webgl/ShaderBuilder.js";function B(B){const _=new T,{attributes:U,vertex:z,fragment:W,varyings:H}=_,{output:G,offsetBackfaces:q,pbrMode:J,snowCover:K,spherical:Q}=B,X=1===J||2===J;if(N(z,B),U.add("position","vec3"),z.inputs.add("position",()=>"position"),H.add("vpos","vec3",{invariant:!0}),_.include(j,B),_.include(l,B),_.include(m,B),!o(G))return _.include(v,B),_;P(_.vertex,B),_.include(n,B),_.include(i),q&&_.include(e),H.add("vNormalWorld","vec3"),H.add("localvpos","vec3",{invariant:!0}),_.include(c,B),_.include(d,B),_.include(a,B),_.include(g,B),z.include(t),z.include(s),z.uniforms.add(new A("externalColor",e=>e.externalColor,{supportsNaN:!0})),H.add("vcolorExt","vec4"),_.include(B.instancedDoublePrecision?C:L,B),z.include(k),z.main.add(F`
|
|
3
3
|
forwardVertexColor();
|
|
4
4
|
|
|
5
5
|
MaskedColor maskedColorExt =
|
|
@@ -17,16 +17,14 @@ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.
|
|
|
17
17
|
vpos = addVerticalOffset(vpos, localOrigin);
|
|
18
18
|
vec4 basePosition = transformPosition(proj, view, vpos);
|
|
19
19
|
|
|
20
|
-
forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
|
|
21
20
|
forwardTextureCoordinates();
|
|
22
21
|
forwardLinearDepthToReadShadowMap();
|
|
23
22
|
gl_Position = alphaCut ? vec4(1e38, 1e38, 1e38, 1.0) :
|
|
24
|
-
${V(
|
|
25
|
-
`);const{hasColorTexture:
|
|
23
|
+
${V(q,"offsetBackfacingClipPosition(basePosition, vpos, vNormalWorld, cameraPosition);","basePosition;")}
|
|
24
|
+
`);const{hasColorTexture:Y,hasColorTextureTransform:Z}=B;return W.include(p,B),W.include(b,B),_.include(M,B),W.include(r,B),_.include(R,B),P(W,B),f(W),w(W),u(W),W.uniforms.add(z.uniforms.get("localOrigin"),z.uniforms.get("view"),new S("ambient",e=>e.ambient),new S("diffuse",e=>e.diffuse),new E("opacity",e=>e.opacity),new E("layerOpacity",e=>e.layerOpacity)),Y&&W.uniforms.add(new D("tex",e=>e.texture)),_.include(x,B),W.include(y,B),W.include(O),W.include(I,B),h(W),W.main.add(F`
|
|
26
25
|
discardBySlice(vpos);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
${V(Z,`${V(_.textureAlphaPremultiplied,"texColor.rgb /= texColor.a;")}\n discardOrAdjustAlpha(texColor);`)}
|
|
26
|
+
vec4 texColor = ${Y?`texture(tex, ${Z?"colorUV":"vuv0"})`:" vec4(1.0)"};
|
|
27
|
+
${V(Y,`${V(B.textureAlphaPremultiplied,"texColor.rgb /= texColor.a;")}\n discardOrAdjustAlpha(texColor);`)}
|
|
30
28
|
vec3 viewDirection = normalize(vpos - cameraPosition);
|
|
31
29
|
applyPBRFactors();
|
|
32
30
|
float ssao = evaluateAmbientOcclusionInverse();
|
|
@@ -36,14 +34,14 @@ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.
|
|
|
36
34
|
vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
|
|
37
35
|
float shadow = readShadow(additionalAmbientScale, vpos);
|
|
38
36
|
vec3 matColor = max(ambient, diffuse);
|
|
39
|
-
${
|
|
37
|
+
${B.hasVertexColors?F`vec3 albedo = mixExternalColor(vColor.rgb * matColor, texColor.rgb, vcolorExt.rgb, colorMixMode);
|
|
40
38
|
float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, opacityMixMode);`:F`vec3 albedo = mixExternalColor(matColor, texColor.rgb, vcolorExt.rgb, colorMixMode);
|
|
41
39
|
float opacity_ = layerOpacity * mixExternalOpacity(opacity, texColor.a, vcolorExt.a, opacityMixMode);`}
|
|
42
40
|
|
|
43
41
|
vec3 shadingNormal = normalize(vNormalWorld);
|
|
44
|
-
vec3 groundNormal = ${
|
|
42
|
+
vec3 groundNormal = ${Q?"normalize(vpos + localOrigin)":"vec3(0.0, 0.0, 1.0)"};
|
|
45
43
|
|
|
46
|
-
${V(
|
|
44
|
+
${V(K,"vec3 faceNormal = screenDerivativeNormal(vpos);\n float snow = getRealisticTreeSnow(faceNormal, shadingNormal, groundNormal);\n albedo = mix(albedo, vec3(1), snow);")}
|
|
47
45
|
|
|
48
46
|
${F`albedo *= 1.2;
|
|
49
47
|
vec3 viewForward = vec3(view[0][2], view[1][2], view[2][2]);
|
|
@@ -53,8 +51,8 @@ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.
|
|
|
53
51
|
float backLightFactor = 0.5 * treeRadialFalloff * alignmentLightView * transmittance * (1.0 - shadow);
|
|
54
52
|
additionalLight += backLightFactor * mainLightIntensity;`}
|
|
55
53
|
|
|
56
|
-
${
|
|
57
|
-
${V(
|
|
54
|
+
${X?F`float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];
|
|
55
|
+
${V(K,"mrr = applySnowToMRR(mrr, snow);")}
|
|
58
56
|
vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, viewDirection, groundNormal, mrr, additionalAmbientIrradiance);`:F`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
|
|
59
57
|
vec4 finalColor = vec4(shadedColor, opacity_);
|
|
60
|
-
outputColorHighlightOLID(applySlice(finalColor, vpos), albedo ${V(
|
|
58
|
+
outputColorHighlightOLID(applySlice(finalColor, vpos), albedo ${V(K,", 1.0")});`),_}const _=Object.freeze(Object.defineProperty({__proto__:null,build:B},Symbol.toStringTag,{value:"Module"}));export{_ as R,B as b};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as n,computePixelSize as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{
|
|
2
|
+
import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as n,computePixelSize as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as d,NoPerspectiveRead as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as c,addPixelRatio as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as x,If as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as D}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{alphaCutoff as w}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{AnimatedLine as L}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOLID as b}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as y}from"../views/webgl/ShaderBuilder.js";const z=1;function P(P){const j=new y,{attributes:C,varyings:W,vertex:R,fragment:F}=j,{applyMarkerOffset:A,draped:V,output:T,capType:E,stippleEnabled:N,falloffEnabled:O,roundJoins:M,wireframe:$,innerColorEnabled:_,hasAnimation:k,hasScreenSizePerspective:I,worldSizedImagePattern:B}=P;R.inputs.add("position",()=>"position"),F.include(a),j.include(t,P),j.include(n,P),j.include(i,P),j.include(L,P);const H=A&&!V;H&&(R.uniforms.add(new u("markerScale",e=>e.markerScale)),j.include(r,{space:2,hasScreenSizePerspective:I})),c(R,P),R.uniforms.add(new D("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new v("nearFar",e=>e.camera.nearFar),new u("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new f("viewport",e=>e.camera.fullViewport)),R.constants.add("LARGE_HALF_FLOAT","float",65500),C.add("position","vec3"),C.add("previousDelta","vec4"),C.add("nextDelta","vec4"),C.add("lineParameters","vec2"),C.add("u0","float"),W.add("vColor","vec4"),W.add("vpos","vec3",{invariant:!0}),W.add("vLineDistance","float"),W.add("vLineWidth","float");const J=N;J&&W.add("vLineSizeInv","float");const U=2===E,Z=N&&U,G=O||Z;G&&W.add("vLineDistanceNorm","float"),U&&(W.add("vSegmentSDF","float"),W.add("vReverseSegmentSDF","float")),R.code.add(x`vec3 perpendicular(vec3 v) {
|
|
3
3
|
return vec3(v.y, -v.x, 0.0);
|
|
4
4
|
}
|
|
5
5
|
float interp(float ncp, vec4 a, vec4 b) {
|
|
@@ -10,12 +10,12 @@ float s = sin(a);
|
|
|
10
10
|
float c = cos(a);
|
|
11
11
|
mat2 m = mat2(c, -s, s, c);
|
|
12
12
|
return vec3(m * v.xy, v.z);
|
|
13
|
-
}`),
|
|
13
|
+
}`),R.code.add(x`vec4 projectAndScale(vec4 pos) {
|
|
14
14
|
vec4 posNdc = proj * pos;
|
|
15
15
|
posNdc.xy *= viewport.zw / posNdc.w;
|
|
16
16
|
posNdc.z /= posNdc.w;
|
|
17
17
|
return posNdc;
|
|
18
|
-
}`),
|
|
18
|
+
}`),R.code.add(x`void clip(
|
|
19
19
|
inout vec4 pos,
|
|
20
20
|
inout vec4 prev,
|
|
21
21
|
inout vec4 next,
|
|
@@ -46,7 +46,7 @@ if (next.z > -nearFar[0]) {
|
|
|
46
46
|
next = mix(next, pos, interp(vnp, next, pos));
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
}`),
|
|
49
|
+
}`),m(R),R.constants.add("aaWidth","float",N?0:1).main.add(x`
|
|
50
50
|
// unpack values from vertex type
|
|
51
51
|
bool isStartVertex = abs(abs(lineParameters.y) - 3.0) == 1.0;
|
|
52
52
|
vec3 prevPosition = position + previousDelta.xyz * previousDelta.w;
|
|
@@ -65,18 +65,16 @@ next = mix(next, pos, interp(vnp, next, pos));
|
|
|
65
65
|
vec4 next = view * vec4(nextPosition, 1.0);
|
|
66
66
|
|
|
67
67
|
bool isJoin = abs(lineParameters.y) < 3.0;
|
|
68
|
-
`),
|
|
68
|
+
`),H&&R.main.add(x`vec4 other = isStartVertex ? next : prev;
|
|
69
69
|
bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
|
|
70
70
|
if (!isJoin && !markersHidden) {
|
|
71
71
|
pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
72
|
-
}`),
|
|
72
|
+
}`),j.include(d),R.main.add(x`
|
|
73
73
|
clip(pos, prev, next, isStartVertex);
|
|
74
74
|
|
|
75
75
|
vec3 clippedPos = pos.xyz;
|
|
76
76
|
vec3 clippedCenter = mix(pos.xyz, isStartVertex ? next.xyz : prev.xyz, 0.5);
|
|
77
77
|
|
|
78
|
-
forwardViewPosDepth(pos.xyz);
|
|
79
|
-
|
|
80
78
|
pos = projectAndScale(pos);
|
|
81
79
|
next = projectAndScale(next);
|
|
82
80
|
prev = projectAndScale(prev);
|
|
@@ -87,18 +85,18 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
87
85
|
float leftLen = length(left);
|
|
88
86
|
float rightLen = length(right);
|
|
89
87
|
|
|
90
|
-
float lineSize = getSize(${
|
|
91
|
-
${
|
|
92
|
-
${
|
|
88
|
+
float lineSize = getSize(${S(I,"clippedPos")});
|
|
89
|
+
${S(N&&I,"float patternLineSize = getSize(clippedCenter);")}
|
|
90
|
+
${S(N&&!I,"float patternLineSize = lineSize;")}
|
|
93
91
|
|
|
94
|
-
${
|
|
92
|
+
${S(B,x`
|
|
95
93
|
lineSize += aaWidth;
|
|
96
94
|
float lineWidth = lineSize * pixelRatio * worldToScreenRatio;
|
|
97
95
|
if (lineWidth < 1.0) {
|
|
98
96
|
coverage = lineWidth;
|
|
99
97
|
lineWidth = 1.0;
|
|
100
98
|
}
|
|
101
|
-
`,
|
|
99
|
+
`,x`
|
|
102
100
|
if (lineSize < 1.0) {
|
|
103
101
|
coverage = lineSize; // convert sub-pixel coverage to alpha
|
|
104
102
|
lineSize = 1.0;
|
|
@@ -109,13 +107,13 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
|
109
107
|
`)}
|
|
110
108
|
|
|
111
109
|
vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
|
|
112
|
-
${
|
|
113
|
-
`);(
|
|
110
|
+
${J?x`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:""}
|
|
111
|
+
`);(N||U)&&R.main.add(x`
|
|
114
112
|
float isEndVertex = float(!isStartVertex);
|
|
115
113
|
vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
|
|
116
114
|
vec3 segment = mix(right, left, isEndVertex);
|
|
117
|
-
${
|
|
118
|
-
`),
|
|
115
|
+
${U?x`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:""}
|
|
116
|
+
`),R.main.add(x`left = (leftLen > 0.001) ? left/leftLen : vec3(0.0, 0.0, 0.0);
|
|
119
117
|
right = (rightLen > 0.001) ? right/rightLen : vec3(0.0, 0.0, 0.0);
|
|
120
118
|
vec3 segmentDirection = isStartVertex ? right : left;
|
|
121
119
|
vec3 capDisplacementDir = vec3(0.0, 0.0, 0.0);
|
|
@@ -133,18 +131,18 @@ displacementLen = min(displacementLen, min(leftLen, rightLen)/abs(nDotSeg));
|
|
|
133
131
|
}
|
|
134
132
|
}
|
|
135
133
|
float subdivisionFactor = lineParameters.x;
|
|
136
|
-
if (isOutside && (displacementLen > miterLimit * lineWidth)) {`)
|
|
134
|
+
if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),M?R.main.add(x`
|
|
137
135
|
vec3 startDir = leftLen < 0.001 ? right : left;
|
|
138
136
|
startDir = perpendicular(startDir);
|
|
139
137
|
|
|
140
138
|
vec3 endDir = rightLen < 0.001 ? left : right;
|
|
141
139
|
endDir = perpendicular(endDir);
|
|
142
140
|
|
|
143
|
-
float factor = ${
|
|
141
|
+
float factor = ${N?x`min(1.0, subdivisionFactor * ${x.float((z+2)/(z+1))})`:x`subdivisionFactor`};
|
|
144
142
|
|
|
145
143
|
float rotationAngle = acos(clamp(dot(startDir.xy, endDir.xy), -1.0, 1.0));
|
|
146
144
|
joinDisplacementDir = rotateZ(startDir, -sign(lineParameters.y) * factor * rotationAngle);
|
|
147
|
-
`):
|
|
145
|
+
`):R.main.add(x`if (leftLen < 0.001) {
|
|
148
146
|
joinDisplacementDir = right;
|
|
149
147
|
}
|
|
150
148
|
else if (rightLen < 0.001) {
|
|
@@ -153,7 +151,7 @@ joinDisplacementDir = left;
|
|
|
153
151
|
else {
|
|
154
152
|
joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? right : left;
|
|
155
153
|
}
|
|
156
|
-
joinDisplacementDir = perpendicular(joinDisplacementDir);`);const
|
|
154
|
+
joinDisplacementDir = perpendicular(joinDisplacementDir);`);const X=0!==E;return R.main.add(x`
|
|
157
155
|
displacementLen = lineWidth;
|
|
158
156
|
}
|
|
159
157
|
} else {
|
|
@@ -161,9 +159,9 @@ joinDisplacementDir = perpendicular(joinDisplacementDir);`);const Y=0!==N;return
|
|
|
161
159
|
joinDisplacementDir = isStartVertex ? right : left;
|
|
162
160
|
joinDisplacementDir = perpendicular(joinDisplacementDir);
|
|
163
161
|
|
|
164
|
-
${
|
|
162
|
+
${X?x`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`:""}
|
|
165
163
|
}
|
|
166
|
-
`),
|
|
164
|
+
`),R.main.add(x`
|
|
167
165
|
// Displacement (in pixels) caused by join/or cap
|
|
168
166
|
vec2 dposXY = (joinDisplacementDir.xy * sign(lineParameters.y) + capDisplacementDir.xy) * displacementLen;
|
|
169
167
|
|
|
@@ -178,22 +176,22 @@ joinDisplacementDir = perpendicular(joinDisplacementDir);`);const Y=0!==N;return
|
|
|
178
176
|
float lineDistNorm = noPerspectiveWrite(sign(lineParameters.y), pos.w);
|
|
179
177
|
|
|
180
178
|
vLineDistance = lineWidth * lineDistNorm;
|
|
181
|
-
${
|
|
179
|
+
${G?x`vLineDistanceNorm = lineDistNorm;`:""}
|
|
182
180
|
|
|
183
181
|
pos.xyz += dpos;
|
|
184
|
-
`),
|
|
182
|
+
`),U&&R.main.add(x`vec2 segmentDir = normalize(segment.xy);
|
|
185
183
|
vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
|
|
186
|
-
vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),
|
|
187
|
-
float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),
|
|
184
|
+
vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),N&&(V?R.uniforms.add(new h("worldToScreenRatio",e=>1/e.screenToPCSRatio)):R.main.add(x`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
|
|
185
|
+
float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),R.main.add(x`float segmentLengthScreenDouble = length(segment.xy);
|
|
188
186
|
float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
|
|
189
187
|
float discreteWorldToScreenRatio = discretizeWorldToScreenRatio(worldToScreenRatio);
|
|
190
188
|
float segmentLengthRender = length(mix(nextPosition - position, position - prevPosition, isEndVertex));
|
|
191
|
-
vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),
|
|
192
|
-
float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):
|
|
193
|
-
float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),
|
|
189
|
+
vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),V?R.main.add(x`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
|
|
190
|
+
float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):R.main.add(x`float startPseudoScreen = mix(u0, u0 - segmentLengthRender, isEndVertex) * discreteWorldToScreenRatio;
|
|
191
|
+
float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),R.uniforms.add(new u("stipplePatternPixelSize",e=>o(e))),R.main.add(x`
|
|
194
192
|
float patternLength = patternLineSize * stipplePatternPixelSize;
|
|
195
193
|
|
|
196
|
-
${
|
|
194
|
+
${S(B,x`
|
|
197
195
|
float uu = mix(u0, u0 - segmentLengthRender, isEndVertex);
|
|
198
196
|
vStippleDistanceLimits = vec2(uu, uu + segmentLengthRender);
|
|
199
197
|
vStipplePatternStretch = 1.0;
|
|
@@ -201,7 +199,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
|
|
|
201
199
|
// The v-coordinate used in case of an image pattern.
|
|
202
200
|
bool isLeft = sign(lineParameters.y) < 0.0;
|
|
203
201
|
vStippleV = isLeft ? 0.0 : 1.0;
|
|
204
|
-
`,
|
|
202
|
+
`,x`
|
|
205
203
|
// Compute the coordinates at both start and end of the line segment, because we need both to clamp to in the
|
|
206
204
|
// fragment shader
|
|
207
205
|
vStippleDistanceLimits = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);
|
|
@@ -232,7 +230,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
|
|
|
232
230
|
isStartVertex ?
|
|
233
231
|
vec2(-1e34, vStippleDistanceLimits.y) :
|
|
234
232
|
vec2(vStippleDistanceLimits.x, 1e34);
|
|
235
|
-
`)),
|
|
233
|
+
`)),R.main.add(x`
|
|
236
234
|
// Convert back into NDC
|
|
237
235
|
pos.xy = (pos.xy / viewport.zw) * pos.w;
|
|
238
236
|
pos.z = pos.z * pos.w;
|
|
@@ -240,43 +238,42 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
|
|
|
240
238
|
vColor = getColor();
|
|
241
239
|
vColor.a = noPerspectiveWrite(vColor.a * coverage, pos.w);
|
|
242
240
|
|
|
243
|
-
${
|
|
241
|
+
${$&&!V?"pos.z -= 0.001 * pos.w;":""}
|
|
244
242
|
|
|
245
243
|
// transform final position to camera space for slicing
|
|
246
244
|
vpos = (inverseProjectionMatrix * pos).xyz;
|
|
247
245
|
gl_Position = pos;
|
|
248
246
|
forwardObjectAndLayerIdColor();
|
|
249
|
-
}`),
|
|
250
|
-
discardByTerrainDepth();`),C.include(c),A.include(L),A.main.add(S`
|
|
247
|
+
}`),j.fragment.include(e,P),j.include(b,P),F.include(l),F.main.add(x`discardBySlice(vpos);`),j.include(p),F.include(w),F.main.add(x`
|
|
251
248
|
float lineWidth = noPerspectiveRead(vLineWidth);
|
|
252
249
|
float lineDistance = noPerspectiveRead(vLineDistance);
|
|
253
|
-
${
|
|
254
|
-
`)
|
|
250
|
+
${S(G,x`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
|
|
251
|
+
`),$?F.main.add(x`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(U&&F.main.add(x`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
|
|
255
252
|
vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
|
|
256
253
|
float fragmentRadius = length(fragmentPosition);
|
|
257
254
|
float fragmentCapSDF = (fragmentRadius - lineWidth) * 0.5;
|
|
258
255
|
float capCoverage = clamp(0.5 - fragmentCapSDF, 0.0, 1.0);
|
|
259
256
|
if (capCoverage < alphaCutoff) {
|
|
260
257
|
discard;
|
|
261
|
-
}`),
|
|
258
|
+
}`),Z?F.main.add(x`vec2 stipplePosition = vec2(
|
|
262
259
|
min(getStippleSDF() * 2.0 - 1.0, 0.0),
|
|
263
260
|
lineDistanceNorm
|
|
264
261
|
);
|
|
265
262
|
float stippleRadius = length(stipplePosition * lineWidth);
|
|
266
263
|
float stippleCapSDF = (stippleRadius - lineWidth) * 0.5;
|
|
267
264
|
float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
|
|
268
|
-
float stippleAlpha = step(alphaCutoff, stippleCoverage);`):
|
|
269
|
-
color.a = noPerspectiveRead(color.a);`),
|
|
265
|
+
float stippleAlpha = step(alphaCutoff, stippleCoverage);`):F.main.add(x`float stippleAlpha = getStippleAlpha(lineWidth);`),11!==T&&F.main.add(x`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),j.include(p),F.uniforms.add(new g("intrinsicColor",e=>e.color)).main.add(x`vec4 color = intrinsicColor * vColor;
|
|
266
|
+
color.a = noPerspectiveRead(color.a);`),_&&F.uniforms.add(new g("innerColor",e=>e.innerColor??e.color),new u("innerWidth",(e,i)=>e.innerWidth*i.camera.pixelRatio)).main.add(x`float distToInner = abs(lineDistance) - innerWidth;
|
|
270
267
|
float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
|
|
271
268
|
float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
|
|
272
|
-
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),
|
|
269
|
+
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),F.main.add(x`vec4 finalColor = blendStipple(color, stippleAlpha);`),O&&(F.uniforms.add(new u("falloff",e=>e.falloff)),F.main.add(x`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),N||F.main.add(x`float featherStartDistance = max(lineWidth - 2.0, 0.0);
|
|
273
270
|
float value = abs(lineDistance);
|
|
274
271
|
float feather = (value - featherStartDistance) / (lineWidth - featherStartDistance);
|
|
275
|
-
finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),
|
|
272
|
+
finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),k&&F.main.add(x`
|
|
276
273
|
finalColor = animate(finalColor);
|
|
277
274
|
|
|
278
|
-
${
|
|
275
|
+
${S(11!==T,x`
|
|
279
276
|
if (finalColor.a <= alphaCutoff) {
|
|
280
277
|
discard;
|
|
281
278
|
}`)}
|
|
282
|
-
`)),
|
|
279
|
+
`)),F.main.add(x`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),j}const j=Object.freeze(Object.defineProperty({__proto__:null,build:P,ribbonlineNumRoundJoinSubdivisions:z},Symbol.toStringTag,{value:"Module"}));export{j as R,P as b,z as r};
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{create as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSizeScaling as o}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js";import{SliceDraw as
|
|
3
|
-
vWorldPosition = ${e.screenSizeEnabled?
|
|
4
|
-
${
|
|
2
|
+
import{create as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSizeScaling as o}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js";import{SliceDraw as i}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as r}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as n,addViewNormal as s}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{glsl as t,If as c}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as g}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";function v(e){const v=new m;v.include(r),v.include(o,e),v.fragment.include(i,e),v.include(g,e);const{vertex:w,fragment:u}=v;return u.include(l),n(w,e),u.uniforms.add(new d("uColor",e=>e.color)),v.attributes.add("position","vec3"),v.varyings.add("vWorldPosition","vec3"),e.screenSizeEnabled&&v.attributes.add("offset","vec3"),e.shadingEnabled&&(s(w),v.attributes.add("normal","vec3"),v.varyings.add("vViewNormal","vec3"),u.uniforms.add(new a("shadingDirection",e=>e.shadingDirection)),u.uniforms.add(new d("shadedColor",e=>f(e.shadingTint,e.color)))),w.main.add(t`
|
|
3
|
+
vWorldPosition = ${e.screenSizeEnabled?t`screenSizeScaling(offset, position)`:t`position`};
|
|
4
|
+
${c(e.shadingEnabled,t`vec3 worldNormal = normal;
|
|
5
5
|
vViewNormal = (viewNormal * vec4(worldNormal, 1)).xyz;`)}
|
|
6
|
-
forwardViewPosDepth((view * vec4(vWorldPosition, 1.0)).xyz);
|
|
7
6
|
gl_Position = transformPosition(proj, view, vWorldPosition);
|
|
8
|
-
`),
|
|
7
|
+
`),u.main.add(t`
|
|
9
8
|
discardBySlice(vWorldPosition);
|
|
10
|
-
|
|
11
|
-
${e.shadingEnabled?
|
|
9
|
+
|
|
10
|
+
${e.shadingEnabled?t`vec3 viewNormalNorm = normalize(vViewNormal);
|
|
12
11
|
float shadingFactor = 1.0 - clamp(-dot(viewNormalNorm, shadingDirection), 0.0, 1.0);
|
|
13
|
-
vec4 finalColor = mix(uColor, shadedColor, shadingFactor);`:
|
|
14
|
-
outputColorHighlightOLID(applySlice(finalColor, vWorldPosition), finalColor.rgb);`),
|
|
12
|
+
vec4 finalColor = mix(uColor, shadedColor, shadingFactor);`:t`vec4 finalColor = uColor;`}
|
|
13
|
+
outputColorHighlightOLID(applySlice(finalColor, vWorldPosition), finalColor.rgb);`),v}function f(e,o){const i=1-e[3],r=e[3]+o[3]*i;return 0===r?(w[3]=r,w):(w[0]=(e[0]*e[3]+o[0]*o[3]*i)/r,w[1]=(e[1]*e[3]+o[1]*o[3]*i)/r,w[2]=(e[2]*e[3]+o[2]*o[3]*i)/r,w[3]=o[3],w)}const w=e(),u=Object.freeze(Object.defineProperty({__proto__:null,build:v},Symbol.toStringTag,{value:"Module"}));export{u as S,v as b};
|