/*
All material copyright Esri, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
*/
import o from"../../Camera.js";import{rad2deg as e,deg2rad as r}from"../../core/mathUtils.js";import{create as t}from"../../core/libs/gl-matrix-2/factories/mat4f64.js";import{j as i,i as n}from"../../chunks/vec32.js";import{create as c}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import l from"../../geometry/Point.js";import a from"../../geometry/SpatialReference.js";import{computeTranslationToOriginAndRotation as s}from"../../geometry/projection/computeTranslationToOriginAndRotation.js";import{projectBuffer as p}from"../../geometry/projection/projectBuffer.js";import{projectPointToVector as m}from"../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as f}from"../../geometry/projection/projectVectorToVector.js";import{cameraOnContentAlongViewDirection as u}from"./camera/intersectionUtils.js";import{directionToHeadingTilt as d,viewModeDependentUtil as R}from"./support/viewingModeUtils.js";const j={OPAQUE:"opaque-color",TRANSPARENT:"transparent-color",COMPOSITE:"composite-color",FINAL:"final-color"},A={SSAO:"ssao",LASERLINES:"laserline-color",ANTIALIASING:"aa-color",HIGHLIGHTS:"highlight-color",MAGNIFIER:"magnifier-color",OCCLUDED:"occluded-color",VIEWSHED:"viewshed-color",CUTFILL_DEPTH:"cutfill-depth",CUTFILL_COLOR:"cutfill-color",OPAQUE_TERRAIN:"opaque-terrain-color",OPAQUE_ENVIRONMENT:"opaque-environment-color",TRANSPARENT_ENVIRONMENT:"transparent-environment-color",FOCUSAREA:"focusarea",FOCUSAREA_COLOR:"focusarea-color"};function E(o,e,r,t,i,n,c){return t=t||o.spatialReference,p(e,t,r,i,o.renderCoordsHelper.spatialReference,n,c)?i:null}function g(o,e,r,t,i,n,c){return n=n||o.spatialReference,p(e,o.renderCoordsHelper.spatialReference,r,t,n,i,c)?t:null}function T(o,e,r,i){return i||(i=t()),r=r||o.spatialReference,s(r,e,i,o.renderCoordsHelper.spatialReference)?i:null}function y(r,t,i){const n=r.renderSpatialReference,c=d(r,t.eye,t.viewForward,t.up,O);let s=r.spatialReference;return f(t.eye,n,N,s)||(s=a.WGS84,f(t.eye,n,N,s)),null==i?i=new o(new l(N,s),c.heading,c.tilt,e(t.fov)):(i.position.x=N[0],i.position.y=N[1],i.position.z=N[2],i.position.spatialReference=s,i.heading=c.heading,i.tilt=c.tilt,i.fov=e(t.fov)),i.layout.row=t.row,i.layout.rows=t.rows,i.layout.column=t.column,i.layout.columns=t.columns,i}function I(o,e){if(!e)return null;const t=o.renderSpatialReference,l=R(o).headingTiltToDirectionUp,a=c();if(!m(e.position,a,t))return null;const s=l(a,e.heading,e.tilt);i(s.direction,s.direction,o.state.camera.distance),n(s.direction,s.direction,a);const p=u(o,a,s.direction,s.up);return p.fov=r(e.fov),p.row=e.layout.row,p.rows=e.layout.rows,p.column=e.layout.column,p.columns=e.layout.columns,p}const N=c(),O={heading:0,tilt:0};export{A as InternalRenderCategory,j as RenderCategory,y as fromRenderCamera,g as fromRenderCoordinates,T as renderCoordinateTransformAt,I as toRenderCamera,E as toRenderCoordinates};
