@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
*/
import{l as e,d as t,g as E,h as r}from"../../../../chunks/vec32.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{surfaceElevationBelowRenderLocation as o}from"../intersectionUtils.js";function s(n,s,_=i.EYE){const a=n.state.constraints;if(!a.collision.enabled)return!1;const N=o(n,s.eye),f=n.renderCoordsHelper.getAltitude(s.eye),A=N+a.collision.elevationMargin;if(f>=A)return!1;const C=e(s.eye);if(t(c,s.center,s.eye),s.eye=n.renderCoordsHelper.setAltitude(l,A,s.eye),_===i.EYE_AND_CENTER)s.center=E(c,s.eye,c);else if(_===i.EYE_AND_CENTER_SCALE){const e=(C-f+A)/C;s.center=r(c,s.center,e)}return!0}var i;!function(e){e[e.EYE=0]="EYE",e[e.EYE_AND_CENTER=1]="EYE_AND_CENTER",e[e.EYE_AND_CENTER_SCALE=2]="EYE_AND_CENTER_SCALE"}(i||(i={}));const c=n(),l=n();export{i as Mode,s as applySurfaceCollisionConstraint};