UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 1.05 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{rad2deg as t,acosClamped as o}from"../../../core/mathUtils.js";import{n as s,f as r,c as e,h as n,d as i,l as a,e as c}from"../../../chunks/vec32.js";import{create as m}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{wrap as f}from"../../../geometry/support/lineSegment.js";import{intersectLineSegment as l}from"../../../geometry/support/plane.js";const p=m(),u=m();function h(){return{direction:m(),up:m()}}function g(m,f,l,h,g){let j=s(p,m),d=r(j,h);const b=d>0;d=Math.abs(d),d>.99&&(d=Math.abs(r(f,h)),d<.99?(e(j,f),b&&n(j,j,-1)):j=null);let v=0;if(j){n(u,h,r(h,j)),i(j,j,u);const s=r(j,g)/(a(j)*a(g));c(u,j,g);v=(r(u,h)>0?1:-1)*t(o(s))}const x=t(o(-r(h,m)/a(m)));return l?(l.heading=v,l.tilt=x,l):{heading:v,tilt:x}}function j(t,o,s,r){i(d,s,o),l(r,f(o,d),t)||t===s||e(t,s)}const d=m();export{j as clampLineSegmentToPlane,h as createDirectionUp,g as directionToHeadingTilt};