/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
*/
define(["exports","../../core/maybe","../../core/screenUtils","../../layers/graphics/dehydratedFeatures","../../support/elevationInfoUtils"],(function(e,t,i,n,o){"use strict";let r=function(){function e(e,t,i,n=null){this.elevationInfo=e,this.defaultZ=t,this.view=i,this.excludeGraphics=n}var r=e.prototype;return r.screenToMap=function(e){if(t.isSome(this.defaultZ))return this.view.sceneIntersectionHelper.intersectElevationFromScreen(i.createScreenPointArray(e.x,e.y),this.elevationInfo,this.defaultZ,this.excludeGraphics);const n=this.view.sceneIntersectionHelper.intersectElevationFromScreen(i.createScreenPointArray(e.x,e.y),this.elevationInfo,0,this.excludeGraphics);return t.isSome(n)&&(n.z=void 0),n},r.mapToScreen=function(e){const t=n.makeDehydratedPoint(e.x,e.y,o.getConvertedElevation(this.view,e,this.elevationInfo),e.spatialReference);return this.view.toScreen(t)},e}(),s=function(){function e(e,t,i=[]){this.view=e,this.elevationInfo=t,this.exclude=i}var i=e.prototype;return i.screenToMap=function(e){const i=this.view.toMap(e,{exclude:this.exclude});return t.isSome(i)&&(i.z=o.getZForElevationMode(i,this.view,this.elevationInfo)),i},i.mapToScreen=function(e){let i=e;return t.isSome(this.elevationInfo)&&(i=n.makeDehydratedPoint(e.x,e.y,o.getConvertedElevation(this.view,e,this.elevationInfo),e.spatialReference)),this.view.toScreen(i)},e}(),a=function(e){this.view=e,this.screenToMap=t=>e.toMap(t),this.mapToScreen=t=>e.toScreen(t)};e.ElevationDrawSurface=r,e.MapDrawSurface=a,e.SceneDrawSurface=s,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
