@arcgis/core 5.2.0-next.33 → 5.2.0-next.35
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/Viewshed.d.ts +0 -5
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{39c994536ce6c1e5c956.js → 03350a56f840cffe5459.js} +1 -1
- package/assets/esri/core/workers/chunks/{2628136bf9f47d238a24.js → 050aba7089318e1c7d53.js} +1 -1
- package/assets/esri/core/workers/chunks/{dd5dddf7e422216d3806.js → 0a2f08298a3c932614f2.js} +1 -1
- package/assets/esri/core/workers/chunks/{a844c4e031e77db11478.js → 0df978697328b6453c94.js} +1 -1
- package/assets/esri/core/workers/chunks/0f8fcbd0650b6a924f75.js +1 -0
- package/assets/esri/core/workers/chunks/{83ae56c7fa8d84865605.js → 0f976bfb7db98c2c0e05.js} +1 -1
- package/assets/esri/core/workers/chunks/10510f76f8538c2dfb84.js +1 -0
- package/assets/esri/core/workers/chunks/{9508fa53da5f92a0ab70.js → 155940ef3d1888272d73.js} +1 -1
- package/assets/esri/core/workers/chunks/{3f63b14b53b5ca716e3a.js → 18c4c437ded8bfbd3305.js} +1 -1
- package/assets/esri/core/workers/chunks/{b60f24a6c777301803f4.js → 1958facb000b6c16bfe4.js} +1 -1
- package/assets/esri/core/workers/chunks/{1664434dc7a67c8ce453.js → 1ad5fcae6d6a9801cf58.js} +1 -1
- package/assets/esri/core/workers/chunks/{390fda094fa8695d98cf.js → 22c447fcc9a28afeb6e3.js} +1 -1
- package/assets/esri/core/workers/chunks/24aa98cb2021ddd789ce.js +1 -0
- package/assets/esri/core/workers/chunks/{7656900713e55036c3c1.js → 29542a3d7f3fa8d42380.js} +1 -1
- package/assets/esri/core/workers/chunks/{1e386475937e02b3f523.js → 2b669473aa2c7cfb63c7.js} +1 -1
- package/assets/esri/core/workers/chunks/{c8091e8fd7ca43a4490a.js → 2bb3494659609594c4ca.js} +1 -1
- package/assets/esri/core/workers/chunks/2c00f89030c7a4201033.js +2 -0
- package/assets/esri/core/workers/chunks/{b75a4753cea6544da8bb.js → 2c61bb25578f73ba49bc.js} +1 -1
- package/assets/esri/core/workers/chunks/2d92f0042facb55edcff.js +1 -0
- package/assets/esri/core/workers/chunks/2da797ae5af9d2ede42d.js +1 -0
- package/assets/esri/core/workers/chunks/{34eb22ee13df24271532.js → 2e495a28494c2351837b.js} +1 -1
- package/assets/esri/core/workers/chunks/{a0b78cbeb0e53107d819.js → 367a3031abbeff0c0090.js} +1 -1
- package/assets/esri/core/workers/chunks/{aba7a053015a9738d8a0.js → 368db1420b8520beae05.js} +1 -1
- package/assets/esri/core/workers/chunks/{92458803531fdfe1557a.js → 38a6a7c56c592f336a12.js} +1 -1
- package/assets/esri/core/workers/chunks/{c63b315c6b76b4860fc5.js → 39ff5b2a05a90e1cb214.js} +1 -1
- package/assets/esri/core/workers/chunks/{0a52373c4ba652e0ee0f.js → 3b914ca36e7e2b00cfe6.js} +1 -1
- package/assets/esri/core/workers/chunks/{f6afc597eaf2afa9a4a0.js → 3dd8145ef89f32920177.js} +1 -1
- package/assets/esri/core/workers/chunks/{b289c46ce2dc04d32e81.js → 3e8fa2a7a36881234479.js} +1 -1
- package/assets/esri/core/workers/chunks/406c7723e8db470822bf.js +1 -0
- package/assets/esri/core/workers/chunks/{5bf01e0eff8a78b65e9e.js → 4656a4bf430d7eed1465.js} +1 -1
- package/assets/esri/core/workers/chunks/{43ef6dee2e1d9ed7885e.js → 472ec242cd3070e6acfe.js} +1 -1
- package/assets/esri/core/workers/chunks/{1bbf5f5da5842b93f638.js → 4f08b69f4a33a114c5f7.js} +1 -1
- package/assets/esri/core/workers/chunks/{c60b4f2dd5fccdf362a7.js → 514ab968c0d75062e6ab.js} +1 -1
- package/assets/esri/core/workers/chunks/{ba1c4a8794ac55942e35.js → 51d7145f748b4865de7f.js} +1 -1
- package/assets/esri/core/workers/chunks/{2f40193d1b2e534c5226.js → 570a4725b2a4a19c5148.js} +1 -1
- package/assets/esri/core/workers/chunks/{1305690054214a9cf48d.js → 586ca90e46f5cbdfeece.js} +1 -1
- package/assets/esri/core/workers/chunks/595401947e74a0a67144.js +1 -0
- package/assets/esri/core/workers/chunks/{70cb825bb37f1977d2ab.js → 59c22bab85f9cdbb9948.js} +1 -1
- package/assets/esri/core/workers/chunks/{b624796ff4a9d4c406bf.js → 61efc7f5fab1c2b1f764.js} +1 -1
- package/assets/esri/core/workers/chunks/{c593539c2cce7a2b9d44.js → 6596b12bb286a0b45a68.js} +1 -1
- package/assets/esri/core/workers/chunks/{bb1fad01d9f070e7d795.js → 661f50cb97604453f942.js} +1 -1
- package/assets/esri/core/workers/chunks/{51a53011478e0cf96e0b.js → 6c02493a1c1deff49c7e.js} +1 -1
- package/assets/esri/core/workers/chunks/{7832d94f35b79e27ee51.js → 6c746ac4bd2e57b8cb41.js} +1 -1
- package/assets/esri/core/workers/chunks/{71f09e34d56c9fe5c307.js → 6d72a1bdc2664df62c4c.js} +1 -1
- package/assets/esri/core/workers/chunks/{4ea325c829d3b82854b1.js → 7085b4c655a19694da04.js} +1 -1
- package/assets/esri/core/workers/chunks/{9f3d37e5f42bf1529673.js → 71b672259bac2befd9c7.js} +1 -1
- package/assets/esri/core/workers/chunks/{a536904fe6f3b16fdbdc.js → 757982a73174aa7ab0d1.js} +1 -1
- package/assets/esri/core/workers/chunks/{d0321dd4b5b2d863eecd.js → 777b16b76db406c99c69.js} +1 -1
- package/assets/esri/core/workers/chunks/{32b5d2537feefe6e94a3.js → 7d65a8ec5e1f871b9321.js} +1 -1
- package/assets/esri/core/workers/chunks/{fe42fa2144691b9186fd.js → 828b64624c76156a6416.js} +1 -1
- package/assets/esri/core/workers/chunks/857532de88f21e8c3466.js +1 -0
- package/assets/esri/core/workers/chunks/85a280ee915010a8da3c.js +1 -0
- package/assets/esri/core/workers/chunks/{3d1e5bfd88771d4a0bf6.js → 866950e9ab96aebc6b32.js} +1 -1
- package/assets/esri/core/workers/chunks/{8c62e2dabd1f1e13d244.js → 86731e276b31453bc235.js} +1 -1
- package/assets/esri/core/workers/chunks/{25932fa010f9a32475c1.js → 88ec63501fa2f6fdadca.js} +1 -1
- package/assets/esri/core/workers/chunks/8a9b2efa0603e9fa4e8b.js +1 -0
- package/assets/esri/core/workers/chunks/{af3b060fdfa3b6174340.js → 8aa5bbf9a9b09815725a.js} +1 -1
- package/assets/esri/core/workers/chunks/{2353fbc1ff4481dcfb1f.js → 8b68a69ab8fb1679e7b2.js} +1 -1
- package/assets/esri/core/workers/chunks/{35b3ff25f5fe24fe15e2.js → 96860b6035e0b06672dd.js} +1 -1
- package/assets/esri/core/workers/chunks/{e2f33945d838183a2192.js → 98685bd149dee1d6dc99.js} +1 -1
- package/assets/esri/core/workers/chunks/{122892f365f5327d290c.js → 9de9cec5c644bc452294.js} +1 -1
- package/assets/esri/core/workers/chunks/{456b77b8f13933a75b68.js → 9fb0431b0628dcb53004.js} +54 -54
- package/assets/esri/core/workers/chunks/{940ebb13618d38c6b459.js → a2a688dd2ed4565e01ff.js} +1 -1
- package/assets/esri/core/workers/chunks/{47f21b65065558d583ca.js → a2e754df3215e8b00a8f.js} +1 -1
- package/assets/esri/core/workers/chunks/{f59b76fde2cbd17f64b3.js → a3ae7c41832c7a8b0570.js} +1 -1
- package/assets/esri/core/workers/chunks/{6dc60afb0c39bbb001a3.js → a3e86830460e52706a4d.js} +1 -1
- package/assets/esri/core/workers/chunks/{c030a974a63155f450e9.js → a58b8903ae17acf117d6.js} +1 -1
- package/assets/esri/core/workers/chunks/{c4a2ec2e5897300163ac.js → ab3d1c00ef514b61ce0b.js} +1 -1
- package/assets/esri/core/workers/chunks/{b324bdb9c74fc3f956db.js → add79af151e3eb560599.js} +1 -1
- package/assets/esri/core/workers/chunks/{3b3f91a61e3f29af1fb2.js → ae5363956b4467208e04.js} +1 -1
- package/assets/esri/core/workers/chunks/{38b69fba9ae4ccbae6b7.js → afaf6874a645854c3357.js} +1 -1
- package/assets/esri/core/workers/chunks/{36913f0f944a9eb82cd3.js → b24b7411a73d1da87c30.js} +1 -1
- package/assets/esri/core/workers/chunks/{a3393780655152102c45.js → b97b83159fec34f383af.js} +1 -1
- package/assets/esri/core/workers/chunks/{977e6f589bd266d6067d.js → bbcb213d20693fcad5be.js} +12 -12
- package/assets/esri/core/workers/chunks/{8ade399db21938822a7c.js → bec660ee2e7828f965e2.js} +1 -1
- package/assets/esri/core/workers/chunks/{6b56971783bf4c31a563.js → c19fe4f31e4ef84bbcf6.js} +1 -1
- package/assets/esri/core/workers/chunks/{5cccb8b06014ccef30f8.js → c228b058dd91bf0e1102.js} +1 -1
- package/assets/esri/core/workers/chunks/c2a02c33462bcdabd39d.js +1 -0
- package/assets/esri/core/workers/chunks/{cb30e8a66d6dcfebd439.js → cda2bae39135e5519d8c.js} +1 -1
- package/assets/esri/core/workers/chunks/{414691f7758c78e2a704.js → cfbbfa5edffa57bd3a8e.js} +1 -1
- package/assets/esri/core/workers/chunks/{de83c177f8a1234a5b2e.js → cffef41791f0cfa6c26c.js} +1 -1
- package/assets/esri/core/workers/chunks/d0217187aed8bb7038f4.js +1 -0
- package/assets/esri/core/workers/chunks/{70c94bcfa20453134037.js → d1928a8c86a8966e5582.js} +1 -1
- package/assets/esri/core/workers/chunks/{58e0e50b6c3abaa4798f.js → d26b1a9f47b4b2744c89.js} +1 -1
- package/assets/esri/core/workers/chunks/{2baee42e1797a709fe4b.js → d4a96f0402172787823a.js} +1 -1
- package/assets/esri/core/workers/chunks/d7e17df1c3675bf3633e.js +1 -0
- package/assets/esri/core/workers/chunks/dd785e595cd08b2d6284.js +1 -0
- package/assets/esri/core/workers/chunks/{bd260798b8de09a1eeb2.js → e3a4695c31d3f9d55213.js} +1 -1
- package/assets/esri/core/workers/chunks/{197b9f8483fad2258650.js → e6263e1983e703befe48.js} +1 -1
- package/assets/esri/core/workers/chunks/{6991ba1b204668e7d4da.js → e67a9f9298d63026e7f6.js} +1 -1
- package/assets/esri/core/workers/chunks/{4e803d12486c8de4c901.js → ee446250a40e5d89bb5a.js} +42 -42
- package/assets/esri/core/workers/chunks/{6f240fe78b299e6c4fcc.js → eeee7421f64a52074ff4.js} +1 -1
- package/assets/esri/core/workers/chunks/{1e109a521ca8772fdf04.js → eef7e0bee19c4258ba55.js} +1 -1
- package/assets/esri/core/workers/chunks/{49a45083a9a155614c1c.js → ef32e454012f3b0e3f77.js} +1 -1
- package/assets/esri/core/workers/chunks/{83ce38342796bd6d73ce.js → f137e544076482e348ad.js} +1 -1
- package/assets/esri/core/workers/chunks/{4ecc345c3732f7fc130f.js → f1f3fe9d2d96578f4f6b.js} +1 -1
- package/assets/esri/core/workers/chunks/{e181d0f5562878b3dc01.js → f72f38e7609756a7f8ea.js} +1 -1
- package/assets/esri/core/workers/chunks/{ef5d11581a98fb333ad2.js → f83e3ad67b60744afd6d.js} +1 -1
- package/assets/esri/layers/raster/formats/lerc-wasm.wasm +0 -0
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_lt.json +1 -1
- package/chunks/FocusAreaColor.glsl.js +1 -10
- package/chunks/GaussianSplatComposition.glsl.js +4 -4
- package/chunks/OITAddEmission.glsl.js +6 -0
- package/chunks/OITFilterOpaque.glsl.js +4 -0
- package/chunks/RibbonLine.glsl.js +22 -22
- package/chunks/lerc-wasm.js +1 -1
- package/config.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/form/elements/inputs/attachments/AttachmentInput.js +1 -1
- package/geometry/support/frustum.js +1 -1
- package/geometry/support/plane.js +1 -1
- package/geometry/support/triangle.js +1 -1
- package/kernel.js +1 -1
- package/layers/AnnotationFeatureLayer.d.ts +110 -67
- package/layers/CSVLayer.d.ts +144 -175
- package/layers/CatalogLayer.d.ts +129 -132
- package/layers/DimensionFeatureLayer.d.ts +106 -63
- package/layers/FeatureLayer.d.ts +77 -150
- package/layers/GeoJSONLayer.d.ts +111 -168
- package/layers/OrientedImageryLayer.d.ts +125 -79
- package/layers/ParquetLayer.d.ts +116 -75
- package/layers/SubtypeGroupLayer.d.ts +86 -111
- package/layers/WFSLayer.d.ts +157 -127
- package/layers/catalog/CatalogFootprintLayer.d.ts +142 -129
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/graphics/sources/support/QueryTask.js +1 -1
- package/layers/mixins/EditBusLayer.js +1 -1
- package/layers/pointCloudFilters/PointCloudBitfieldFilter.d.ts +1 -1
- package/layers/raster/datasets/pixelReader.js +1 -1
- package/layers/raster/functions/pixelUtils.js +1 -1
- package/layers/video/VideoController.js +1 -1
- package/package.json +2 -2
- package/popup/Features.d.ts +2 -2
- package/popup/Features.js +1 -1
- package/renderers/visualVariables/support/visualVariableUtils.js +1 -1
- package/support/revision.js +1 -1
- package/views/2d/engine/webgl/definitions.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/input/MapViewInputManager.js +1 -1
- package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
- package/views/2d/layers/support/annodime/virtualFields.js +1 -1
- package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
- package/views/3d/analysis/Viewshed/placementUtils.js +1 -1
- package/views/3d/analysis/Viewshed/types.d.ts +17 -0
- package/views/3d/analysis/ViewshedAnalysisView3D.d.ts +3 -14
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
- package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/interactive/manipulators/RotateManipulator.js +1 -1
- package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
- package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
- package/views/3d/terrain/PatchRenderData.js +1 -1
- package/views/3d/webgl/ManagedFBO.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/emissionFilter.glsl.js +2 -0
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaColor.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaVisualization.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITAddEmission.glsl.js +2 -0
- package/views/3d/webgl-engine/effects/transparency/OITAddEmissionTechnique.js +2 -0
- package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITFilterOpaque.glsl.js +2 -0
- package/views/3d/webgl-engine/effects/transparency/OITFilterOpaqueTechnique.js +2 -0
- package/views/3d/webgl-engine/lib/Intersector.js +1 -1
- package/views/3d/webgl-engine/lib/Octree.js +1 -1
- package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
- package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBufferView.js +1 -1
- package/views/3d/webgl-engine/lib/intersectorUtils.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/lib/verticalOffsetUtils.js +1 -1
- package/views/3d/webgl-engine/materials/CheckerBoardMaterial.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/NativeLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.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/TriangleMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/intersectWithPolygonOffset.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatComposition.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +3 -3
- package/views/3d/webgl-engine/shaders/RibbonLineLayouts.js +1 -1
- package/views/input/BrowserEventSource.js +1 -1
- package/views/input/handlers/PreventTouchSelection.js +2 -0
- package/views/layers/FeatureLikeLayerView.d.ts +9 -64
- package/views/layers/GraphicsLayerView.d.ts +1 -1
- package/views/layers/ViewshedLayerView.d.ts +0 -10
- package/views/layers/types.d.ts +8 -1
- package/views/support/LayerViewManager.js +1 -1
- package/widgets/BatchAttributeForm/VisibleElements.js +1 -1
- package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
- package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
- package/widgets/Editor/VisibleElements.d.ts +14 -1
- package/widgets/FeatureForm.js +1 -1
- package/assets/esri/core/workers/chunks/209460f8aae3f9f8c9b8.js +0 -1
- package/assets/esri/core/workers/chunks/2f02880a7f081eb210cd.js +0 -1
- package/assets/esri/core/workers/chunks/4be31fcc5482a2526d2b.js +0 -1
- package/assets/esri/core/workers/chunks/58acc18b92533166135d.js +0 -1
- package/assets/esri/core/workers/chunks/6162f6735ea4622e54d8.js +0 -1
- package/assets/esri/core/workers/chunks/718d2d430c1a5a940b83.js +0 -1
- package/assets/esri/core/workers/chunks/a6379a8df8c08b729b9c.js +0 -1
- package/assets/esri/core/workers/chunks/b0253fe7b3529bc22270.js +0 -1
- package/assets/esri/core/workers/chunks/bd0829eb79efff5b7223.js +0 -1
- package/assets/esri/core/workers/chunks/c193b4a175a544c4fcd6.js +0 -1
- package/assets/esri/core/workers/chunks/d28169816c768d55aa09.js +0 -1
- package/assets/esri/core/workers/chunks/d7c0ab622caf495dbcef.js +0 -1
- package/assets/esri/core/workers/chunks/f10a339b16d84b650012.js +0 -2
- package/assets/esri/core/workers/chunks/f69d3ff8a69c1985bca3.js +0 -1
- package/assets/esri/core/workers/chunks/f847a4846c427f671455.js +0 -1
- package/chunks/OITBlendEmission.glsl.js +0 -6
- package/chunks/OITDimOpaque.glsl.js +0 -4
- package/views/2d/layers/support/annodime/fields.js +0 -2
- package/views/3d/webgl-engine/core/shaderLibrary/util/EmissionDimming.glsl.js +0 -2
- package/views/3d/webgl-engine/effects/transparency/OITBlendEmission.glsl.js +0 -2
- package/views/3d/webgl-engine/effects/transparency/OITBlendEmissionTechnique.js +0 -2
- package/views/3d/webgl-engine/effects/transparency/OITDimOpaque.glsl.js +0 -2
- package/views/3d/webgl-engine/effects/transparency/OITDimOpaqueTechnique.js +0 -2
- /package/assets/esri/core/workers/chunks/{f10a339b16d84b650012.js.LICENSE.txt → 2c00f89030c7a4201033.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../../../core/Logger.js";import{clamp as
|
|
2
|
+
import e from"../../../../core/Logger.js";import{clamp as r}from"../../../../core/mathUtils.js";import{createRenderScreenPointArray3 as t,createScreenPointArray as o}from"../../../../core/screenUtils.js";import{copy as i}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{set as s,subtract as n,dot as a,scale as c,add as l,copy as m,length as u,distance as f}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as g}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{distance2 as h,fromPoints as d,closestLineSegmentPoint as j,projectPoint as b,create as y}from"../../../../geometry/support/lineSegment.js";import{fromPoints as v,signedDistance as x,getNormal as L,create as S}from"../../../../geometry/support/plane.js";import{isColorHighlightOrOLID as w}from"../core/shaderLibrary/ShaderOutput.js";import M from"../lib/GLMaterial.js";import{Material as T,MaterialParameters as P}from"../lib/Material.js";import{projectWorldLineSegmentToRenderScreen as C,screenPolygonIntersectsBufferedSegment as R}from"../lib/screenPolygonOverlapUtils.js";import{Hit as V}from"../lib/screenPolygonTriangleIntersections.js";import{isTranslationMatrix as _}from"../lib/Util.js";import{DefaultBufferWriter as A}from"./DefaultBufferWriter.js";import{PositionColorLayout as N,PositionLayout as U}from"./DefaultLayouts.js";import{NativeLineTechnique as E}from"../shaders/NativeLineTechnique.js";import{NativeLineTechniqueConfiguration as O}from"../shaders/NativeLineTechniqueConfiguration.js";import{alphaCutoff as q}from"../../../../webscene/support/AlphaCutoff.js";class B extends T{constructor(e){super(e,X),this._configuration=new O,this.produces=new Map([[2,e=>w(e)]])}updateConfiguration(e){super.updateConfiguration(e),this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasVertexColors=this.parameters.hasVertexColors,this._configuration.transparent=this.parameters.color[3]<1||this.parameters.width<1,this._configuration.hasOccludees=e.hasOccludees}get visible(){return this.parameters.color[3]>=q}intersectRay(r,t,o,p,g,b){const{options:y,camera:S,rayBegin:w,rayEnd:M}=o;if(!y.selectionMode||!r.visible||!S)return;if(!_(t))return void e.getLogger("esri.views.3d.webgl-engine.materials.NativeLineMaterial").error("intersection assumes a translation-only matrix");const T=r.attributes.get("position").data,P=Z;i(P,o.point);const C=ae*S.pixelRatio;s(re[0],P[0]-C,P[1]+C,0),s(re[1],P[0]+C,P[1]+C,0),s(re[2],P[0]+C,P[1]-C,0),s(re[3],P[0]-C,P[1]-C,0);for(let e=0;e<4;e++)if(!S.unprojectFromRenderScreen(re[e],te[e]))return;v(S.eye,te[0],te[1],oe),v(S.eye,te[1],te[2],ie),v(S.eye,te[2],te[3],se),v(S.eye,te[3],te[0],ne);let R=Number.MAX_VALUE,V=0;for(const e of W(F,G,T,t)){if(x(oe,F)<0&&x(oe,G)<0||x(ie,F)<0&&x(ie,G)<0||x(se,F)<0&&x(se,G)<0||x(ne,F)<0&&x(ne,G)<0)continue;const r=S.projectToRenderScreen(F,k),t=S.projectToRenderScreen(G,H);if(null==r||null==t)continue;if(r[2]<0&&t[2]>0){n(I,F,G);const e=S.frustum,t=-x(e[4],F)/a(I,L(e[4]));if(c(I,I,t),l(F,F,I),!S.projectToRenderScreen(F,r))continue}else if(r[2]>0&&t[2]<0){n(I,G,F);const e=S.frustum,r=-x(e[4],G)/a(I,L(e[4]));if(c(I,I,r),l(G,G,I),!S.projectToRenderScreen(G,t))continue}else if(r[2]<0&&t[2]<0)continue;r[2]=0,t[2]=0;const o=h(d(r,t,Q),P);o<R&&(R=o,m(J,F),m(K,G),V=e)}if(R<C*C){let e=Number.MAX_VALUE;if(j(d(J,K,Q),d(w,M,Y),z)){n(z,z,w);const r=u(z);c(z,z,1/r),e=r/f(w,M)}b(e,z,V)}}intersectScreenPolygon(r,t,o,i){const{options:s,camera:n,screenPolygonPrimitiveProcessor:a}=o;if(!s.selectionMode||!r.visible)return null;if(!_(t))return e.getLogger("esri.views.3d.webgl-engine.materials.NativeLineMaterial").error("intersection assumes a translation-only matrix"),null;const c=r.attributes.get("position").data,l=new V;for(const e of W(F,G,c,t))for(const[r,t]of a.processLineSegment(ce,F,G))C(n,r,t,k,H)&&(n.renderToScreen(k,$),n.renderToScreen(H,ee),R(i,$,ee,ae)&&(b(d(r,t,Y),n.eye,Z),l.updateIfCloserFromValues(f(n.eye,Z),e,Z,null)));return l}intersectRayDraped(e,t,o,i,s){if(!t.options.selectionMode)return;const n=e.attributes.get("position").data,a=e.attributes.get("size"),c=a?a.data[0]:0,l=o[0],m=o[1],u=((c+1)/2+4)*e.screenToWorldRatio;let f=Number.MAX_VALUE,p=0;for(let g=0;g<n.length-5;g+=3){const e=n[g],t=n[g+1],o=l-e,i=m-t,s=n[g+3]-e,a=n[g+4]-t,c=r((s*o+a*i)/(s*s+a*a),0,1),u=s*c-o,h=a*c-i,d=u*u+h*h;d<f&&(f=d,p=g/3)}f<u*u&&i(s.distance,s.normal,p)}createGLMaterial(e){return new D(e)}createBufferWriter(){const e=this.parameters.hasVertexColors?N:U;return new A(e)}}class D extends M{beginSlot(e){return this.getTechnique(E,e)}}function*W(e,r,t,o){for(let i=0;i<t.length-5;i+=3)e[0]=t[i]+o[12],e[1]=t[i+1]+o[13],e[2]=t[i+2]+o[14],r[0]=t[i+3]+o[12],r[1]=t[i+4]+o[13],r[2]=t[i+5]+o[14],yield i/3}class X extends P{constructor(){super(...arguments),this.color=g,this.hasVertexColors=!1,this.hasSlicePlane=!1,this.width=1}}const F=p(),G=p(),I=p(),z=p(),k=t(),H=t(),J=p(),K=p(),Q=y(),Y=y(),Z=p(),$=o(),ee=o(),re=[t(),t(),t(),t()],te=[p(),p(),p(),p()],oe=S(),ie=S(),se=S(),ne=S(),ae=2,ce=[p(),p()];export{B as NativeLineMaterial,X as Parameters};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{clamp as t}from"../../../../core/mathUtils.js";import{clone as e}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{fromValues as i}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as r}from"../../../../geometry/support/aaBoundingBox.js";import{BufferViewUint32 as s,BufferViewVec3f as
|
|
2
|
+
import{clamp as t}from"../../../../core/mathUtils.js";import{clone as e}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{fromValues as i}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as r}from"../../../../geometry/support/aaBoundingBox.js";import{BufferViewUint32 as s,BufferViewVec3f as o,BufferViewVec2Snorm16 as a,BufferViewSnorm16 as n,BufferViewFloat16 as c,BufferViewFloat as h}from"../../../../geometry/support/buffer/BufferView.js";import{maxPathFrameIndex as u}from"../../layers/graphics/Graphics3DPathSymbolLayerConstants.js";import{isShadowLike as p,is3DGeometry as f,isColor as l}from"../core/shaderLibrary/ShaderOutput.js";import m from"../lib/GLMaterial.js";import{isPathGeometry as g}from"../lib/PathGeometry.js";import{offsetPathVertexInfoFrameIndex as b}from"../lib/PathVertexInfo.js";import{MeshIntersectionOptions as d,intersectAabbInvDir as _}from"../lib/RayIntersections.js";import{intersectTriangleRangeScreenPolygon as y}from"../lib/screenPolygonTriangleIntersections.js";import{assert as S}from"../lib/Util.js";import{applyPolygonOffsetToHit as x}from"./intersectWithPolygonOffset.js";import{getLayout as z,getTextureLayout as V}from"./PathLayouts.js";import{PathPassParameters as j,PathTechnique as w}from"./PathTechnique.js";import{PathTechniqueConfiguration as F}from"./PathTechniqueConfiguration.js";import{TriangleMaterial as v}from"./TriangleMaterial.js";import{writeAttributes as R,writePosition as P,writeBufferVec2 as M,writeBufferInt16 as C,writeBufferFloat16 as A,writeBufferFloat as B}from"./internal/bufferWriterUtils.js";import{hasShadowHighlights as O}from"../shaders/ReceiveShadowsConfiguration.js";import{alphaCutoff as T}from"../../../../webscene/support/AlphaCutoff.js";class I extends v{constructor(t,e){super(t,D),this.supportsEdges=!0,this._pp0=i(0,0,1),this._pp1=i(0,0,0),this.produces=new Map([[2,t=>(this.parameters.castShadows&&p(t)||f(t))&&!this.transparent],[4,t=>(this.parameters.castShadows&&p(t)||f(t))&&this.transparent]]),this._configuration=new F(e.spherical)}get emissions(){return this.parameters.emissiveStrength>0?this.transparent?2:1:0}updateConfiguration(t){super.updateConfiguration(t),this._configuration.hasVVSize=this.parameters.hasVVSize,this._configuration.hasVVColor=this.parameters.hasVVColor,this._configuration.hasVVOpacity=this.parameters.hasVVOpacity,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.transparent=this.transparent,this._configuration.hasOccludees=t.hasOccludees,this._configuration.cullFace=this.parameters.hasSlicePlane?0:this.parameters.cullFace,this._configuration.offsetBackfaces=this.transparent,l(t.output)?(this._configuration.receiveShadows=t.shadowMap.enabled,this._configuration.hasShadowHighlights=O(this._configuration,t),this._configuration.receiveAmbientOcclusion=null!=t.ssao):this._configuration.receiveShadows=this._configuration.hasShadowHighlights=this._configuration.receiveAmbientOcclusion=!1,this._configuration.pbrMode=this.parameters.usePBR?2:0,this._configuration.emissionSource=this.parameters.usePBR?1:0,this._configuration.snowCover=t.snowCover>0,this._configuration.upVectorAlignment=this.parameters.upVectorAlignment,this._configuration.pathCapType=this.parameters.pathCapType,this._configuration.pathProfileType=this.parameters.profile.type}isVisibleForOutput(t){return 5!==t&&7!==t&&6!==t||this.parameters.castShadows}get visible(){return this.parameters.opacity>=T}intersectRay(t,e,i,r,s,o){this._intersectRay(t,i,r,s,o)}intersectRayDraped(t,e,i,r){return this._pp0[0]=this._pp1[0]=i[0],this._pp0[1]=this._pp1[1]=i[1],this._intersectRay(t,e,this._pp0,this._pp1,r)}intersectScreenPolygon(t,e,i,r){const s=L(t);return null==s?null:x(q(s,this._computeSize(s),e,i,r),this._configuration,i.camera.eye)}_intersectRay(t,e,i,s,o){const a=L(t);if(null==a)return;const n=this._computeSize(a),c=new d(e.tolerance,!1,e.options.normalRequired),h=Math.max(n[0],n[1]),u=t.boundingInfo;if(null==u)return void k(a,n,i,s,c,o);const p=r(u.bbMin[0]-h,u.bbMin[1]-h,u.bbMin[2]-h,u.bbMax[0]+h,u.bbMax[1]+h,u.bbMax[2]+h),f=[s[0]-i[0],s[1]-i[1],s[2]-i[2]],l=Math.sqrt(f[0]*f[0]+f[1]*f[1]+f[2]*f[2]),m=[l/f[0],l/f[1],l/f[2]];_(p,i,m,e.tolerance)&&k(a,n,i,s,c,o)}_computeSize(i){const r=e(this.parameters.size);if(this.parameters.vvSize){const{offset:e,factor:s,minSize:o,maxSize:a,fallback:n}=this.parameters.vvSize,c=i.sizeAttributeValue;Number.isNaN(c)?(r[0]*=n[0],r[1]*=n[2]):(r[0]*=t(e[0]+c*s[0],o[0],a[0]),r[1]*=t(e[2]+c*s[2],o[2],a[2]))}return r}createBufferWriter(){return new G(z(),V(this.parameters))}createGLMaterial(t){return new U(t)}get transparent(){const{parameters:t}=this;return t.drivenOpacity||t.opacity<1}}class U extends m{beginSlot(t){return this.getTechnique(w,t)}}function k({baked:t},e,i,r,s,o){t.size&&t.size[0]===e[0]&&t.size[1]===e[1]||t.bake(e),t.intersect(i,r,s,o)}function q({baked:t},e,i,r,s){t.size&&t.size[0]===e[0]&&t.size[1]===e[1]||t.bake(e);const{vertexIndices:o}=t.builder;return y(r,i,s,0,o.length/3,o,t.positions,3,null)}function L(t){const e=t;return g(e)?e.path:null}class D extends j{constructor(){super(...arguments),this.polygonOffset=0,this.castShadows=!0,this.hasSlicePlane=!1,this.drivenOpacity=!1,this.usePBR=!1,this.upVectorAlignment=0,this.pathCapType=1,this.cullFace=2}}class G{constructor(t,e){this.layout=t,this.textureBufferLayout=e,this.maxTextureBufferItemIndex=u}elementCount(t){return t.get("pathVertexInfo")?.indices.length??0}elementCountTextureBuffer(t){return t.get("position")?.indices.length??0}write(t,e,i,r,u,p){S(null!=p,"Texture buffer is required for path material"),R(i,r,this.layout,t,e,u);const f=p.offset,l=p.textureBufferRange.from,m=u.buffer.getField("pathVertexInfo",s),g=i.get("pathVertexInfo");if(m&&g){S(1===g.size);const{data:t,stride:e,indices:i}=g;for(let r=0;r<i.length;++r){const s=t[e*i[r]];m.set(u.offset+r,b(s,l))}}const d=p.buffer.getField("position",o),_=i.get("position");d&&_&&(S(3===_.size),P(_,t,d,f));const y=p.buffer.getField("profileRight",a),x=i.get("profileRight");y&&x&&(S(2===x.size),M(x,y,f));const z=p.buffer.getField("profileUp",a),V=i.get("profileUp");z&&V&&(S(2===V.size),M(V,z,f));const j=p.buffer.getField("profileRotation",n),w=i.get("profileRotation");j&&w&&(S(1===w.size),C(w,j,f));const F=p.buffer.getField("pathRotationUp",a),v=i.get("pathRotationUp");F&&v&&(S(2===v.size),M(v,F,f));const O=p.buffer.getField("pathMaxStretchDistance",c),T=i.get("pathMaxStretchDistance");O&&T&&(S(1===T.size),A(T,O,f));const I=p.buffer.getField("sizeFeatureAttribute",h),U=i.get("sizeFeatureAttribute");I&&U&&B(U,I,f);const k=p.buffer.getField("opacityFeatureAttribute",h),q=i.get("opacityFeatureAttribute");k&&q&&B(q,k,f);const L=p.buffer.getField("colorFeatureAttribute",h),D=i.get("colorFeatureAttribute");L&&D&&B(D,L,f)}}export{D as Parameters,G as PathBufferWriter,I as PathMaterial};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../../../core/Logger.js";import{clamp as t}from"../../../../core/mathUtils.js";import{createRenderScreenPointArray3 as r}from"../../../../core/screenUtils.js";import{secondsFromMilliseconds as i,Seconds as s}from"../../../../core/time.js";import{copy as a}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{set as n,subtract as o,dot as l,scale as p,add as c,copy as h,length as m,distance as u,lerp as f,transformMat4 as d,normalize as g}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as b}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{set as S}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{ONES as _,create as v}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{makeFloat16Array as P}from"../../../../geometry/support/float16.js";import{fromPoints as y,distance2 as E,closestLineSegmentPoint as x,projectPointFraction as w,create as j}from"../../../../geometry/support/lineSegment.js";import{fromPoints as z,signedDistance as T,getNormal as A,create as L}from"../../../../geometry/support/plane.js";import{BufferViewUint32 as C,BufferViewVec3f as M}from"../../../../geometry/support/buffer/BufferView.js";import{isHighlightOrOLID as R,isColor as O,isDepth as V,isColorHighlightOLIDOrDepth as F,is2DGeometryOutput as B}from"../core/shaderLibrary/ShaderOutput.js";import{olidEnabled as U}from"../effects/geometry/olidUtils.js";import N from"../lib/GLMaterial.js";import{Material as k}from"../lib/Material.js";import{ScreenSizePerspectiveEvaluator as W}from"../lib/screenSizePerspectiveUtils.js";import{isTranslationMatrix as I,assert as D}from"../lib/Util.js";import{isImagePattern as Y}from"./lineStippleUtils.js";import{VisualVariablePassParameters as J}from"./VisualVariablePassParameters.js";import{writeDeltaF16Vector as q}from"./internal/bufferWriterUtils.js";import{r as X}from"../../../../chunks/RibbonLine.glsl.js";import{getLayout as G,getTextureBufferLayout as H}from"../shaders/RibbonLineLayouts.js";import{RibbonLineTechnique as K}from"../shaders/RibbonLineTechnique.js";import{RibbonLineTechniqueConfiguration as Q}from"../shaders/RibbonLineTechniqueConfiguration.js";import{alphaCutoff as Z}from"../../../../webscene/support/AlphaCutoff.js";class $ extends k{constructor(e,t){super(e,te),this.produces=new Map([[2,e=>R(e)||O(e)&&8===this.parameters.renderOccluded],[3,e=>V(e)],[10,e=>F(e)&&8===this.parameters.renderOccluded],[11,e=>F(e)&&8===this.parameters.renderOccluded],[4,e=>O(e)&&this.parameters.writeDepth&&8!==this.parameters.renderOccluded],[8,e=>O(e)&&!this.parameters.writeDepth&&8!==this.parameters.renderOccluded],[18,e=>B(e)]]),this._configuration=new Q(t)}updateConfiguration(e){super.updateConfiguration(e);const t=18===e.slot,r=null!=this.parameters.stipplePattern&&null!=this.parameters.stippleTexture&&10!==e.output,i=r&&t&&this.parameters.isImagePattern();this._configuration.draped=t,this._configuration.polygonOffset=this.parameters.polygonOffset,this._configuration.stippleEnabled=r,this._configuration.stippleOffColorEnabled=r&&null!=this.parameters.stippleOffColor,this._configuration.stipplePreferContinuous=r&&this.parameters.stipplePreferContinuous,this._configuration.numJoinSubdivisions=ne(this.parameters.join,r),this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.roundJoins="round"===this.parameters.join,this._configuration.capType=this.parameters.cap,this._configuration.applyMarkerOffset=null!=this.parameters.markerParameters&&ae(this.parameters.markerParameters),this._configuration.polygonOffsetIndex=this.parameters.polygonOffsetIndex,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.hasVVSize=this.parameters.hasVVSize,this._configuration.hasVVColor=this.parameters.hasVVColor,this._configuration.hasVVOpacity=this.parameters.hasVVOpacity,this._configuration.innerColorEnabled=this.parameters.innerWidth>0&&null!=this.parameters.innerColor,this._configuration.falloffEnabled=this.parameters.falloff>0,this._configuration.hasOccludees=e.hasOccludees,this._configuration.occluder=8===this.parameters.renderOccluded,this._configuration.wireframe=this.parameters.wireframe,this._configuration.animation=this.parameters.animation,this._configuration.emissionSource=this.emissions?1:0,this._configuration.hasScreenSizePerspective=!!this.parameters.screenSizePerspective&&!i,this._configuration.worldSizedImagePattern=i}get visible(){return this.parameters.color[3]>=Z||null!=this.parameters.stipplePattern&&(this.parameters.stippleOffColor?.[3]??0)>Z}get emissions(){return this.parameters.emissiveStrength>0?8!==this.parameters.renderOccluded?2:1:0}setParameters(e,t){e.animation=this.parameters.animation,super.setParameters(e,t)}intersectScreenPolygon(){}intersectRayDraped({attributes:e,screenToWorldRatio:r},i,s,a,n){if(!i.options.selectionMode)return;const o=e.get("size");let l=this.parameters.width;if(this.parameters.vvSize){const r=e.get("sizeFeatureAttribute").data[0];Number.isNaN(r)?l*=this.parameters.vvSize.fallback[0]:l*=t(this.parameters.vvSize.offset[0]+r*this.parameters.vvSize.factor[0],this.parameters.vvSize.minSize[0],this.parameters.vvSize.maxSize[0])}else o&&(l*=o.data[0]);const p=s[0],c=s[1],h=(l/2+4)*r;let m=Number.MAX_VALUE,u=0;const f=e.get("position").data,d=se(this.parameters,e)?f.length-2:f.length-5;for(let g=0;g<d;g+=3){const e=f[g],r=f[g+1],i=(g+3)%f.length,s=p-e,a=c-r,n=f[i]-e,o=f[i+1]-r,l=t((n*s+o*a)/(n*n+o*o),0,1),h=n*l-s,d=o*l-a,b=h*h+d*d;b<m&&(m=b,u=g/3)}m<h*h&&a(n.distance,n.normal,u)}intersectRay(r,i,s,f,d,g){const{options:b,camera:S,rayBegin:_,rayEnd:v}=s;if(!b.selectionMode||!r.visible||!S)return;if(!I(i))return void e.getLogger("esri.views.3d.webgl-engine.materials.RibbonLineMaterial").error("intersection assumes a translation-only matrix");const P=r.attributes,w=P.get("position").data;let j=this.parameters.width;if(this.parameters.vvSize){const e=P.get("sizeFeatureAttribute").data[0];Number.isNaN(e)||(j*=t(this.parameters.vvSize.offset[0]+e*this.parameters.vvSize.factor[0],this.parameters.vvSize.minSize[0],this.parameters.vvSize.maxSize[0]))}else P.has("size")&&(j*=P.get("size").data[0]);const L=de;a(L,s.point);const C=j*S.pixelRatio,M=4*S.pixelRatio,R=C/2+M;n(je[0],L[0]-R,L[1]+R,0),n(je[1],L[0]+R,L[1]+R,0),n(je[2],L[0]+R,L[1]-R,0),n(je[3],L[0]-R,L[1]-R,0);for(let e=0;e<4;e++)if(!S.unprojectFromRenderScreen(je[e],ze[e]))return;z(S.eye,ze[0],ze[1],Te),z(S.eye,ze[1],ze[2],Ae),z(S.eye,ze[2],ze[3],Le),z(S.eye,ze[3],ze[0],Ce);let O=Number.MAX_VALUE,V=0;const F=se(this.parameters,P)?w.length-2:w.length-5;for(let e=0;e<F;e+=3){le[0]=w[e]+i[12],le[1]=w[e+1]+i[13],le[2]=w[e+2]+i[14];const t=(e+3)%w.length;if(pe[0]=w[t]+i[12],pe[1]=w[t+1]+i[13],pe[2]=w[t+2]+i[14],T(Te,le)<0&&T(Te,pe)<0||T(Ae,le)<0&&T(Ae,pe)<0||T(Le,le)<0&&T(Le,pe)<0||T(Ce,le)<0&&T(Ce,pe)<0)continue;const r=S.projectToRenderScreen(le,ge),s=S.projectToRenderScreen(pe,be);if(null==r||null==s)continue;if(r[2]<0&&s[2]>0){o(ue,le,pe);const e=S.frustum,t=-T(e[4],le)/l(ue,A(e[4]));if(p(ue,ue,t),c(le,le,ue),!S.projectToRenderScreen(le,r))continue}else if(r[2]>0&&s[2]<0){o(ue,pe,le);const e=S.frustum,t=-T(e[4],pe)/l(ue,A(e[4]));if(p(ue,ue,t),c(pe,pe,ue),!S.projectToRenderScreen(pe,s))continue}else if(r[2]<0&&s[2]<0)continue;r[2]=0,s[2]=0;const a=y(r,s,ve),n=E(a,L);if(!(n>=O)){if(this.parameters.screenSizePerspective){const e=this.computeScreenSizePerspectiveWidth(a,le,pe,L,S,j,M);if(n>=e*e)continue}O=n,h(Se,le),h(_e,pe),V=e/3}}if(O<R*R){let e=Number.MAX_VALUE;if(x(y(Se,_e,ve),y(_,v,Pe),fe)){o(fe,fe,_);const t=m(fe);p(fe,fe,1/t),e=t/u(_,v)}g(e,fe,V)}}createBufferWriter(){return new re(G(this.parameters),H(this.parameters),this.parameters)}createGLMaterial(e){return new ee(e)}validateParameters(e){"miter"!==e.join&&(e.miterLimit=0),null!=e.markerParameters&&(e.markerScale=e.markerParameters.width/e.width)}update(e){return!!this.parameters.hasAnimation&&(this.setParameters({timeElapsed:i(e.time)},!1),0!==e.dt)}computeScreenSizePerspectiveWidth(e,t,r,i,s,a,n){const o=w(e,i);f(ce,t,r,o),d(he,ce,s.viewMatrix);const l=m(he),p=this.computeCameraAbsCosAngle(ce,s,this._configuration.spherical);oe.update(p,l,this.parameters.screenSizePerspective,this.parameters.screenSizePerspectiveMinPixelReferenceSize);return oe.apply(a)*s.pixelRatio/2+n}computeCameraAbsCosAngle(e,t,r){return r?g(fe,e):n(fe,0,0,1),o(me,e,t.eye),g(me,me),Math.abs(l(fe,me))}}class ee extends N{constructor(){super(...arguments),this._stipplePattern=null}dispose(){super.dispose(),this._stippleTextures?.release(this._stipplePattern),this._stipplePattern=null}beginSlot(e){const{stipplePattern:t}=this._material.parameters;return this._stipplePattern!==t&&(this._material.setParameters({stippleTexture:this._stippleTextures.swap(t,this._stipplePattern)}),this._stipplePattern=t),this.getTechnique(K,e)}}class te extends J{constructor(){super(...arguments),this._width=0,this.color=_,this.join="miter",this.cap=0,this.miterLimit=5,this.writeDepth=!0,this.polygonOffset=0,this.polygonOffsetIndex=0,this.stippleTexture=null,this.stipplePreferContinuous=!0,this.markerParameters=null,this.markerScale=1,this.hasSlicePlane=!1,this.vvFastUpdate=!1,this.isClosed=!1,this.falloff=0,this.innerWidth=0,this.wireframe=!1,this.timeElapsed=s(0),this.animation=0,this.animationSpeed=1,this.trailLength=1,this.startTime=s(0),this.endTime=s(1/0),this.emissiveStrength=0}get width(){return this.isImagePattern()?this.stipplePattern.width:this._width}set width(e){this._width=e}get transparent(){return this.color[3]<1||this.hasAnimation||null!=this.stipplePattern&&(this.stippleOffColor?.[3]??0)<1}get hasAnimation(){return 0!==this.animation}isImagePattern(){return Y(this.stipplePattern)&&null!=this.stippleTexture}}class re{constructor(e,t,r){this.layout=e,this.textureBufferLayout=t,this._parameters=r,this.numJoinSubdivisions=ne(this._parameters.join,null!=this._parameters.stipplePattern)}_isClosed(e){return se(this._parameters,e)}allocate(e){return this.layout.createBuffer(e)}elementCountTextureBuffer(e){return e.get("position").data.length/3}elementCount(e){const t=2,r=e.get("position").indices.length/2+1,i=this._isClosed(e);let s=i?2:2*t;return s+=((i?r:r-1)-(i?0:1))*(2*this.numJoinSubdivisions+4),s+=2,this._parameters.wireframe&&(s=2+4*(s-2)),s}write(e,t,r,i,s,a){const{buffer:o,offset:l}=s,{layout:p,textureBufferLayout:c}=this,m=r.get("position"),f=m.indices,g=m.data.length/3,b=g,_=r.get("distanceToStart")?.data;f&&f.length!==2*(g-1)&&console.warn("RibbonLineMaterial does not support indices");const v=o.getField("textureElementIndex",C);D(null!=v,"Missing texture buffer index field"),D(null!==a,"Expected texture buffer target"),D(null!==c,"Expected valid textureBufferLayout");const{textureBufferRange:y,offset:E}=a;D(null!=y,"Using a texture layout, but the texture range for this instance was not provided");const x=y.from;D(y.numElements===b,"Expected number of elements in TextureBuffer to equal number of points");const{buffer:w}=a,j=w.getField("position",M);D(null!==j,"Expected valid position field in texture buffer");const z=p.fields.has("sizeFeatureAttribute");let T=1,A=null;if(z){const e=r.get("sizeFeatureAttribute");1===e.data.length?T=e.data[0]:A=e.data}else T=r.get("size")?.data[0]??1;let L=[1,1,1,1],R=0,O=null;const V=p.fields.has("colorFeatureAttribute");if(V){const e=r.get("colorFeatureAttribute");1===e.data.length?R=e.data[0]:O=e.data}else L=r.get("color")?.data??L;const F=r.get("timeStamps")?.data,B=F&&p.fields.has("timeStamps"),N=p.fields.has("opacityFeatureAttribute");let k=0,W=null;if(N){const e=r.get("opacityFeatureAttribute");1===e.data.length?k=e.data[0]:W=e.data}const I=new Float32Array(o.buffer),Y=P(o.buffer),J=new Uint8Array(o.buffer),X=new Uint32Array(o.buffer),G=p.stride/4;let H=l*G;const K=H;let Q=0;const Z=_?(e,t,r)=>Q=_[r]:(e,t,r)=>Q+=u(e,t),$=I.BYTES_PER_ELEMENT/Y.BYTES_PER_ELEMENT,ee=4/$,te=U(),re=(e,t,r,s,a,n,o,l)=>{const p=o;X[H]=x+p,H++,j.setVec(E+p,t),q(e,t,Y,H*$),H+=ee,q(r,t,Y,H*$),H+=ee,I[H++]=l;let c=H*$;if(Y[c++]=a,Y[c++]=n,H=Math.ceil(c/$),V)I[H]=O?.[o]??R;else{const e=Math.min(4*o,L.length-4),t=4*H;J[t]=255*L[e],J[t+1]=255*L[e+1],J[t+2]=255*L[e+2],J[t+3]=255*L[e+3]}if(H++,I[H++]=A?.[o]??T,N&&(I[H++]=W?.[o]??k),te){let e=4*H;i?(J[e++]=i[0],J[e++]=i[1],J[e++]=i[2],J[e++]=i[3]):(J[e++]=0,J[e++]=0,J[e++]=0,J[e++]=0),H=Math.ceil(.25*e)}B&&(c=H*$,Y[c++]=s[0],Y[c++]=s[1],Y[c++]=s[2],Y[c++]=s[3],H=Math.ceil(c/$))};H+=G,n(Ee,m.data[0],m.data[1],m.data[2]),B&&S(we,F[0],F[1],F[2],F[3]),e&&d(Ee,Ee,e);const se=this._isClosed(r);if(se){const t=m.data.length-3;n(ye,m.data[t],m.data[t+1],m.data[t+2]),e&&d(ye,ye,e)}else n(xe,m.data[3],m.data[4],m.data[5]),e&&d(xe,xe,e),re(Ee,Ee,xe,we,1,-4,0,0),re(Ee,Ee,xe,we,1,4,0,0),h(ye,Ee),h(Ee,xe),B&&S(we,F[4],F[5],F[6],F[7]);const ae=se?0:1,ne=se?g:g-1;for(let u=ae;u<ne;u++){const t=(u+1)%g*3;n(xe,m.data[t],m.data[t+1],m.data[t+2]),e&&d(xe,xe,e),Z(ye,Ee,u),re(ye,Ee,xe,we,0,-1,u,Q),re(ye,Ee,xe,we,0,1,u,Q);const r=this.numJoinSubdivisions;for(let e=0;e<r;++e){const t=(e+1)/(r+1);re(ye,Ee,xe,we,t,-1,u,Q),re(ye,Ee,xe,we,t,1,u,Q)}if(re(ye,Ee,xe,we,1,-2,u,Q),re(ye,Ee,xe,we,1,2,u,Q),h(ye,Ee),h(Ee,xe),B){const e=(u+1)%g*4;S(we,F[e],F[e+1],F[e+2],F[e+3])}}se?(n(xe,m.data[3],m.data[4],m.data[5]),e&&d(xe,xe,e),Q=Z(ye,Ee,ne),re(ye,Ee,xe,we,0,-1,ae,Q),re(ye,Ee,xe,we,0,1,ae,Q)):(Q=Z(ye,Ee,ne),re(ye,Ee,Ee,we,0,-5,ne,Q),re(ye,Ee,Ee,we,0,5,ne,Q)),ie(I,K+G,I,K,G);H=ie(I,H-G,I,H,G),this._parameters.wireframe&&this._addWireframeVertices(o,K,H,G)}_addWireframeVertices(e,t,r,i){const s=new Uint8Array(e.buffer,r*Float32Array.BYTES_PER_ELEMENT),a=new Uint8Array(e.buffer,t*Float32Array.BYTES_PER_ELEMENT,(r-t)*Float32Array.BYTES_PER_ELEMENT),n=i*Float32Array.BYTES_PER_ELEMENT;let o=0;const l=e=>o=ie(a,e,s,o,n);for(let p=0;p<=a.length-4*n;p+=2*n)l(p),l(p+2*n),l(p+1*n),l(p+2*n),l(p+1*n),l(p+3*n)}}function ie(e,t,r,i,s){for(let a=0;a<s;a++)r[i++]=e[t++];return i}function se(e,t){if(!e.isClosed)return!1;return t.get("position").indices.length>2}function ae(e){return 1===e.anchor&&e.hideOnShortSegments&&"begin-end"===e.placement&&e.worldSpace}function ne(e,t){const r=t?1:0;switch(e){case"miter":case"bevel":return r;case"round":return X+r}}const oe=new W,le=b(),pe=b(),ce=b(),he=b(),me=b(),ue=b(),fe=b(),de=b(),ge=r(),be=r(),Se=b(),_e=b(),ve=j(),Pe=j(),ye=b(),Ee=b(),xe=b(),we=v(),je=[r(),r(),r(),r()],ze=[b(),b(),b(),b()],Te=L(),Ae=L(),Le=L(),Ce=L();export{te as Parameters,$ as RibbonLineMaterial};
|
|
2
|
+
import e from"../../../../core/Logger.js";import{clamp as t}from"../../../../core/mathUtils.js";import{createRenderScreenPointArray3 as r,createScreenPointArray as i}from"../../../../core/screenUtils.js";import{secondsFromMilliseconds as s,Seconds as a}from"../../../../core/time.js";import{copy as n}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{set as o,subtract as l,dot as p,scale as c,add as m,copy as h,length as u,distance as f,lerp as d,transformMat4 as g,normalize as b}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as S}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{set as _}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{ONES as v,create as y}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{makeFloat16Array as P}from"../../../../geometry/support/float16.js";import{fromPoints as E,distance2 as x,closestLineSegmentPoint as w,projectPoint as z,projectPointFraction as j,create as T}from"../../../../geometry/support/lineSegment.js";import{fromPoints as L,signedDistance as A,getNormal as M,create as R}from"../../../../geometry/support/plane.js";import{BufferViewUint32 as C,BufferViewVec3f as O}from"../../../../geometry/support/buffer/BufferView.js";import{isHighlightOrOLID as V,isColor as F,isDepth as B,isColorHighlightOLIDOrDepth as U,is2DGeometryOutput as N}from"../core/shaderLibrary/ShaderOutput.js";import{olidEnabled as I}from"../effects/geometry/olidUtils.js";import k from"../lib/GLMaterial.js";import{Material as W}from"../lib/Material.js";import{projectWorldLineSegmentToRenderScreen as D,screenPolygonIntersectsBufferedSegment as Y}from"../lib/screenPolygonOverlapUtils.js";import{Hit as J}from"../lib/screenPolygonTriangleIntersections.js";import{ScreenSizePerspectiveEvaluator as q}from"../lib/screenSizePerspectiveUtils.js";import{isTranslationMatrix as X,assert as G}from"../lib/Util.js";import{isImagePattern as H}from"./lineStippleUtils.js";import{VisualVariablePassParameters as K}from"./VisualVariablePassParameters.js";import{r as Q}from"../../../../chunks/RibbonLine.glsl.js";import{getLayout as Z,getTextureBufferLayout as $}from"../shaders/RibbonLineLayouts.js";import{RibbonLineTechnique as ee}from"../shaders/RibbonLineTechnique.js";import{RibbonLineTechniqueConfiguration as te}from"../shaders/RibbonLineTechniqueConfiguration.js";import{alphaCutoff as re}from"../../../../webscene/support/AlphaCutoff.js";class ie extends W{constructor(e,t){super(e,ae),this.produces=new Map([[2,e=>V(e)||F(e)&&8===this.parameters.renderOccluded],[3,e=>B(e)],[10,e=>U(e)&&8===this.parameters.renderOccluded],[11,e=>U(e)&&8===this.parameters.renderOccluded],[4,e=>F(e)&&this.parameters.writeDepth&&8!==this.parameters.renderOccluded],[8,e=>F(e)&&!this.parameters.writeDepth&&8!==this.parameters.renderOccluded],[18,e=>N(e)]]),this._configuration=new te(t)}updateConfiguration(e){super.updateConfiguration(e);const t=18===e.slot,r=null!=this.parameters.stipplePattern&&null!=this.parameters.stippleTexture&&10!==e.output,i=r&&t&&this.parameters.isImagePattern();this._configuration.draped=t,this._configuration.polygonOffset=this.parameters.polygonOffset,this._configuration.stippleEnabled=r,this._configuration.stippleOffColorEnabled=r&&null!=this.parameters.stippleOffColor,this._configuration.stipplePreferContinuous=r&&this.parameters.stipplePreferContinuous,this._configuration.numJoinSubdivisions=ce(this.parameters.join,r),this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.roundJoins="round"===this.parameters.join,this._configuration.capType=this.parameters.cap,this._configuration.applyMarkerOffset=null!=this.parameters.markerParameters&&pe(this.parameters.markerParameters),this._configuration.polygonOffsetIndex=this.parameters.polygonOffsetIndex,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.hasVVSize=this.parameters.hasVVSize,this._configuration.hasVVColor=this.parameters.hasVVColor,this._configuration.hasVVOpacity=this.parameters.hasVVOpacity,this._configuration.innerColorEnabled=this.parameters.innerWidth>0&&null!=this.parameters.innerColor,this._configuration.falloffEnabled=this.parameters.falloff>0,this._configuration.hasOccludees=e.hasOccludees,this._configuration.occluder=8===this.parameters.renderOccluded,this._configuration.wireframe=this.parameters.wireframe,this._configuration.animation=this.parameters.animation,this._configuration.emissionSource=this.emissions?1:0,this._configuration.hasScreenSizePerspective=!!this.parameters.screenSizePerspective&&!i,this._configuration.worldSizedImagePattern=i}get visible(){return this.parameters.color[3]>=re||null!=this.parameters.stipplePattern&&(this.parameters.stippleOffColor?.[3]??0)>re}get emissions(){return this.parameters.emissiveStrength>0?8!==this.parameters.renderOccluded?2:1:0}setParameters(e,t){e.animation=this.parameters.animation,super.setParameters(e,t)}intersectRayDraped({attributes:e,screenToWorldRatio:r},i,s,a,n){if(!i.options.selectionMode)return;const o=e.get("size");let l=this.parameters.width;if(this.parameters.vvSize){const r=e.get("sizeFeatureAttribute").data[0];Number.isNaN(r)?l*=this.parameters.vvSize.fallback[0]:l*=t(this.parameters.vvSize.offset[0]+r*this.parameters.vvSize.factor[0],this.parameters.vvSize.minSize[0],this.parameters.vvSize.maxSize[0])}else o&&(l*=o.data[0]);const p=s[0],c=s[1],m=(l/2+Ue)*r;let h=Number.MAX_VALUE,u=0;const f=e.get("position").data,d=le(this.parameters,e)?f.length-2:f.length-5;for(let g=0;g<d;g+=3){const e=f[g],r=f[g+1],i=(g+3)%f.length,s=p-e,a=c-r,n=f[i]-e,o=f[i+1]-r,l=t((n*s+o*a)/(n*n+o*o),0,1),m=n*l-s,d=o*l-a,b=m*m+d*d;b<h&&(h=b,u=g/3)}h<m*m&&a(n.distance,n.normal,u)}intersectRay(t,r,i,s,a,d){const{options:g,camera:b,rayBegin:S,rayEnd:_}=i;if(!g.selectionMode||!t.visible||!b)return;if(!X(r))return void e.getLogger("esri.views.3d.webgl-engine.materials.RibbonLineMaterial").error("intersection assumes a translation-only matrix");const v=t.attributes,y=v.get("position").data,P=this._getLineSize(v),z=_e;n(z,i.point);const j=P*b.pixelRatio,T=Ue*b.pixelRatio,R=j/2+T;o(Re[0],z[0]-R,z[1]+R,0),o(Re[1],z[0]+R,z[1]+R,0),o(Re[2],z[0]+R,z[1]-R,0),o(Re[3],z[0]-R,z[1]-R,0);for(let e=0;e<4;e++)if(!b.unprojectFromRenderScreen(Re[e],Ce[e]))return;L(b.eye,Ce[0],Ce[1],Oe),L(b.eye,Ce[1],Ce[2],Ve),L(b.eye,Ce[2],Ce[3],Fe),L(b.eye,Ce[3],Ce[0],Be);let C=Number.MAX_VALUE,O=0;for(const e of this._forEachTransformedLineSegment(he,ue,y,r,le(this.parameters,v))){if(A(Oe,he)<0&&A(Oe,ue)<0||A(Ve,he)<0&&A(Ve,ue)<0||A(Fe,he)<0&&A(Fe,ue)<0||A(Be,he)<0&&A(Be,ue)<0)continue;const t=b.projectToRenderScreen(he,ve),r=b.projectToRenderScreen(ue,ye);if(null==t||null==r)continue;if(t[2]<0&&r[2]>0){l(be,he,ue);const e=b.frustum,r=-A(e[4],he)/p(be,M(e[4]));if(c(be,be,r),m(he,he,be),!b.projectToRenderScreen(he,t))continue}else if(t[2]>0&&r[2]<0){l(be,ue,he);const e=b.frustum,t=-A(e[4],ue)/p(be,M(e[4]));if(c(be,be,t),m(ue,ue,be),!b.projectToRenderScreen(ue,r))continue}else if(t[2]<0&&r[2]<0)continue;t[2]=0,r[2]=0;const i=E(t,r,ze),s=x(i,z);if(!(s>=C)){if(this.parameters.screenSizePerspective){const e=this.computeScreenSizePerspectiveWidth(i,he,ue,z,b,P,T);if(s>=e*e)continue}C=s,h(xe,he),h(we,ue),O=e}}if(C<R*R){let e=Number.MAX_VALUE;if(w(E(xe,we,ze),E(S,_,je),Se)){l(Se,Se,S);const t=u(Se);c(Se,Se,1/t),e=t/f(S,_)}d(e,Se,O)}}intersectScreenPolygon(t,r,i,s){const{options:a,camera:n,screenPolygonPrimitiveProcessor:o}=i;if(!a.selectionMode||!t.visible)return null;if(!X(r))return e.getLogger("esri.views.3d.webgl-engine.materials.RibbonLineMaterial").error("intersection assumes a translation-only matrix"),null;const l=t.attributes,p=l.get("position").data,c=this._getLineSize(l),m=Ue,h=m*n.pixelRatio,u=new J;for(const e of this._forEachTransformedLineSegment(he,ue,p,r,le(this.parameters,l)))for(const[t,r]of o.processLineSegment(Ne,he,ue)){if(!D(n,t,r,ve,ye))continue;const i=E(ve,ye,ze);let a=c/2+m;this.parameters.screenSizePerspective&&(d(_e,ve,ye,.5),a=Math.max(a,this.computeScreenSizePerspectiveWidth(i,t,r,_e,n,c,h)/n.pixelRatio)),n.renderToScreen(ve,Pe),n.renderToScreen(ye,Ee),Y(s,Pe,Ee,a)&&(z(E(t,r,je),n.eye,fe),u.updateIfCloserFromValues(f(n.eye,fe),e,fe,null))}return u}createBufferWriter(){return new ne(Z(this.parameters),$(this.parameters),this.parameters)}createGLMaterial(e){return new se(e)}validateParameters(e){"miter"!==e.join&&(e.miterLimit=0),null!=e.markerParameters&&(e.markerScale=e.markerParameters.width/e.width)}update(e){return!!this.parameters.hasAnimation&&(this.setParameters({timeElapsed:s(e.time)},!1),0!==e.dt)}computeScreenSizePerspectiveWidth(e,t,r,i,s,a,n){const o=j(e,i);d(fe,t,r,o),g(de,fe,s.viewMatrix);const l=u(de),p=this.computeCameraAbsCosAngle(fe,s,this._configuration.spherical);me.update(p,l,this.parameters.screenSizePerspective,this.parameters.screenSizePerspectiveMinPixelReferenceSize);return me.apply(a)*s.pixelRatio/2+n}computeCameraAbsCosAngle(e,t,r){return r?b(Se,e):o(Se,0,0,1),l(ge,e,t.eye),b(ge,ge),Math.abs(p(Se,ge))}_getLineSize(e,r=!1){let i=this.parameters.width;if(this.parameters.vvSize){const s=e.get("sizeFeatureAttribute").data[0];Number.isNaN(s)?r&&(i*=this.parameters.vvSize.fallback[0]):i*=t(this.parameters.vvSize.offset[0]+s*this.parameters.vvSize.factor[0],this.parameters.vvSize.minSize[0],this.parameters.vvSize.maxSize[0])}else e.has("size")&&(i*=e.get("size").data[0]);return i}*_forEachTransformedLineSegment(e,t,r,i,s){const a=s?r.length-2:r.length-5;for(let n=0;n<a;n+=3){e[0]=r[n]+i[12],e[1]=r[n+1]+i[13],e[2]=r[n+2]+i[14];const s=(n+3)%r.length;t[0]=r[s]+i[12],t[1]=r[s+1]+i[13],t[2]=r[s+2]+i[14],yield n/3}}}class se extends k{constructor(){super(...arguments),this._stipplePattern=null}dispose(){super.dispose(),this._stippleTextures?.release(this._stipplePattern),this._stipplePattern=null}beginSlot(e){const{stipplePattern:t}=this._material.parameters;return this._stipplePattern!==t&&(this._material.setParameters({stippleTexture:this._stippleTextures.swap(t,this._stipplePattern)}),this._stipplePattern=t),this.getTechnique(ee,e)}}class ae extends K{constructor(){super(...arguments),this._width=0,this.color=v,this.join="miter",this.cap=0,this.miterLimit=5,this.writeDepth=!0,this.polygonOffset=0,this.polygonOffsetIndex=0,this.stippleTexture=null,this.stipplePreferContinuous=!0,this.markerParameters=null,this.markerScale=1,this.hasSlicePlane=!1,this.vvFastUpdate=!1,this.isClosed=!1,this.falloff=0,this.innerWidth=0,this.wireframe=!1,this.timeElapsed=a(0),this.animation=0,this.animationSpeed=1,this.trailLength=1,this.startTime=a(0),this.endTime=a(1/0),this.emissiveStrength=0}get width(){return this.isImagePattern()?this.stipplePattern.width:this._width}set width(e){this._width=e}get transparent(){return this.color[3]<1||this.hasAnimation||null!=this.stipplePattern&&(this.stippleOffColor?.[3]??0)<1}get hasAnimation(){return 0!==this.animation}isImagePattern(){return H(this.stipplePattern)&&null!=this.stippleTexture}}class ne{constructor(e,t,r){this.layout=e,this.textureBufferLayout=t,this._parameters=r,this.numJoinSubdivisions=ce(this._parameters.join,null!=this._parameters.stipplePattern)}_isClosed(e){return le(this._parameters,e)}allocate(e){return this.layout.createBuffer(e)}elementCountTextureBuffer(e){return e.get("position").data.length/3+2}elementCount(e){const t=2,r=e.get("position").indices.length/2+1,i=this._isClosed(e);let s=i?2:2*t;return s+=((i?r:r-1)-(i?0:1))*(2*this.numJoinSubdivisions+4),s+=2,this._parameters.wireframe&&(s=2+4*(s-2)),s}write(e,t,r,i,s,a){const{buffer:n,offset:l}=s,{layout:p,textureBufferLayout:c}=this,m=r.get("position"),u=m.indices,d=m.data.length/3,b=d+2,S=r.get("distanceToStart")?.data;u&&u.length!==2*(d-1)&&console.warn("RibbonLineMaterial does not support indices");const v=n.getField("textureElementIndex",C);G(null!=v,"Missing texture buffer index field"),G(null!==a,"Expected texture buffer target"),G(null!==c,"Expected valid textureBufferLayout");const{textureBufferRange:y,offset:E}=a;G(null!=y,"Using a texture layout, but the texture range for this instance was not provided");const x=y.from;G(y.numElements===b,"Expected number of elements in TextureBuffer to equal number of points");const{buffer:w}=a,z=w.getField("position",O);G(null!==z,"Expected valid position field in texture buffer");const j=p.fields.has("sizeFeatureAttribute");let T=1,L=null;if(j){const e=r.get("sizeFeatureAttribute");1===e.data.length?T=e.data[0]:L=e.data}else T=r.get("size")?.data[0]??1;let A=[1,1,1,1],M=0,R=null;const V=p.fields.has("colorFeatureAttribute");if(V){const e=r.get("colorFeatureAttribute");1===e.data.length?M=e.data[0]:R=e.data}else A=r.get("color")?.data??A;const F=r.get("timeStamps")?.data,B=F&&p.fields.has("timeStamps"),U=p.fields.has("opacityFeatureAttribute");let N=0,k=null;if(U){const e=r.get("opacityFeatureAttribute");1===e.data.length?N=e.data[0]:k=e.data}const W=new Float32Array(n.buffer),D=P(n.buffer),Y=new Uint8Array(n.buffer),J=new Uint32Array(n.buffer),q=p.stride/4;let X=l*q;const H=X;let K=0;const Q=W.BYTES_PER_ELEMENT/D.BYTES_PER_ELEMENT,Z=I(),$=this._isClosed(r),ee=(t,r)=>{const i=3*r;o(t,m.data[i+0],m.data[i+1],m.data[i+2]),e&&g(t,t,e)};for(let o=0;o<d;++o)ee(Le,o),z.setVec(E+o+1,Le);$?(w.copyItem(E+b-2,E+0),w.copyItem(E+1,E+b-1)):(w.copyItem(E+1,E+0),w.copyItem(E+b-2,E+b-1));const te=(e,t,r,s,a,n,o,l)=>{const p=o+1;J[X]=x+p,X++,W[X++]=l;let c=X*Q;if(D[c++]=a,D[c++]=n,X=Math.ceil(c/Q),V)W[X]=R?.[o]??M;else{const e=Math.min(4*o,A.length-4),t=4*X;Y[t]=255*A[e],Y[t+1]=255*A[e+1],Y[t+2]=255*A[e+2],Y[t+3]=255*A[e+3]}if(X++,W[X++]=L?.[o]??T,U&&(W[X++]=k?.[o]??N),Z){let e=4*X;i?(Y[e++]=i[0],Y[e++]=i[1],Y[e++]=i[2],Y[e++]=i[3]):(Y[e++]=0,Y[e++]=0,Y[e++]=0,Y[e++]=0),X=Math.ceil(.25*e)}B&&(c=X*Q,D[c++]=s[0],D[c++]=s[1],D[c++]=s[2],D[c++]=s[3],X=Math.ceil(c/Q))},re=()=>{h(Te,Le),h(Le,Ae)},ie=e=>{if(B){const t=4*e;_(Me,F[t+0],F[t+1],F[t+2],F[t+3])}},se=(e,t,r)=>{null!=S?K=S[r]:K+=f(e,t)};X+=q,ee(Le,0),ie(0);let ae=0,ne=0;$?(ee(Te,d-1),ae=0,ne=d):(ee(Ae,1),te(Le,Le,Ae,Me,1,-4,0,0),te(Le,Le,Ae,Me,1,4,0,0),re(),ie(1),ae=1,ne=d-1);for(let o=ae;o<ne;o++){ee(Ae,(o+1)%d),se(Te,Le,o),te(Te,Le,Ae,Me,0,-1,o,K),te(Te,Le,Ae,Me,0,1,o,K);const e=this.numJoinSubdivisions;for(let t=0;t<e;++t){const r=(t+1)/(e+1);te(Te,Le,Ae,Me,r,-1,o,K),te(Te,Le,Ae,Me,r,1,o,K)}te(Te,Le,Ae,Me,1,-2,o,K),te(Te,Le,Ae,Me,1,2,o,K),re(),ie((o+1)%d)}se(Te,Le,ne),$?(ee(Ae,1),te(Te,Le,Ae,Me,0,-1,ae,K),te(Te,Le,Ae,Me,0,1,ae,K)):(te(Te,Le,Le,Me,0,-5,ne,K),te(Te,Le,Le,Me,0,5,ne,K)),oe(W,H+q,W,H,q);X=oe(W,X-q,W,X,q),this._parameters.wireframe&&this._addWireframeVertices(n,H,X,q)}_addWireframeVertices(e,t,r,i){const s=new Uint8Array(e.buffer,r*Float32Array.BYTES_PER_ELEMENT),a=new Uint8Array(e.buffer,t*Float32Array.BYTES_PER_ELEMENT,(r-t)*Float32Array.BYTES_PER_ELEMENT),n=i*Float32Array.BYTES_PER_ELEMENT;let o=0;const l=e=>o=oe(a,e,s,o,n);for(let p=0;p<=a.length-4*n;p+=2*n)l(p),l(p+2*n),l(p+1*n),l(p+2*n),l(p+1*n),l(p+3*n)}}function oe(e,t,r,i,s){for(let a=0;a<s;a++)r[i++]=e[t++];return i}function le(e,t){if(!e.isClosed)return!1;return t.get("position").indices.length>2}function pe(e){return 1===e.anchor&&e.hideOnShortSegments&&"begin-end"===e.placement&&e.worldSpace}function ce(e,t){const r=t?1:0;switch(e){case"miter":case"bevel":return r;case"round":return Q+r}}const me=new q,he=S(),ue=S(),fe=S(),de=S(),ge=S(),be=S(),Se=S(),_e=S(),ve=r(),ye=r(),Pe=i(),Ee=i(),xe=S(),we=S(),ze=T(),je=T(),Te=S(),Le=S(),Ae=S(),Me=y(),Re=[r(),r(),r(),r()],Ce=[S(),S(),S(),S()],Oe=R(),Ve=R(),Fe=R(),Be=R(),Ue=4,Ne=[S(),S()];export{ae as Parameters,ie as RibbonLineMaterial};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{set as e,scale as t,add as r,normalize as s}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{fromValues as i,create as a}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as n}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{center as o,scale as c}from"../../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as p}from"../../../../geometry/support/buffer/BufferView.js";import{isColorOrOLID as h}from"../core/shaderLibrary/ShaderOutput.js";import l from"../lib/GLMaterial.js";import{Material as m,MaterialParameters as f}from"../lib/Material.js";import{intersectTriangleGeometry as u}from"../lib/RayIntersections.js";import{intersectTriangleGeometryScreenPolygon as g}from"../lib/screenPolygonTriangleIntersections.js";import{assert as d}from"../lib/Util.js";import{applyPolygonOffsetToHit as b,intersectWithPolygonOffset as _}from"./intersectWithPolygonOffset.js";import{writeAttributes as S,writePosition as y}from"./internal/bufferWriterUtils.js";import{getLayout as j,ShadedColorMaterialTechnique as x}from"../shaders/ShadedColorMaterialTechnique.js";import{ShadedColorMaterialTechniqueConfiguration as w}from"../shaders/ShadedColorMaterialTechniqueConfiguration.js";import{alphaCutoff as z}from"../../../../webscene/support/AlphaCutoff.js";class D extends m{constructor(e){super(e,E),this._configuration=new w,this.supportsEdges=!0,this._pp0=i(0,0,1),this._pp1=i(0,0,0),this.produces=new Map([[2,e=>10===e||h(e)&&!this.parameters.transparent],[4,e=>h(e)&&this.parameters.transparent&&this.parameters.writeDepth],[8,e=>h(e)&&this.parameters.transparent&&!this.parameters.writeDepth]])}updateConfiguration(e){super.updateConfiguration(e),this._configuration.cullFace=this.parameters.cullFace,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.transparent=this.parameters.transparent,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.screenSizeEnabled=this.parameters.screenSizeEnabled,this._configuration.shadingEnabled=this.parameters.shadingEnabled}get visible(){return this.parameters.color[3]>=z}intersectRay(e,t,r,s,i,a){this._intersectRay(e,r,s,i,a)}intersectRayDraped(e,t,r,s){return this._pp0[0]=this._pp1[0]=r[0],this._pp0[1]=this._pp1[1]=r[1],this._intersectRay(e,t,this._pp0,this._pp1,s)}intersectScreenPolygon(e,t,r,s){return b(g(e,r,t,s,this._createVertexDisplacement(e,r)),this._configuration,r.camera.eye)}_intersectRay(e,t,r,s,i){const a=_(i,this._configuration,r,s);u(e,t,r,s,this._createVertexDisplacement(e,t),a)}_createVertexDisplacement(s,i){if(!this.parameters.screenSizeEnabled)return;const a=s.attributes.get("offset").data;return{applyToVertex:(s,n,o,c,p)=>{const h=e(P,a[3*p],a[3*p+1],a[3*p+2]);e(s,n,o,c);const l=this.parameters.screenSizeScale*(i.camera?.computeScreenPixelSizeAt(h)??1);return t(h,h,l),r(s,s,h),s},applyToAabb:e=>{const t=o(e,P);return c(e,this.parameters.screenSizeScale*(i.camera?.computeScreenPixelSizeAt(t)??1))}}}createGLMaterial(e){return new T(e)}createBufferWriter(){return new M(j(this.parameters))}}class T extends l{beginSlot(e){return this.getTechnique(x,e)}}class E extends f{constructor(){super(...arguments),this.color=n(1,1,1,1),this.shadingTint=n(0,0,0,.25),this.shadingDirection=s(a(),[.5,-.5,-.5]),this.screenSizeScale=14,this.forceTransparentMode=!1,this.writeDepth=!0,this.hasSlicePlane=!1,this.cullFace=0,this.screenSizeEnabled=!1,this.shadingEnabled=!0}get transparent(){return this.color[3]<1||this.forceTransparentMode}}class M{constructor(e){this.layout=e}elementCount(e){return e.get("position").indices.length}write(e,t,r,s,i){const{buffer:a,offset:n}=i;S(r,s,this.layout,e,t,i);const o=a.getField("offset",p);if(o&&r.has("offset")){const e=r.get("offset");d(3===e.size),y(e,t,o,n)}}}const P=a();export{E as Parameters,D as ShadedColorMaterial};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{Material as t,MaterialParameters as e}from"../lib/Material.js";import{intersectTriangleGeometry as n,intersectTriangleGeometry2D as r}from"../lib/RayIntersections.js";import{intersectWithPolygonOffset as s}from"./intersectWithPolygonOffset.js";class
|
|
2
|
+
import{Material as t,MaterialParameters as e}from"../lib/Material.js";import{intersectTriangleGeometry as n,intersectTriangleGeometry2D as r}from"../lib/RayIntersections.js";import{intersectTriangleGeometryScreenPolygon as o}from"../lib/screenPolygonTriangleIntersections.js";import{intersectWithPolygonOffset as s,applyPolygonOffsetToHit as i}from"./intersectWithPolygonOffset.js";class a extends t{updateConfiguration(t){super.updateConfiguration(t),this._configuration.transparent=this.transparent,this._configuration.enableOITOffset=t.enableOITOffset,this._configuration.polygonOffset=this.parameters.polygonOffset}intersectRay(t,e,r,o,i,a){return a=s(a,this._configuration,o,i),n(t,r,o,i,null,a)}intersectRayDraped(t,e,n,o){return r(n[0],n[1],t,o)}intersectScreenPolygon(t,e,n,r){return i(o(t,n,e,r,null),this._configuration,n.camera.eye)}}class f extends e{constructor(){super(...arguments),this.polygonOffset=0}}export{a as TriangleMaterial,f as TriangleMaterialParameters};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{direction as t,dot as n}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as o}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{polygonOffset as r}from"./PolygonOffset.js";import{TriangleTechniqueConfiguration as e}from"./TriangleTechniqueConfiguration.js";function f(n,o,e,f){c.output=o.transparent?1:0,c.polygonOffset=o.polygonOffset,c.enableOITOffset=o.enableOITOffset;const s=r(c);if(!s)return n;const i=t(m,f,e);return(t,o,r)=>n(a(s,i,t,o),o,r)}function s(n,o,e,f,s){const i=r(e);return i?a(i,t(m,s,f),n,o):n}function i(t,n,o){return null==t?null:(t.distance=s(t.distance,t.hasNormal?t.normal:null,n,o,t.point),t)}function a({units:t,factor:o},r,e,f){const s=u*t;return e+((f?1-Math.abs(n(r,f)):0)*o*l+s)}const c=new e,l=2e-5,u=2e-6,m=o();export{s as applyPolygonOffsetToDistance,i as applyPolygonOffsetToHit,f as intersectWithPolygonOffset};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{depthTest as t,blending as i}from"../lib/OrderIndependentTransparency.js";import{PositionUvGLLayout as n}from"../materials/DefaultLayouts.js";import{polygonOffset as a}from"../materials/PolygonOffset.js";import{C as m}from"../../../../chunks/CheckerBoard.glsl.js";import{makePipelineState as l,defaultColorWrite as p}from"../../../webgl/renderState.js";let c=class extends s{constructor(e,r){super(e,r,n),this.shader=new o(m,()=>import("./CheckerBoard.glsl.js"))}initializePipeline(e){const{output:r,transparent:o}=e;return l({blending:o?i(r,!1,e.emissionDimmingPass):null,depthTest:t(r),colorWrite:p,polygonOffset:a(e)})}};c=e([r("esri.views.3d.webgl-engine.shaders.CheckerBoardTechnique")],c);export{c as CheckerBoardTechnique};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{TriangleTechniqueConfiguration as e}from"../materials/TriangleTechniqueConfiguration.js";class t extends e{constructor(){super(...arguments),this.textureCoordinateType=0,this.emissionSource=0,this.output=0,this.olidColorInstanced=!1,this.overlayEnabled=!1,this.draped=!1,this.snowCover=!1,this.renderOccluded=!1,this.writeDepth=!1}}export{t as CheckerBoardTechniqueConfiguration};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as i,freeze as s,create as r}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as l}from"../../support/buffer/glUtil.js";import{newLayout as n}from"../../support/buffer/InterleavedLayout.js";import{VertexNormalPassParameters as a,VertexNormalDrawParameters as c}from"../core/shaderLibrary/attributes/VertexNormal.glsl.js";import{ReloadableShader as h}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as u}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as m}from"../effects/geometry/olidUtils.js";import{depthWrite as p,blending as d,depthTest as f}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBase as g,stencilBaseAllZeros as v,stencilWriteMaskOn as b}from"../lib/StencilUtils.js";import{getRenderInstanceDataLayout as S}from"../lib/lodRendering/RenderInstanceData.js";import{advancedMRRFactors as y}from"../materials/pbrUtils.js";import{polygonOffset as j}from"../materials/PolygonOffset.js";import{D as P}from"../../../../chunks/DefaultMaterial.glsl.js";import{makePipelineState as T,cullingParams as x,defaultColorWrite as C}from"../../../webgl/renderState.js";import{alphaCutoff as O}from"../../../../webscene/support/AlphaCutoff.js";class D extends a{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=y,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=2,this.instanced=!1,this.instancedFeatureAttribute=!1,this.instancedColor=!1,this.instanceColorEncodesAlphaIgnore=!1,this.emissiveStrengthFromSymbol=0,this.emissiveStrengthKHR=1,this.emissiveSource=1,this.emissiveBaseColor=i,this.instancedDoublePrecision=!1,this.normalType=0,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=s(.2,.2,.2),this.diffuse=s(.8,.8,.8),this.externalColor=o(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=r(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.modelTransformation=null,this.drivenOpacity=!1,this.
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as i,freeze as s,create as r}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as l}from"../../support/buffer/glUtil.js";import{newLayout as n}from"../../support/buffer/InterleavedLayout.js";import{VertexNormalPassParameters as a,VertexNormalDrawParameters as c}from"../core/shaderLibrary/attributes/VertexNormal.glsl.js";import{ReloadableShader as h}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as u}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as m}from"../effects/geometry/olidUtils.js";import{depthWrite as p,blending as d,depthTest as f}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBase as g,stencilBaseAllZeros as v,stencilWriteMaskOn as b}from"../lib/StencilUtils.js";import{getRenderInstanceDataLayout as S}from"../lib/lodRendering/RenderInstanceData.js";import{advancedMRRFactors as y}from"../materials/pbrUtils.js";import{polygonOffset as j}from"../materials/PolygonOffset.js";import{D as P}from"../../../../chunks/DefaultMaterial.glsl.js";import{makePipelineState as T,cullingParams as x,defaultColorWrite as C}from"../../../webgl/renderState.js";import{alphaCutoff as O}from"../../../../webscene/support/AlphaCutoff.js";class D extends a{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=y,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=2,this.instanced=!1,this.instancedFeatureAttribute=!1,this.instancedColor=!1,this.instanceColorEncodesAlphaIgnore=!1,this.emissiveStrengthFromSymbol=0,this.emissiveStrengthKHR=1,this.emissiveSource=1,this.emissiveBaseColor=i,this.instancedDoublePrecision=!1,this.normalType=0,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=s(.2,.2,.2),this.diffuse=s(.8,.8,.8),this.externalColor=o(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=r(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.modelTransformation=null,this.drivenOpacity=!1,this.customDepthTest=0,this.textureAlphaMode=0,this.textureAlphaCutoff=O,this.textureAlphaPremultiplied=!1,this.renderOccluded=1,this.testsTransparentRenderOrder=0,this.isDecoration=!1}get hasVVSize(){return!!this.vvSize}get hasVVColor(){return!!this.vvColor}get hasVVOpacity(){return!!this.vvOpacity}}class V extends c{constructor(){super(...arguments),this.origin=r(),this.slicePlaneLocalOrigin=this.origin}}let w=class extends u{constructor(e,t){let i=l(z(t));t.instanced&&t.instancedDoublePrecision&&(i=i.concat(l(S(t)))),super(e,t,i),this.shader=new h(P,()=>import("./DefaultMaterial.glsl.js")),this.ignoreUnused=!0}_makePipeline(e,t){const{output:i,transparent:s,cullFace:r,customDepthTest:o,hasOccludees:l}=e;return T({blending:s?d(i,!1,e.emissionDimmingPass):null,culling:M(e)?x(r):null,depthTest:f(i,A(o)),depthWrite:p(e),colorWrite:C,stencilWrite:l?b:null,stencilTest:l?t?g:v:null,polygonOffset:j(e)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e,t,i){return i?this._occludeePipelineState:super.getPipeline(e,t,i)}};function A(e){switch(e){case 1:return 515;case 0:case 3:return 513;case 2:return 516}}function M(e){return 0!==e.cullFace||!e.hasSlicePlane&&(!e.transparent&&!e.doubleSidedMode)}function z(e){const t=n().vec3f("position");return 1===e.normalType?t.vec2i16("normalCompressed",{glNormalized:!0}):t.vec3f("normal"),e.hasVertexTangents&&t.vec4f("tangent"),e.hasTextures&&t.vec2f16("uv0"),e.hasVertexColors&&t.vec4u8("color",{glNormalized:!0}),e.hasSymbolColors&&t.vec4u8("symbolColor"),!e.instanced&&m()&&t.vec4u8("olidColor"),t}w=e([t("esri.views.3d.webgl-engine.shaders.DefaultMaterialTechnique")],w);export{V as DefaultMaterialDrawParameters,D as DefaultMaterialPassParameters,w as DefaultMaterialTechnique,z as getLayout,M as isCullingRequired};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import"../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../core/shaderLibrary/util/
|
|
2
|
+
import"../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../core/shaderLibrary/util/emissionFilter.glsl.js";import"../core/shaderModules/glsl.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../../../webgl/NoParameters.js";import"../../../webgl/ShaderBuilder.js";export{G as GaussianSplatCompositionPassParameters,b as build}from"../../../../chunks/GaussianSplatComposition.glsl.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as i}from"../../support/buffer/glUtil.js";import{ReloadableShader as r}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as i}from"../../support/buffer/glUtil.js";import{ReloadableShader as r}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{depthTest as l,blending as o}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBase as n,stencilBaseAllZeros as a,stencilWriteMaskOn as p}from"../lib/StencilUtils.js";import{PositionUvLayout as c}from"../materials/DefaultLayouts.js";import{polygonOffset as m}from"../materials/PolygonOffset.js";import{I as u}from"../../../../chunks/ImageMaterial.glsl.js";import{makePipelineState as d,defaultColorWrite as f,cullingParams as g}from"../../../webgl/renderState.js";let h=class extends s{constructor(e,t){super(e,t,i(j(t))),this.shader=new r(u,()=>import("./ImageMaterial.glsl.js")),this.ignoreUnused=!0}_getPipelineState(e,t){const{output:i,hasOccludees:r,cullFace:s}=e;return d({blending:o(i,!0,e.emissionDimmingPass),culling:g(s),depthTest:l(i),colorWrite:f,stencilWrite:r?p:null,stencilTest:r?t?n:a:null,polygonOffset:m(e)})}initializePipeline(e){return this._occludeePipeline=this._getPipelineState(e,!0),this._getPipelineState(e,!1)}getPipeline(e,t,i){return i?this._occludeePipeline:super.getPipeline(e,t,i)}};function j(e){let t=c;return e.perspectiveInterpolation&&(t=t.clone().f32("perspectiveDivide")),t}h=e([t("esri.views.3d.webgl-engine.shaders.ImageMaterialTechnique")],h);export{h as ImageMaterialTechnique,j as getLayout};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{parameter as t}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{TriangleTechniqueConfiguration as o}from"../materials/TriangleTechniqueConfiguration.js";class i extends o{constructor(e){super(),this.draped=e,this.cullFace=0,this.
|
|
2
|
+
import{__decorate as e}from"tslib";import{parameter as t}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{TriangleTechniqueConfiguration as o}from"../materials/TriangleTechniqueConfiguration.js";class i extends o{constructor(e){super(),this.draped=e,this.cullFace=0,this.hasOccludees=!1,this.perspectiveInterpolation=!0,this.textureCoordinateType=0,this.emissionSource=0,this.olidColorInstanced=!1,this.snowCover=!1,this.renderOccluded=!1,this.writeDepth=!1}}e([t({count:3})],i.prototype,"cullFace",void 0),e([t()],i.prototype,"hasOccludees",void 0),e([t()],i.prototype,"perspectiveInterpolation",void 0);export{i as ImageMaterialTechniqueConfiguration};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{parameter as t}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{DefaultTechniqueConfiguration as o}from"../materials/DefaultTechniqueConfiguration.js";class
|
|
2
|
+
import{__decorate as e}from"tslib";import{parameter as t}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{DefaultTechniqueConfiguration as o}from"../materials/DefaultTechniqueConfiguration.js";class s extends o{constructor(e){super(),this.spherical=e,this.space=1,this.anchor=0,this.occluder=!1,this.hideOnShortSegments=!1,this.hasCap=!1,this.hasTip=!1,this.hasVVSize=!1,this.hasVVColor=!1,this.hasVVOpacity=!1,this.hasOccludees=!1,this.hasScreenSizePerspective=!1,this.textureCoordinateType=0,this.emissionSource=0,this.occlusionPass=!1,this.hasVVInstancing=!1,this.hasSliceTranslatedView=!0,this.olidColorInstanced=!1,this.overlayEnabled=!1,this.snowCover=!1,this.renderOccluded=!1}get draped(){return 0===this.space}get worldSpace(){return 2===this.space}}e([t({count:3})],s.prototype,"space",void 0),e([t({count:2})],s.prototype,"anchor",void 0),e([t()],s.prototype,"occluder",void 0),e([t()],s.prototype,"hideOnShortSegments",void 0),e([t()],s.prototype,"hasCap",void 0),e([t()],s.prototype,"hasTip",void 0),e([t()],s.prototype,"hasVVSize",void 0),e([t()],s.prototype,"hasVVColor",void 0),e([t()],s.prototype,"hasVVOpacity",void 0),e([t()],s.prototype,"hasOccludees",void 0),e([t()],s.prototype,"hasScreenSizePerspective",void 0);export{s as LineMarkerTechniqueConfiguration};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{isColor as o,isOITColorAlpha as i,isOITFrontFace as l}from"../core/shaderLibrary/ShaderOutput.js";import{Emissions as r}from"../core/shaderLibrary/output/Emissions.glsl.js";import{OutputHighlight as s}from"../core/shaderLibrary/output/OutputHighlight.glsl.js";import{ColorConversion as a}from"../core/shaderLibrary/util/ColorConversion.glsl.js";import{
|
|
2
|
+
import{isColor as o,isOITColorAlpha as i,isOITFrontFace as l}from"../core/shaderLibrary/ShaderOutput.js";import{Emissions as r}from"../core/shaderLibrary/output/Emissions.glsl.js";import{OutputHighlight as s}from"../core/shaderLibrary/output/OutputHighlight.glsl.js";import{ColorConversion as a}from"../core/shaderLibrary/util/ColorConversion.glsl.js";import{emissionFilter as e}from"../core/shaderLibrary/util/emissionFilter.glsl.js";import{If as n,glsl as t}from"../core/shaderModules/glsl.js";import{alphaCutoff as f}from"./alphaCutoff.glsl.js";import{ditherNoise as m}from"./ditherNoise.glsl.js";import{oitResolution as u}from"./oitResolution.glsl.js";function d(d,g){d.include(s,g),d.include(r,g);const{fragment:p,outputs:c}=d;p.include(a);const{output:C,hasEmission:h,oitPremultipliedAlpha:b,snowCover:E,emissionDimmingPass:v,renderOccluded:y}=g,j=11===C,O=i(C),$=l(C),A=o(C)&&!O,L=0!==C||y;let S=0;(A||O)&&c.add("fragColor","vec4",S++),O&&c.add("fragAlpha","float",S++),h&&c.add("fragEmission","vec4",S++),p.include(a),p.include(f),p.include(u,g),p.include(m,g),v&&p.include(e,g),p.code.add(t`
|
|
3
3
|
void outputColorHighlightOLID(vec4 finalColor, vec3 emissiveSymbolColor ${n(E,", float snow")}) {
|
|
4
4
|
${n(j,"finalColor.a = 1.0;")}
|
|
5
5
|
${n(L,"if (finalColor.a < alphaCutoff) discard;")}
|
|
@@ -7,8 +7,8 @@ import{isColor as o,isOITColorAlpha as i,isOITFrontFace as l}from"../core/shader
|
|
|
7
7
|
${n(O,`float noise = ditherNoise(finalColor);\n fragColor = ${n(b,"finalColor","premultiplyAlpha(finalColor)")};\n fragColor.rgb = fragColor.rgb * floatBlendOutputScale + noise;\n fragAlpha = finalColor.a * floatBlendOutputScale + noise;\n `)}
|
|
8
8
|
${n($&&b,"finalColor.rgb /= finalColor.a;")}
|
|
9
9
|
${n(A,"fragColor = finalColor;")}
|
|
10
|
-
${n(h,v?"fragEmission = vec4(
|
|
10
|
+
${n(h,v?"fragEmission = vec4(emissionFilter(premultiplyAlpha(finalColor).rgb, finalColor.a), 0.0);":`fragEmission = ${n(E,"mix(finalColor.a * getEmissions(emissiveSymbolColor), vec4(0.0), snow);","finalColor.a * getEmissions(emissiveSymbolColor);")}\n float emissionNoise = ditherNoise(fragEmission);\n fragEmission.rgb = fragEmission.rgb * floatBlendOutputScale + emissionNoise;\n fragEmission.a = finalColor.a;\n fragEmission = premultiplyAlpha(fragEmission);\n `)}
|
|
11
11
|
calculateOcclusionAndOutputHighlight();
|
|
12
12
|
${n(j,"outputObjectAndLayerIdColor();")}
|
|
13
13
|
}
|
|
14
|
-
`)}export{
|
|
14
|
+
`)}export{d as outputColorHighlightOLID};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{newLayout as e}from"../../support/buffer/InterleavedLayout.js";import{olidEnabled as t}from"../effects/geometry/olidUtils.js";import{TextureBackedBufferLayout as r}from"../lib/TextureBackedBuffer/TextureBackedBufferLayout.js";function o(r){const o=e().u32("textureElementIndex",{integer:!0}).
|
|
2
|
+
import{newLayout as e}from"../../support/buffer/InterleavedLayout.js";import{olidEnabled as t}from"../effects/geometry/olidUtils.js";import{TextureBackedBufferLayout as r}from"../lib/TextureBackedBuffer/TextureBackedBufferLayout.js";function o(r){const o=e().u32("textureElementIndex",{integer:!0}).f32("u0").vec2f16("lineParameters");return r.hasVVColor?o.f32("colorFeatureAttribute"):o.vec4u8("color",{glNormalized:!0}),r.hasVVSize?o.f32("sizeFeatureAttribute"):o.f32("size"),r.hasVVOpacity&&o.f32("opacityFeatureAttribute"),t()&&o.vec4u8("olidColor"),r.hasAnimation&&o.vec4f16("timeStamps"),o}const i=new r([{type:"vec3f32",name:"position"}]);function u(e){return i}export{i as baseTextureBufferLayout,o as getLayout,u as getTextureBufferLayout};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import has from"../../core/has.js";import{destroyMaybe as e}from"../../core/maybe.js";import{GamepadSource as t}from"./gamepad/GamepadSource.js";import{createScreenPointFromNativeEvent as n}from"../support/screenUtils.js";const i=has("edge"),o=has("chrome"),a=has("ff"),s=has("safari"),r="esri-view-surface",h={touchNone:`${r}--touch-none`,touchPan:`${r}--touch-pan`};class
|
|
2
|
+
import has from"../../core/has.js";import{destroyMaybe as e}from"../../core/maybe.js";import{GamepadSource as t}from"./gamepad/GamepadSource.js";import{createScreenPointFromNativeEvent as n}from"../support/screenUtils.js";const i=has("edge"),o=has("chrome"),a=has("ff"),s=has("safari"),r="esri-view-surface",h={touchNone:`${r}--touch-none`,touchPan:`${r}--touch-pan`};class c{static{this.test={disableSubpixelCoordinates:!1}}constructor(e,n){this._active={},this._callback=()=>{},this._activePointerCaptures=new Set,this._keyDownState=new Set,this._eventId=1,this._browserTouchPanningEnabled=!1,this._forwardWindowModifierKeyPresses=e=>{document.activeElement!==this._element&&e.isTrusted&&"b"===e.key&&this._forwardKeyboardEvent(e)},this._element=e,e.getAttribute("tabindex")||e.setAttribute("tabindex","0"),this._eventHandlers={"key-down":this._handleKey,"key-up":this._handleKey,"pointer-down":this._handlePointer,"pointer-move":this._handlePointerPreventDefault,"pointer-up":this._handlePointerPreventDefault,"pointer-enter":this._handlePointer,"pointer-leave":this._handlePointer,"pointer-cancel":this._handlePointer,"mouse-wheel":this._handleMouseWheel,"pointer-capture-lost":this._handlePointerCaptureLost},this._updateTouchAction(),this._element.addEventListener("keydown",this._preventAltKeyDefault),window.addEventListener("keydown",this._forwardWindowModifierKeyPresses),window.addEventListener("keyup",this._forwardWindowModifierKeyPresses),this._gamepadSource=new t(e,n),this._gamepadSource.onEvent=e=>this._callback("gamepad",e)}destroy(){this._callback=()=>{},this.activeEvents=null,this._activePointerCaptures.forEach(e=>this._releasePointerCaptureSafe(e)),this._activePointerCaptures.clear(),this._gamepadSource=e(this._gamepadSource),this._removeTouchAction(),this._element.removeEventListener("keydown",this._preventAltKeyDefault),window.removeEventListener("keydown",this._forwardWindowModifierKeyPresses),window.removeEventListener("keyup",this._forwardWindowModifierKeyPresses)}get browserTouchPanningEnabled(){return this._browserTouchPanningEnabled}set browserTouchPanningEnabled(e){this._browserTouchPanningEnabled=e,this._updateTouchAction(),this._updateTouchEventHandling()}set onEventReceived(e){this._callback=e}set activeEvents(e){for(const t in this._active)if(!e||!e.has(t)){const e=this._active[t];this._element.removeEventListener(l[t],e),delete this._active[t]}e&&e.forEach(e=>{if(!this._active[e]&&l[e]){const t=(this._eventHandlers[e]||this._handleDefault).bind(this,e);this._element.addEventListener(l[e],t),this._active[e]=t}}),this._gamepadSource&&(this._gamepadSource.hasEventListeners=e?.has("gamepad")??!1)}setPointerCapture(e,t){t?this._setPointerCaptureSafe(e.pointerId):(this._releasePointerCaptureSafe(e.pointerId),this._activePointerCaptures.delete(e.pointerId))}_updateTouchAction(){this._element.classList.remove(this._browserTouchPanningEnabled?h.touchNone:h.touchPan),this._element.classList.add(this._browserTouchPanningEnabled?h.touchPan:h.touchNone)}_updateTouchEventHandling(){this._browserTouchPanningEnabled?this._element.addEventListener("touchmove",this._preventMultiTouchPanning):this._element.removeEventListener("touchmove",this._preventMultiTouchPanning)}_removeTouchAction(){this._element.classList.remove(h.touchNone),this._element.classList.remove(h.touchPan),this._element.removeEventListener("touchmove",this._preventMultiTouchPanning)}_setPointerCaptureSafe(e){try{this._element.setPointerCapture(e),this._activePointerCaptures.add(e)}catch{}}_releasePointerCaptureSafe(e){try{if(this._element.hasPointerCapture&&!this._element.hasPointerCapture(e))return;this._element.releasePointerCapture(e)}catch(t){}}_updateNormalizedPointerLikeEvent(e,t){const i=n(this._element,e);return c.test.disableSubpixelCoordinates&&(i.x=Math.round(i.x),i.y=Math.round(i.y)),t.x=i.x,t.y=i.y,t}_handleKey(e,t){const{key:n}=t;n&&"key-up"===e&&this._keyDownState.delete(n);const i={native:t,key:n,repeat:!!n&&this._keyDownState.has(n)};n&&"key-down"===e&&this._keyDownState.add(i.key),this._callback(e,i)}_handlePointer(e,t){const n=this._updateNormalizedPointerLikeEvent(t,{native:t,x:0,y:0,pointerType:t.pointerType,button:t.button,buttons:t.buttons,eventId:this._eventId++});this._callback(e,n)}_handlePointerPreventDefault(e,t){const n=this._updateNormalizedPointerLikeEvent(t,{native:t,x:0,y:0,pointerType:t.pointerType,button:t.button,buttons:t.buttons,eventId:this._eventId++});t.preventDefault(),this._callback(e,n)}_getDeltaFromTrackpadOrMouseWheel(e){return e.shiftKey&&has("mac")&&0===e.deltaY?e.deltaX:e.deltaY}_handleMouseWheel(e,t){let n=this._getDeltaFromTrackpadOrMouseWheel(t);switch(t.deltaMode){case 0:i&&(n=n/document.documentElement.clientHeight*600);break;case 1:n*=30;break;case 2:n*=900}i?n*=.7:o||s?n*=.6:a&&(n*=1.375);const r=100,h=Math.abs(n);if(h>r){n=n/h*200/(1+Math.exp(-.02*(h-r)))}const c=this._updateNormalizedPointerLikeEvent(t,{native:t,x:0,y:0,deltaY:n});this._callback(e,c)}_handlePointerCaptureLost(e,t){this._activePointerCaptures.delete(t.pointerId),this._handleDefault(e,t)}_handleDefault(e,t){const n={native:t};t.preventDefault(),this._callback(e,n)}_preventAltKeyDefault(e){"Alt"===e.key&&e.preventDefault()}_forwardKeyboardEvent(e){const t=new KeyboardEvent(e.type,{key:e.key,code:e.code,location:e.location,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey,repeat:e.repeat,bubbles:!0,cancelable:!0,composed:!0});this._element.dispatchEvent(t)}_preventMultiTouchPanning(e){e.touches.length>1&&e.preventDefault()}}const l={"key-down":"keydown","key-up":"keyup","pointer-down":"pointerdown","pointer-up":"pointerup","pointer-move":"pointermove","mouse-wheel":"wheel","pointer-capture-got":"gotpointercapture","pointer-capture-lost":"lostpointercapture","context-menu":"contextmenu","touch-start":"touchstart","touch-end":"touchend","pointer-enter":"pointerenter","pointer-leave":"pointerleave","pointer-cancel":"pointercancel",focus:"focus",blur:"blur"};export{c as BrowserEventSource};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import{InputHandler as t}from"../InputHandler.js";class e extends t{constructor(t){super(!0),this.view=t,this.registerIncoming("touch-start",t=>this._onTouchStart(t)),this.registerIncoming("touch-end",t=>this._onTouchEnd(t))}_onTouchStart(t){t.data.native.preventDefault()}_onTouchEnd(t){t.data.native.preventDefault(),this.view.focus()}}export{e as PreventTouchSelection};
|
|
@@ -424,7 +424,7 @@ export default abstract class FeatureLikeLayerView extends LayerView {
|
|
|
424
424
|
*
|
|
425
425
|
* @param target - The feature(s) to highlight. When passing a graphic or an array of graphics, each feature must have a valid `objectID`.
|
|
426
426
|
* You may alternatively pass one or more objectIDs as a single number, string, or an array of numbers or strings.
|
|
427
|
-
* @param options - An
|
|
427
|
+
* @param options - An additional set of options to customize the highlight behavior.
|
|
428
428
|
* @returns Returns a highlight handler with a `remove()` method that can be called to remove the highlight.
|
|
429
429
|
* @see [View.highlights](https://developers.arcgis.com/javascript/latest/references/core/views/View/#highlights)
|
|
430
430
|
* @see [Sample: Highlight features by geometry](https://developers.arcgis.com/javascript/latest/sample-code/highlight-features-by-geometry/)
|
|
@@ -518,81 +518,26 @@ export default abstract class FeatureLikeLayerView extends LayerView {
|
|
|
518
518
|
*/
|
|
519
519
|
abstract queryAggregates(query?: Query, options?: AbortOptions): Promise<FeatureSet>;
|
|
520
520
|
/**
|
|
521
|
-
* Executes a [AttributeBinsQuery](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsQuery/) against
|
|
521
|
+
* Executes a [AttributeBinsQuery](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsQuery/) against a [FeatureLikeLayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLikeLayerView/), which groups features into bins based on ranges in numeric or date fields, and returns a
|
|
522
522
|
* [AttributeBinsFeatureSet](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsFeatureSet/) containing the series of bins. Please refer to the [AttributeBinsQuery](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsQuery/) document for more detailed information
|
|
523
523
|
* on how to configure the bin parameters.
|
|
524
524
|
*
|
|
525
|
-
* Binned data can condense complex information into meaningful insight. This query allows you to classify data into meaningful categories and summarize the data
|
|
526
|
-
*
|
|
527
|
-
* It can reveal underlying patterns that might be obscured in raw data. For example, bins can show concentrations of values in common ranges.
|
|
525
|
+
* Binned data can condense complex information into meaningful insight. This query allows you to classify data into meaningful categories and summarize the data
|
|
526
|
+
* within each bin with summary statistics.
|
|
528
527
|
*
|
|
529
528
|
* > [!WARNING]
|
|
530
529
|
* >
|
|
531
530
|
* > **Notes**
|
|
531
|
+
* >
|
|
532
532
|
* > The `queryAttributeBins()` method is unrelated to querying bins in [FeatureReductionBinning](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FeatureReductionBinning/).
|
|
533
533
|
*
|
|
534
534
|
* @param binsQuery - Specifies the parameters of the `queryAttributeBins()` operation. The [AttributeBinsQuery.binParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsQuery/#binParameters) property must be set.
|
|
535
|
-
* @param options -
|
|
536
|
-
* @returns When resolved, returns a [AttributeBinsFeatureSet](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsFeatureSet/) containing
|
|
537
|
-
*
|
|
538
|
-
* @since 4.
|
|
535
|
+
* @param options - Abort options that can be passed into an asynchronous method to allow termination.
|
|
536
|
+
* @returns When resolved, returns a [AttributeBinsFeatureSet](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsFeatureSet/) containing a series of bins. Each feature in the AttributeBinsFeatureSet
|
|
537
|
+
* represents a bin. The attributes of each feature contain statistics summarizing the data in the bin, including count, average, standard deviation, etc.
|
|
538
|
+
* @since 4.33
|
|
539
539
|
* @see [AttributeBinsQuery](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsQuery/)
|
|
540
540
|
* @see [Sample - Attribute Bins Query](https://developers.arcgis.com/javascript/latest/sample-code/query-attribute-bins/)
|
|
541
|
-
* @example
|
|
542
|
-
* // Query the temperature field in the feature layer and create a histogram
|
|
543
|
-
* // Analyze temperature data over a year, create 100 bins for different temperature ranges
|
|
544
|
-
* // to assess frequency and identify patterns.
|
|
545
|
-
* const binQuery = new AttributeBinsQuery({
|
|
546
|
-
* where: "UnitTop = 0",
|
|
547
|
-
* binParameters: new AutoIntervalBinParameters({
|
|
548
|
-
* bins: 100,
|
|
549
|
-
* field: "temp",
|
|
550
|
-
* start: 0, // lowest temp value to be included in the bin query
|
|
551
|
-
* end: 30 // highest temp value to be included
|
|
552
|
-
* })
|
|
553
|
-
* });
|
|
554
|
-
*
|
|
555
|
-
* layerView.queryAttributeBins(query).then((results) => {
|
|
556
|
-
* const bins = results.features.map((bin) => {
|
|
557
|
-
* return {
|
|
558
|
-
* minValue: bin.attributes.lowerBoundary,
|
|
559
|
-
* maxValue: bin.attributes.upperBoundary,
|
|
560
|
-
* count: bin.attributes.temperature_count,
|
|
561
|
-
* };
|
|
562
|
-
* });
|
|
563
|
-
*
|
|
564
|
-
* // get the lower boundary of the first bin
|
|
565
|
-
* const min = results.features[0].attributes.lowerBoundary;
|
|
566
|
-
* // get the upper boundary of the last bin
|
|
567
|
-
* const max = results.features[results.features.length - 1].attributes.upperBoundary;
|
|
568
|
-
* // calculate the average for the bins
|
|
569
|
-
* const average = results.features[0].attributes.lowerBoundary + results.features[results.features.length - 1].attributes.upperBoundary) / 2;
|
|
570
|
-
*
|
|
571
|
-
* const histogram = new Histogram({
|
|
572
|
-
* container: "histogramDiv",
|
|
573
|
-
* bins: bins,
|
|
574
|
-
* min: min,
|
|
575
|
-
* max: max,
|
|
576
|
-
* average: average,
|
|
577
|
-
* barCreatedFunction:(index, element) => {
|
|
578
|
-
* element.setAttribute("fill", "#FFA500");
|
|
579
|
-
* element.setAttribute("opacity", 0.5);
|
|
580
|
-
* },
|
|
581
|
-
* labelFormatFunction: (value, type) => {
|
|
582
|
-
* return (Math.round(value)).toLocaleString();
|
|
583
|
-
* },
|
|
584
|
-
* dataLines: [{
|
|
585
|
-
* value: histogram.min,
|
|
586
|
-
* label: histogram.min.toLocaleString()
|
|
587
|
-
* }, {
|
|
588
|
-
* value: histogram.average,
|
|
589
|
-
* label: histogram.average.toLocaleString()
|
|
590
|
-
* }, {
|
|
591
|
-
* value: histogram.max,
|
|
592
|
-
* label: histogram.max.toLocaleString()
|
|
593
|
-
* }]
|
|
594
|
-
* });
|
|
595
|
-
* });
|
|
596
541
|
*/
|
|
597
542
|
abstract queryAttributeBins(binsQuery: AttributeBinsQuery, options?: AbortOptions): Promise<AttributeBinsFeatureSet>;
|
|
598
543
|
/**
|
|
@@ -67,7 +67,7 @@ export default abstract class GraphicsLayerView extends LayerView {
|
|
|
67
67
|
*
|
|
68
68
|
* @param target - The feature(s) to highlight. When passing a graphic or an array of graphics, each feature must have a valid `objectID`.
|
|
69
69
|
* You may alternatively pass one or more objectIDs as a single number, string, or an array of numbers or strings.
|
|
70
|
-
* @param options - An
|
|
70
|
+
* @param options - An additional set of options to customize the highlight behavior.
|
|
71
71
|
* @returns Returns a highlight handler with a `remove()` method that can be called to remove the highlight.
|
|
72
72
|
* @see [View.highlights](https://developers.arcgis.com/javascript/latest/references/core/views/View/#highlights)
|
|
73
73
|
* @see [Sample: Highlight features by geometry](https://developers.arcgis.com/javascript/latest/sample-code/highlight-features-by-geometry/)
|
|
@@ -68,11 +68,6 @@ export default abstract class ViewshedLayerView extends LayerView {
|
|
|
68
68
|
*
|
|
69
69
|
* Calling this method sets [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/#interactive) to `true`.
|
|
70
70
|
*
|
|
71
|
-
* > [!WARNING]
|
|
72
|
-
* >
|
|
73
|
-
* > Note that when placing viewsheds interactively, the viewshed is created with a 1.5 meter vertical offset from the scene.
|
|
74
|
-
* > _This behavior is subject to change in a future release._
|
|
75
|
-
*
|
|
76
71
|
* @param options - An object specifying additional options.
|
|
77
72
|
* @returns A promise which resolves when creation is completed successfully or rejected if it is
|
|
78
73
|
* canceled.
|
|
@@ -102,11 +97,6 @@ export default abstract class ViewshedLayerView extends LayerView {
|
|
|
102
97
|
*
|
|
103
98
|
* Calling this method sets [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/#interactive) to `true`.
|
|
104
99
|
*
|
|
105
|
-
* > [!WARNING]
|
|
106
|
-
* >
|
|
107
|
-
* > Note that when placing viewsheds interactively, the viewshed is created with a 1.5 meter vertical offset from the scene.
|
|
108
|
-
* > _This behavior is subject to change in a future release._
|
|
109
|
-
*
|
|
110
100
|
* @param options - An object specifying additional options.
|
|
111
101
|
* @returns A promise which
|
|
112
102
|
* resolves when the operation is completed successfully or rejected if it is canceled.
|
package/views/layers/types.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Options for highlighting features in a [FeatureLikeLayerView.highlight()](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLikeLayerView/#highlight).
|
|
3
|
+
* It can be used to customize the highlight behavior, such as changing the color or opacity of the highlight.
|
|
4
|
+
*
|
|
5
|
+
* @see [FeatureLikeLayerView.highlight()](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLikeLayerView/#highlight)
|
|
6
|
+
* @see [HighlightOptions](https://developers.arcgis.com/javascript/latest/references/core/views/support/HighlightOptions/)
|
|
7
|
+
* @since 5.0
|
|
8
|
+
*/
|
|
2
9
|
export interface LayerViewHighlightOptions {
|
|
3
10
|
/**
|
|
4
11
|
* The [HighlightOptions.name](https://developers.arcgis.com/javascript/latest/references/core/views/support/HighlightOptions/#name) of the highlight options from the view's [View.highlights](https://developers.arcgis.com/javascript/latest/references/core/views/View/#highlights) collection.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import r from"../../core/Accessor.js";import i from"../../core/Error.js";import t from"../../core/Logger.js";import{someMap as s}from"../../core/MapUtils.js";import{createAbortError as o,isAbortError as a}from"../../core/promiseUtils.js";import{on as n,watch as l,syncAndInitial as h}from"../../core/reactiveUtils.js";import{schedule as y}from"../../core/scheduling.js";import{property as c,subclass as p}from"../../core/accessorSupport/decorators.js";import{get as d}from"../../core/accessorSupport/get.js";import{UpdatingHandles as w}from"../../core/support/UpdatingHandles.js";import{destroyMap as f}from"../../support/collectionUtils.js";import{LayerLayerViewInfo as
|
|
2
|
+
import{__decorate as e}from"tslib";import r from"../../core/Accessor.js";import i from"../../core/Error.js";import t from"../../core/Logger.js";import{someMap as s}from"../../core/MapUtils.js";import{createAbortError as o,isAbortError as a}from"../../core/promiseUtils.js";import{on as n,watch as l,syncAndInitial as h}from"../../core/reactiveUtils.js";import{schedule as y}from"../../core/scheduling.js";import{property as c,subclass as p}from"../../core/accessorSupport/decorators.js";import{get as d}from"../../core/accessorSupport/get.js";import{UpdatingHandles as w}from"../../core/support/UpdatingHandles.js";import{destroyMap as f}from"../../support/collectionUtils.js";import{LayerLayerViewInfo as m}from"./LayerLayerViewInfo.js";function u(e){return null!=e&&"object"==typeof e&&"layerViews"in e}let g=class extends r{constructor(e){super(e),this._layerLayerViewInfoMap=new Map,this._recyclingInfoMap=new Map,this._watchUpdatingTracking=new w,this._preloadLayerViewModules=()=>{const e=this.view.map?.allLayers;if(e)for(const r of e)!1!==this.layerViewFilter?.(r)&&this.layerViewImporter.hasLayerViewModule(r)&&this.layerViewImporter.importLayerView(r)},this._reschedule=()=>this.destroyed?Promise.reject():(null==this._workPromise&&(this._workPromise=Promise.withResolvers(),this._workPromise.promise.catch(()=>{})),this.removeHandles("reschedule"),this.addHandles(y(this._doWork),"reschedule"),this._workPromise.promise),this._doWork=()=>{if(this.destroyed)return;const{map:e}=this.view;if(!e)return void this.clear();if(this._map!==e&&(this.clear(),this._map=e),null==this._workPromise)return void this.notifyChange("updating");this.removeHandles("reschedule"),this.removeHandles("collection-change");const r=new Set,i=[],t=this.view.ready,s=e=>{if(null!=e)for(const o of e)if(o){if(!1===this.layerViewFilter?.(o))continue;r.add(o);const e=this._layerLayerViewInfoMap.get(o);e&&t?e.start():e||this._recyclingInfoMap.has(o)||i.push(o),"layers"in o&&o.layers&&s(o.layers)}};for(const a of this._rootCollectionNames)s(d(this,a));const o=new Array,n=e=>{const r=e.tryRecycle(i);r?(this._recyclingInfoMap.set(e.layer,e),this._watchUpdatingTracking.consumePromise(r),this.notifyChange("updating"),r.then(()=>{this._recyclingInfoMap.delete(e.layer),this._layerLayerViewInfoMap.set(e.layer,e),this._reschedule(),this.notifyChange("updating")}).catch(r=>{a(r)||(this._recyclingInfoMap.delete(e.layer),e.destroy(),this._reschedule(),this.notifyChange("updating"))})):o.push(e)};for(const a of this._layerLayerViewInfoMap.values())r.has(a.layer)||(this._layerLayerViewInfoMap.delete(a.layer),n(a));for(const a of this._recyclingInfoMap.values())r.has(a.layer)||(this._recyclingInfoMap.delete(a.layer),n(a));for(const a of i)this._createLayerView(a);this._refreshCollections(),o.forEach(e=>e.destroy());const l=[e?.ground?.layers,e?.basemap?.baseLayers,e?.basemap?.groundLayers,e?.basemap?.referenceLayers,e?.layers].filter(e=>!!e);r.forEach(e=>"layers"in e&&l.push(e.layers)),this.addHandles(l.map(e=>this._watchUpdatingTracking.addOnCollectionChange(()=>e,this._reschedule)),"collection-change"),this._workPromise.resolve(),this._workPromise=null},this._layersToLayerViews=new Map(e.layerviewMapping)}initialize(){this.addHandles([n(()=>this.view?.map?.allLayers,"change",this._preloadLayerViewModules,{onListenerAdd:this._preloadLayerViewModules}),l(()=>{const e=this.view,r=e?.map;return[r?.basemap,r?.ground,r?.layers,e?.ready]},()=>this._reschedule().catch(()=>{}),h)]),this._preloadLayerViewModules(),this._reschedule().catch(()=>{})}clearHandles(){this._watchUpdatingTracking.removeAll()}destroy(){this.clear(),f(this._recyclingInfoMap),f(this._layerLayerViewInfoMap),this._watchUpdatingTracking.destroy(),this._map=null,null!=this._workPromise&&(this._workPromise.reject(o()),this._workPromise=null)}get _rootCollectionNames(){return Array.from(this._layersToLayerViews.keys())}get updating(){return null!=this._workPromise||this._watchUpdatingTracking.updating||s(this._layerLayerViewInfoMap,e=>!e.done)||this._recyclingInfoMap.size>0}get updatingRemaining(){let e=0;for(const r of this._layerLayerViewInfoMap.values())r.done||++e;return e}clear(){this.destroyed||(this._clearCollections(),f(this._layerLayerViewInfoMap),f(this._recyclingInfoMap))}async whenLayerView(e){await this._reschedule();const r=this._layerLayerViewInfoMap.get(e)?.promise;if(!r){const r=this._recyclingInfoMap.get(e)?.promise;if(!r)throw new i("view:no-layerview-for-layer","No layerview has been found for the layer",{layer:e});return r}return r}isCreatingLayerViewsForLayer(e,r){this.commitProperty("updatingRemaining");const i=this._layerLayerViewInfoMap.get(e);if(!i?.done)return!0;const t=i.layerView;return!(!t||!r||t.parent===r)||!!(i.done&&t&&"layers"in e&&e.layers?.length)&&e.layers.some(e=>this.isCreatingLayerViewsForLayer(e,t))}isRecyclingLayerViewForLayer(e){return this._recyclingInfoMap.has(e)}_refreshCollections(){for(const[e,r]of this._layersToLayerViews)this._populateLayerViewsOwners(d(this,e),d(this,r),this.view);this.notifyChange("updating"),this.notifyChange("updatingRemaining")}_clearCollections(){for(const e of this._layersToLayerViews.values())d(this,e)?.removeAll()}_populateLayerViewsOwners(e,r,i){if(!e||!r)return void r?.removeAll();let t=0;for(const s of e){const e=this._layerLayerViewInfoMap.get(s);if(!e?.layerView)continue;const{layerView:o}=e;o.layer=s,o.parent=i,r.at(t)!==o&&r.splice(t,0,o),"layers"in s&&u(o)&&this._populateLayerViewsOwners(s.layers,o.layerViews,o),++t}t<r.length&&r.splice(t)}_createLayerView(e){e.load().catch(()=>{}),this.layerViewImporter.hasLayerViewModule(e)&&this.layerViewImporter.importLayerView(e);const r=new m(e,this.view,this.layerViewImporter);this._watchUpdatingTracking.consumePromise(r.promise),r.promise?.then(()=>this._refreshCollections(),r=>{r&&(a(r)||"cancelled:layerview-create"===r.name)||t.getLogger(this).error(`Failed to create layerview for layer title:'${e.title??"no title"}', id:'${e.id??"no id"}' of type '${e.type}'.`,{layer:e,error:r}),this.destroyed||this._refreshCollections()}),this._layerLayerViewInfoMap.set(e,r),this.view.ready&&r.start(),this.notifyChange("updating"),this.notifyChange("updatingRemaining")}};e([c()],g.prototype,"_workPromise",void 0),e([c({readOnly:!0})],g.prototype,"_watchUpdatingTracking",void 0),e([c({readOnly:!0})],g.prototype,"_layersToLayerViews",void 0),e([c({constructOnly:!0})],g.prototype,"layerviewMapping",void 0),e([c({readOnly:!0})],g.prototype,"_rootCollectionNames",null),e([c({constructOnly:!0})],g.prototype,"layerViewFilter",void 0),e([c()],g.prototype,"layerViewImporter",void 0),e([c({readOnly:!0})],g.prototype,"updating",null),e([c({readOnly:!0})],g.prototype,"updatingRemaining",null),e([c({constructOnly:!0})],g.prototype,"view",void 0),g=e([p("esri.views.support.LayerViewManager")],g);const _=g;export{_ as default};
|