@arcgis/core 4.23.0-next.20220124 → 4.23.0-next.20220129
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/Graphic.js +1 -1
- package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/02fbc76dfdc20e628c61.js +1 -0
- package/assets/esri/core/workers/chunks/0453fad5cb819797b4f6.js +1 -0
- package/assets/esri/core/workers/chunks/0463ba46df855a92b9c0.js +1 -0
- package/assets/esri/core/workers/chunks/0cd0a6eef51fc5b9ea61.js +1 -0
- package/assets/esri/core/workers/chunks/{d1454155ee1b8a421cbb.js → 0d02c6ad1f4688bfa374.js} +1 -1
- package/assets/esri/core/workers/chunks/0d684f16f37d5dc385dd.js +1 -0
- package/assets/esri/core/workers/chunks/0e17691520d890d34efb.js +1 -0
- package/assets/esri/core/workers/chunks/16b6d0f8378582c051c3.js +1 -0
- package/assets/esri/core/workers/chunks/{0ce1dc14280d6f188468.js → 17de7a324dfa7f57ad5d.js} +1 -1
- package/assets/esri/core/workers/chunks/{b313ab14a643273e7d09.js → 1877ab1b6a115dbba1c5.js} +1 -1
- package/assets/esri/core/workers/chunks/{c36f84daa7736878418d.js → 197ec52641aed20029c6.js} +1 -1
- package/assets/esri/core/workers/chunks/1b2a961f776a0b57e57a.js +1 -0
- package/assets/esri/core/workers/chunks/1b3fd66577b19aa5f2b6.js +1 -0
- package/assets/esri/core/workers/chunks/1c733b7db092a2a88ef3.js +1 -0
- package/assets/esri/core/workers/chunks/1f8c6a179e39fd4c5e6f.js +1 -0
- package/assets/esri/core/workers/chunks/2076fcbae63f1bfb7143.js +1 -0
- package/assets/esri/core/workers/chunks/{9387db408f496e7dd003.js → 214910032945dd2d86b0.js} +1 -1
- package/assets/esri/core/workers/chunks/{b2ae5fc4f787ea568b88.js → 2460f3b6ada6ae900dec.js} +1 -1
- package/assets/esri/core/workers/chunks/27474b007988855bea9d.js +1 -0
- package/assets/esri/core/workers/chunks/281b89dbf5574fc642ae.js +1 -0
- package/assets/esri/core/workers/chunks/{4d539878bfbd7c549e60.js → 2c8fe9bc988c3c5760a5.js} +1 -1
- package/assets/esri/core/workers/chunks/2e899ef5881b4ec6fa55.js +1 -0
- package/assets/esri/core/workers/chunks/34b59d7099904dcb28b5.js +1 -0
- package/assets/esri/core/workers/chunks/357033117dfe61eb81ea.js +1 -0
- package/assets/esri/core/workers/chunks/37c03cfc19086ce631c6.js +1 -0
- package/assets/esri/core/workers/chunks/391e96192d1ec4e55ce2.js +1 -0
- package/assets/esri/core/workers/chunks/422537fc3df707bb62c9.js +1 -0
- package/assets/esri/core/workers/chunks/44f0c3663b293afbd172.js +1 -0
- package/assets/esri/core/workers/chunks/483d5d8593d96d0f0b15.js +1 -0
- package/assets/esri/core/workers/chunks/{c959e0d1cf7dce0421b9.js → 48fa8aed6c24877b44c4.js} +1 -1
- package/assets/esri/core/workers/chunks/{44b01d42d4ec72913229.js → 4954fd86b48cc68b737c.js} +1 -1
- package/assets/esri/core/workers/chunks/49a1a633bb0d93764aae.js +1 -0
- package/assets/esri/core/workers/chunks/4ba6de8aa7e2960bad49.js +1 -0
- package/assets/esri/core/workers/chunks/4be35af7d6babbfe9d84.js +1 -0
- package/assets/esri/core/workers/chunks/5457962a70bd3c557a75.js +1 -0
- package/assets/esri/core/workers/chunks/57856b4a9b8784a69844.js +1 -0
- package/assets/esri/core/workers/chunks/{b9c177524b3e7de1ffd1.js → 5790d171072b3c7d108f.js} +1 -1
- package/assets/esri/core/workers/chunks/57b349d1dbc0bed75b79.js +1 -0
- package/assets/esri/core/workers/chunks/5bcb3240b3c005e5fe72.js +1 -0
- package/assets/esri/core/workers/chunks/5d11b97b667921d67ae7.js +1 -0
- package/assets/esri/core/workers/chunks/5dbe555a5a662ff3d9ce.js +1 -0
- package/assets/esri/core/workers/chunks/5ec98f4ddac707d0fbd1.js +1 -0
- package/assets/esri/core/workers/chunks/64b7e8d812ea8fcf269e.js +1 -0
- package/assets/esri/core/workers/chunks/{4c9084a04948b6924749.js → 655b55ac0cd533d7e9d7.js} +1 -1
- package/assets/esri/core/workers/chunks/{b0b036ad3ad3cd956747.js → 69fd99b7c76e9992ccf3.js} +1 -1
- package/assets/esri/core/workers/chunks/{9cdaba126ac7fa5f33f0.js → 6cd5e4380d29b9a3c344.js} +1 -1
- package/assets/esri/core/workers/chunks/75d812955a473d0e8960.js +1 -0
- package/assets/esri/core/workers/chunks/7903a3e2e0faff0f86c0.js +1 -0
- package/assets/esri/core/workers/chunks/{cc146c57bbdac8029fd8.js → 7a5f5acfbd4ca1a5c1f3.js} +1 -1
- package/assets/esri/core/workers/chunks/{64276aacaafa4c8a15bd.js → 7dcf52d3db3903c8eb9f.js} +1 -1
- package/assets/esri/core/workers/chunks/83d00afae4406ec78bc9.js +1 -0
- package/assets/esri/core/workers/chunks/{625d2663daa8e0cf64b0.js → 85b1f36790df95b17659.js} +1 -1
- package/assets/esri/core/workers/chunks/89820b200ee44e678af5.js +1 -0
- package/assets/esri/core/workers/chunks/8a876f91c9c7c23786b5.js +1 -0
- package/assets/esri/core/workers/chunks/918bb7a7d901544a7367.js +1 -0
- package/assets/esri/core/workers/chunks/{94b8dbf859df71858d1c.js → 929c9b7cdab7c4ca3d87.js} +1 -1
- package/assets/esri/core/workers/chunks/94515fb3ef38067eeadd.js +1 -0
- package/assets/esri/core/workers/chunks/949b2269457302ffc64b.js +1 -0
- package/assets/esri/core/workers/chunks/952980635afc7ec81804.js +1 -0
- package/assets/esri/core/workers/chunks/9876a1bae350795fab36.js +1 -0
- package/assets/esri/core/workers/chunks/99619fcb772807c74f3b.js +1 -0
- package/assets/esri/core/workers/chunks/{010a71c2aa1b7681e191.js → 9d11f84e6c893b9d0019.js} +1 -1
- package/assets/esri/core/workers/chunks/a1930e4f035bc9aa1ae5.js +1 -0
- package/assets/esri/core/workers/chunks/a8692bffb76444c34760.js +1 -0
- package/assets/esri/core/workers/chunks/aa04b90b82bf70caaae4.js +1 -0
- package/assets/esri/core/workers/chunks/aeaa1667c2d9f1b3366b.js +1 -0
- package/assets/esri/core/workers/chunks/b2d2de935487257c568b.js +1 -0
- package/assets/esri/core/workers/chunks/b3f5e91116112b0b612a.js +1 -0
- package/assets/esri/core/workers/chunks/b97953694f42bfec1b3c.js +1 -0
- package/assets/esri/core/workers/chunks/b9e9cb354822c6d995a4.js +1 -0
- package/assets/esri/core/workers/chunks/ba762bcfd74af0bb8218.js +1 -0
- package/assets/esri/core/workers/chunks/bac9fc90e6756e211160.js +1 -0
- package/assets/esri/core/workers/chunks/be588873c16770ceb9ef.js +1 -0
- package/assets/esri/core/workers/chunks/bf97a933ea3b220115e1.js +1 -0
- package/assets/esri/core/workers/chunks/bfedd6ebff817c9b31c0.js +1 -0
- package/assets/esri/core/workers/chunks/c093dff4592832ac0973.js +1 -0
- package/assets/esri/core/workers/chunks/c1135cb02ec46c491459.js +1 -0
- package/assets/esri/core/workers/chunks/c2253a9f29c1aabb2b75.js +1 -0
- package/assets/esri/core/workers/chunks/{d39b7983b68d6e5b404d.js → cdbc005eebec1503b99d.js} +1 -1
- package/assets/esri/core/workers/chunks/d04fca5d46cca02500b7.js +1 -0
- package/assets/esri/core/workers/chunks/d08efbc349dd9f999497.js +1 -0
- package/assets/esri/core/workers/chunks/d1fe53b597351dc58305.js +1 -0
- package/assets/esri/core/workers/chunks/{a8b13fb804bb775e4967.js → db3c729ce0c0b2690dc9.js} +1 -1
- package/assets/esri/core/workers/chunks/dd13772a5e2eccc6a2bc.js +1 -0
- package/assets/esri/core/workers/chunks/dedc333a61081772ca7b.js +1 -0
- package/assets/esri/core/workers/chunks/{a7b1b75643ed31489495.js → e0c8d61c7a85ce15499a.js} +1 -1
- package/assets/esri/core/workers/chunks/{199670a3a564ebe3bd79.js → e218bde41ffbcc5194f5.js} +1 -1
- package/assets/esri/core/workers/chunks/e21b211913aefde47e30.js +1 -0
- package/assets/esri/core/workers/chunks/e287f49184d076af17e2.js +1 -0
- package/assets/esri/core/workers/chunks/{bde1d5b0a7717350986e.js → e4019b63a1fe74e2c842.js} +1 -1
- package/assets/esri/core/workers/chunks/e8e775758b79c5a084c8.js +1 -0
- package/assets/esri/core/workers/chunks/e93dfdede0532a89ffa5.js +1 -0
- package/assets/esri/core/workers/chunks/e9e5196b44b6923be1a3.js +1 -0
- package/assets/esri/core/workers/chunks/ea595b0df5050eda2a13.js +1 -0
- package/assets/esri/core/workers/chunks/eb82ff10cef2bde6e57f.js +1 -0
- package/assets/esri/core/workers/chunks/ebc6f4764b82d4104c65.js +1 -0
- package/assets/esri/core/workers/chunks/{1305ef8717da6e902a55.js → ec10151a2a95e95a0bb5.js} +1 -1
- package/assets/esri/core/workers/chunks/eccba071ced2d922bb85.js +1 -0
- package/assets/esri/core/workers/chunks/ee6e0db58dc64410e687.js +1 -0
- package/assets/esri/core/workers/chunks/f0a9f161805fc7a30fc5.js +1 -0
- package/assets/esri/core/workers/chunks/f2124f4d0f2b8a91f0ea.js +1 -0
- package/assets/esri/core/workers/chunks/ff6abdc72076f3994659.js +981 -0
- package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
- package/assets/esri/themes/base/_mixins.scss +4 -1
- package/assets/esri/themes/base/icons/style.scss +11 -2
- package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +13 -10
- package/assets/esri/themes/base/widgets/_CoordinateConversion.scss +4 -2
- package/assets/esri/themes/base/widgets/_Directions.scss +5 -3
- package/assets/esri/themes/base/widgets/_Editor.scss +5 -2
- package/assets/esri/themes/base/widgets/_ElevationProfile.scss +6 -4
- package/assets/esri/themes/base/widgets/_ItemList.scss +1 -1
- package/assets/esri/themes/base/widgets/_LayerList.scss +13 -9
- package/assets/esri/themes/base/widgets/_Popup.scss +4 -2
- package/assets/esri/themes/base/widgets/_Print.scss +24 -11
- package/assets/esri/themes/base/widgets/_Search.scss +4 -2
- package/assets/esri/themes/base/widgets/_TableList.scss +9 -7
- package/assets/esri/themes/base/widgets/_Weather.scss +12 -0
- package/assets/esri/themes/base/widgets/_Widget.scss +18 -9
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/dark-blue/main.css +1 -1
- package/assets/esri/themes/dark-green/main.css +1 -1
- package/assets/esri/themes/dark-purple/main.css +1 -1
- package/assets/esri/themes/dark-red/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/themes/light-blue/main.css +1 -1
- package/assets/esri/themes/light-green/main.css +1 -1
- package/assets/esri/themes/light-purple/main.css +1 -1
- package/assets/esri/themes/light-red/main.css +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_ar.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_bg.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_bs.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_ca.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_cs.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_da.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_de.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_el.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_en.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_es.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_et.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_fi.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_fr.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_he.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_hr.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_hu.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_id.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_it.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_ja.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_ko.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_lt.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_lv.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_nb.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_nl.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_pl.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_pt-BR.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_pt-PT.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_ro.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_ru.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_sk.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_sl.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_sr.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_sv.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_th.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_tr.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_uk.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_vi.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_zh-CN.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_zh-HK.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_zh-TW.json +1 -1
- package/chunks/BlendLayers.glsl.js +2 -2
- package/chunks/ChapmanAtmosphere.glsl.js +17 -17
- package/chunks/CheckerBoard.glsl.js +3 -3
- package/chunks/Clouds.glsl.js +2 -2
- package/chunks/CloudsComposition.glsl.js +1 -1
- package/chunks/ColorMaterial.glsl.js +12 -12
- package/chunks/ComponentShader.glsl.js +21 -21
- package/chunks/Compositing.glsl.js +1 -1
- package/chunks/DefaultMaterial.glsl.js +33 -33
- package/chunks/EdgeShaderProgram.glsl.js +7 -7
- package/chunks/Fog.glsl.js +10 -12
- package/chunks/HUDMaterial.glsl.js +2 -2
- package/chunks/HighlightComposition.glsl.js +5 -5
- package/chunks/ImageMaterial.glsl.js +6 -6
- package/chunks/LaserlinePath.glsl.js +8 -8
- package/chunks/LineCallout.glsl.js +6 -6
- package/chunks/MeasurementArrow.glsl.js +1 -1
- package/chunks/NativeLine.glsl.js +1 -1
- package/chunks/Path.glsl.js +5 -5
- package/chunks/Pattern.glsl.js +9 -9
- package/chunks/PointRenderer.glsl.js +14 -14
- package/chunks/Precipitation.glsl.js +91 -0
- package/chunks/RealisticTree.glsl.js +21 -21
- package/chunks/RibbonLine.glsl.js +11 -11
- package/chunks/SMAA.glsl.js +40 -40
- package/chunks/ShadedColorMaterial.glsl.js +12 -12
- package/chunks/ShadowCast.glsl.js +6 -6
- package/chunks/ShadowHighlight.glsl.js +4 -4
- package/chunks/SimpleAtmosphere.glsl.js +3 -3
- package/chunks/SlicePlaneMaterial.glsl.js +3 -3
- package/chunks/Stars.glsl.js +3 -3
- package/chunks/Terrain.glsl.js +3 -3
- package/chunks/TextureOnly.glsl.js +2 -2
- package/chunks/WaterSurface.glsl.js +22 -22
- package/chunks/boundedPlane.js +1 -1
- package/chunks/pe.js +1 -1
- package/chunks/vec3.js +1 -1
- package/chunks/vxlLayer.js +1 -1
- package/core/accessorSupport/read.js +1 -1
- package/core/accessorSupport/watch.js +1 -1
- package/core/accessorSupport/write.js +1 -1
- package/core/clock.js +1 -1
- package/core/jsonMap.js +1 -1
- package/core/libs/gl-matrix-2/math/vec3.js +1 -1
- package/core/loadAll.js +1 -1
- package/core/promiseUtils.js +1 -1
- package/core/reactiveUtils.js +1 -1
- package/form/ExpressionInfo.js +1 -1
- package/geometry/pe.js +1 -1
- package/geometry/support/axisAngleDegrees.js +1 -1
- package/geometry/support/frustum.js +1 -1
- package/geometry/support/plane.js +1 -1
- package/interfaces.d.ts +263 -35
- package/layers/VectorTileLayer.js +1 -1
- package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
- package/layers/graphics/featureConversionUtils.js +1 -1
- package/layers/support/LayerContingentValuesCache.js +1 -1
- package/layers/support/TileInfo.js +1 -1
- package/layers/support/rasterDatasets/BaseRaster.js +1 -1
- package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
- package/package.json +2 -2
- package/popup/content/AttachmentsContent.js +1 -1
- package/popup/content/support/mediaInfoTypes.js +1 -1
- package/rest/print.js +1 -1
- package/smartMapping/statistics/support/predominanceUtils.d.ts +4 -0
- package/support/arcadeOnDemand.js +1 -1
- package/support/featureFlags.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/FillSymbol3DLayer.js +1 -1
- package/symbols/IconSymbol3DLayer.js +1 -1
- package/symbols/LabelSymbol3D.js +1 -1
- package/symbols/ObjectSymbol3DLayer.js +1 -1
- package/symbols/PointSymbol3D.js +1 -1
- package/symbols/Symbol3D.js +1 -1
- package/symbols/WebStyleSymbol.js +1 -1
- package/symbols/cim/CIMSymbolHelper.js +1 -1
- package/symbols/cim/CIMSymbolRasterizer.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/symbols/support/IconSymbol3DLayerResource.js +1 -1
- package/symbols/support/ObjectSymbol3DLayerResource.js +1 -1
- package/symbols/support/Symbol3DAnchorPosition2D.js +1 -1
- package/symbols/support/Symbol3DAnchorPosition3D.js +1 -1
- package/symbols/support/Symbol3DFillMaterial.js +1 -1
- package/symbols/support/Symbol3DIconOutline.js +1 -1
- package/symbols/support/Symbol3DOutline.js +1 -1
- package/symbols/support/Symbol3DVerticalOffset.js +1 -1
- package/symbols/support/Thumbnail.js +1 -1
- package/symbols/support/previewCIMSymbol.js +1 -1
- package/symbols/support/previewSymbol2D.js +1 -1
- package/symbols/support/previewSymbol3D.js +1 -1
- package/symbols/support/previewWebStyleSymbol.js +1 -1
- package/symbols/support/svgUtils.js +1 -1
- package/symbols/support/webStyleSymbolUtils.js +1 -1
- package/symbols.js +1 -1
- package/views/2d/MapViewConstraints.js +1 -1
- package/views/2d/engine/vectorTiles/SchemaHelper.js +1 -1
- package/views/2d/engine/webgl/brushes/raster/BrushRasterBitmap.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLFillTemplate.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
- package/views/2d/viewpointUtils.js +1 -1
- package/views/3d/environment/ChapmanAtmosphere.glsl.js +1 -1
- package/views/3d/environment/ChapmanAtmosphere.js +1 -1
- package/views/3d/environment/CloudsComposition.glsl.js +1 -1
- package/views/3d/environment/CloudsComposition.js +1 -1
- package/views/3d/environment/CloudsGenerator.js +1 -1
- package/views/3d/environment/CloudsPresets.js +1 -1
- package/views/3d/environment/EnvironmentRenderer.js +1 -1
- package/views/3d/environment/Fog.glsl.js +1 -1
- package/views/3d/environment/Fog.js +1 -1
- package/views/3d/environment/PanoramicAtmosphere.js +1 -1
- package/views/3d/environment/Precipitation.glsl.js +5 -0
- package/views/3d/environment/Precipitation.js +5 -0
- package/views/3d/environment/PrecipitationTechnique.js +5 -0
- package/views/3d/environment/RainyWeather.js +1 -1
- package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
- package/views/3d/environment/SimpleAtmosphere.glsl.js +1 -1
- package/views/3d/environment/SimpleAtmosphere.js +1 -1
- package/views/3d/environment/SnowyWeather.js +5 -0
- package/views/3d/environment/Stars.glsl.js +1 -1
- package/views/3d/environment/Stars.js +1 -1
- package/views/3d/environment/weather.js +1 -1
- package/views/3d/interactive/analysisTools/slice/SliceTool.js +1 -1
- package/views/3d/interactive/analysisTools/slice/sliceToolUtils.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/ScaleRotateMeshAdapter.js +1 -1
- package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
- package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
- package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsView3D.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/VectorTileLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Deconflictor.js +1 -1
- package/views/3d/layers/graphics/ElevationAligners.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
- package/views/3d/layers/graphics/graphicUtils.js +1 -1
- package/views/3d/layers/graphics/lineUtils.js +1 -1
- package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
- package/views/3d/layers/graphics/polygonUtils.js +1 -1
- package/views/3d/layers/graphics/symbolComplexity.js +1 -1
- package/views/3d/layers/i3s/I3SBinaryReader.js +1 -1
- package/views/3d/layers/i3s/PointRenderer.js +1 -1
- package/views/3d/layers/support/HeatmapFeatureProcessor.js +5 -0
- package/views/3d/layers/support/overlayImageUtils.js +1 -1
- package/views/3d/layers/support/patternUtils.js +1 -1
- package/views/3d/state/controllers/local/PinchAndPanController.js +1 -1
- package/views/3d/support/FrustumExtentIntersection.js +1 -1
- package/views/3d/support/LaserLineRenderer.js +1 -1
- package/views/3d/support/LaserlinePathData.js +1 -1
- package/views/3d/support/pointsOfInterest/Focus.js +1 -1
- package/views/3d/support/sunUtils.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/PatchGeometryFactory.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/Tile.js +1 -1
- package/views/3d/terrain/terrainUtils.js +1 -1
- package/views/3d/terrain/tileUtils.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js +10 -10
- package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
- package/views/3d/webgl-engine/collections/Component/SourceGeometry.js +1 -1
- package/views/3d/webgl-engine/core/renderPasses/AllRenderPasses.js +1 -1
- package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js +4 -4
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/PositionAttribute.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +12 -12
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTextureCoordinates.glsl.js +4 -4
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +16 -16
- package/views/3d/webgl-engine/core/shaderLibrary/default/RealisticTree.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDOcclusionPass.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/raster/BasicGrid.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeShadingNormal.glsl.js +10 -11
- package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassGeometryTest.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassTerrainTest.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js +4 -4
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/shading/Reprojection.glsl.js +4 -4
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js +22 -14
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Terrain.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/BlendLayers.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +4 -4
- package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
- package/views/3d/webgl-engine/lib/Camera.js +1 -1
- package/views/3d/webgl-engine/lib/DefaultVertexAttributeLocations.js +1 -1
- package/views/3d/webgl-engine/lib/DefaultVertexBufferLayouts.js +1 -1
- package/views/3d/webgl-engine/lib/Geometry.js +1 -1
- package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
- package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
- package/views/3d/webgl-engine/lib/MagnifierHelper.js +1 -1
- package/views/3d/webgl-engine/lib/Material.js +1 -1
- package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/RenderPluginManager.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/SSAOHelper.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
- package/views/3d/webgl-engine/lib/SmaaRenderPass.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
- package/views/3d/webgl-engine/lib/Texture.js +1 -1
- package/views/3d/{layers/graphics/IGraphics3DFeatureProcessor.js → webgl-engine/lib/TextureUniformName.js} +0 -0
- package/views/3d/webgl-engine/lib/UniformName.js +4 -0
- package/views/3d/webgl-engine/lib/VertexAttribute.js +5 -0
- package/views/3d/webgl-engine/lib/basicInterfaces.js +1 -1
- package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechnique.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/RenderInstanceData.js +1 -1
- package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
- package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineCalloutMaterial.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/PathTechnique.js +1 -1
- package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/VisualVariableMaterialParameters.js +1 -1
- package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
- package/views/3d/webgl-engine/materials/internal/DefaultBufferWriter.js +1 -1
- package/views/3d/webgl-engine/materials/internal/MaterialUtil.js +1 -1
- package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
- package/views/3d/webgl-engine/materials/internal/waterMaterialUtils.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightComposition.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/LaserlinePath.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LaserlinePathTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/Magnifier.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/MeasurementArrow.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/PointRenderer.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RealisticTreeTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/SMAA.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadowCastTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadowHighlightTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/SlicePlaneMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/AdjustProjectedPosition.glsl.js +10 -10
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/DiscardShortEdges.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeShaderProgram.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +21 -21
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineAmplitude.glsl.js +6 -6
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineOffset.glsl.js +13 -13
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/UnpackAttributes.glsl.js +6 -6
- package/views/MapView.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/View.js +1 -1
- package/views/input/recognizers/DoubleTapDrag.js +1 -1
- package/views/input/recognizers/ImmediateDoubleClick.js +1 -1
- package/views/input/recognizers/PointerClickHoldAndDrag.js +1 -1
- package/views/input/recognizers/SingleAndDoubleClick.js +1 -1
- package/views/interactive/dragEventPipeline.js +1 -1
- package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
- package/views/support/DefaultsFromMap.js +1 -1
- package/views/support/WatchUpdatingTracking.js +1 -1
- package/views/support/projectionUtils.js +5 -0
- package/views/webgl/BufferObject.js +1 -1
- package/views/webgl/InstanceCounter.js +1 -1
- package/views/webgl/Program.js +1 -1
- package/views/webgl/rasterUtils.js +1 -1
- package/webdoc/support/{Thumbnail.js → SlideThumbnail.js} +1 -1
- package/webmap/Bookmark.js +1 -1
- package/webmap/Version.js +1 -1
- package/webscene/Slide.js +1 -1
- package/webscene/Version.js +1 -1
- package/webscene/support/SlideVisibleLayer.js +1 -1
- package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.js +1 -1
- package/widgets/Attachments.js +1 -1
- package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
- package/widgets/BasemapGallery/support/BasemapGalleryItem.js +1 -1
- package/widgets/BasemapGallery/support/basemapCompatibilityUtils.js +1 -1
- package/widgets/BasemapGallery.js +1 -1
- package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
- package/widgets/Bookmarks.js +1 -1
- package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js +1 -1
- package/widgets/FeatureForm/InputField.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
- package/widgets/LineOfSight/LineOfSightViewModel.js +1 -1
- package/widgets/Popup/PopupViewModel.js +1 -1
- package/widgets/Popup/actionUtils.js +1 -1
- package/widgets/Search/support/locatorUtils.js +1 -1
- package/widgets/Search.js +1 -1
- package/widgets/Slice/SliceViewModel.js +1 -1
- package/widgets/Slider/SliderViewModel.js +1 -1
- package/widgets/Slider.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/Weather/WeatherViewModel.js +1 -1
- package/widgets/Weather/css.js +1 -1
- package/widgets/Weather/enums.js +5 -0
- package/widgets/Weather.js +1 -1
- package/widgets/support/InteractiveAnalysisViewModel.js +1 -1
- package/widgets/support/InteractiveToolViewModel.js +1 -1
- package/assets/components/assets/calcite-icon/checkSquareF16.json +0 -1
- package/assets/components/assets/calcite-icon/checkSquareF24.json +0 -1
- package/assets/components/assets/calcite-icon/checkSquareF32.json +0 -1
- package/assets/components/assets/calcite-icon/lineSolid4.json +0 -1
- package/assets/components/assets/calcite-icon/squareF16.json +0 -1
- package/assets/components/assets/calcite-icon/squareF24.json +0 -1
- package/assets/components/assets/calcite-icon/squareF32.json +0 -1
- package/assets/components/assets/calcite-icon/xHexagon16.json +0 -1
- package/assets/components/assets/calcite-icon/xHexagon24.json +0 -1
- package/assets/components/assets/calcite-icon/xHexagon32.json +0 -1
- package/assets/components/assets/calcite-icon/xHexagonF16.json +0 -1
- package/assets/components/assets/calcite-icon/xHexagonF24.json +0 -1
- package/assets/components/assets/calcite-icon/xHexagonF32.json +0 -1
- package/assets/components/assets/calcite-icon/xOctagonF16.json +0 -1
- package/assets/components/assets/calcite-icon/xOctagonF24.json +0 -1
- package/assets/components/assets/calcite-icon/xOctagonF32.json +0 -1
- package/assets/esri/core/workers/chunks/09da224052976e290828.js +0 -1
- package/assets/esri/core/workers/chunks/0bf079e752ab79468478.js +0 -1
- package/assets/esri/core/workers/chunks/0c3e3a5baf54bd5e210c.js +0 -1
- package/assets/esri/core/workers/chunks/14bef72154b3a19561a7.js +0 -1
- package/assets/esri/core/workers/chunks/18668dc45eb9e35530df.js +0 -1
- package/assets/esri/core/workers/chunks/1e4d37c2b9dc83d20a11.js +0 -1
- package/assets/esri/core/workers/chunks/20411bb8e04703962ce6.js +0 -1
- package/assets/esri/core/workers/chunks/208a7e24e19fc5633dd7.js +0 -1
- package/assets/esri/core/workers/chunks/22b09e276c9b9f22f0f8.js +0 -1
- package/assets/esri/core/workers/chunks/23745a5ab47c840dc452.js +0 -1
- package/assets/esri/core/workers/chunks/2416f8bf8bbd2ec786ab.js +0 -1
- package/assets/esri/core/workers/chunks/25a3e9bc0b4c7e0d3165.js +0 -1
- package/assets/esri/core/workers/chunks/2e445a8735ea2adb641a.js +0 -1
- package/assets/esri/core/workers/chunks/32f8c4af7e70ebdcb19e.js +0 -1
- package/assets/esri/core/workers/chunks/36a3f6fb4d1d18fcb642.js +0 -1
- package/assets/esri/core/workers/chunks/390d9021169e65c10eb8.js +0 -1
- package/assets/esri/core/workers/chunks/3a9740dccda6a733313c.js +0 -1
- package/assets/esri/core/workers/chunks/3aa4194dc5497c57647f.js +0 -1
- package/assets/esri/core/workers/chunks/40a1e713f63ec77110c0.js +0 -1
- package/assets/esri/core/workers/chunks/43cdff2418325e163420.js +0 -1
- package/assets/esri/core/workers/chunks/4bfbf5a34c9207fdcf44.js +0 -1
- package/assets/esri/core/workers/chunks/5538639a49c7cc2eca63.js +0 -1
- package/assets/esri/core/workers/chunks/5a4a5585ec8027079f32.js +0 -1
- package/assets/esri/core/workers/chunks/5d4863a92b03bebc1b54.js +0 -1
- package/assets/esri/core/workers/chunks/60371c0f750cde87656d.js +0 -1
- package/assets/esri/core/workers/chunks/634b5ccd7a3ac67f855d.js +0 -1
- package/assets/esri/core/workers/chunks/662d13f68cf3ec92439b.js +0 -1
- package/assets/esri/core/workers/chunks/663ad15b86936eb06b69.js +0 -1
- package/assets/esri/core/workers/chunks/67162b3e2cc1b5dc6818.js +0 -1
- package/assets/esri/core/workers/chunks/739e579150bf466d43ae.js +0 -1
- package/assets/esri/core/workers/chunks/74df1f3e1e2e524a89d2.js +0 -1
- package/assets/esri/core/workers/chunks/76eef4799f6c5fff7e2d.js +0 -1
- package/assets/esri/core/workers/chunks/7baf6b1f3f050aa67ae4.js +0 -1
- package/assets/esri/core/workers/chunks/7bc5cc5dbf1b7b70ddac.js +0 -1
- package/assets/esri/core/workers/chunks/85e27fd949475f9a6bbc.js +0 -1
- package/assets/esri/core/workers/chunks/8967288145f8fbd20e7d.js +0 -1
- package/assets/esri/core/workers/chunks/8b6ab6202a40fe622833.js +0 -1
- package/assets/esri/core/workers/chunks/96ab518eb6ba11333dee.js +0 -1
- package/assets/esri/core/workers/chunks/9796d54ff12b6429164a.js +0 -1
- package/assets/esri/core/workers/chunks/99a777693e4539f0b03b.js +0 -1
- package/assets/esri/core/workers/chunks/9cb2ae42a8e328b1d98d.js +0 -1
- package/assets/esri/core/workers/chunks/9d3c58a0ef634d95b7bd.js +0 -1
- package/assets/esri/core/workers/chunks/a6ff3db3493543df81bc.js +0 -1
- package/assets/esri/core/workers/chunks/a8c13529367c037cdd94.js +0 -1
- package/assets/esri/core/workers/chunks/a96afc176041f698c7a1.js +0 -1
- package/assets/esri/core/workers/chunks/aa861b8eae6c85f3dad4.js +0 -1
- package/assets/esri/core/workers/chunks/ac8dca61ade28c542ae2.js +0 -1
- package/assets/esri/core/workers/chunks/ad081d8e49e7f90c3c26.js +0 -1
- package/assets/esri/core/workers/chunks/afa6912454f2a5ffadce.js +0 -1
- package/assets/esri/core/workers/chunks/b2beb6e1fd2ee6503830.js +0 -1
- package/assets/esri/core/workers/chunks/ba615f118a3a8970ef25.js +0 -1
- package/assets/esri/core/workers/chunks/ba6654a885be4b7a43f0.js +0 -1
- package/assets/esri/core/workers/chunks/bab1cfd0a901181622af.js +0 -1
- package/assets/esri/core/workers/chunks/be2b7cce79fd41627931.js +0 -1
- package/assets/esri/core/workers/chunks/c080114a69fa95b88d22.js +0 -1
- package/assets/esri/core/workers/chunks/c11474b702dfb94e8e87.js +0 -1
- package/assets/esri/core/workers/chunks/c13dfdd548dcb1bdb294.js +0 -1
- package/assets/esri/core/workers/chunks/c6bd943fe8fd13bb4806.js +0 -1
- package/assets/esri/core/workers/chunks/c6f94b92e866b881d9b9.js +0 -1
- package/assets/esri/core/workers/chunks/ca2f5faa01d99c21ec14.js +0 -1
- package/assets/esri/core/workers/chunks/cd7d83d127e085d52584.js +0 -1
- package/assets/esri/core/workers/chunks/cef4af64860ebbfc1c47.js +0 -1
- package/assets/esri/core/workers/chunks/cfbffa429d88e7709c3f.js +0 -1
- package/assets/esri/core/workers/chunks/d24c4fbc567486b1188f.js +0 -1
- package/assets/esri/core/workers/chunks/d52108864136c5a8a618.js +0 -1
- package/assets/esri/core/workers/chunks/da1c2873bdbc0956dca0.js +0 -1
- package/assets/esri/core/workers/chunks/de03439ca2c9782bf325.js +0 -1
- package/assets/esri/core/workers/chunks/de6cff7b6cbbf99b20d1.js +0 -981
- package/assets/esri/core/workers/chunks/e079cb1d53aca15b7df2.js +0 -1
- package/assets/esri/core/workers/chunks/e59764ee8cf25d4f74e2.js +0 -1
- package/assets/esri/core/workers/chunks/e6df9839b551569fbc62.js +0 -1
- package/assets/esri/core/workers/chunks/e97e986120aaadad7d4c.js +0 -1
- package/assets/esri/core/workers/chunks/f467c8f1fce22f6f599c.js +0 -1
- package/assets/esri/core/workers/chunks/f678293de9a6d8f5b5db.js +0 -1
- package/assets/esri/core/workers/chunks/f8e7755240a94b499e1f.js +0 -1
- package/assets/esri/core/workers/chunks/fd3e5d823dc7917f4b8f.js +0 -1
- package/assets/esri/core/workers/chunks/fe864d01e72aa24574b6.js +0 -1
- package/assets/esri/core/workers/chunks/ffaf091c6023225cf5aa.js +0 -1
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{clamp as e}from"../../../../core/mathUtils.js";import{isSome as t}from"../../../../core/maybe.js";import{createRenderScreenPointArray3 as r}from"../../../../core/screenUtils.js";import{f as s}from"../../../../chunks/mat3.js";import{c as i}from"../../../../chunks/mat3f64.js";import{a as n}from"../../../../chunks/mat4.js";import{c as a}from"../../../../chunks/mat4f64.js";import{c as o}from"../../../../chunks/vec2.js";import{a as c,f as l}from"../../../../chunks/vec2f64.js";import{s as f,m as u,n as p,f as m,a as h,g as d,l as g,i as O,t as S,d as v,b}from"../../../../chunks/vec3.js";import{c as A,f as P}from"../../../../chunks/vec3f64.js";import{isMat4 as x}from"../../../../core/libs/gl-matrix-2/types/mat4.js";import{create as C}from"../../../../geometry/support/aaBoundingRect.js";import{newLayout as y}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as I}from"../core/shaderLibrary/ShaderOutputOptions.js";import{HUDSpace as z}from"../core/shaderLibrary/hud/HUD.glsl.js";import{VertexAttribute as T}from"../lib/basicInterfaces.js";import{computeAttachmentOriginPoints as _}from"../lib/geometryDataUtils.js";import E from"../lib/GLMaterialTexture.js";import{Material as U,materialParametersDefaults as j}from"../lib/Material.js";import{RenderSlot as q}from"../lib/RenderSlot.js";import{applyScaleFactor as M,applyPrecomputedScaleFactor as w,precomputeScaleFactor as L}from"../lib/screenSizePerspectiveUtils.js";import{assert as D}from"../lib/Util.js";import{writePosition as R,writeNormal as V,writeColor as N,writeBufferVec4 as G}from"./internal/bufferWriterUtils.js";import{verticalOffsetAtDistance as B}from"./internal/MaterialUtil.js";import{isInstanceHidden as H}from"./renderers/utils.js";import{c as X}from"../../../../chunks/HUDMaterial.glsl.js";import{HUDMaterialTechniqueConfiguration as k,HUDMaterialTechnique as F}from"../shaders/HUDMaterialTechnique.js";class W extends U{constructor(e){super(e,ge),this.techniqueConfig=new k}getTechniqueConfig(e,t){return this.techniqueConfig.output=e,this.techniqueConfig.slicePlaneEnabled=this.parameters.slicePlaneEnabled,this.techniqueConfig.verticalOffset=!!this.parameters.verticalOffset,this.techniqueConfig.screenSizePerspective=!!this.parameters.screenSizePerspective,this.techniqueConfig.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits?z.Screen:z.World,this.techniqueConfig.polygonOffsetEnabled=this.parameters.polygonOffset,this.techniqueConfig.isDraped=this.parameters.isDraped,this.techniqueConfig.occlusionTestEnabled=this.parameters.occlusionTest,this.techniqueConfig.pixelSnappingEnabled=this.parameters.pixelSnappingEnabled,this.techniqueConfig.sdf=this.parameters.textureIsSignedDistanceField,this.techniqueConfig.vvSize=!!this.parameters.vvSizeEnabled,this.techniqueConfig.vvColor=!!this.parameters.vvColorEnabled,e===I.Color&&(this.techniqueConfig.debugDrawLabelBorder=!!this.parameters.debugDrawLabelBorder),e===I.Highlight&&(this.techniqueConfig.binaryHighlightOcclusion=this.parameters.binaryHighlightOcclusion),this.techniqueConfig.depthEnabled=this.parameters.depthEnabled,this.techniqueConfig.transparencyPassType=t.transparencyPassType,this.techniqueConfig.multipassGeometryEnabled=t.multipassGeometryEnabled,this.techniqueConfig.multipassTerrainEnabled=t.multipassTerrainEnabled,this.techniqueConfig.cullAboveGround=t.cullAboveGround,this.techniqueConfig}intersect(e,r,s,i,n,a,o,c,l){t(l)?this._intersectDrapedHudGeometry(e,a,o,c,l):this._intersectHudGeometry(e,r,s,i,o,c)}_intersectDrapedHudGeometry(e,r,s,i,n){const a=e.vertexAttributes.get(T.POSITION),o=e.vertexAttributes.get(T.SIZE),c=this.parameters,l=X(c);let f=1,u=1;if(t(i)){const e=i(ue);f=e[0],u=e[5]}f*=e.screenToWorldRatio,u*=e.screenToWorldRatio;const p=me*e.screenToWorldRatio;for(let t=0;t<a.data.length/a.size;t++){const i=t*a.size,m=a.data[i],h=a.data[i+1],d=t*o.size;let g;he[0]=o.data[d]*f,he[1]=o.data[d+1]*u,c.textureIsSignedDistanceField&&(g=c.outlineSize*e.screenToWorldRatio/2),Y(r,m,h,he,p,g,c,l)&&s(n.dist,n.normal,-1,!0)}}_intersectHudGeometry(e,r,i,a,o,c){if(!a.options.selectionMode||!a.options.hud||H(r))return;const l=this.parameters;let S=1,v=1;if(s(ae,i),t(c)){const e=c(ue);S=e[0],v=e[5],Q(ae)}const b=e.vertexAttributes.get(T.POSITION),P=e.vertexAttributes.get(T.SIZE),x=e.vertexAttributes.get(T.NORMAL),C=e.vertexAttributes.get(T.AUXPOS1);D(b.size>=3);const y=a.point,I=a.camera,z=X(l);S*=I.pixelRatio,v*=I.pixelRatio;const _="screen"===this.parameters.centerOffsetUnits;for(let t=0;t<b.data.length/b.size;t++){const e=t*b.size;f(te,b.data[e],b.data[e+1],b.data[e+2]),u(te,te,i);const r=t*P.size;he[0]=P.data[r]*S,he[1]=P.data[r+1]*v,u(te,te,I.viewMatrix);const s=t*C.size;if(f(le,C.data[s+0],C.data[s+1],C.data[s+2]),!_&&(te[0]+=le[0],te[1]+=le[1],0!==le[2])){const e=le[2];p(le,te),m(te,te,h(le,le,e))}const c=t*x.size;if(f(re,x.data[c],x.data[c+1],x.data[c+2]),this._normalAndViewAngle(re,ae,I,fe),this._applyVerticalOffsetTransformationView(te,fe,I,$),I.applyProjection(te,se),se[0]>-1){let e=Math.floor(se[0])+this.parameters.screenOffset[0],t=Math.floor(se[1])+this.parameters.screenOffset[1];_&&(e+=le[0],0!==le[1]&&(t+=M(le[1],$.factorAlignment))),w(he,$.factor,he);const r=pe*I.pixelRatio;let s;if(l.textureIsSignedDistanceField&&(s=l.outlineSize*I.pixelRatio/2),Y(y,e,t,he,r,s,l,z)){const e=a.ray;if(u(ne,te,n(ce,I.viewMatrix)),se[0]=y[0],se[1]=y[1],I.unprojectFromRenderScreen(se,te)){const t=A();d(t,e.direction);const r=1/g(t);h(t,t,r);o(O(e.origin,te)*r,t,-1,!0,1,ne)}}}}}computeAttachmentOrigin(e,t){const r=e.vertexAttributes;if(!r)return!1;const s=r.get(T.POSITION),i=e.indices.get(T.POSITION);return _(s,i,t)}createBufferWriter(){return new Se(this)}_normalAndViewAngle(e,t,r,i){return x(t)&&(t=s(oe,t)),S(i.normal,e,t),u(i.normal,i.normal,r.viewInverseTransposeMatrix),i.cosAngle=v(ie,de),i}_updateScaleInfo(e,t,r){const s=this.parameters;s.screenSizePerspective?L(r,t,s.screenSizePerspective,e.factor):(e.factor.scale=1,e.factor.factor=0,e.factor.minPixelSize=0,e.factor.paddingPixels=0),s.screenSizePerspectiveAlignment?L(r,t,s.screenSizePerspectiveAlignment,e.factorAlignment):(e.factorAlignment.factor=e.factor.factor,e.factorAlignment.scale=e.factor.scale,e.factorAlignment.minPixelSize=e.factor.minPixelSize,e.factorAlignment.paddingPixels=e.factor.paddingPixels)}applyShaderOffsetsView(e,t,r,s,i,n,a){const o=this._normalAndViewAngle(t,r,i,fe);return this._applyVerticalGroundOffsetView(e,o,i,a),this._applyVerticalOffsetTransformationView(a,o,i,n),this._applyPolygonOffsetView(a,o,s[3],i,a),this._applyCenterOffsetView(a,s,a),a}applyShaderOffsetsNDC(e,r,s,i,n){return this._applyCenterOffsetNDC(e,r,s,i),t(n)&&d(n,i),this._applyPolygonOffsetNDC(i,r,s,i),i}_applyPolygonOffsetView(t,r,s,i,n){const a=i.aboveGround?1:-1;let o=Math.sign(s);0===o&&(o=a);const c=a*o;if(this.parameters.shaderPolygonOffset<=0)return d(n,t);const l=e(Math.abs(r.cosAngle),.01,1),f=1-Math.sqrt(1-l*l)/l/i.viewport[2];return h(n,t,c>0?f:1/f),n}_applyVerticalGroundOffsetView(e,t,r,s){const i=g(e),n=r.aboveGround?1:-1,a=.5*r.computeRenderPixelSizeAtDist(i),o=h(te,t.normal,n*a);return b(s,e,o),s}_applyVerticalOffsetTransformationView(e,t,r,s){const i=this.parameters;if(!i.verticalOffset||!i.verticalOffset.screenLength){if(i.screenSizePerspective||i.screenSizePerspectiveAlignment){const r=g(e);this._updateScaleInfo(s,r,t.cosAngle)}else s.factor.scale=1,s.factorAlignment.scale=1;return e}const n=g(e),a=i.screenSizePerspectiveAlignment||i.screenSizePerspective,o=B(r,n,i.verticalOffset,t.cosAngle,a);return this._updateScaleInfo(s,n,t.cosAngle),h(t.normal,t.normal,o),b(e,e,t.normal)}_applyCenterOffsetView(e,t,r){const s="screen"!==this.parameters.centerOffsetUnits;return r!==e&&d(r,e),s&&(r[0]+=t[0],r[1]+=t[1],t[2]&&(p(re,r),b(r,r,h(re,re,t[2])))),r}_applyCenterOffsetNDC(e,t,r,s){const i="screen"!==this.parameters.centerOffsetUnits;return s!==e&&d(s,e),i||(s[0]+=t[0]/r.fullWidth*2,s[1]+=t[1]/r.fullHeight*2),s}_applyPolygonOffsetNDC(e,t,r,s){const i=this.parameters.shaderPolygonOffset;if(e!==s&&d(s,e),i){const e=r.aboveGround?1:-1,n=e*Math.sign(t[3]);s[2]-=(n||e)*i}return s}requiresSlot(e){if(e===q.DRAPED_MATERIAL)return!0;const{drawInSecondSlot:t,occlusionTest:r}=this.parameters;return e===(t?q.LABEL_MATERIAL:q.HUD_MATERIAL)||r&&e===q.OCCLUSION_PIXELS}createGLMaterial(e){return e.output===I.Color||e.output===I.Alpha?new J(e):e.output===I.Highlight?new Z(e):null}calculateRelativeScreenBounds(e,t,r=C()){return K(this.parameters,e,t,r),r[2]=r[0]+e[0],r[3]=r[1]+e[1],r}}class Z extends E{constructor(e){super({...e,...e.material.parameters})}updateParameters(e){return this.updateTexture(this._material.parameters.textureId),this.selectProgram(e)}selectProgram(e){return this.ensureTechnique(F,e)}beginSlot(e){return this.updateParameters(e)}bind(e,t){this.bindTextures(t.program),this.bindTextureScale(t.program),t.bindPass(this._material.parameters,e)}}class J extends Z{_isOcclusionSlot(e){return e.slot===q.OCCLUSION_PIXELS&&this._material.parameters.occlusionTest&&(this._output===I.Color||this._output===I.Alpha)}selectProgram(e){return this.ensureTechnique(F,e,this._isOcclusionSlot(e)?I.Occlusion:this._output)}bind(e,t){this._isOcclusionSlot(e)||(this.bindTextures(t.program),this.bindTextureScale(t.program)),t.bindPass(this._material.parameters,e)}}function K(e,t,r,s=ee){return o(s,e.anchorPos),s[0]*=-t[0],s[1]*=-t[1],s[0]+=e.screenOffset[0]*r,s[1]+=e.screenOffset[1]*r,s}function Q(e){const t=e[0],r=e[1],s=e[2],i=e[3],n=e[4],a=e[5],o=e[6],c=e[7],l=e[8],f=1/Math.sqrt(t*t+r*r+s*s),u=1/Math.sqrt(i*i+n*n+a*a),p=1/Math.sqrt(o*o+c*c+l*l);return e[0]=t*f,e[1]=r*f,e[2]=s*f,e[3]=i*u,e[4]=n*u,e[5]=a*u,e[6]=o*p,e[7]=c*p,e[8]=l*p,e}function Y(e,t,r,s,i,n,a,o){let c=t-i-(o[0]>0?s[0]*o[0]:0),l=c+s[0]+2*i,f=r-i-(o[1]>0?s[1]*o[1]:0),u=f+s[1]+2*i;if(a.textureIsSignedDistanceField){const e=a.distanceFieldBoundingBox;c+=s[0]*e[0],f+=s[1]*e[1],l-=s[0]*(1-e[2]),u-=s[1]*(1-e[3]),c-=n,l+=n,f-=n,u+=n}return e[0]>c&&e[0]<l&&e[1]>f&&e[1]<u}const $={factor:{scale:0,factor:0,minPixelSize:0,paddingPixels:0},factorAlignment:{scale:0,factor:0,minPixelSize:0,paddingPixels:0}},ee=c(),te=A(),re=A(),se=r(),ie=A(),ne=A(),ae=i(),oe=i(),ce=a(),le=A(),fe={normal:ie,cosAngle:0},ue=a(),pe=1,me=2,he=[0,0],de=P(0,0,1),ge={texCoordScale:[1,1],occlusionTest:!0,binaryHighlightOcclusion:!0,drawInSecondSlot:!1,color:[1,1,1,1],outlineColor:[1,1,1,1],outlineSize:0,textureIsSignedDistanceField:!1,distanceFieldBoundingBox:null,vvSizeEnabled:!1,vvSizeMinSize:[1,1,1],vvSizeMaxSize:[100,100,100],vvSizeOffset:[0,0,0],vvSizeFactor:[1,1,1],vvColorEnabled:!1,vvColorValues:[0,0,0,0,0,0,0,0],vvColorColors:[1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0],screenOffset:[0,0],verticalOffset:null,screenSizePerspective:null,screenSizePerspectiveAlignment:null,slicePlaneEnabled:!1,anchorPos:l(.5,.5),shaderPolygonOffset:1e-5,polygonOffset:!1,textureId:null,centerOffsetUnits:"world",depthEnabled:!0,pixelSnappingEnabled:!0,debugDrawLabelBorder:!1,isDraped:!1,...j},Oe=y().vec3f(T.POSITION).vec3f(T.NORMAL).vec2f(T.UV0).vec4u8(T.COLOR).vec2f(T.SIZE).vec4f(T.AUXPOS1).vec4f(T.AUXPOS2);class Se{constructor(e){this.material=e,this.vertexBufferLayout=Oe}allocate(e){return this.vertexBufferLayout.createBuffer(e)}elementCount(e){return 6*e.indices.get(T.POSITION).length}write(e,t,r,s){R(t.indices.get(T.POSITION),t.vertexAttributes.get(T.POSITION).data,e.transformation,r.position,s,6),V(t.indices.get(T.NORMAL),t.vertexAttributes.get(T.NORMAL).data,e.invTranspTransformation,r.normal,s,6);{const e=t.vertexAttributes.get(T.UV0).data;let i,n,a,o;if(null==e||e.length<4){const e=this.material.parameters;i=0,n=0,a=e.texCoordScale[0],o=e.texCoordScale[1]}else i=e[0],n=e[1],a=e[2],o=e[3];a=Math.min(1.99999,a+1),o=Math.min(1.99999,o+1);const c=t.indices.get(T.POSITION).length,l=r.uv0;let f=s;for(let t=0;t<c;++t)l.set(f,0,i),l.set(f,1,n),f+=1,l.set(f,0,a),l.set(f,1,n),f+=1,l.set(f,0,a),l.set(f,1,o),f+=1,l.set(f,0,a),l.set(f,1,o),f+=1,l.set(f,0,i),l.set(f,1,o),f+=1,l.set(f,0,i),l.set(f,1,n),f+=1}N(t.indices.get(T.COLOR),t.vertexAttributes.get(T.COLOR).data,4,r.color,s,6);{const e=t.indices.get(T.SIZE),i=t.vertexAttributes.get(T.SIZE).data,n=e.length,a=r.size;let o=s;for(let t=0;t<n;++t){const r=i[2*e[t]],s=i[2*e[t]+1];for(let e=0;e<6;++e)a.set(o,0,r),a.set(o,1,s),o+=1}}t.indices.get(T.AUXPOS1)&&t.vertexAttributes.get(T.AUXPOS1)&&G(t.indices.get(T.AUXPOS1),t.vertexAttributes.get(T.AUXPOS1).data,r.auxpos1,s,6),t.indices.get(T.AUXPOS2)&&t.vertexAttributes.get(T.AUXPOS2)&&G(t.indices.get(T.AUXPOS2),t.vertexAttributes.get(T.AUXPOS2).data,r.auxpos2,s,6)}}export{W as HUDMaterial};
|
|
5
|
+
import{clamp as e}from"../../../../core/mathUtils.js";import{isSome as t}from"../../../../core/maybe.js";import{createRenderScreenPointArray3 as r}from"../../../../core/screenUtils.js";import{f as s}from"../../../../chunks/mat3.js";import{c as i}from"../../../../chunks/mat3f64.js";import{a as n}from"../../../../chunks/mat4.js";import{c as a}from"../../../../chunks/mat4f64.js";import{c as o}from"../../../../chunks/vec2.js";import{a as c,f as l}from"../../../../chunks/vec2f64.js";import{s as f,m as u,n as p,f as m,a as h,g as d,l as g,i as O,t as S,d as v,b}from"../../../../chunks/vec3.js";import{c as A,f as P}from"../../../../chunks/vec3f64.js";import{isMat4 as x}from"../../../../core/libs/gl-matrix-2/types/mat4.js";import{create as C}from"../../../../geometry/support/aaBoundingRect.js";import{newLayout as y}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as I}from"../core/shaderLibrary/ShaderOutputOptions.js";import{HUDSpace as z}from"../core/shaderLibrary/hud/HUD.glsl.js";import{computeAttachmentOriginPoints as T}from"../lib/geometryDataUtils.js";import _ from"../lib/GLMaterialTexture.js";import{Material as E,DefaultMaterialParameters as U}from"../lib/Material.js";import{RenderSlot as j}from"../lib/RenderSlot.js";import{applyScaleFactor as q,applyPrecomputedScaleFactor as M,precomputeScaleFactor as w}from"../lib/screenSizePerspectiveUtils.js";import{assert as L}from"../lib/Util.js";import{VertexAttribute as D}from"../lib/VertexAttribute.js";import{writePosition as R,writeNormal as V,writeColor as N,writeBufferVec4 as G}from"./internal/bufferWriterUtils.js";import{verticalOffsetAtDistance as B}from"./internal/MaterialUtil.js";import{isInstanceHidden as H}from"./renderers/utils.js";import{c as X}from"../../../../chunks/HUDMaterial.glsl.js";import{HUDMaterialTechniqueConfiguration as k,HUDMaterialTechnique as F}from"../shaders/HUDMaterialTechnique.js";class W extends E{constructor(e){super(e,ge),this.techniqueConfig=new k}getTechniqueConfig(e,t){return this.techniqueConfig.output=e,this.techniqueConfig.slicePlaneEnabled=this.parameters.slicePlaneEnabled,this.techniqueConfig.verticalOffset=!!this.parameters.verticalOffset,this.techniqueConfig.screenSizePerspective=!!this.parameters.screenSizePerspective,this.techniqueConfig.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits?z.Screen:z.World,this.techniqueConfig.polygonOffsetEnabled=this.parameters.polygonOffset,this.techniqueConfig.isDraped=this.parameters.isDraped,this.techniqueConfig.occlusionTestEnabled=this.parameters.occlusionTest,this.techniqueConfig.pixelSnappingEnabled=this.parameters.pixelSnappingEnabled,this.techniqueConfig.sdf=this.parameters.textureIsSignedDistanceField,this.techniqueConfig.vvSize=!!this.parameters.vvSizeEnabled,this.techniqueConfig.vvColor=!!this.parameters.vvColorEnabled,e===I.Color&&(this.techniqueConfig.debugDrawLabelBorder=!!this.parameters.debugDrawLabelBorder),e===I.Highlight&&(this.techniqueConfig.binaryHighlightOcclusion=this.parameters.binaryHighlightOcclusion),this.techniqueConfig.depthEnabled=this.parameters.depthEnabled,this.techniqueConfig.transparencyPassType=t.transparencyPassType,this.techniqueConfig.multipassGeometryEnabled=t.multipassGeometryEnabled,this.techniqueConfig.multipassTerrainEnabled=t.multipassTerrainEnabled,this.techniqueConfig.cullAboveGround=t.cullAboveGround,this.techniqueConfig}intersect(e,r,s,i,n,a,o,c,l){t(l)?this._intersectDrapedHudGeometry(e,a,o,c,l):this._intersectHudGeometry(e,r,s,i,o,c)}_intersectDrapedHudGeometry(e,r,s,i,n){const a=e.vertexAttributes.get(D.POSITION),o=e.vertexAttributes.get(D.SIZE),c=this.parameters,l=X(c);let f=1,u=1;if(t(i)){const e=i(ue);f=e[0],u=e[5]}f*=e.screenToWorldRatio,u*=e.screenToWorldRatio;const p=me*e.screenToWorldRatio;for(let t=0;t<a.data.length/a.size;t++){const i=t*a.size,m=a.data[i],h=a.data[i+1],d=t*o.size;let g;he[0]=o.data[d]*f,he[1]=o.data[d+1]*u,c.textureIsSignedDistanceField&&(g=c.outlineSize*e.screenToWorldRatio/2),Y(r,m,h,he,p,g,c,l)&&s(n.dist,n.normal,-1,!0)}}_intersectHudGeometry(e,r,i,a,o,c){if(!a.options.selectionMode||!a.options.hud||H(r))return;const l=this.parameters;let S=1,v=1;if(s(ae,i),t(c)){const e=c(ue);S=e[0],v=e[5],Q(ae)}const b=e.vertexAttributes.get(D.POSITION),P=e.vertexAttributes.get(D.SIZE),x=e.vertexAttributes.get(D.NORMAL),C=e.vertexAttributes.get(D.AUXPOS1);L(b.size>=3);const y=a.point,I=a.camera,z=X(l);S*=I.pixelRatio,v*=I.pixelRatio;const T="screen"===this.parameters.centerOffsetUnits;for(let t=0;t<b.data.length/b.size;t++){const e=t*b.size;f(te,b.data[e],b.data[e+1],b.data[e+2]),u(te,te,i);const r=t*P.size;he[0]=P.data[r]*S,he[1]=P.data[r+1]*v,u(te,te,I.viewMatrix);const s=t*C.size;if(f(le,C.data[s+0],C.data[s+1],C.data[s+2]),!T&&(te[0]+=le[0],te[1]+=le[1],0!==le[2])){const e=le[2];p(le,te),m(te,te,h(le,le,e))}const c=t*x.size;if(f(re,x.data[c],x.data[c+1],x.data[c+2]),this._normalAndViewAngle(re,ae,I,fe),this._applyVerticalOffsetTransformationView(te,fe,I,$),I.applyProjection(te,se),se[0]>-1){let e=Math.floor(se[0])+this.parameters.screenOffset[0],t=Math.floor(se[1])+this.parameters.screenOffset[1];T&&(e+=le[0],0!==le[1]&&(t+=q(le[1],$.factorAlignment))),M(he,$.factor,he);const r=pe*I.pixelRatio;let s;if(l.textureIsSignedDistanceField&&(s=l.outlineSize*I.pixelRatio/2),Y(y,e,t,he,r,s,l,z)){const e=a.ray;if(u(ne,te,n(ce,I.viewMatrix)),se[0]=y[0],se[1]=y[1],I.unprojectFromRenderScreen(se,te)){const t=A();d(t,e.direction);const r=1/g(t);h(t,t,r);o(O(e.origin,te)*r,t,-1,!0,1,ne)}}}}}computeAttachmentOrigin(e,t){const r=e.vertexAttributes;if(!r)return!1;const s=r.get(D.POSITION),i=e.indices.get(D.POSITION);return T(s,i,t)}createBufferWriter(){return new Se(this)}_normalAndViewAngle(e,t,r,i){return x(t)&&(t=s(oe,t)),S(i.normal,e,t),u(i.normal,i.normal,r.viewInverseTransposeMatrix),i.cosAngle=v(ie,de),i}_updateScaleInfo(e,t,r){const s=this.parameters;s.screenSizePerspective?w(r,t,s.screenSizePerspective,e.factor):(e.factor.scale=1,e.factor.factor=0,e.factor.minPixelSize=0,e.factor.paddingPixels=0),s.screenSizePerspectiveAlignment?w(r,t,s.screenSizePerspectiveAlignment,e.factorAlignment):(e.factorAlignment.factor=e.factor.factor,e.factorAlignment.scale=e.factor.scale,e.factorAlignment.minPixelSize=e.factor.minPixelSize,e.factorAlignment.paddingPixels=e.factor.paddingPixels)}applyShaderOffsetsView(e,t,r,s,i,n,a){const o=this._normalAndViewAngle(t,r,i,fe);return this._applyVerticalGroundOffsetView(e,o,i,a),this._applyVerticalOffsetTransformationView(a,o,i,n),this._applyPolygonOffsetView(a,o,s[3],i,a),this._applyCenterOffsetView(a,s,a),a}applyShaderOffsetsNDC(e,r,s,i,n){return this._applyCenterOffsetNDC(e,r,s,i),t(n)&&d(n,i),this._applyPolygonOffsetNDC(i,r,s,i),i}_applyPolygonOffsetView(t,r,s,i,n){const a=i.aboveGround?1:-1;let o=Math.sign(s);0===o&&(o=a);const c=a*o;if(this.parameters.shaderPolygonOffset<=0)return d(n,t);const l=e(Math.abs(r.cosAngle),.01,1),f=1-Math.sqrt(1-l*l)/l/i.viewport[2];return h(n,t,c>0?f:1/f),n}_applyVerticalGroundOffsetView(e,t,r,s){const i=g(e),n=r.aboveGround?1:-1,a=.5*r.computeRenderPixelSizeAtDist(i),o=h(te,t.normal,n*a);return b(s,e,o),s}_applyVerticalOffsetTransformationView(e,t,r,s){const i=this.parameters;if(!i.verticalOffset||!i.verticalOffset.screenLength){if(i.screenSizePerspective||i.screenSizePerspectiveAlignment){const r=g(e);this._updateScaleInfo(s,r,t.cosAngle)}else s.factor.scale=1,s.factorAlignment.scale=1;return e}const n=g(e),a=i.screenSizePerspectiveAlignment||i.screenSizePerspective,o=B(r,n,i.verticalOffset,t.cosAngle,a);return this._updateScaleInfo(s,n,t.cosAngle),h(t.normal,t.normal,o),b(e,e,t.normal)}_applyCenterOffsetView(e,t,r){const s="screen"!==this.parameters.centerOffsetUnits;return r!==e&&d(r,e),s&&(r[0]+=t[0],r[1]+=t[1],t[2]&&(p(re,r),b(r,r,h(re,re,t[2])))),r}_applyCenterOffsetNDC(e,t,r,s){const i="screen"!==this.parameters.centerOffsetUnits;return s!==e&&d(s,e),i||(s[0]+=t[0]/r.fullWidth*2,s[1]+=t[1]/r.fullHeight*2),s}_applyPolygonOffsetNDC(e,t,r,s){const i=this.parameters.shaderPolygonOffset;if(e!==s&&d(s,e),i){const e=r.aboveGround?1:-1,n=e*Math.sign(t[3]);s[2]-=(n||e)*i}return s}requiresSlot(e){if(e===j.DRAPED_MATERIAL)return!0;const{drawInSecondSlot:t,occlusionTest:r}=this.parameters;return e===(t?j.LABEL_MATERIAL:j.HUD_MATERIAL)||r&&e===j.OCCLUSION_PIXELS}createGLMaterial(e){return e.output===I.Color||e.output===I.Alpha?new J(e):e.output===I.Highlight?new Z(e):null}calculateRelativeScreenBounds(e,t,r=C()){return K(this.parameters,e,t,r),r[2]=r[0]+e[0],r[3]=r[1]+e[1],r}}class Z extends _{constructor(e){super({...e,...e.material.parameters})}updateParameters(e){return this.updateTexture(this._material.parameters.textureId),this.selectProgram(e)}selectProgram(e){return this.ensureTechnique(F,e)}beginSlot(e){return this.updateParameters(e)}bind(e,t){this.bindTextures(t.program),this.bindTextureScale(t.program),t.bindPass(this._material.parameters,e)}}class J extends Z{_isOcclusionSlot(e){return e.slot===j.OCCLUSION_PIXELS&&this._material.parameters.occlusionTest&&(this._output===I.Color||this._output===I.Alpha)}selectProgram(e){return this.ensureTechnique(F,e,this._isOcclusionSlot(e)?I.Occlusion:this._output)}bind(e,t){this._isOcclusionSlot(e)||(this.bindTextures(t.program),this.bindTextureScale(t.program)),t.bindPass(this._material.parameters,e)}}function K(e,t,r,s=ee){return o(s,e.anchorPos),s[0]*=-t[0],s[1]*=-t[1],s[0]+=e.screenOffset[0]*r,s[1]+=e.screenOffset[1]*r,s}function Q(e){const t=e[0],r=e[1],s=e[2],i=e[3],n=e[4],a=e[5],o=e[6],c=e[7],l=e[8],f=1/Math.sqrt(t*t+r*r+s*s),u=1/Math.sqrt(i*i+n*n+a*a),p=1/Math.sqrt(o*o+c*c+l*l);return e[0]=t*f,e[1]=r*f,e[2]=s*f,e[3]=i*u,e[4]=n*u,e[5]=a*u,e[6]=o*p,e[7]=c*p,e[8]=l*p,e}function Y(e,t,r,s,i,n,a,o){let c=t-i-(o[0]>0?s[0]*o[0]:0),l=c+s[0]+2*i,f=r-i-(o[1]>0?s[1]*o[1]:0),u=f+s[1]+2*i;if(a.textureIsSignedDistanceField){const e=a.distanceFieldBoundingBox;c+=s[0]*e[0],f+=s[1]*e[1],l-=s[0]*(1-e[2]),u-=s[1]*(1-e[3]),c-=n,l+=n,f-=n,u+=n}return e[0]>c&&e[0]<l&&e[1]>f&&e[1]<u}const $={factor:{scale:0,factor:0,minPixelSize:0,paddingPixels:0},factorAlignment:{scale:0,factor:0,minPixelSize:0,paddingPixels:0}},ee=c(),te=A(),re=A(),se=r(),ie=A(),ne=A(),ae=i(),oe=i(),ce=a(),le=A(),fe={normal:ie,cosAngle:0},ue=a(),pe=1,me=2,he=[0,0],de=P(0,0,1),ge={texCoordScale:[1,1],occlusionTest:!0,binaryHighlightOcclusion:!0,drawInSecondSlot:!1,color:[1,1,1,1],outlineColor:[1,1,1,1],outlineSize:0,textureIsSignedDistanceField:!1,distanceFieldBoundingBox:null,vvSizeEnabled:!1,vvSizeMinSize:[1,1,1],vvSizeMaxSize:[100,100,100],vvSizeOffset:[0,0,0],vvSizeFactor:[1,1,1],vvColorEnabled:!1,vvColorValues:[0,0,0,0,0,0,0,0],vvColorColors:[1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0],screenOffset:[0,0],verticalOffset:null,screenSizePerspective:null,screenSizePerspectiveAlignment:null,slicePlaneEnabled:!1,anchorPos:l(.5,.5),shaderPolygonOffset:1e-5,polygonOffset:!1,textureId:null,centerOffsetUnits:"world",depthEnabled:!0,pixelSnappingEnabled:!0,debugDrawLabelBorder:!1,isDraped:!1,...U},Oe=y().vec3f(D.POSITION).vec3f(D.NORMAL).vec2f(D.UV0).vec4u8(D.COLOR).vec2f(D.SIZE).vec4f(D.AUXPOS1).vec4f(D.AUXPOS2);class Se{constructor(e){this.material=e,this.vertexBufferLayout=Oe}allocate(e){return this.vertexBufferLayout.createBuffer(e)}elementCount(e){return 6*e.indices.get(D.POSITION).length}write(e,t,r,s){R(t.indices.get(D.POSITION),t.vertexAttributes.get(D.POSITION).data,e.transformation,r.position,s,6),V(t.indices.get(D.NORMAL),t.vertexAttributes.get(D.NORMAL).data,e.invTranspTransformation,r.normal,s,6);{const e=t.vertexAttributes.get(D.UV0).data;let i,n,a,o;if(null==e||e.length<4){const e=this.material.parameters;i=0,n=0,a=e.texCoordScale[0],o=e.texCoordScale[1]}else i=e[0],n=e[1],a=e[2],o=e[3];a=Math.min(1.99999,a+1),o=Math.min(1.99999,o+1);const c=t.indices.get(D.POSITION).length,l=r.uv0;let f=s;for(let t=0;t<c;++t)l.set(f,0,i),l.set(f,1,n),f+=1,l.set(f,0,a),l.set(f,1,n),f+=1,l.set(f,0,a),l.set(f,1,o),f+=1,l.set(f,0,a),l.set(f,1,o),f+=1,l.set(f,0,i),l.set(f,1,o),f+=1,l.set(f,0,i),l.set(f,1,n),f+=1}N(t.indices.get(D.COLOR),t.vertexAttributes.get(D.COLOR).data,4,r.color,s,6);{const e=t.indices.get(D.SIZE),i=t.vertexAttributes.get(D.SIZE).data,n=e.length,a=r.size;let o=s;for(let t=0;t<n;++t){const r=i[2*e[t]],s=i[2*e[t]+1];for(let e=0;e<6;++e)a.set(o,0,r),a.set(o,1,s),o+=1}}t.indices.get(D.AUXPOS1)&&t.vertexAttributes.get(D.AUXPOS1)&&G(t.indices.get(D.AUXPOS1),t.vertexAttributes.get(D.AUXPOS1).data,r.auxpos1,s,6),t.indices.get(D.AUXPOS2)&&t.vertexAttributes.get(D.AUXPOS2)&&G(t.indices.get(D.AUXPOS2),t.vertexAttributes.get(D.AUXPOS2).data,r.auxpos2,s,6)}}export{W as HUDMaterial};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ShaderOutput as e}from"../core/shaderLibrary/ShaderOutputOptions.js";import{CullFaceOptions as t}from"../lib/basicInterfaces.js";import{outputFromPass as r}from"../lib/GLMaterials.js";import i from"../lib/GLMaterialTexture.js";import{
|
|
5
|
+
import{ShaderOutput as e}from"../core/shaderLibrary/ShaderOutputOptions.js";import{CullFaceOptions as t}from"../lib/basicInterfaces.js";import{outputFromPass as r}from"../lib/GLMaterials.js";import i from"../lib/GLMaterialTexture.js";import{DefaultMaterialParameters as a,Material as s}from"../lib/Material.js";import{OITPolygonOffsetLimit as n}from"../lib/OrderIndependentTransparency.js";import{RenderSlot as u}from"../lib/RenderSlot.js";import{DefaultBufferWriter as l,PositionUVLayout as o}from"./internal/DefaultBufferWriter.js";import{intersectTriangleGeometry as c}from"./internal/MaterialUtil.js";import{ImageMaterialTechniqueConfiguration as h,ImageMaterialTechnique as p}from"../shaders/ImageMaterialTechnique.js";class m extends s{constructor(e){super(e,f),this.supportsEdges=!0,this.techniqueConfig=new h}getTechniqueConfig(e,t){return this.techniqueConfig.output=e,this.techniqueConfig.cullFace=this.parameters.cullFace,this.techniqueConfig.slicePlaneEnabled=this.parameters.slicePlaneEnabled,this.techniqueConfig.transparent=this.parameters.transparent,this.techniqueConfig.writeDepth=this.parameters.writeDepth,this.techniqueConfig.sceneHasOcludees=this.parameters.sceneHasOcludees,this.techniqueConfig.transparencyPassType=t.transparencyPassType,this.techniqueConfig.enableOffset=t.camera.relativeElevation<n,this.techniqueConfig.multipassTerrainEnabled=t.multipassTerrainEnabled,this.techniqueConfig.cullAboveGround=t.cullAboveGround,this.techniqueConfig}intersect(e,t,r,i,a,s,n){c(e,t,i,a,s,void 0,n)}requiresSlot(t,i){if(t===u.DRAPED_MATERIAL)return!0;if(r(i)===e.Highlight)return t===u.OPAQUE_MATERIAL;return t===(this.parameters.transparent?this.parameters.writeDepth?u.TRANSPARENT_MATERIAL:u.TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL:u.OPAQUE_MATERIAL)}createGLMaterial(t){return t.output===e.Color||t.output===e.Alpha||t.output===e.Highlight?new d(t):void 0}createBufferWriter(){return new l(o)}}class d extends i{constructor(e){super({...e,...e.material.parameters})}updateParameters(e){const t=this._material.parameters;return this.updateTexture(t.textureId),this.ensureTechnique(p,e)}_updateOccludeeState(e){e.hasOccludees!==this._material.parameters.sceneHasOcludees&&(this._material.setParameters({sceneHasOcludees:e.hasOccludees}),this.updateParameters(e))}beginSlot(t){return this._output!==e.Color&&this._output!==e.Alpha||this._updateOccludeeState(t),this.updateParameters(t)}bind(e,t){this.bindTextures(t.program),this.bindTextureScale(t.program),t.bindPass(this._material.parameters,e)}}const f={transparent:!1,writeDepth:!0,slicePlaneEnabled:!1,cullFace:t.None,sceneHasOcludees:!1,opacity:1,textureId:null,initTextureTransparent:!0,...a};export{m as ImageMaterial};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{f as e}from"../../../../chunks/vec2f32.js";import{newLayout as t}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as r}from"../core/shaderLibrary/ShaderOutputOptions.js";import{HUDSpace as i}from"../core/shaderLibrary/hud/HUD.glsl.js";import
|
|
5
|
+
import{f as e}from"../../../../chunks/vec2f32.js";import{newLayout as t}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as r}from"../core/shaderLibrary/ShaderOutputOptions.js";import{HUDSpace as i}from"../core/shaderLibrary/hud/HUD.glsl.js";import s from"../lib/GLMaterial.js";import{Material as n,DefaultMaterialParameters as a}from"../lib/Material.js";import{RenderSlot as o}from"../lib/RenderSlot.js";import{VertexAttribute as u}from"../lib/VertexAttribute.js";import{writePosition as l,writeNormal as f,writeBufferVec4 as c}from"./internal/bufferWriterUtils.js";import{LineCalloutTechniqueConfiguration as h,LineCalloutTechnique as d}from"../shaders/LineCalloutTechnique.js";class m extends n{constructor(e){super(e,O),this.techniqueConfig=new h,this._uniqueMaterialIdentifier=m.uniqueMaterialIdentifier(this.parameters)}get uniqueMaterialIdentifier(){return this._uniqueMaterialIdentifier}getPassParameters(){return this.parameters}getTechniqueConfig(e,t){const r=(null==t?void 0:t.slot)!==o.LINE_CALLOUTS;return this.techniqueConfig.occlusionTestEnabled=this.parameters.occlusionTest,this.techniqueConfig.verticalOffset=!!this.parameters.verticalOffset,this.techniqueConfig.screenSizePerspective=!!this.parameters.screenSizePerspective,this.techniqueConfig.depthHudEnabled=r,this.techniqueConfig.depthHudAlignStartEnabled=!!this.parameters.depthHUDAlignStart,this.techniqueConfig.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits?i.Screen:i.World,this.techniqueConfig.slicePlaneEnabled=this.parameters.slicePlaneEnabled,this.techniqueConfig.multipassGeometryEnabled=!!t&&t.multipassGeometryEnabled,this.techniqueConfig}intersect(){}requiresSlot(e){switch(e){case o.LINE_CALLOUTS:case o.LINE_CALLOUTS_HUD_DEPTH:return!0}return!1}createGLMaterial(e){return e.output===r.Color?new p(e):null}createBufferWriter(){return new P}validateParameters(e){const t=m.uniqueMaterialIdentifier(e);t!==this._uniqueMaterialIdentifier&&(this._uniqueMaterialIdentifier=t)}static uniqueMaterialIdentifier(e){return JSON.stringify({screenOffset:e.screenOffset||[0,0],centerOffsetUnits:e.centerOffsetUnits||"world"})}}class p extends s{updateParameters(e){return this.ensureTechnique(d,e)}beginSlot(e){return this.updateParameters(e)}bind(e,t){t.bindPass(this._material.getPassParameters(),e)}}const O={verticalOffset:null,screenSizePerspective:null,screenOffset:[0,0],color:[0,0,0,1],size:1,borderColor:null,occlusionTest:!1,shaderPolygonOffset:1e-5,depthHUDAlignStart:!1,centerOffsetUnits:"world",slicePlaneEnabled:!1,...a},g=t().vec3f(u.POSITION).vec3f(u.NORMAL).vec2f(u.UV0).vec4f(u.AUXPOS1),b=[e(0,0),e(1,0),e(0,1),e(1,0),e(1,1),e(0,1)];class P{constructor(){this.vertexBufferLayout=g}allocate(e){return this.vertexBufferLayout.createBuffer(e)}elementCount(e){return 6*e.indices.get(u.POSITION).length}write(e,t,r,i){l(t.indices.get(u.POSITION),t.vertexAttributes.get(u.POSITION).data,e.transformation,r.position,i,6),f(t.indices.get(u.NORMAL),t.vertexAttributes.get(u.NORMAL).data,e.invTranspTransformation,r.normal,i,6),c(t.indices.get(u.AUXPOS1),t.vertexAttributes.get(u.AUXPOS1).data,r.auxpos1,i,6);for(let s=0;s<b.length;++s)r.uv0.setVec(i+s,b[s])}}export{m as LineCalloutMaterial};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{s as e,n as t,f as r,c as s,i as
|
|
5
|
+
import{s as e,n as t,f as r,c as s,i as o,m as n}from"../../../../chunks/vec3.js";import{c as i}from"../../../../chunks/vec3f64.js";import{newLayout as a}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as u}from"../core/shaderLibrary/ShaderOutputOptions.js";import{TransparencyPassType as c}from"../lib/basicInterfaces.js";import l from"../lib/GLMaterial.js";import{Material as f,DefaultMaterialParameters as p}from"../lib/Material.js";import{RenderSlot as m}from"../lib/RenderSlot.js";import{VertexAttribute as h}from"../lib/VertexAttribute.js";import{MeasurementArrowTechniqueConfiguration as d,MeasurementArrowTechnique as g}from"../shaders/MeasurementArrowTechnique.js";class O extends f{constructor(e){super(e,b),this.techniqueConfig=new d}getTechniqueConfig(e,t){var r;return this.techniqueConfig.polygonOffsetEnabled=this.parameters.polygonOffset,this.techniqueConfig.transparent=this.parameters.stripeEvenColor[3]<1||this.parameters.stripeOddColor[3]<1||this.parameters.outlineColor[3]<1,this.techniqueConfig.transparencyPassType=null!=(r=null==t?void 0:t.transparencyPassType)?r:c.NONE,this.techniqueConfig}dispose(){}getPassParameters(){return this.parameters}intersect(){}requiresSlot(e){return e===m.OPAQUE_MATERIAL}createGLMaterial(e){return e.output===u.Color?new v(e):null}createBufferWriter(){return new j}}class v extends l{updateParameters(e){return this.ensureTechnique(g,e)}beginSlot(e){return this.updateParameters(e)}bind(e,t){t.bindPass(this._material.getPassParameters(),e)}}const b={width:32,outlineSize:.2,outlineColor:[1,.5,0,1],stripeLength:1,stripeEvenColor:[1,1,1,1],stripeOddColor:[1,.5,0,1],polygonOffset:!1,...p},P=a().vec3f(h.POSITION).vec3f(h.NORMAL).vec2f(h.UV0).f32(h.AUXPOS1),C=i(),T=i(),y=i(),A=i(),I=i();class j{constructor(){this.vertexBufferLayout=P}allocate(e){return this.vertexBufferLayout.createBuffer(e)}elementCount(e){return 2*(e.indices.get(h.POSITION).length/2+1)}write(i,a,u,c){const l=a.vertexAttributes.get(h.POSITION).data,f=a.vertexAttributes.get(h.NORMAL).data,p=l.length/3,m=a&&a.indices&&a.indices.get(h.POSITION);m&&m.length!==2*(p-1)&&console.warn("MeasurementArrowMaterial does not support indices");const d=C,g=T,O=y,v=A,b=I,P=i.transformation,j=i.invTranspTransformation,L=u.position,S=u.normal,q=u.uv0;let x=0;for(let h=0;h<p;++h){const i=3*h;if(e(d,l[i],l[i+1],l[i+2]),h<p-1){const o=3*(h+1);e(g,l[o],l[o+1],l[o+2]),e(b,f[o],f[o+1],f[o+2]),t(b,b),r(O,g,d),t(O,O),s(v,b,O),t(v,v)}const a=o(d,g);P&&j&&(n(d,d,P),n(g,g,P),n(v,v,j));const u=c+2*h,m=u+1;L.setVec(u,d),L.setVec(m,d),S.setVec(u,v),S.setVec(m,v),q.set(u,0,x),q.set(u,1,-1),q.set(m,0,x),q.set(m,1,1),h<p-1&&(x+=a)}const M=u.auxpos1;for(let e=0;e<2*p;++e)M.set(c+e,x)}}export{O as MeasurementArrowMaterial};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../../../core/Logger.js";import{isSome as t,isNone as r}from"../../../../core/maybe.js";import{createRenderScreenPointArray3 as s}from"../../../../core/screenUtils.js";import{c as i}from"../../../../chunks/vec2.js";import{s as o,f as n,d as a,a as u,b as
|
|
5
|
+
import e from"../../../../core/Logger.js";import{isSome as t,isNone as r}from"../../../../core/maybe.js";import{createRenderScreenPointArray3 as s}from"../../../../core/screenUtils.js";import{c as i}from"../../../../chunks/vec2.js";import{s as o,f as n,d as a,a as u,b as l,g as c,l as f,i as m,m as p}from"../../../../chunks/vec3.js";import{c as h}from"../../../../chunks/vec3f64.js";import{PlaneIndex as d}from"../../../../geometry/support/frustum.js";import{create as g,distance2 as A,fromPoints as O,closestLineSegmentPoint as P}from"../../../../geometry/support/lineSegment.js";import{create as T,fromPoints as b,signedDistance as S,normal as _}from"../../../../geometry/support/plane.js";import{BufferViewVec3f as j,BufferViewVec2f as C}from"../../../../geometry/support/buffer/BufferView.js";import{ShaderOutput as v}from"../core/shaderLibrary/ShaderOutputOptions.js";import{computeAttachmentOriginLines as y}from"../lib/geometryDataUtils.js";import E from"../lib/GLMaterial.js";import{Material as x,DefaultMaterialParameters as N}from"../lib/Material.js";import{RenderSlot as R}from"../lib/RenderSlot.js";import{isTranslationMatrix as I}from"../lib/Util.js";import{VertexAttribute as L}from"../lib/VertexAttribute.js";import{writeDefaultAttributes as q}from"./internal/bufferWriterUtils.js";import{PositionColorLayout as w,PositionLayout as U,DefaultBufferWriter as B}from"./internal/DefaultBufferWriter.js";import{intersectDrapedRenderLineGeometry as M}from"./internal/MaterialUtil.js";import{isInstanceHidden as D}from"./renderers/utils.js";import{NativeLineTechniqueConfiguration as V,NativeLineTechnique as H}from"../shaders/NativeLineTechnique.js";const G=e.getLogger("esri.views.3d.webgl-engine.materials.NativeLineMaterial");var X;!function(e){e[e.START=0]="START",e[e.END=1]="END"}(X||(X={}));class k extends x{constructor(e){super(e,Q),this._techniqueConfig=new V}getTechniqueConfig(e,r){this._techniqueConfig.output=e,this._techniqueConfig.slicePlaneEnabled=this.parameters.slicePlaneEnabled,this._techniqueConfig.vertexColors=this.parameters.vertexColors,this._techniqueConfig.transparent=this.parameters.color[3]<1||this.parameters.width<1,this._techniqueConfig.draped=r.slot===R.DRAPED_MATERIAL;const s=t(this.parameters.stipplePattern);return this._techniqueConfig.stippleEnabled=s,this._techniqueConfig.stippleOffColorEnabled=s&&t(this.parameters.stippleOffColor),this._techniqueConfig.sceneHasOcludees=this.parameters.sceneHasOcludees,this._techniqueConfig.stipplePreferContinuous=this.parameters.stipplePreferContinuous,this._techniqueConfig}getPassParameters(){return this.parameters}intersect(e,r,s,i,o,n,a,u,l){t(l)?M(e,i,l,n,1,a):this._intersectLineGeometry(e,r,s,i,a)}_intersectLineGeometry(e,t,r,s,p){if(!s.options.selectionMode||D(t))return;if(!I(r))return void G.error("intersection assumes a translation-only matrix");const h=e.vertexAttributes.get(L.POSITION).data,g=s.camera,T=ie;i(T,s.point);const j=2;o(oe[0],T[0]-j,T[1]+j,0),o(oe[1],T[0]+j,T[1]+j,0),o(oe[2],T[0]+j,T[1]-j,0),o(oe[3],T[0]-j,T[1]-j,0);for(let i=0;i<4;i++)if(!g.unprojectFromRenderScreen(oe[i],ne[i]))return;b(g.eye,ne[0],ne[1],ae),b(g.eye,ne[1],ne[2],ue),b(g.eye,ne[2],ne[3],le),b(g.eye,ne[3],ne[0],ce);let C=Number.MAX_VALUE,v=0;for(let i=0;i<h.length-5;i+=3){if(z[0]=h[i]+r[12],z[1]=h[i+1]+r[13],z[2]=h[i+2]+r[14],J[0]=h[i+3]+r[12],J[1]=h[i+4]+r[13],J[2]=h[i+5]+r[14],S(ae,z)<0&&S(ae,J)<0||S(ue,z)<0&&S(ue,J)<0||S(le,z)<0&&S(le,J)<0||S(ce,z)<0&&S(ce,J)<0)continue;if(g.projectToRenderScreen(z,Z),g.projectToRenderScreen(J,$),Z[2]<0&&$[2]>0){n(K,z,J);const e=g.frustum,t=-S(e[d.NEAR],z)/a(K,_(e[d.NEAR]));u(K,K,t),l(z,z,K),g.projectToRenderScreen(z,Z)}else if(Z[2]>0&&$[2]<0){n(K,J,z);const e=g.frustum,t=-S(e[d.NEAR],J)/a(K,_(e[d.NEAR]));u(K,K,t),l(J,J,K),g.projectToRenderScreen(J,$)}else if(Z[2]<0&&$[2]<0)continue;Z[2]=0,$[2]=0;const e=A(O(Z,$,re),T);e<C&&(C=e,c(ee,z),c(te,J),v=i/3)}const y=s.rayBegin,E=s.rayEnd;if(C<j*j){let e=Number.MAX_VALUE;if(P(O(ee,te,re),O(y,E,se),Y)){n(Y,Y,y);const t=f(Y);u(Y,Y,1/t),e=t/m(y,E)}p(e,Y,v,!1)}}computeAttachmentOrigin(e,t){const r=e.vertexAttributes;if(!r)return!1;const s=r.get(L.POSITION);return y(s,null,!1,t)}requiresSlot(e){return e===R.OPAQUE_MATERIAL||e===R.DRAPED_MATERIAL}createGLMaterial(e){return e.output===v.Color||e.output===v.Highlight?new F(e):null}createBufferWriter(){const e=this.parameters.vertexColors?w:U;return r(this.parameters.stipplePattern)?new B(e):new W(e.clone().vec3f(L.AUXPOS1).vec2f(L.UV0))}}class F extends E{updateParameters(e){return this.ensureTechnique(H,e)}_updateOccludeeState(e){e.hasOccludees!==this._material.parameters.sceneHasOcludees&&this._material.setParameters({sceneHasOcludees:e.hasOccludees})}beginSlot(e){return this._output===v.Color&&this._updateOccludeeState(e),this.updateParameters(e)}bind(e,t){t.bindPass(this._material.getPassParameters(),e)}}class W{constructor(e){this.vertexBufferLayout=e}allocate(e){return this.vertexBufferLayout.createBuffer(e)}elementCount(e){return e.indices.get(L.POSITION).length}write(e,t,r,s){q(t,this.vertexBufferLayout,e.transformation,e.invTranspTransformation,r,s),this._writeAuxpos1(e,t,r,s),this._writeUV0(e,t,r,s)}_writeAuxpos1(e,t,r,s){const i=r.getField(L.AUXPOS1,j),o=t.indices.get(L.POSITION),n=t.vertexAttributes.get(L.POSITION).data,a=e.transformation,u=i.typedBufferStride,l=i.typedBuffer;s*=u;for(let c=0;c<o.length-1;c+=2)for(const e of[1,0]){const t=3*o[c+e],r=n[t],i=n[t+1],f=n[t+2],m=a[0]*r+a[4]*i+a[8]*f+a[12],p=a[1]*r+a[5]*i+a[9]*f+a[13],h=a[2]*r+a[6]*i+a[10]*f+a[14];l[s]=m,l[s+1]=p,l[s+2]=h,s+=u}}_writeUV0(e,t,r,s){var i;const n=r.getField(L.UV0,C),a=t.indices.get(L.POSITION),u=t.vertexAttributes.get(L.POSITION).data,l=null==(i=t.vertexAttributes.get(L.DISTANCETOSTART))?void 0:i.data,f=e.transformation,h=n.typedBufferStride,d=n.typedBuffer;let g=0;d[s*=h]=X.START,d[s+1]=g,s+=h;const A=3*a[0],O=o(z,u[A],u[A+1],u[A+2]);f&&p(O,O,f);const P=J,T=a.length-1;let b=1;const S=l?(e,t,r)=>g=l[r]:(e,t,r)=>g+=m(e,t);for(let m=1;m<T;m+=2){const e=3*a[m];o(P,u[e],u[e+1],u[e+2]),f&&p(P,P,f),S(O,P,b++);for(let t=0;t<2;++t)d[s]=1-t,d[s+1]=g,s+=h;c(O,P)}const _=3*a[T];o(P,u[_],u[_+1],u[_+2]),f&&p(P,P,f),S(O,P,b),d[s]=X.END,d[s+1]=g}}const Q={color:[1,1,1,1],vertexColors:!1,slicePlaneEnabled:!1,width:1,stipplePattern:null,stippleOffColor:null,stipplePreferContinuous:!0,sceneHasOcludees:!1,...N},z=h(),J=h(),K=h(),Y=h(),Z=s(),$=s(),ee=h(),te=h(),re=g(),se=g(),ie=h(),oe=[s(),s(),s(),s()],ne=[h(),h(),h(),h()],ae=T(),ue=T(),le=T(),ce=T();export{k as NativeLineMaterial};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{clamp as e}from"../../../../core/mathUtils.js";import{isNone as t}from"../../../../core/maybe.js";import{fromValues as r}from"../../../../geometry/support/aaBoundingBox.js";import{BufferViewVec4f as i}from"../../../../geometry/support/buffer/BufferView.js";import{newLayout as s}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as a}from"../core/shaderLibrary/ShaderOutputOptions.js";import{
|
|
5
|
+
import{clamp as e}from"../../../../core/mathUtils.js";import{isNone as t}from"../../../../core/maybe.js";import{fromValues as r}from"../../../../geometry/support/aaBoundingBox.js";import{BufferViewVec4f as i}from"../../../../geometry/support/buffer/BufferView.js";import{newLayout as s}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as a}from"../core/shaderLibrary/ShaderOutputOptions.js";import{NormalsDoubleSidedMode as n}from"../core/shaderLibrary/shading/Normals.glsl.js";import{computeAttachmentOriginLines as o}from"../lib/geometryDataUtils.js";import u from"../lib/GLMaterial.js";import{Material as h,DefaultMaterialParameters as l}from"../lib/Material.js";import{isPathGeometry as c}from"../lib/PathGeometry.js";import{RenderPass as p}from"../lib/RenderPass.js";import{RenderSlot as d}from"../lib/RenderSlot.js";import{assert as m}from"../lib/Util.js";import{VertexAttribute as f}from"../lib/VertexAttribute.js";import{pathVertexAttributeLocations as b,PathTechniqueConfiguration as v,PathTechnique as A}from"./PathTechnique.js";import{VisualVariableDefaultMaterialParameters as E}from"./VisualVariableMaterialParameters.js";import{writeDefaultAttributes as S,writeBufferVec4 as g}from"./internal/bufferWriterUtils.js";import{intersectAabbInvDir as P}from"./internal/MaterialUtil.js";class O extends h{constructor(e){super(e,L),this.supportsEdges=!0,this._vertexAttributeLocations=b,this.techniqueConfig=new v,this.vertexBufferLayout=O.getVertexBufferLayout(this.parameters)}getTechniqueConfig(e,t){return this.techniqueConfig.output=e,this.techniqueConfig.vvSize=this.parameters.vvSizeEnabled,this.techniqueConfig.vvColor=this.parameters.vvColorEnabled,this.techniqueConfig.vvOpacity=this.parameters.vvOpacityEnabled,this.techniqueConfig.slicePlaneEnabled=this.parameters.slicePlaneEnabled,this.techniqueConfig.transparent=this.parameters.transparent,this.techniqueConfig.sceneHasOcludees=this.parameters.sceneHasOcludees,e!==a.Color&&e!==a.Alpha||(this.techniqueConfig.doubleSidedMode=this.parameters.doubleSided&&"normal"===this.parameters.doubleSidedType?n.View:this.parameters.doubleSided&&"winding-order"===this.parameters.doubleSidedType?n.WindingOrder:n.None,this.techniqueConfig.receiveShadows=this.parameters.receiveShadows,this.techniqueConfig.receiveSSAO=!!t.ssaoEnabled&&this.parameters.receiveSSAO),this.techniqueConfig.transparencyPassType=t.transparencyPassType,this.techniqueConfig.multipassTerrainEnabled=t.multipassTerrainEnabled,this.techniqueConfig.cullAboveGround=t.cullAboveGround,this.techniqueConfig}getPassParameters(){return this.parameters}isVisibleInPass(e){return e!==p.MATERIAL_DEPTH_SHADOWMAP_ALL&&e!==p.MATERIAL_DEPTH_SHADOWMAP_DEFAULT&&e!==p.MATERIAL_DEPTH_SHADOWMAP_HIGHLIGHT||this.parameters.castShadows}isVisible(){const e=this.parameters;return!!super.isVisible()&&e.opacity>0}intersect(i,s,a,n,o,u,h){const l=i;if(!c(l))return;const p=l.path,d=[this.parameters.size[0],this.parameters.size[1]];if(this.parameters.vvSizeEnabled){const t=this.parameters.vvSizeOffset,r=this.parameters.vvSizeFactor,i=this.parameters.vvSizeMinSize,s=this.parameters.vvSizeMaxSize,a=p.sizeAttributeValue;d[0]*=e(t[0]+a*r[0],i[0],s[0]),d[1]*=e(t[2]+a*r[2],i[2],s[2])}const m=Math.max(d[0],d[1]),f=i.boundingInfo;if(t(f))return void this._intersectTriangles(p,d,o,u,h);const b=r(f.bbMin[0]-m,f.bbMin[1]-m,f.bbMin[2]-m,f.bbMax[0]+m,f.bbMax[1]+m,f.bbMax[2]+m),v=[u[0]-o[0],u[1]-o[1],u[2]-o[2]],A=Math.sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]),E=[A/v[0],A/v[1],A/v[2]];P(b,o,E,n.tolerance)&&this._intersectTriangles(p,d,o,u,h)}_intersectTriangles(e,t,r,i,s){e.baked.size&&e.baked.size[0]===t[0]&&e.baked.size[1]===t[1]||e.baked.bake(t),e.baked.intersect(r,i,s)}computeAttachmentOrigin(e,t){const r=e.vertexAttributes;if(!r)return null;const i=r.get(f.POSITION);return o(i,null,!1,t)}createBufferWriter(){return new M(this.vertexBufferLayout)}requiresSlot(e){return e===(this.parameters.transparent?d.TRANSPARENT_MATERIAL:d.OPAQUE_MATERIAL)||e===d.DRAPED_MATERIAL}createGLMaterial(e){return e.output===a.Color||e.output===a.Alpha||e.output===a.Depth||e.output===a.Normal||e.output===a.Highlight||e.output===a.Shadow&&this.parameters.castShadows?new T(e):null}static getVertexBufferLayout(e){let t=s().vec3f(f.POSITION).vec4f(f.PROFILERIGHT).vec4f(f.PROFILEUP).vec4f(f.PROFILEVERTEXANDNORMAL);return(e.vvColorEnabled||e.vvSizeEnabled||e.vvOpacityEnabled)&&(t=t.vec4f(f.FEATUREVALUE)),t}}class T extends u{updateParameters(e){return this.ensureTechnique(A,e)}_updateOccludeeState(e){e.hasOccludees!==this._material.parameters.sceneHasOcludees&&this._material.setParameters({sceneHasOcludees:e.hasOccludees})}_updateShadowState(e){(t(this.technique)||e.shadowMappingEnabled!==this.technique.configuration.receiveShadows)&&this._material.setParameters({receiveShadows:e.shadowMappingEnabled})}beginSlot(e){return this._output!==a.Color&&this._output!==a.Alpha||(this._updateShadowState(e),this._updateOccludeeState(e)),this.updateParameters(e)}bind(e,t){t.bindPass(this._material.getPassParameters(),e)}}const L={size:[1,1,1],ambient:[.2,.2,.2],diffuse:[.8,.8,.8],specular:[0,0,0],opacity:1,doubleSided:!1,doubleSidedType:"normal",receiveSSAO:!0,receiveShadows:!1,castShadows:!0,slicePlaneEnabled:!1,transparent:!1,sceneHasOcludees:!1,...E,...l};class M{constructor(e){this.vertexBufferLayout=e}allocate(e){return this.vertexBufferLayout.createBuffer(e)}elementCount(e){return e.indices.get(f.POSITION).length}write(e,t,r,s){const a=e=>{if(t.vertexAttributes.has(e)){const a=t.vertexAttributes.get(e),n=t.indices.get(e);m(4===a.size);const o=r.getField(e,i);if(!o)throw new Error("unable to acquire view for "+e);g(n,a.data,o,s)}};a(f.PROFILERIGHT),a(f.PROFILEUP),a(f.PROFILEVERTEXANDNORMAL),this.vertexBufferLayout.hasField(f.FEATUREVALUE)&&a(f.FEATUREVALUE),S(t,this.vertexBufferLayout,e.transformation,e.invTranspTransformation,r,s)}}export{O as PathMaterial};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as
|
|
5
|
+
import{_ as r}from"../../../../chunks/tslib.es6.js";import{ShaderOutput as e}from"../core/shaderLibrary/ShaderOutputOptions.js";import{bindSliceUniformsWithOrigin as i}from"../core/shaderLibrary/Slice.glsl.js";import{setVVUniforms as o}from"../core/shaderLibrary/attributes/PathVertexPosition.glsl.js";import{bindVertexNormalUniforms as t}from"../core/shaderLibrary/attributes/VertexNormal.glsl.js";import{bindMultipassTerrainTexture as s}from"../core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import{NormalsDoubleSidedMode as a}from"../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as n}from"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{bindReadShadowMapView as l}from"../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{bindProjectionMatrix as p,bindView as d,bindCameraPosition as u}from"../core/shaderLibrary/util/View.glsl.js";import{ReloadableShaderModule as c}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as h}from"../core/shaderTechnique/ShaderTechnique.js";import{parameter as m,ShaderTechniqueConfiguration as v}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{TransparencyPassType as g}from"../lib/basicInterfaces.js";import{blendingDefault as f,oitBlending as b,oitDepthTest as y,OITPolygonOffset as S}from"../lib/OrderIndependentTransparency.js";import{Program as T}from"../lib/Program.js";import{stencilWriteMaskOn as P,stencilBaseAllZerosParams as O}from"../lib/StencilUtils.js";import{VertexAttribute as E}from"../lib/VertexAttribute.js";import{P as j}from"../../../../chunks/Path.glsl.js";import{makePipelineState as w,frontFaceCullingParams as M,defaultDepthWriteParams as U,defaultColorWriteParams as A}from"../../../webgl/renderState.js";const C=new Map([[E.POSITION,0],[E.PROFILERIGHT,1],[E.PROFILEUP,2],[E.PROFILEVERTEXANDNORMAL,3],[E.FEATUREVALUE,4]]);class N extends h{initializeProgram(r){const e=N.shader.get(),i=this.configuration,o=e.build({oitEnabled:i.transparencyPassType===g.Color,output:i.output,viewingMode:r.viewingMode,slicePlaneEnabled:i.slicePlaneEnabled,sliceHighlightDisabled:!1,sliceEnabledForVertexPrograms:!1,receiveShadows:i.receiveShadows,vvSize:i.vvSize,vvColor:i.vvColor,vvInstancingEnabled:!0,vvOpacity:i.vvOpacity,pbrMode:n.Disabled,useCustomDTRExponentForWater:!1,receiveAmbientOcclusion:i.receiveSSAO,doubleSidedMode:i.doubleSidedMode,multipassTerrainEnabled:i.multipassTerrainEnabled,cullAboveGround:i.cullAboveGround});return new T(r.rctx,o,C)}bindPass(r,i){var t,a;p(this.program,i.camera.projectionMatrix),this.program.setUniform3fv("size",r.size),i.multipassTerrainEnabled&&(this.program.setUniform2fv("nearFar",i.camera.nearFar),this.program.setUniform2fv("inverseViewport",i.inverseViewport),s(this.program,i)),this.configuration.output!==e.Color&&this.configuration.output!==e.Alpha||this.program.setUniform1f("opacity",r.opacity),this.configuration.output===e.Color?(i.lighting.setUniforms(this.program,!1),this.program.setUniform3fv("ambient",r.ambient),this.program.setUniform3fv("diffuse",r.diffuse),this.program.setUniform3fv("specular",r.specular),this.program.setUniform1f("opacity",r.opacity)):this.configuration.output!==e.Depth&&this.configuration.output!==e.Shadow||this.program.setUniform2fv("nearFar",i.camera.nearFar),o(this.program,r),null==(t=i.shadowMap)||t.bind(this.program),null==(a=i.ssaoHelper)||a.bind(this.program,i.camera)}bindDraw(r){d(this.program,r),i(this.program,this.configuration,r),this.program.rebindTextures(),this.configuration.output!==e.Color&&this.configuration.output!==e.Alpha||u(this.program,r.origin,r.camera.viewInverseTransposeMatrix),this.configuration.output===e.Color&&l(this.program,r),this.configuration.output===e.Normal&&t(this.program,r.camera.viewInverseTransposeMatrix)}_setPipelineState(r){const i=this.configuration,o=r===g.NONE,t=r===g.FrontFace,s=r=>!r.slicePlaneEnabled&&!(r.transparent||r.doubleSidedMode===a.None);return w({blending:i.output!==e.Color&&i.output!==e.Alpha||!i.transparent?null:o?f:b(r),culling:s(i)&&M,depthTest:{func:y(r)},depthWrite:o||t?U:null,colorWrite:A,stencilWrite:i.sceneHasOcludees?P:null,stencilTest:i.sceneHasOcludees?O:null,polygonOffset:o||t?null:S})}initializePipeline(){return this._setPipelineState(this.configuration.transparencyPassType)}}N.shader=new c(j,(()=>import("../shaders/Path.glsl.js")));class L extends v{constructor(){super(...arguments),this.output=e.Color,this.doubleSidedMode=a.None,this.receiveShadows=!1,this.receiveSSAO=!1,this.vvSize=!1,this.vvColor=!1,this.vvOpacity=!1,this.slicePlaneEnabled=!1,this.transparent=!1,this.sceneHasOcludees=!1,this.transparencyPassType=g.NONE,this.multipassTerrainEnabled=!1,this.cullAboveGround=!1}}r([m({count:e.COUNT})],L.prototype,"output",void 0),r([m({count:a.COUNT})],L.prototype,"doubleSidedMode",void 0),r([m()],L.prototype,"receiveShadows",void 0),r([m()],L.prototype,"receiveSSAO",void 0),r([m()],L.prototype,"vvSize",void 0),r([m()],L.prototype,"vvColor",void 0),r([m()],L.prototype,"vvOpacity",void 0),r([m()],L.prototype,"slicePlaneEnabled",void 0),r([m()],L.prototype,"transparent",void 0),r([m()],L.prototype,"sceneHasOcludees",void 0),r([m({count:g.COUNT})],L.prototype,"transparencyPassType",void 0),r([m()],L.prototype,"multipassTerrainEnabled",void 0),r([m()],L.prototype,"cullAboveGround",void 0);export{N as PathTechnique,L as PathTechniqueConfiguration,C as pathVertexAttributeLocations};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{BufferViewMat3f as e,BufferViewVec4f as t,BufferViewVec4u8 as r,BufferViewVec3f as i}from"../../../../geometry/support/buffer/BufferView.js";import{newLayout as s}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as a}from"../core/shaderLibrary/ShaderOutputOptions.js";import{CullFaceOptions as n
|
|
5
|
+
import{BufferViewMat3f as e,BufferViewVec4f as t,BufferViewVec4u8 as r,BufferViewVec3f as i}from"../../../../geometry/support/buffer/BufferView.js";import{newLayout as s}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as a}from"../core/shaderLibrary/ShaderOutputOptions.js";import{CullFaceOptions as n}from"../lib/basicInterfaces.js";import o from"../lib/GLMaterial.js";import{outputFromPass as l}from"../lib/GLMaterials.js";import{DefaultMaterialParameters as u,Material as c}from"../lib/Material.js";import{OITPolygonOffsetLimit as h}from"../lib/OrderIndependentTransparency.js";import{RenderSlot as p}from"../lib/RenderSlot.js";import{assert as f}from"../lib/Util.js";import{VertexAttribute as m}from"../lib/VertexAttribute.js";import{Style as d}from"./PatternStyle.js";import{writeBufferVec4 as g,writeColor as b,writePosition as C}from"./internal/bufferWriterUtils.js";import{DefaultBufferWriter as A}from"./internal/DefaultBufferWriter.js";import{intersectTriangleGeometry as P}from"./internal/MaterialUtil.js";import{patternVertexAttributeLocations as O,PatternTechniqueConfiguration as E,PatternTechnique as T}from"../shaders/PatternTechnique.js";class q extends c{constructor(e){super(e,R),this.supportsEdges=!0,this._vertexAttributeLocations=O,this.techniqueConfig=new E}getTechniqueConfig(e,t){return this.techniqueConfig.output=e,this.techniqueConfig.cullFace=this.parameters.cullFace,this.techniqueConfig.vertexColors=this.parameters.vertexColors,this.techniqueConfig.slicePlaneEnabled=this.parameters.slicePlaneEnabled,this.techniqueConfig.polygonOffset=this.parameters.polygonOffset,this.techniqueConfig.writeDepth=this.parameters.writeDepth,this.techniqueConfig.style=this.parameters.style,this.techniqueConfig.patternSpacing=this.parameters.patternSpacing,this.techniqueConfig.lineWidth=this.parameters.lineWidth,this.techniqueConfig.draped=this.parameters.draped,this.techniqueConfig.transparencyPassType=t.transparencyPassType,this.techniqueConfig.enableOffset=t.camera.relativeElevation<h,this.techniqueConfig.multipassTerrainEnabled=t.multipassTerrainEnabled,this.techniqueConfig.cullAboveGround=t.cullAboveGround,this.techniqueConfig}getPassParameters(){return this.parameters}intersect(e,t,r,i,s,a,n){P(e,t,i,s,a,void 0,n)}requiresSlot(e,t){if(e===p.DRAPED_MATERIAL)return!0;if(l(t)===a.Highlight)return e===p.OPAQUE_MATERIAL;return e===(this.parameters.writeDepth?p.TRANSPARENT_MATERIAL:p.TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL)}createGLMaterial(e){return e.output===a.Color||e.output===a.Alpha||e.output===a.Highlight||e.output===a.Depth&&this.parameters.writeLinearDepth?new y(e):null}createBufferWriter(){const e=s().vec3f(m.POSITION).vec4u8(m.COLOR).vec4f(m.UVMAPSPACE);return this.parameters.draped||e.mat3f(m.BOUNDINGRECT),new S(e)}}class y extends o{updateParameters(e){return this.ensureTechnique(T,e)}_updateOccludeeState(e){e.hasOccludees!==this._material.parameters.sceneHasOcludees&&this._material.setParameters({sceneHasOcludees:e.hasOccludees})}beginSlot(e){return this._output!==a.Color&&this._output!==a.Alpha||this._updateOccludeeState(e),this.updateParameters(e)}bind(e,t){t.bindPass(this._material.getPassParameters(),e)}}class S extends A{write(s,a,n,o){for(const l of this.vertexBufferLayout.fieldNames){const u=a.vertexAttributes.get(l),c=a.indices.get(l);if(u&&c)switch(l){case m.POSITION:{f(3===u.size);const e=n.getField(l,i);e&&C(c,u.data,s.transformation,e,o);break}case m.COLOR:{f(3===u.size||4===u.size);const e=n.getField(l,r);e&&b(c,u.data,u.size,e,o);break}case m.UVMAPSPACE:{f(4===u.size);const e=n.getField(l,t);e&&g(c,u.data,e,o);break}case m.BOUNDINGRECT:{f(9===u.size);const t=n.getField(l,e);t&&this.writeBoundingRect(c,u.data,s.transformation,t,o);break}}}}writeBoundingRect(e,t,r,i,s){const a=r,n=i.typedBuffer,o=i.typedBufferStride,l=e.length;s*=o;for(let u=0;u<l;++u){const r=9*e[u],i=t[r],l=t[r+1],c=t[r+2];n[s]=a[0]*i+a[4]*l+a[8]*c+a[12],n[s+1]=a[1]*i+a[5]*l+a[9]*c+a[13],n[s+2]=a[2]*i+a[6]*l+a[10]*c+a[14];for(let e=3;e<9;++e)n[s+e]=t[r+e];s+=o}}}const R={color:[1,1,1,1],writeDepth:!0,writeLinearDepth:!1,vertexColors:!1,polygonOffset:!1,slicePlaneEnabled:!1,cullFace:n.None,sceneHasOcludees:!1,style:d.Cross,patternSpacing:10,lineWidth:1,draped:!0,...u};export{q as PatternMaterial};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../../../core/Logger.js";import{clamp as t}from"../../../../core/mathUtils.js";import{isSome as r}from"../../../../core/maybe.js";import{createRenderScreenPointArray3 as i}from"../../../../core/screenUtils.js";import{c as s}from"../../../../chunks/vec2.js";import{s as a,f as n,d as o,a as l,b as c,g as u,l as p,i as h,m}from"../../../../chunks/vec3.js";import{c as f}from"../../../../chunks/vec3f64.js";import{PlaneIndex as T}from"../../../../geometry/support/frustum.js";import{create as d,distance2 as E,fromPoints as A,closestLineSegmentPoint as _}from"../../../../geometry/support/lineSegment.js";import{create as v,fromPoints as R,signedDistance as O,normal as I}from"../../../../geometry/support/plane.js";import{newLayout as S}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as g}from"../core/shaderLibrary/ShaderOutputOptions.js";import{VertexAttribute as b}from"../lib/basicInterfaces.js";import{computeAttachmentOriginLines as C}from"../lib/geometryDataUtils.js";import L from"../lib/GLMaterial.js";import{outputFromPass as N}from"../lib/GLMaterials.js";import{materialParametersDefaults as P,Material as y,RenderOccludedFlag as D}from"../lib/Material.js";import{RenderSlot as q}from"../lib/RenderSlot.js";import{isTranslationMatrix as U}from"../lib/Util.js";import j from"./VisualVariableMaterialParameters.js";import{isInstanceHidden as F}from"./renderers/utils.js";import{C as x,N as M}from"../../../../chunks/RibbonLine.glsl.js";import{ribbonVertexAttributeLocations as w,RibbonLineTechniqueConfiguration as G,RibbonLineTechnique as J}from"../shaders/RibbonLineTechnique.js";const H=e.getLogger("esri.views.3d.webgl-engine.materials.RibbonLineMaterial");var z;!function(e){e[e.LEFT_JOIN_START=-2]="LEFT_JOIN_START",e[e.LEFT_JOIN_END=-1]="LEFT_JOIN_END",e[e.LEFT_CAP_START=-4]="LEFT_CAP_START",e[e.LEFT_CAP_END=-5]="LEFT_CAP_END",e[e.RIGHT_JOIN_START=2]="RIGHT_JOIN_START",e[e.RIGHT_JOIN_END=1]="RIGHT_JOIN_END",e[e.RIGHT_CAP_START=4]="RIGHT_CAP_START",e[e.RIGHT_CAP_END=5]="RIGHT_CAP_END"}(z||(z={}));class B extends y{constructor(e){super(e,Z),this._vertexAttributeLocations=w,this.techniqueConfig=new G,this.layout=this.createLayout()}isClosed(e,t){return Y(this.parameters,e,t)}dispose(){}getPassParameters(){return this.parameters}getTechniqueConfig(e,t){this.techniqueConfig.output=e,this.techniqueConfig.draped=t.slot===q.DRAPED_MATERIAL;const i=r(this.parameters.stipplePattern);return this.techniqueConfig.stippleEnabled=i,this.techniqueConfig.stippleOffColorEnabled=i&&r(this.parameters.stippleOffColor),this.techniqueConfig.stippleScaleWithLineWidth=i&&this.parameters.stippleScaleWithLineWidth,this.techniqueConfig.stipplePreferContinuous=i&&this.parameters.stipplePreferContinuous,this.techniqueConfig.slicePlaneEnabled=this.parameters.slicePlaneEnabled,this.techniqueConfig.sceneHasOcludees=this.parameters.sceneHasOcludees,this.techniqueConfig.roundJoins="round"===this.parameters.join,this.techniqueConfig.capType=this.parameters.cap,this.techniqueConfig.transparent=this.parameters.transparent,this.techniqueConfig.polygonOffset=this.parameters.polygonOffset,this.techniqueConfig.writeDepth=this.parameters.writeDepth,this.techniqueConfig.vvColor=this.parameters.vvColorEnabled,this.techniqueConfig.vvOpacity=this.parameters.vvOpacityEnabled,this.techniqueConfig.vvSize=this.parameters.vvSizeEnabled,this.techniqueConfig.innerColorEnabled=this.parameters.innerWidth>0&&r(this.parameters.innerColor),this.techniqueConfig.falloffEnabled=this.parameters.falloff>0,this.techniqueConfig.occluder=this.parameters.renderOccluded===D.OccludeAndTransparentStencil,this.techniqueConfig.transparencyPassType=t.transparencyPassType,this.techniqueConfig.multipassTerrainEnabled=t.multipassTerrainEnabled,this.techniqueConfig.cullAboveGround=t.cullAboveGround,this.techniqueConfig.wireframe=this.parameters.wireframe,this.techniqueConfig}intersect(e,t,i,s,a,n,o,l,c){r(c)?this._intersectDrapedLineGeometry(e,s,c,n,o):this._intersectLineGeometry(e,t,i,s,o)}_intersectDrapedLineGeometry(e,r,i,s,a){if(!r.options.selectionMode)return;const n=e.vertexAttributes.get(b.POSITION).data,o=e.vertexAttributes.get(b.SIZE);let l=this.parameters.width;if(this.parameters.vvSizeEnabled){const r=e.vertexAttributes.get(b.SIZEFEATUREATTRIBUTE).data[0];l*=t(this.parameters.vvSizeOffset[0]+r*this.parameters.vvSizeFactor[0],this.parameters.vvSizeMinSize[0],this.parameters.vvSizeMaxSize[0])}else o&&(l*=o.data[0]);const c=s[0],u=s[1],p=(l/2+4)*e.screenToWorldRatio;let h=Number.MAX_VALUE,m=0;for(let f=0;f<n.length-5;f+=3){const e=n[f],r=n[f+1],i=c-e,s=u-r,a=n[f+3]-e,o=n[f+4]-r,l=t((a*i+o*s)/(a*a+o*o),0,1),p=a*l-i,T=o*l-s,d=p*p+T*T;d<h&&(h=d,m=f/3)}h<p*p&&a(i.dist,i.normal,m,!1)}_intersectLineGeometry(e,r,i,m,f){if(!m.options.selectionMode||F(r))return;if(!U(i))return void H.error("intersection assumes a translation-only matrix");const d=e.vertexAttributes,v=d.get(b.POSITION).data;let S=this.parameters.width;if(this.parameters.vvSizeEnabled){const e=d.get(b.SIZEFEATUREATTRIBUTE).data[0];S*=t(this.parameters.vvSizeOffset[0]+e*this.parameters.vvSizeFactor[0],this.parameters.vvSizeMinSize[0],this.parameters.vvSizeMaxSize[0])}else d.has(b.SIZE)&&(S*=d.get(b.SIZE).data[0]);const g=m.camera,C=te;s(C,m.point);const L=S*g.pixelRatio/2+4*g.pixelRatio;a(pe[0],C[0]-L,C[1]+L,0),a(pe[1],C[0]+L,C[1]+L,0),a(pe[2],C[0]+L,C[1]-L,0),a(pe[3],C[0]-L,C[1]-L,0);for(let t=0;t<4;t++)if(!g.unprojectFromRenderScreen(pe[t],he[t]))return;R(g.eye,he[0],he[1],me),R(g.eye,he[1],he[2],fe),R(g.eye,he[2],he[3],Te),R(g.eye,he[3],he[0],de);let N=Number.MAX_VALUE,P=0;const y=X(this.parameters,d,e.indices)?v.length-2:v.length-5;for(let t=0;t<y;t+=3){Q[0]=v[t]+i[12],Q[1]=v[t+1]+i[13],Q[2]=v[t+2]+i[14];const e=(t+3)%v.length;if(K[0]=v[e]+i[12],K[1]=v[e+1]+i[13],K[2]=v[e+2]+i[14],O(me,Q)<0&&O(me,K)<0||O(fe,Q)<0&&O(fe,K)<0||O(Te,Q)<0&&O(Te,K)<0||O(de,Q)<0&&O(de,K)<0)continue;if(g.projectToRenderScreen(Q,re),g.projectToRenderScreen(K,ie),re[2]<0&&ie[2]>0){n($,Q,K);const e=g.frustum,t=-O(e[T.NEAR],Q)/o($,I(e[T.NEAR]));l($,$,t),c(Q,Q,$),g.projectToRenderScreen(Q,re)}else if(re[2]>0&&ie[2]<0){n($,K,Q);const e=g.frustum,t=-O(e[T.NEAR],K)/o($,I(e[T.NEAR]));l($,$,t),c(K,K,$),g.projectToRenderScreen(K,ie)}else if(re[2]<0&&ie[2]<0)continue;re[2]=0,ie[2]=0;const r=E(A(re,ie,ne),C);r<N&&(N=r,u(se,Q),u(ae,K),P=t/3)}const D=m.rayBegin,q=m.rayEnd;if(N<L*L){let e=Number.MAX_VALUE;if(_(A(se,ae,ne),A(D,q,oe),ee)){n(ee,ee,D);const t=p(ee);l(ee,ee,1/t),e=t/h(D,q)}f(e,ee,P,!1)}}computeAttachmentOrigin(e,t){const r=e.vertexAttributes;if(!r)return null;const i=e.indices,s=r.get(b.POSITION);return C(s,i?i.get(b.POSITION):null,i&&X(this.parameters,r,i),t)}createLayout(){const e=S().vec3f(b.POSITION).f32(b.SUBDIVISIONFACTOR).vec2f(b.UV0).vec3f(b.AUXPOS1).vec3f(b.AUXPOS2);return this.parameters.vvSizeEnabled?e.f32(b.SIZEFEATUREATTRIBUTE):e.f32(b.SIZE),this.parameters.vvColorEnabled?e.f32(b.COLORFEATUREATTRIBUTE):e.vec4f(b.COLOR),this.parameters.vvOpacityEnabled&&e.f32(b.OPACITYFEATUREATTRIBUTE),e}createBufferWriter(){return new V(this.layout,this.parameters)}requiresSlot(e,t){if(e===q.DRAPED_MATERIAL)return!0;if(this.parameters.renderOccluded===D.OccludeAndTransparentStencil)return e===q.OPAQUE_MATERIAL||e===q.OCCLUDER_MATERIAL||e===q.TRANSPARENT_OCCLUDER_MATERIAL;const r=N(t);if(r===g.Color||r===g.Alpha){return e===(this.parameters.writeDepth?q.TRANSPARENT_MATERIAL:q.TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL)}return e===q.OPAQUE_MATERIAL}createGLMaterial(e){return e.output===g.Color||e.output===g.Alpha||e.output===g.Highlight||e.output===g.Depth?new W(e):null}validateParameters(e){"miter"!==e.join&&(e.miterLimit=0),this._requiresTransparent(e)&&(e.transparent=!0)}_requiresTransparent(e){return!!((e.color&&e.color[3])<1||e.innerWidth>0&&this._colorRequiresTransparent(e.innerColor)||e.stipplePattern&&this._colorRequiresTransparent(e.stippleOffColor)||e.falloff>0)}_colorRequiresTransparent(e){return r(e)&&e[3]<1&&e[3]>0}}class W extends L{updateParameters(e){return this.ensureTechnique(J,e)}_updateOccludeeState(e){e.hasOccludees!==this._material.parameters.sceneHasOcludees&&this._material.setParameters({sceneHasOcludees:e.hasOccludees})}beginSlot(e){return this._output!==g.Color&&this._output!==g.Alpha||this._updateOccludeeState(e),this.updateParameters(e)}bind(e,t){t.bindPass(this._material.getPassParameters(),e)}}const Z={width:0,color:[1,1,1,1],join:"miter",cap:x.BUTT,miterLimit:5,writeDepth:!0,polygonOffset:!1,stipplePattern:null,stippleOffColor:null,stippleScaleWithLineWidth:!1,stipplePreferContinuous:!0,slicePlaneEnabled:!1,vvFastUpdate:!1,transparent:!1,isClosed:!1,falloff:0,innerWidth:0,innerColor:null,sceneHasOcludees:!1,wireframe:!1,...P,...j.Default};class V{constructor(e,t){this.parameters=t,this.numJoinSubdivisions=0,this.vertexBufferLayout=e;const r=t.stipplePattern?1:0;switch(this.parameters.join){case"miter":case"bevel":this.numJoinSubdivisions=r;break;case"round":this.numJoinSubdivisions=M+r}}_isClosed(e){return X(this.parameters,e.vertexAttributes,e.indices)}allocate(e){return this.vertexBufferLayout.createBuffer(e)}elementCount(e){const t=2,r=e.indices.get(b.POSITION).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){var s;const n=le,o=ce,l=ue,c=t.vertexAttributes.get(b.POSITION).data,p=t.indices&&t.indices.get(b.POSITION),f=null==(s=t.vertexAttributes.get(b.DISTANCETOSTART))?void 0:s.data;p&&p.length!==2*(c.length/3-1)&&console.warn("RibbonLineMaterial does not support indices");let T=1,d=0;this.parameters.vvSizeEnabled?d=t.vertexAttributes.get(b.SIZEFEATUREATTRIBUTE).data[0]:t.vertexAttributes.has(b.SIZE)&&(T=t.vertexAttributes.get(b.SIZE).data[0]);let E=[1,1,1,1],A=0;this.parameters.vvColorEnabled?A=t.vertexAttributes.get(b.COLORFEATUREATTRIBUTE).data[0]:t.vertexAttributes.has(b.COLOR)&&(E=t.vertexAttributes.get(b.COLOR).data);let _=0;this.parameters.vvOpacityEnabled&&(_=t.vertexAttributes.get(b.OPACITYFEATUREATTRIBUTE).data[0]);const v=c.length/3,R=e.transformation,O=new Float32Array(r.buffer),I=this.vertexBufferLayout.stride/4;let S=i*I;const g=S;let C=0;const L=(e,t,r,i,s,a,n)=>{if(O[S++]=t[0],O[S++]=t[1],O[S++]=t[2],O[S++]=i,O[S++]=n,O[S++]=s,O[S++]=e[0],O[S++]=e[1],O[S++]=e[2],O[S++]=r[0],O[S++]=r[1],O[S++]=r[2],this.parameters.vvSizeEnabled?O[S++]=d:O[S++]=T,this.parameters.vvColorEnabled)O[S++]=A;else{const e=Math.min(4*a,E.length-4);O[S++]=E[e+0],O[S++]=E[e+1],O[S++]=E[e+2],O[S++]=E[e+3]}this.parameters.vvOpacityEnabled&&(O[S++]=_)};S+=I,a(o,c[0],c[1],c[2]),R&&m(o,o,R);const N=this._isClosed(t);if(N){const e=c.length-3;a(n,c[e],c[e+1],c[e+2]),R&&m(n,n,R)}else u(n,o),a(l,c[3],c[4],c[5]),R&&m(l,l,R),L(n,o,l,1,z.LEFT_CAP_START,0,C),L(n,o,l,1,z.RIGHT_CAP_START,0,C),u(n,o),u(o,l);const P=N?0:1,y=N?v:v-1,D=f?(e,t,r)=>C=f[r]:(e,t,r)=>C+=h(e,t);for(let h=P;h<y;h++){const e=(h+1)%v*3;a(l,c[e+0],c[e+1],c[e+2]),R&&m(l,l,R),D(n,o,h),L(n,o,l,0,z.LEFT_JOIN_END,h,C),L(n,o,l,0,z.RIGHT_JOIN_END,h,C);const t=this.numJoinSubdivisions;for(let r=0;r<t;++r){const e=(r+1)/(t+1);L(n,o,l,e,z.LEFT_JOIN_END,h,C),L(n,o,l,e,z.RIGHT_JOIN_END,h,C)}L(n,o,l,1,z.LEFT_JOIN_START,h,C),L(n,o,l,1,z.RIGHT_JOIN_START,h,C),u(n,o),u(o,l)}N?(a(l,c[3],c[4],c[5]),R&&m(l,l,R),C=D(n,o,y),L(n,o,l,0,z.LEFT_JOIN_END,P,C),L(n,o,l,0,z.RIGHT_JOIN_END,P,C)):(C=D(n,o,y),L(n,o,l,0,z.LEFT_CAP_END,y,C),L(n,o,l,0,z.RIGHT_CAP_END,y,C)),k(O,g+I,O,g,I);S=k(O,S-I,O,S,I),this.parameters.wireframe&&this._addWireframeVertices(r,g,S,I)}_addWireframeVertices(e,t,r,i){const s=new Float32Array(e.buffer,r*Float32Array.BYTES_PER_ELEMENT),a=new Float32Array(e.buffer,t*Float32Array.BYTES_PER_ELEMENT,r-t);let n=0;const o=e=>n=k(a,e,s,n,i);for(let l=0;l<a.length-1;l+=2*i)o(l),o(l+2*i),o(l+1*i),o(l+2*i),o(l+1*i),o(l+3*i)}}function k(e,t,r,i,s){for(let a=0;a<s;a++)r[i++]=e[t++];return i}function X(e,t,r){return Y(e,t.get(b.POSITION).data,r?r.get(b.POSITION):null)}function Y(e,t,r){return!!e.isClosed&&(r?r.length>2:t.length>6)}const Q=f(),K=f(),$=f(),ee=f(),te=f(),re=i(),ie=i(),se=f(),ae=f(),ne=d(),oe=d(),le=f(),ce=f(),ue=f(),pe=[i(),i(),i(),i()],he=[f(),f(),f(),f()],me=v(),fe=v(),Te=v(),de=v();export{B as RibbonLineMaterial};
|
|
5
|
+
import e from"../../../../core/Logger.js";import{clamp as t}from"../../../../core/mathUtils.js";import{isSome as r}from"../../../../core/maybe.js";import{createRenderScreenPointArray3 as i}from"../../../../core/screenUtils.js";import{c as s}from"../../../../chunks/vec2.js";import{s as a,f as n,d as o,a as l,b as c,g as u,l as p,i as h,m}from"../../../../chunks/vec3.js";import{c as f}from"../../../../chunks/vec3f64.js";import{PlaneIndex as T}from"../../../../geometry/support/frustum.js";import{create as d,distance2 as E,fromPoints as A,closestLineSegmentPoint as _}from"../../../../geometry/support/lineSegment.js";import{create as v,fromPoints as R,signedDistance as O,normal as I}from"../../../../geometry/support/plane.js";import{newLayout as S}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as g}from"../core/shaderLibrary/ShaderOutputOptions.js";import{computeAttachmentOriginLines as b}from"../lib/geometryDataUtils.js";import C from"../lib/GLMaterial.js";import{outputFromPass as L}from"../lib/GLMaterials.js";import{DefaultMaterialParameters as N,Material as P,RenderOccludedFlag as y}from"../lib/Material.js";import{RenderSlot as D}from"../lib/RenderSlot.js";import{isTranslationMatrix as q}from"../lib/Util.js";import{VertexAttribute as U}from"../lib/VertexAttribute.js";import{VisualVariableDefaultMaterialParameters as j}from"./VisualVariableMaterialParameters.js";import{isInstanceHidden as F}from"./renderers/utils.js";import{C as x,N as M}from"../../../../chunks/RibbonLine.glsl.js";import{ribbonVertexAttributeLocations as w,RibbonLineTechniqueConfiguration as G,RibbonLineTechnique as J}from"../shaders/RibbonLineTechnique.js";const H=e.getLogger("esri.views.3d.webgl-engine.materials.RibbonLineMaterial");var z;!function(e){e[e.LEFT_JOIN_START=-2]="LEFT_JOIN_START",e[e.LEFT_JOIN_END=-1]="LEFT_JOIN_END",e[e.LEFT_CAP_START=-4]="LEFT_CAP_START",e[e.LEFT_CAP_END=-5]="LEFT_CAP_END",e[e.RIGHT_JOIN_START=2]="RIGHT_JOIN_START",e[e.RIGHT_JOIN_END=1]="RIGHT_JOIN_END",e[e.RIGHT_CAP_START=4]="RIGHT_CAP_START",e[e.RIGHT_CAP_END=5]="RIGHT_CAP_END"}(z||(z={}));class B extends P{constructor(e){super(e,V),this._vertexAttributeLocations=w,this.techniqueConfig=new G,this.layout=this.createLayout()}isClosed(e,t){return Y(this.parameters,e,t)}dispose(){}getPassParameters(){return this.parameters}getTechniqueConfig(e,t){this.techniqueConfig.output=e,this.techniqueConfig.draped=t.slot===D.DRAPED_MATERIAL;const i=r(this.parameters.stipplePattern);return this.techniqueConfig.stippleEnabled=i,this.techniqueConfig.stippleOffColorEnabled=i&&r(this.parameters.stippleOffColor),this.techniqueConfig.stippleScaleWithLineWidth=i&&this.parameters.stippleScaleWithLineWidth,this.techniqueConfig.stipplePreferContinuous=i&&this.parameters.stipplePreferContinuous,this.techniqueConfig.slicePlaneEnabled=this.parameters.slicePlaneEnabled,this.techniqueConfig.sceneHasOcludees=this.parameters.sceneHasOcludees,this.techniqueConfig.roundJoins="round"===this.parameters.join,this.techniqueConfig.capType=this.parameters.cap,this.techniqueConfig.transparent=this.parameters.transparent,this.techniqueConfig.polygonOffset=this.parameters.polygonOffset,this.techniqueConfig.writeDepth=this.parameters.writeDepth,this.techniqueConfig.vvColor=this.parameters.vvColorEnabled,this.techniqueConfig.vvOpacity=this.parameters.vvOpacityEnabled,this.techniqueConfig.vvSize=this.parameters.vvSizeEnabled,this.techniqueConfig.innerColorEnabled=this.parameters.innerWidth>0&&r(this.parameters.innerColor),this.techniqueConfig.falloffEnabled=this.parameters.falloff>0,this.techniqueConfig.occluder=this.parameters.renderOccluded===y.OccludeAndTransparentStencil,this.techniqueConfig.transparencyPassType=t.transparencyPassType,this.techniqueConfig.multipassTerrainEnabled=t.multipassTerrainEnabled,this.techniqueConfig.cullAboveGround=t.cullAboveGround,this.techniqueConfig.wireframe=this.parameters.wireframe,this.techniqueConfig}intersect(e,t,i,s,a,n,o,l,c){r(c)?this._intersectDrapedLineGeometry(e,s,c,n,o):this._intersectLineGeometry(e,t,i,s,o)}_intersectDrapedLineGeometry(e,r,i,s,a){if(!r.options.selectionMode)return;const n=e.vertexAttributes.get(U.POSITION).data,o=e.vertexAttributes.get(U.SIZE);let l=this.parameters.width;if(this.parameters.vvSizeEnabled){const r=e.vertexAttributes.get(U.SIZEFEATUREATTRIBUTE).data[0];l*=t(this.parameters.vvSizeOffset[0]+r*this.parameters.vvSizeFactor[0],this.parameters.vvSizeMinSize[0],this.parameters.vvSizeMaxSize[0])}else o&&(l*=o.data[0]);const c=s[0],u=s[1],p=(l/2+4)*e.screenToWorldRatio;let h=Number.MAX_VALUE,m=0;for(let f=0;f<n.length-5;f+=3){const e=n[f],r=n[f+1],i=c-e,s=u-r,a=n[f+3]-e,o=n[f+4]-r,l=t((a*i+o*s)/(a*a+o*o),0,1),p=a*l-i,T=o*l-s,d=p*p+T*T;d<h&&(h=d,m=f/3)}h<p*p&&a(i.dist,i.normal,m,!1)}_intersectLineGeometry(e,r,i,m,f){if(!m.options.selectionMode||F(r))return;if(!q(i))return void H.error("intersection assumes a translation-only matrix");const d=e.vertexAttributes,v=d.get(U.POSITION).data;let S=this.parameters.width;if(this.parameters.vvSizeEnabled){const e=d.get(U.SIZEFEATUREATTRIBUTE).data[0];S*=t(this.parameters.vvSizeOffset[0]+e*this.parameters.vvSizeFactor[0],this.parameters.vvSizeMinSize[0],this.parameters.vvSizeMaxSize[0])}else d.has(U.SIZE)&&(S*=d.get(U.SIZE).data[0]);const g=m.camera,b=te;s(b,m.point);const C=S*g.pixelRatio/2+4*g.pixelRatio;a(pe[0],b[0]-C,b[1]+C,0),a(pe[1],b[0]+C,b[1]+C,0),a(pe[2],b[0]+C,b[1]-C,0),a(pe[3],b[0]-C,b[1]-C,0);for(let t=0;t<4;t++)if(!g.unprojectFromRenderScreen(pe[t],he[t]))return;R(g.eye,he[0],he[1],me),R(g.eye,he[1],he[2],fe),R(g.eye,he[2],he[3],Te),R(g.eye,he[3],he[0],de);let L=Number.MAX_VALUE,N=0;const P=X(this.parameters,d,e.indices)?v.length-2:v.length-5;for(let t=0;t<P;t+=3){Q[0]=v[t]+i[12],Q[1]=v[t+1]+i[13],Q[2]=v[t+2]+i[14];const e=(t+3)%v.length;if(K[0]=v[e]+i[12],K[1]=v[e+1]+i[13],K[2]=v[e+2]+i[14],O(me,Q)<0&&O(me,K)<0||O(fe,Q)<0&&O(fe,K)<0||O(Te,Q)<0&&O(Te,K)<0||O(de,Q)<0&&O(de,K)<0)continue;if(g.projectToRenderScreen(Q,re),g.projectToRenderScreen(K,ie),re[2]<0&&ie[2]>0){n($,Q,K);const e=g.frustum,t=-O(e[T.NEAR],Q)/o($,I(e[T.NEAR]));l($,$,t),c(Q,Q,$),g.projectToRenderScreen(Q,re)}else if(re[2]>0&&ie[2]<0){n($,K,Q);const e=g.frustum,t=-O(e[T.NEAR],K)/o($,I(e[T.NEAR]));l($,$,t),c(K,K,$),g.projectToRenderScreen(K,ie)}else if(re[2]<0&&ie[2]<0)continue;re[2]=0,ie[2]=0;const r=E(A(re,ie,ne),b);r<L&&(L=r,u(se,Q),u(ae,K),N=t/3)}const y=m.rayBegin,D=m.rayEnd;if(L<C*C){let e=Number.MAX_VALUE;if(_(A(se,ae,ne),A(y,D,oe),ee)){n(ee,ee,y);const t=p(ee);l(ee,ee,1/t),e=t/h(y,D)}f(e,ee,N,!1)}}computeAttachmentOrigin(e,t){const r=e.vertexAttributes;if(!r)return null;const i=e.indices,s=r.get(U.POSITION);return b(s,i?i.get(U.POSITION):null,i&&X(this.parameters,r,i),t)}createLayout(){const e=S().vec3f(U.POSITION).f32(U.SUBDIVISIONFACTOR).vec2f(U.UV0).vec3f(U.AUXPOS1).vec3f(U.AUXPOS2);return this.parameters.vvSizeEnabled?e.f32(U.SIZEFEATUREATTRIBUTE):e.f32(U.SIZE),this.parameters.vvColorEnabled?e.f32(U.COLORFEATUREATTRIBUTE):e.vec4f(U.COLOR),this.parameters.vvOpacityEnabled&&e.f32(U.OPACITYFEATUREATTRIBUTE),e}createBufferWriter(){return new Z(this.layout,this.parameters)}requiresSlot(e,t){if(e===D.DRAPED_MATERIAL)return!0;if(this.parameters.renderOccluded===y.OccludeAndTransparentStencil)return e===D.OPAQUE_MATERIAL||e===D.OCCLUDER_MATERIAL||e===D.TRANSPARENT_OCCLUDER_MATERIAL;const r=L(t);if(r===g.Color||r===g.Alpha){return e===(this.parameters.writeDepth?D.TRANSPARENT_MATERIAL:D.TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL)}return e===D.OPAQUE_MATERIAL}createGLMaterial(e){return e.output===g.Color||e.output===g.Alpha||e.output===g.Highlight||e.output===g.Depth?new W(e):null}validateParameters(e){"miter"!==e.join&&(e.miterLimit=0),this._requiresTransparent(e)&&(e.transparent=!0)}_requiresTransparent(e){return!!((e.color&&e.color[3])<1||e.innerWidth>0&&this._colorRequiresTransparent(e.innerColor)||e.stipplePattern&&this._colorRequiresTransparent(e.stippleOffColor)||e.falloff>0)}_colorRequiresTransparent(e){return r(e)&&e[3]<1&&e[3]>0}}class W extends C{updateParameters(e){return this.ensureTechnique(J,e)}_updateOccludeeState(e){e.hasOccludees!==this._material.parameters.sceneHasOcludees&&this._material.setParameters({sceneHasOcludees:e.hasOccludees})}beginSlot(e){return this._output!==g.Color&&this._output!==g.Alpha||this._updateOccludeeState(e),this.updateParameters(e)}bind(e,t){t.bindPass(this._material.getPassParameters(),e)}}const V={width:0,color:[1,1,1,1],join:"miter",cap:x.BUTT,miterLimit:5,writeDepth:!0,polygonOffset:!1,stipplePattern:null,stippleOffColor:null,stippleScaleWithLineWidth:!1,stipplePreferContinuous:!0,slicePlaneEnabled:!1,vvFastUpdate:!1,transparent:!1,isClosed:!1,falloff:0,innerWidth:0,innerColor:null,sceneHasOcludees:!1,wireframe:!1,...N,...j};class Z{constructor(e,t){this.parameters=t,this.numJoinSubdivisions=0,this.vertexBufferLayout=e;const r=t.stipplePattern?1:0;switch(this.parameters.join){case"miter":case"bevel":this.numJoinSubdivisions=r;break;case"round":this.numJoinSubdivisions=M+r}}_isClosed(e){return X(this.parameters,e.vertexAttributes,e.indices)}allocate(e){return this.vertexBufferLayout.createBuffer(e)}elementCount(e){const t=2,r=e.indices.get(U.POSITION).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){var s;const n=le,o=ce,l=ue,c=t.vertexAttributes.get(U.POSITION).data,p=t.indices&&t.indices.get(U.POSITION),f=null==(s=t.vertexAttributes.get(U.DISTANCETOSTART))?void 0:s.data;p&&p.length!==2*(c.length/3-1)&&console.warn("RibbonLineMaterial does not support indices");let T=1,d=0;this.parameters.vvSizeEnabled?d=t.vertexAttributes.get(U.SIZEFEATUREATTRIBUTE).data[0]:t.vertexAttributes.has(U.SIZE)&&(T=t.vertexAttributes.get(U.SIZE).data[0]);let E=[1,1,1,1],A=0;this.parameters.vvColorEnabled?A=t.vertexAttributes.get(U.COLORFEATUREATTRIBUTE).data[0]:t.vertexAttributes.has(U.COLOR)&&(E=t.vertexAttributes.get(U.COLOR).data);let _=0;this.parameters.vvOpacityEnabled&&(_=t.vertexAttributes.get(U.OPACITYFEATUREATTRIBUTE).data[0]);const v=c.length/3,R=e.transformation,O=new Float32Array(r.buffer),I=this.vertexBufferLayout.stride/4;let S=i*I;const g=S;let b=0;const C=(e,t,r,i,s,a,n)=>{if(O[S++]=t[0],O[S++]=t[1],O[S++]=t[2],O[S++]=i,O[S++]=n,O[S++]=s,O[S++]=e[0],O[S++]=e[1],O[S++]=e[2],O[S++]=r[0],O[S++]=r[1],O[S++]=r[2],this.parameters.vvSizeEnabled?O[S++]=d:O[S++]=T,this.parameters.vvColorEnabled)O[S++]=A;else{const e=Math.min(4*a,E.length-4);O[S++]=E[e+0],O[S++]=E[e+1],O[S++]=E[e+2],O[S++]=E[e+3]}this.parameters.vvOpacityEnabled&&(O[S++]=_)};S+=I,a(o,c[0],c[1],c[2]),R&&m(o,o,R);const L=this._isClosed(t);if(L){const e=c.length-3;a(n,c[e],c[e+1],c[e+2]),R&&m(n,n,R)}else u(n,o),a(l,c[3],c[4],c[5]),R&&m(l,l,R),C(n,o,l,1,z.LEFT_CAP_START,0,b),C(n,o,l,1,z.RIGHT_CAP_START,0,b),u(n,o),u(o,l);const N=L?0:1,P=L?v:v-1,y=f?(e,t,r)=>b=f[r]:(e,t,r)=>b+=h(e,t);for(let h=N;h<P;h++){const e=(h+1)%v*3;a(l,c[e+0],c[e+1],c[e+2]),R&&m(l,l,R),y(n,o,h),C(n,o,l,0,z.LEFT_JOIN_END,h,b),C(n,o,l,0,z.RIGHT_JOIN_END,h,b);const t=this.numJoinSubdivisions;for(let r=0;r<t;++r){const e=(r+1)/(t+1);C(n,o,l,e,z.LEFT_JOIN_END,h,b),C(n,o,l,e,z.RIGHT_JOIN_END,h,b)}C(n,o,l,1,z.LEFT_JOIN_START,h,b),C(n,o,l,1,z.RIGHT_JOIN_START,h,b),u(n,o),u(o,l)}L?(a(l,c[3],c[4],c[5]),R&&m(l,l,R),b=y(n,o,P),C(n,o,l,0,z.LEFT_JOIN_END,N,b),C(n,o,l,0,z.RIGHT_JOIN_END,N,b)):(b=y(n,o,P),C(n,o,l,0,z.LEFT_CAP_END,P,b),C(n,o,l,0,z.RIGHT_CAP_END,P,b)),k(O,g+I,O,g,I);S=k(O,S-I,O,S,I),this.parameters.wireframe&&this._addWireframeVertices(r,g,S,I)}_addWireframeVertices(e,t,r,i){const s=new Float32Array(e.buffer,r*Float32Array.BYTES_PER_ELEMENT),a=new Float32Array(e.buffer,t*Float32Array.BYTES_PER_ELEMENT,r-t);let n=0;const o=e=>n=k(a,e,s,n,i);for(let l=0;l<a.length-1;l+=2*i)o(l),o(l+2*i),o(l+1*i),o(l+2*i),o(l+1*i),o(l+3*i)}}function k(e,t,r,i,s){for(let a=0;a<s;a++)r[i++]=e[t++];return i}function X(e,t,r){return Y(e,t.get(U.POSITION).data,r?r.get(U.POSITION):null)}function Y(e,t,r){return!!e.isClosed&&(r?r.length>2:t.length>6)}const Q=f(),K=f(),$=f(),ee=f(),te=f(),re=i(),ie=i(),se=f(),ae=f(),ne=d(),oe=d(),le=f(),ce=f(),ue=f(),pe=[i(),i(),i(),i()],he=[f(),f(),f(),f()],me=v(),fe=v(),Te=v(),de=v();export{B as RibbonLineMaterial};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{n as e,s as t,a as r,b as i}from"../../../../chunks/vec3.js";import{c as s}from"../../../../chunks/vec3f64.js";import{center as a,scale as n}from"../../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as o}from"../../../../geometry/support/buffer/BufferView.js";import{newLayout as u}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as l}from"../core/shaderLibrary/ShaderOutputOptions.js";import{CullFaceOptions as c
|
|
5
|
+
import{n as e,s as t,a as r,b as i}from"../../../../chunks/vec3.js";import{c as s}from"../../../../chunks/vec3f64.js";import{center as a,scale as n}from"../../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as o}from"../../../../geometry/support/buffer/BufferView.js";import{newLayout as u}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as l}from"../core/shaderLibrary/ShaderOutputOptions.js";import{CullFaceOptions as c}from"../lib/basicInterfaces.js";import h from"../lib/GLMaterial.js";import{outputFromPass as p}from"../lib/GLMaterials.js";import{DefaultMaterialParameters as f,Material as m}from"../lib/Material.js";import{RenderSlot as d}from"../lib/RenderSlot.js";import{assert as b}from"../lib/Util.js";import{VertexAttribute as E}from"../lib/VertexAttribute.js";import{writeDefaultAttributes as g,writePosition as T}from"./internal/bufferWriterUtils.js";import{intersectTriangleGeometry as S}from"./internal/MaterialUtil.js";import{ShadedColorMaterialTechniqueConfiguration as A,ShadedColorMaterialVertexAttrLocations as P,ShadedColorMaterialTechnique as v}from"../shaders/ShadedColorMaterialTechnique.js";class F extends m{constructor(e){super(e,C),this.supportsEdges=!0,this.techniqueConfig=new A,this._vertexAttributeLocations=P}getTechniqueConfig(e,t){return this.techniqueConfig.output=e,this.techniqueConfig.cullFace=this.parameters.cullFace,this.techniqueConfig.slicePlaneEnabled=this.parameters.slicePlaneEnabled,this.techniqueConfig.transparent=this.parameters.transparent,this.techniqueConfig.writeDepth=this.parameters.writeDepth,this.techniqueConfig.screenSizeEnabled=this.parameters.screenSizeEnabled,this.techniqueConfig.shadingEnabled=this.parameters.shadingEnabled,this.techniqueConfig.transparencyPassType=t.transparencyPassType,this.techniqueConfig.multipassTerrainEnabled=t.multipassTerrainEnabled,this.techniqueConfig.cullAboveGround=t.cullAboveGround,this.techniqueConfig}getPassParameters(){return this.parameters}intersect(e,s,o,u,l,c,h){if(this.parameters.screenSizeEnabled){const o=e.vertexAttributes.get(E.OFFSET),p={applyToVertex:(e,s,a,n)=>{const l=t(j,o.data[3*n+0],o.data[3*n+1],o.data[3*n+2]),c=t(x,e,s,a);return r(l,l,this.parameters.screenSize*u.camera.computeRenderPixelSizeAt(l)),i(c,c,l),[c[0],c[1],c[2]]},applyToAabb:e=>{const t=a(e,j);return n(e,this.parameters.screenSize*u.camera.computeRenderPixelSizeAt(t))}};S(e,s,u,l,c,p,h)}else S(e,s,u,l,c,void 0,h)}requiresSlot(e,t){if(p(t)===l.Highlight)return e===d.OPAQUE_MATERIAL;let r=d.OPAQUE_MATERIAL;return this.parameters.transparent&&(r=this.parameters.writeDepth?d.TRANSPARENT_MATERIAL:d.TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL),e===r||e===d.DRAPED_MATERIAL}createGLMaterial(e){return e.output===l.Color||e.output===l.Alpha||e.output===l.Highlight?new q(e):null}createBufferWriter(){return new O(this.parameters.screenSizeEnabled)}}class q extends h{updateParameters(e){return this.ensureTechnique(v,e)}beginSlot(e){return this.updateParameters(e)}bind(e,t){t.bindPass(this._material.getPassParameters(),e)}}const C={color:[1,1,1,1],shadingTint:[0,0,0,.25],shadingDirection:e(s(),[.5,-.5,-.5]),transparent:!1,writeDepth:!0,slicePlaneEnabled:!1,cullFace:c.None,screenSizeEnabled:!1,screenSize:14,shadingEnabled:!0,...f};class O{constructor(e){this.screenSizeEnabled=e;const t=u().vec3f(E.POSITION).vec3f(E.NORMAL);this.screenSizeEnabled&&t.vec3f(E.OFFSET),this.vertexBufferLayout=t}allocate(e){return this.vertexBufferLayout.createBuffer(e)}elementCount(e){return e.indices.get(E.POSITION).length}write(e,t,r,i){if(g(t,this.vertexBufferLayout,e.transformation,e.invTranspTransformation,r,i),this.screenSizeEnabled){if(!t.vertexAttributes.has(E.OFFSET))throw new Error(`${E.OFFSET} vertex attribute required for screenSizeEnabled ShadedColorMaterial`);{const s=t.vertexAttributes.get(E.OFFSET),a=t.indices.get(E.OFFSET);b(3===s.size);const n=r.getField(E.OFFSET,o);if(!n)throw new Error("unable to acquire view for "+E.OFFSET);T(a,s.data,e.invTranspTransformation,n,i)}}}}const j=s(),x=s();export{F as ShadedColorMaterial};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{unwrap as r}from"../../../../core/maybe.js";import{ShaderOutput as e}from"../core/shaderLibrary/ShaderOutputOptions.js";import{ShaderTechniqueConfiguration as t}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import i from"../lib/GLMaterial.js";import{Material as o,
|
|
5
|
+
import{unwrap as r}from"../../../../core/maybe.js";import{ShaderOutput as e}from"../core/shaderLibrary/ShaderOutputOptions.js";import{ShaderTechniqueConfiguration as t}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import i from"../lib/GLMaterial.js";import{Material as o,DefaultMaterialParameters as n}from"../lib/Material.js";import{RenderSlot as s}from"../lib/RenderSlot.js";import{DefaultBufferWriter as a,PositionUVLayout as u}from"./internal/DefaultBufferWriter.js";import{intersectTriangleGeometry as l}from"./internal/MaterialUtil.js";import{SlicePlaneMaterialTechnique as c}from"../shaders/SlicePlaneMaterialTechnique.js";class m extends o{constructor(r){super(r,f),this._config=new t}intersect(r,e,t,i,o,n,s){return l(r,e,i,o,n,void 0,s)}createBufferWriter(){return new a(u)}requiresSlot(r){return r===s.TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL}createGLMaterial(r){return r.output===e.Color?new h(r):null}getTechniqueConfig(){return this._config}}class h extends i{constructor(r){super(r),this.ensureTechnique(c,null)}updateParameters(){return r(this.technique)}beginSlot(){return r(this.technique)}bind(r,e){e.bindPass(this._material.parameters,r)}}const f={backgroundColor:[1,0,0,.5],gridColor:[0,1,0,.5],gridWidth:4,...n};export{m as SlicePlaneMaterial};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{c as v}from"../../../../chunks/mat3f64.js";import{f as
|
|
5
|
+
import{c as v}from"../../../../chunks/mat3f64.js";import{f as o}from"../../../../chunks/vec3f32.js";const e={vvSizeEnabled:!1,vvSizeMinSize:o(1,1,1),vvSizeMaxSize:o(100,100,100),vvSizeOffset:o(0,0,0),vvSizeFactor:o(1,1,1),vvSizeValue:o(1,1,1),vvColorEnabled:!1,vvColorValues:[0,0,0,0,0,0,0,0],vvColorColors:[1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0],vvOpacityEnabled:!1,vvOpacityValues:[0,0,0,0,0,0,0,0],vvOpacityOpacities:[1,1,1,1,1,1,1,1],vvSymbolAnchor:[0,0,0],vvSymbolRotationMatrix:v()};export{e as VisualVariableDefaultMaterialParameters};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as r}from"../../../../chunks/tslib.es6.js";import{
|
|
5
|
+
import{_ as r}from"../../../../chunks/tslib.es6.js";import e from"../../../../core/has.js";import{bindCloudsComposition as t}from"../../environment/CloudsComposition.js";import{ShaderOutput as o}from"../core/shaderLibrary/ShaderOutputOptions.js";import{bindSliceUniformsWithOrigin as i}from"../core/shaderLibrary/Slice.glsl.js";import{bindOutputHighlight as s}from"../core/shaderLibrary/output/OutputHighlight.glsl.js";import{bindMultipassTerrainTexture as a}from"../core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import{PBRMode as n}from"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{bindReadShadowMapUniforms as p}from"../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{bindSSRUniforms as l}from"../core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js";import{bindWaterDistortionUniforms as u}from"../core/shaderLibrary/shading/WaterDistortion.glsl.js";import{bindProjectionMatrix as h,bindView as c,bindCameraPosition as d}from"../core/shaderLibrary/util/View.glsl.js";import{ReloadableShaderModule as m}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as g}from"../core/shaderTechnique/ShaderTechnique.js";import{parameter as f,ShaderTechniqueConfiguration as b}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{TransparencyPassType as y}from"../lib/basicInterfaces.js";import{Default3D as v}from"../lib/DefaultVertexAttributeLocations.js";import{blendingDefault as S,oitBlending as T,oitDepthTest as j,oitDepthWrite as w,getOITPolygonOffset as P}from"../lib/OrderIndependentTransparency.js";import{Program as C}from"../lib/Program.js";import{W as E}from"../../../../chunks/WaterSurface.glsl.js";import{makePipelineState as x,defaultDepthWriteParams as O,defaultColorWriteParams as R}from"../../../webgl/renderState.js";class D extends g{constructor(r,e,t){super(r,e,t),this._textureRepository=r.waterTextureRepository}initializeProgram(r){const t=D.shader.get(),o=this.configuration,i=t.build({oitEnabled:o.transparencyPassType===y.Color,output:o.output,viewingMode:r.viewingMode,slicePlaneEnabled:o.slicePlaneEnabled,sliceHighlightDisabled:!1,sliceEnabledForVertexPrograms:!1,receiveShadows:o.receiveShadows,pbrMode:n.Water,useCustomDTRExponentForWater:!0,ssrEnabled:o.useSSR,cloudsReflectionsEnabled:e("enable-feature:clouds-reflections"),highStepCount:!0,multipassTerrainEnabled:o.multipassTerrainEnabled,cullAboveGround:o.cullAboveGround});return new C(r.rctx,i,v)}bindPass(r,i){h(this.program,i.camera.projectionMatrix),i.multipassTerrainEnabled&&(this.program.setUniform2fv("nearFar",i.camera.nearFar),this.program.setUniform2fv("inverseViewport",i.inverseViewport),a(this.program,i)),this.configuration.output===o.Color&&(i.lighting.setUniforms(this.program,!1),l(this.program,i),e("enable-feature:clouds-reflections")&&t(this.program,i.camera,i.cloudsCompositionParams)),this.configuration.output!==o.Color&&this.configuration.output!==o.Normal||(u(this.program,r),this._textureRepository.bind(this.program)),this.program.setUniform4fv("waterColor",r.color),this.configuration.output===o.Highlight&&s(this.program,i)}bindDraw(r){c(this.program,r),this.program.rebindTextures(),this.configuration.output!==o.Color&&this.configuration.output!==o.Alpha||d(this.program,r.origin,r.camera.viewInverseTransposeMatrix),this.configuration.output===o.Color&&p(this.program,r),this.configuration.output!==o.Color&&this.configuration.output!==o.Alpha&&this.configuration.output!==o.Highlight||i(this.program,this.configuration,r)}_setPipelineState(r){const e=this.configuration,t=r===y.NONE,i=r===y.FrontFace;return x({blending:e.output!==o.Normal&&e.output!==o.Highlight&&e.transparent?t?S:T(r):null,depthTest:{func:j(r)},depthWrite:t?e.writeDepth&&O:w(r),colorWrite:R,polygonOffset:t||i?null:P(e.enableOffset)})}initializePipeline(){return this._setPipelineState(this.configuration.transparencyPassType)}}D.shader=new m(E,(()=>import("../shaders/WaterSurface.glsl.js")));class L extends b{constructor(){super(...arguments),this.output=o.Color,this.receiveShadows=!1,this.slicePlaneEnabled=!1,this.transparent=!1,this.enableOffset=!0,this.writeDepth=!1,this.useSSR=!1,this.isDraped=!1,this.transparencyPassType=y.NONE,this.multipassTerrainEnabled=!1,this.cullAboveGround=!1}}r([f({count:o.COUNT})],L.prototype,"output",void 0),r([f()],L.prototype,"receiveShadows",void 0),r([f()],L.prototype,"slicePlaneEnabled",void 0),r([f()],L.prototype,"transparent",void 0),r([f()],L.prototype,"enableOffset",void 0),r([f()],L.prototype,"writeDepth",void 0),r([f()],L.prototype,"useSSR",void 0),r([f()],L.prototype,"isDraped",void 0),r([f({count:y.COUNT})],L.prototype,"transparencyPassType",void 0),r([f()],L.prototype,"multipassTerrainEnabled",void 0),r([f()],L.prototype,"cullAboveGround",void 0);export{D as WaterTechnique,L as WaterTechniqueConfiguration};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{newLayout as e}from"../../../support/buffer/InterleavedLayout.js";import{VertexAttribute as
|
|
5
|
+
import{newLayout as e}from"../../../support/buffer/InterleavedLayout.js";import{VertexAttribute as t}from"../../lib/VertexAttribute.js";import{writeDefaultAttributes as r}from"./bufferWriterUtils.js";const f=e().vec3f(t.POSITION),o=e().vec3f(t.POSITION).vec2f(t.UV0),u=e().vec3f(t.POSITION).vec4u8(t.COLOR);class i{constructor(e){this.vertexBufferLayout=e}allocate(e){return this.vertexBufferLayout.createBuffer(e)}elementCount(e){return e.indices.get(t.POSITION).length}write(e,t,f,o){r(t,this.vertexBufferLayout,e.transformation,e.invTranspTransformation,f,o)}}export{i as DefaultBufferWriter,u as PositionColorLayout,f as PositionLayout,o as PositionUVLayout};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{clamp as t}from"../../../../../core/mathUtils.js";import{isNone as
|
|
5
|
+
import{clamp as t}from"../../../../../core/mathUtils.js";import{isNone as e,isSome as n}from"../../../../../core/maybe.js";import{s as i,c as o,n as r}from"../../../../../chunks/vec3.js";import{c as s}from"../../../../../chunks/vec3f64.js";import{create as c,setMin as f,setMax as a}from"../../../../../geometry/support/aaBoundingBox.js";import{PrimitiveType as l}from"../../lib/basicInterfaces.js";import{scale as u}from"../../lib/screenSizePerspectiveUtils.js";import{assert as m}from"../../lib/Util.js";import{VertexAttribute as p}from"../../lib/VertexAttribute.js";import{isInstanceHidden as h}from"../renderers/utils.js";const d=c();function g(t,e,n,i,o,r,s){if(!h(e))if(t.boundingInfo){m(t.primitiveType===l.Triangle);const e=n.tolerance;b(t.boundingInfo,i,o,e,r,s)}else{const e=t.indices.get(p.POSITION),n=t.vertexAttributes.get(p.POSITION);v(i,o,0,e.length/3,e,n,void 0,r,s)}}const x=s();function b(t,i,o,r,s,c){if(e(t))return;const l=A(i,o,x);if(f(d,t.getBBMin()),a(d,t.getBBMax()),n(s)&&s.applyToAabb(d),O(d,i,l,r)){const{primitiveIndices:e,indices:n,position:f}=t,a=e?e.length:n.length/3;if(a>z){const e=t.getChildren();if(void 0!==e){for(let t=0;t<8;++t)void 0!==e[t]&&b(e[t],i,o,r,s,c);return}}v(i,o,0,a,n,f,e,s,c)}}const M=s();function v(t,e,i,o,r,s,c,f,a){if(c)return y(t,e,i,o,r,s,c,f,a);const l=s.data,u=s.stride||s.size,m=t[0],p=t[1],h=t[2],d=e[0]-m,g=e[1]-p,x=e[2]-h;for(let b=i,v=3*i;b<o;++b){let t=u*r[v++],e=l[t++],i=l[t++],o=l[t];t=u*r[v++];let s=l[t++],c=l[t++],y=l[t];t=u*r[v++];let I=l[t++],T=l[t++],A=l[t];n(f)&&([e,i,o]=f.applyToVertex(e,i,o,b),[s,c,y]=f.applyToVertex(s,c,y,b),[I,T,A]=f.applyToVertex(I,T,A,b));const O=s-e,N=c-i,P=y-o,S=I-e,V=T-i,L=A-o,B=g*L-V*x,E=x*S-L*d,U=d*V-S*g,z=O*B+N*E+P*U;if(Math.abs(z)<=Number.EPSILON)continue;const W=m-e,k=p-i,R=h-o,C=W*B+k*E+R*U;if(z>0){if(C<0||C>z)continue}else if(C>0||C<z)continue;const H=k*P-N*R,X=R*O-P*W,Y=W*N-O*k,Z=d*H+g*X+x*Y;if(z>0){if(Z<0||C+Z>z)continue}else if(Z>0||C+Z<z)continue;const _=(S*H+V*X+L*Y)/z;if(_>=0){a(_,j(O,N,P,S,V,L,M),b,!1)}}}function y(t,e,i,o,r,s,c,f,a){const l=s.data,u=s.stride||s.size,m=t[0],p=t[1],h=t[2],d=e[0]-m,g=e[1]-p,x=e[2]-h;for(let b=i;b<o;++b){const t=c[b];let e=3*t,i=u*r[e++],o=l[i++],s=l[i++],v=l[i];i=u*r[e++];let y=l[i++],I=l[i++],T=l[i];i=u*r[e];let A=l[i++],O=l[i++],N=l[i];n(f)&&([o,s,v]=f.applyToVertex(o,s,v,b),[y,I,T]=f.applyToVertex(y,I,T,b),[A,O,N]=f.applyToVertex(A,O,N,b));const P=y-o,S=I-s,V=T-v,L=A-o,B=O-s,E=N-v,U=g*E-B*x,z=x*L-E*d,W=d*B-L*g,k=P*U+S*z+V*W;if(Math.abs(k)<=Number.EPSILON)continue;const R=m-o,C=p-s,H=h-v,X=R*U+C*z+H*W;if(k>0){if(X<0||X>k)continue}else if(X>0||X<k)continue;const Y=C*V-S*H,Z=H*P-V*R,_=R*S-P*C,q=d*Y+g*Z+x*_;if(k>0){if(q<0||X+q>k)continue}else if(q>0||X+q<k)continue;const w=(L*Y+B*Z+E*_)/k;if(w>=0){a(w,j(P,S,V,L,B,E,M),t,!1)}}}const I=s(),T=s();function j(t,e,n,s,c,f,a){return i(I,t,e,n),i(T,s,c,f),o(a,I,T),r(a,a),a}function A(t,e,n){return i(n,1/(e[0]-t[0]),1/(e[1]-t[1]),1/(e[2]-t[2]))}function O(t,e,n,i){return N(t,e,n,i,1/0)}function N(t,e,n,i,o){const r=(t[0]-i-e[0])*n[0],s=(t[3]+i-e[0])*n[0];let c=Math.min(r,s),f=Math.max(r,s);const a=(t[1]-i-e[1])*n[1],l=(t[4]+i-e[1])*n[1];if(f=Math.min(f,Math.max(a,l)),f<0)return!1;if(c=Math.max(c,Math.min(a,l)),c>f)return!1;const u=(t[2]-i-e[2])*n[2],m=(t[5]+i-e[2])*n[2];return f=Math.min(f,Math.max(u,m)),!(f<0)&&(c=Math.max(c,Math.min(u,m)),!(c>f)&&c<o)}function P(e,n,i,o,r){let s=(i.screenLength||0)*e.pixelRatio;r&&(s=u(s,o,n,r));const c=s*Math.tan(.5*e.fovY)/(.5*e.fullHeight);return t(c*n,i.minWorldLength||0,null!=i.maxWorldLength?i.maxWorldLength:1/0)}function S(t,e,n){if(!t)return;const i=t.parameters,o=t.paddingPixelsOverride;e.setUniform4f(n,i.divisor,i.offset,i.minPixelSize,o)}function V(t,e){const n=e?V(e):{};for(const i in t){let e=t[i];e&&e.forEach&&(e=E(e)),null==e&&i in n||(n[i]=e)}return n}function L(t,e){let n=!1;for(const i in e){const o=e[i];void 0!==o&&(n=!0,Array.isArray(o)?t[i]=o.slice():t[i]=o)}return n}function B(e,n,i,o,r,s){if(!n.options.selectionMode)return;const c=e.vertexAttributes.get(p.POSITION).data,f=e.vertexAttributes.get(p.SIZE),a=f&&f.data[0],l=o[0],u=o[1],m=((a+r)/2+4)*e.screenToWorldRatio;let h=Number.MAX_VALUE,d=0;for(let p=0;p<c.length-5;p+=3){const e=c[p],n=c[p+1],i=l-e,o=u-n,r=c[p+3]-e,s=c[p+4]-n,f=t((r*i+s*o)/(r*r+s*s),0,1),a=r*f-i,m=s*f-o,g=a*a+m*m;g<h&&(h=g,d=p/3)}h<m*m&&s(i.dist,i.normal,d,!1)}function E(t){const e=[];return t.forEach((t=>e.push(t))),e}const U={multiply:1,ignore:2,replace:3,tint:4},z=1e3;export{S as bindScreenSizePerspective,U as colorMixModes,A as computeInvDir,j as computeNormal,V as copyParameters,O as intersectAabbInvDir,N as intersectAabbInvDirBefore,B as intersectDrapedRenderLineGeometry,g as intersectTriangleGeometry,v as intersectTriangles,L as updateParameters,P as verticalOffsetAtDistance};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{p as t}from"../../../../../chunks/mat4.js";import{BufferViewVec4f as e,BufferViewVec4u8 as f,BufferViewVec2f as o,BufferViewVec3f as r}from"../../../../../geometry/support/buffer/BufferView.js";import{
|
|
5
|
+
import{p as t}from"../../../../../chunks/mat4.js";import{BufferViewVec4f as e,BufferViewVec4u8 as f,BufferViewVec2f as o,BufferViewVec3f as r}from"../../../../../geometry/support/buffer/BufferView.js";import{assert as s}from"../../lib/Util.js";import{VertexAttribute as n}from"../../lib/VertexAttribute.js";function i(t,e,f,o){const r=f.typedBuffer,s=f.typedBufferStride,n=t.length;o*=s;for(let i=0;i<n;++i){const f=2*t[i];r[o]=e[f],r[o+1]=e[f+1],o+=s}}function c(t,e,f,o,r){const s=f.typedBuffer,n=f.typedBufferStride,i=t.length;if(o*=n,null==r||1===r)for(let c=0;c<i;++c){const f=3*t[c];s[o]=e[f],s[o+1]=e[f+1],s[o+2]=e[f+2],o+=n}else for(let c=0;c<i;++c){const f=3*t[c];for(let t=0;t<r;++t)s[o]=e[f],s[o+1]=e[f+1],s[o+2]=e[f+2],o+=n}}function l(t,e,f,o,r=1){const s=f.typedBuffer,n=f.typedBufferStride,i=t.length;if(o*=n,1===r)for(let c=0;c<i;++c){const f=4*t[c];s[o]=e[f],s[o+1]=e[f+1],s[o+2]=e[f+2],s[o+3]=e[f+3],o+=n}else for(let c=0;c<i;++c){const f=4*t[c];for(let t=0;t<r;++t)s[o]=e[f],s[o+1]=e[f+1],s[o+2]=e[f+2],s[o+3]=e[f+3],o+=n}}function d(t,e,f,o){const r=f.typedBuffer,s=f.typedBufferStride,n=t.length;o*=s;for(let i=0;i<n;++i){const f=9*t[i];for(let t=0;t<9;++t)r[o+t]=e[f+t];o+=s}}function u(t,e,f,o){const r=f.typedBuffer,s=f.typedBufferStride,n=t.length;o*=s;for(let i=0;i<n;++i){const f=16*t[i];for(let t=0;t<16;++t)r[o+t]=e[f+t];o+=s}}function a(t,e,f,o,r,s=1){if(!f)return void c(t,e,o,r,s);const n=o.typedBuffer,i=o.typedBufferStride,l=t.length,d=f[0],u=f[1],a=f[2],p=f[4],B=f[5],y=f[6],g=f[8],h=f[9],b=f[10],m=f[12],S=f[13],z=f[14];if(r*=i,1===s)for(let c=0;c<l;++c){const f=3*t[c],o=e[f],s=e[f+1],l=e[f+2];n[r]=d*o+p*s+g*l+m,n[r+1]=u*o+B*s+h*l+S,n[r+2]=a*o+y*s+b*l+z,r+=i}else for(let c=0;c<l;++c){const f=3*t[c],o=e[f],l=e[f+1],O=e[f+2],k=d*o+p*l+g*O+m,F=u*o+B*l+h*O+S,M=a*o+y*l+b*O+z;for(let t=0;t<s;++t)n[r]=k,n[r+1]=F,n[r+2]=M,r+=i}}function p(e,f,o,r,s,n=1){if(!o)return void c(e,f,r,s,n);const i=o,l=r.typedBuffer,d=r.typedBufferStride,u=e.length,a=i[0],p=i[1],B=i[2],y=i[4],g=i[5],h=i[6],b=i[8],m=i[9],S=i[10],z=!t(i),O=1e-6,k=1-O;if(s*=d,1===n)for(let t=0;t<u;++t){const o=3*e[t],r=f[o],n=f[o+1],i=f[o+2];let c=a*r+y*n+b*i,u=p*r+g*n+m*i,F=B*r+h*n+S*i;if(z){const t=c*c+u*u+F*F;if(t<k&&t>O){const e=1/Math.sqrt(t);c*=e,u*=e,F*=e}}l[s+0]=c,l[s+1]=u,l[s+2]=F,s+=d}else for(let t=0;t<u;++t){const o=3*e[t],r=f[o],i=f[o+1],c=f[o+2];let u=a*r+y*i+b*c,F=p*r+g*i+m*c,M=B*r+h*i+S*c;if(z){const t=u*u+F*F+M*M;if(t<k&&t>O){const e=1/Math.sqrt(t);u*=e,F*=e,M*=e}}for(let t=0;t<n;++t)l[s+0]=u,l[s+1]=F,l[s+2]=M,s+=d}}function B(e,f,o,r,s,n=1){if(!o)return void l(e,f,r,s,n);const i=o,c=r.typedBuffer,d=r.typedBufferStride,u=e.length,a=i[0],p=i[1],B=i[2],y=i[4],g=i[5],h=i[6],b=i[8],m=i[9],S=i[10],z=!t(i),O=1e-6,k=1-O;if(s*=d,1===n)for(let t=0;t<u;++t){const o=4*e[t],r=f[o],n=f[o+1],i=f[o+2],l=f[o+3];let u=a*r+y*n+b*i,F=p*r+g*n+m*i,M=B*r+h*n+S*i;if(z){const t=u*u+F*F+M*M;if(t<k&&t>O){const e=1/Math.sqrt(t);u*=e,F*=e,M*=e}}c[s+0]=u,c[s+1]=F,c[s+2]=M,c[s+3]=l,s+=d}else for(let t=0;t<u;++t){const o=4*e[t],r=f[o],i=f[o+1],l=f[o+2],u=f[o+3];let F=a*r+y*i+b*l,M=p*r+g*i+m*l,N=B*r+h*i+S*l;if(z){const t=F*F+M*M+N*N;if(t<k&&t>O){const e=1/Math.sqrt(t);F*=e,M*=e,N*=e}}for(let t=0;t<n;++t)c[s+0]=F,c[s+1]=M,c[s+2]=N,c[s+3]=u,s+=d}}function y(t,e,f,o,r,s=1){const n=o.typedBuffer,i=o.typedBufferStride,c=t.length;if(r*=i,1===s){if(4===f)for(let l=0;l<c;++l){const f=4*t[l];n[r]=e[f],n[r+1]=e[f+1],n[r+2]=e[f+2],n[r+3]=e[f+3],r+=i}else if(3===f)for(let l=0;l<c;++l){const f=3*t[l];n[r]=e[f],n[r+1]=e[f+1],n[r+2]=e[f+2],n[r+3]=255,r+=i}}else if(4===f)for(let l=0;l<c;++l){const f=4*t[l];for(let t=0;t<s;++t)n[r]=e[f],n[r+1]=e[f+1],n[r+2]=e[f+2],n[r+3]=e[f+3],r+=i}else if(3===f)for(let l=0;l<c;++l){const f=3*t[l];for(let t=0;t<s;++t)n[r]=e[f],n[r+1]=e[f+1],n[r+2]=e[f+2],n[r+3]=255,r+=i}}function g(t,c,l,d,u,g){for(const h of c.fieldNames){const c=t.vertexAttributes.get(h),b=t.indices.get(h);if(c&&b)switch(h){case n.POSITION:{s(3===c.size);const t=u.getField(h,r);t&&a(b,c.data,l,t,g);break}case n.NORMAL:{s(3===c.size);const t=u.getField(h,r);t&&p(b,c.data,d,t,g);break}case n.UV0:{s(2===c.size);const t=u.getField(h,o);t&&i(b,c.data,t,g);break}case n.COLOR:{s(3===c.size||4===c.size);const t=u.getField(h,f);t&&y(b,c.data,c.size,t,g);break}case n.SYMBOLCOLOR:{s(3===c.size||4===c.size);const t=u.getField(h,f);t&&y(b,c.data,c.size,t,g);break}case n.TANGENT:{s(4===c.size);const t=u.getField(h,e);t&&B(b,c.data,d,t,g);break}}}}export{d as writeBufferMat3f,u as writeBufferMat4f,i as writeBufferVec2,c as writeBufferVec3,l as writeBufferVec4,y as writeColor,g as writeDefaultAttributes,p as writeNormal,a as writePosition,B as writeTangent};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{f as e}from"../../../../../chunks/vec2f64.js";import{
|
|
5
|
+
import{f as e}from"../../../../../chunks/vec2f64.js";import{DefaultMaterialParameters as t}from"../../lib/Material.js";const r={waveStrength:.06,waveTextureRepeat:32,waveDirection:e(1,0),waveVelocity:.05,flowStrength:.015,flowOffset:-.5,animationSpeed:.35,color:[0,0,0,0],transparent:!0,writeDepth:!0,slicePlaneEnabled:!1,isDraped:!1,receiveShadows:!0,ssrEnabled:!1,...t},a={"calm-small":{waveStrength:.005,perturbationStrength:.02,textureRepeat:12,waveVelocity:.01},"rippled-small":{waveStrength:.02,perturbationStrength:.09,textureRepeat:32,waveVelocity:.07},"slight-small":{waveStrength:.05,perturbationStrength:.07,textureRepeat:28,waveVelocity:.1},"moderate-small":{waveStrength:.075,perturbationStrength:.07,textureRepeat:24,waveVelocity:.1},"calm-medium":{waveStrength:.003125,perturbationStrength:.01,textureRepeat:8,waveVelocity:.02},"rippled-medium":{waveStrength:.035,perturbationStrength:.015,textureRepeat:12,waveVelocity:.07},"slight-medium":{waveStrength:.06,perturbationStrength:.015,textureRepeat:8,waveVelocity:.12},"moderate-medium":{waveStrength:.09,perturbationStrength:.03,textureRepeat:4,waveVelocity:.12},"calm-large":{waveStrength:.01,perturbationStrength:0,textureRepeat:4,waveVelocity:.05},"rippled-large":{waveStrength:.025,perturbationStrength:.01,textureRepeat:8,waveVelocity:.11},"slight-large":{waveStrength:.06,perturbationStrength:.02,textureRepeat:3,waveVelocity:.13},"moderate-large":{waveStrength:.14,perturbationStrength:.03,textureRepeat:2,waveVelocity:.15}};export{r as defaultWaterMaterialParameters,a as wavePresets};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import"../core/shaderLibrary/output/ReadLinearDepth.glsl.js";import"../core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import"../core/shaderLibrary/util/ColorConversion.glsl.js";import"../core/shaderModules/interfaces.js";import"../core/shaderModules/ShaderBuilder.js";import"../lib/
|
|
5
|
+
import"../core/shaderLibrary/output/ReadLinearDepth.glsl.js";import"../core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import"../core/shaderLibrary/util/ColorConversion.glsl.js";import"../core/shaderModules/interfaces.js";import"../core/shaderModules/ShaderBuilder.js";import"../lib/VertexAttribute.js";export{b as build}from"../../../../chunks/CheckerBoard.glsl.js";
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as r}from"../../../../chunks/tslib.es6.js";import{bindMultipassTerrainTexture as e}from"../core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import{bindProjectionMatrix as t,bindView as o}from"../core/shaderLibrary/util/View.glsl.js";import{ReloadableShaderModule as i}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{parameter as a,ShaderTechniqueConfiguration as n}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{TransparencyPassType as p}from"../lib/basicInterfaces.js";import{Default3D as l}from"../lib/DefaultVertexAttributeLocations.js";import{oitBlending as c,oitDepthTest as m,oitDepthWrite as d}from"../lib/OrderIndependentTransparency.js";import{Program as h}from"../lib/Program.js";import{C as u}from"../../../../chunks/CheckerBoard.glsl.js";import{BlendFactor as f}from"../../../webgl/enums.js";import{separateBlendingParams as g,makePipelineState as b,defaultDepthWriteParams as y,defaultColorWriteParams as T}from"../../../webgl/renderState.js";class v extends s{initializeProgram(r){const e=v.shader.get(),t=this.configuration,o=e.build({
|
|
5
|
+
import{_ as r}from"../../../../chunks/tslib.es6.js";import{bindMultipassTerrainTexture as e}from"../core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import{bindProjectionMatrix as t,bindView as o}from"../core/shaderLibrary/util/View.glsl.js";import{ReloadableShaderModule as i}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{parameter as a,ShaderTechniqueConfiguration as n}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{TransparencyPassType as p}from"../lib/basicInterfaces.js";import{Default3D as l}from"../lib/DefaultVertexAttributeLocations.js";import{oitBlending as c,oitDepthTest as m,oitDepthWrite as d}from"../lib/OrderIndependentTransparency.js";import{Program as h}from"../lib/Program.js";import{C as u}from"../../../../chunks/CheckerBoard.glsl.js";import{BlendFactor as f}from"../../../webgl/enums.js";import{separateBlendingParams as g,makePipelineState as b,defaultDepthWriteParams as y,defaultColorWriteParams as T}from"../../../webgl/renderState.js";class v extends s{initializeProgram(r){const e=v.shader.get(),t=this.configuration,o=e.build({oitEnabled:t.transparencyPassType===p.Color,multipassTerrainEnabled:t.multipassTerrainEnabled,cullAboveGround:t.cullAboveGround});return new h(r.rctx,o,l)}bindPass(r,o){t(this.program,o.camera.projectionMatrix),this.program.setUniform2fv("size",r.size),this.program.setUniform4fv("color1",r.color1),this.program.setUniform4fv("color2",r.color2),o.multipassTerrainEnabled&&(this.program.setUniform2fv("nearFar",o.camera.nearFar),this.program.setUniform2fv("inverseViewport",o.inverseViewport),e(this.program,o))}bindDraw(r){o(this.program,r)}_setPipelineState(r){const e=this.configuration,t=r===p.NONE,o=r===p.FrontFace;return b({blending:e.transparent?t?P:c(r):null,depthTest:{func:m(r)},depthWrite:t?e.writeDepth&&y:d(r),colorWrite:T,polygonOffset:t||o?e.polygonOffset&&j:{factor:-1,units:-25}})}initializePipeline(){return this._setPipelineState(this.configuration.transparencyPassType)}}v.shader=new i(u,(()=>import("./CheckerBoard.glsl.js")));const j={factor:0,units:-25},P=g(f.SRC_ALPHA,f.ONE,f.ONE_MINUS_SRC_ALPHA,f.ONE_MINUS_SRC_ALPHA);class w extends n{constructor(){super(...arguments),this.transparent=!1,this.writeDepth=!0,this.polygonOffset=!1,this.transparencyPassType=p.NONE,this.multipassTerrainEnabled=!1,this.cullAboveGround=!1}}r([a()],w.prototype,"transparent",void 0),r([a()],w.prototype,"writeDepth",void 0),r([a()],w.prototype,"polygonOffset",void 0),r([a({count:p.COUNT})],w.prototype,"transparencyPassType",void 0),r([a()],w.prototype,"multipassTerrainEnabled",void 0),r([a()],w.prototype,"cullAboveGround",void 0);export{v as CheckerBoardTechnique,w as CheckerBoardTechniqueConfiguration};
|