@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.26 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import{clamp as t}from"../../core/mathUtils.js";import{pt2px as r,px2pt as o}from"../../core/screenUtils.js";import{lerp as n}from"../../core/libs/gl-matrix-2/math/vec4.js";import{create as i}from"../../core/libs/gl-matrix-2/factories/vec4f64.js";const e=2.4;function c(t){return o(t*e)}function a(t){return r(t)/e}function s(r,o,i,e){let{color:c,ratio:a}=o,{color:s,ratio:f}=i;if(f===a){const t=1e-6;1===f?a-=t:f+=t}const l=t((e-a)/(f-a),0,1);n(r,c.toArray(),s.toArray(),l)}function f(t){const r=512,o=new Uint8ClampedArray(4*r);if(t=t.filter(({ratio:t})=>t>=0&&t<=1).sort((t,r)=>t.ratio-r.ratio).map(({color:t,ratio:r})=>({color:t,ratio:Math.max(r,.001)})),t.length<1)return o;let n=t[0],e=t[0],c=1;const a=i();for(let i=0;i<r;i++){const f=(i+.5)/r;for(;f>e.ratio&&c<t.length;)n=e,e=t[c++];s(a,n,e,f),o.set(a,4*i)}return o}function l(t,r,o){const n=Math.sqrt(t**2+r**2)/o;return n>1?0:3/(Math.PI*o**2)*(1-n**2)**2}function m(t){return"function"==typeof t?t:t?r=>+r[t]:()=>1}export{m as createValueFunction,l as evaluateDensityKernel,c as gaussianBlurRadiusPxToKernelDensityRadiusPt,f as generateGradient,a as kernelDensityRadiusPtToGaussianBlurRadiusPx,e as magicKernelDensityRadiusInflationFactor};