/* COPYRIGHT Esri - https://js.arcgis.com/5.1.0/LICENSE.txt */
import{__decorate as e}from"tslib";import{uniform as t,define as o,UniformGroup as i}from"../../../../GraphShaderModule.js";import{pow as r,Vec2 as p,sqrt as s,atan as l,Vec4 as d,Float as u}from"../../../../graph/glsl.js";import{getSurfaceValues as m,computeDeltaZ as c}from"../surface.js";import{BaseRasterProcessorShader as a}from"./BaseRasterProcessorShader.js";import{roundOutput as n}from"./math.js";class y extends i{}e([t(u)],y.prototype,"pixelSizePower",void 0),e([t(u)],y.prototype,"pixelSizeFactor",void 0),e([t(u)],y.prototype,"zFactor",void 0),e([t(p)],y.prototype,"cellSize",void 0);class h extends a{constructor(){super(...arguments),this.type="SlopeShader",this.isOutputRounded=!1,this.percentRise=!1}_process(e){const{cellSize:t,pixelSizePower:o,pixelSizeFactor:i,zFactor:u}=this.slopeConfig,a=r(t,new p(o)).multiply(i).add(u).divide(t.multiply(8)),y=m(this.texture,e,this.config.srcImageSize),{x:h,y:S}=c(y,a),f=s(h.multiply(h).add(S.multiply(S))),x=this.percentRise?f.multiply(100):l(f).multiply(57.2957795),z=new d(x,x,x,y.get(9));return this.isOutputRounded?n(z):z}}e([o],h.prototype,"isOutputRounded",void 0),e([o],h.prototype,"percentRise",void 0),e([t(y)],h.prototype,"slopeConfig",void 0);export{h as SlopeShader};
