UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 1.46 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{rad2deg as n}from"../../../core/mathUtils.js";function t(t,e,d,a){const o=d-t,i=a-e;return n(Math.atan2(i,o))}function e(n){let t=n%360;return t<0&&(t+=360),t}function d(n,t){const d={towards:{distance:1/0,node:null},backwards:{distance:1/0,node:null},left:{distance:1/0,node:null},right:{distance:1/0,node:null}};t.forEach((t=>{if(n===t)return;const a=n.getDistanceTo(t),o=n.getDirectionTo(t);a>=d[o].distance||(d[o].node=t,d[o].distance=a,d[o].heading=e(t.heading),d[o].pitch=e(t.pitch))})),n.reset(),n.towards=d.towards.node,n.backwards=d.backwards.node,n.left=d.left.node,n.right=d.right.node}function a(n,t,d,a){const i={towards:{distance:1/0,node:null},backwards:{distance:1/0,node:null},left:{distance:1/0,node:null},right:{distance:1/0,node:null}};t.forEach((t=>{if(n===t)return;const c=n.getDistanceTo(t),r=n.getDirectionTo(t),s=e(n.heading)-e(e(t.heading)),l=e(n.pitch)-e(t.pitch);c>=i[r].distance||null!=d&&!o(s,d)||null!=a&&!o(l,a)||(i[r].node=t,i[r].distance=c,i[r].heading=e(t.heading),i[r].pitch=e(t.pitch))})),n.reset(),n.towards=i.towards.node,n.backwards=i.backwards.node,n.left=i.left.node,n.right=i.right.node}function o(n,t){return Math.abs(n)<=t}export{t as getRelativeAngleBetweenPoints,e as normalizeDegrees,d as updateDirectionalNodesGeneric,a as updateDirectionalNodesWithSameView};