@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.6 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{ZEROS as t}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import{SizedPixelFormat as e,PixelType as n,TextureSamplingMode as a,TextureWrapMode as i,PixelFormat as r}from"./enums.js";import{Texture as u}from"./Texture.js";import{TextureDescriptor as o}from"./TextureDescriptor.js";function s(t,s,m="nearest",l=!1){const c=!(l&&"u8"===s.pixelType),f=c?n.FLOAT:n.UNSIGNED_BYTE,p=null==s.pixels||0===s.pixels.length?null:c?s.getAsRGBAFloat():s.getAsRGBA(),_=t.capabilities.textureFloatLinear,g=new o;return g.width=s.width,g.height=s.height,g.internalFormat=c?e.RGBA32F:r.RGBA,g.samplingMode=!_||"bilinear"!==m&&"cubic"!==m?a.NEAREST:a.LINEAR,g.dataType=f,g.wrapMode=i.CLAMP_TO_EDGE,new u(t,g,p)}function m(t,r){const{spacing:s,offsets:m,coefficients:l,size:[c,f]}=r,p=s[0]>1,_=new o;_.width=p?4*c:c,_.height=f,_.internalFormat=e.RGBA32F,_.dataType=n.FLOAT,_.samplingMode=a.NEAREST,_.wrapMode=i.CLAMP_TO_EDGE;const g=new Float32Array(p?c*f*16:2*m.length);if(p&&null!=l)for(let e=0,n=0;e<l.length;e++)g[n++]=l[e],e%3==2&&(g[n++]=1);else for(let e=0;e<f;e++)for(let t=0;t<c;t++){const n=4*(e*c+t),a=2*(t*f+e);g[n]=m[a],g[n+1]=m[a+1],g[n+3]=-1===m[a]?0:1}return new u(t,_,g)}function l(t,e){const n=new o;return n.internalFormat=r.RGBA,n.width=e.length/4,n.height=1,n.samplingMode=a.NEAREST,n.wrapMode=i.CLAMP_TO_EDGE,new u(t,n,e)}function c(t,e,s){const m=new o;return m.internalFormat=r.ALPHA,m.pixelFormat=r.ALPHA,m.dataType=n.UNSIGNED_BYTE,m.width=s[0],m.height=s[1],m.samplingMode=a.NEAREST,m.wrapMode=i.CLAMP_TO_EDGE,new u(t,m,e)}function f(e,n,a,i=1,r=!0){return{u_flipY:r,u_applyTransform:!!e,u_opacity:i,u_transformSpacing:e?e.spacing:t,u_transformGridSize:e?e.size:t,u_targetImageSize:n,u_srcImageSize:a}}function p(t,e){return{u_colormapOffset:e||0,u_colormapMaxIndex:t?t.length/4-1:0}}function _(t){return{u_bandCount:t.bandCount,u_minOutput:t.minOutput,u_maxOutput:t.maxOutput,u_minCutOff:t.minCutOff,u_maxCutOff:t.maxCutOff,u_factor:t.factor,u_useGamma:t.useGamma,u_gamma:t.gamma,u_gammaCorrection:t.gammaCorrection}}function g(t){return{u_hillshadeType:t.hillshadeType,u_sinZcosAs:t.sinZcosAs,u_sinZsinAs:t.sinZsinAs,u_cosZs:t.cosZs,u_weights:t.weights,u_factor:t.factor,u_minValue:t.minValue,u_maxValue:t.maxValue}}export{l as createColormapTexture,c as createPixelMaskTexture,s as createRasterTexture,m as createTransformTexture,p as getColormapUniforms,f as getCommonUniforms,g as getShadedReliefUniforms,_ as getStretchUniforms};