UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 4.58 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import"../core/has.js";import"../core/Logger.js";import{acosClamped as t}from"../core/mathUtils.js";import{fromRotation as r}from"../core/libs/gl-matrix-2/math/mat4.js";import{g as n,h as s,j as o,l as e,e as i,t as a,d as c,k as u,n as f,i as m,s as l,m as g,b as p}from"./vec32.js";import{create as h}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{e as M,c as j}from"./vec42.js";import{create as d,fromValues as y}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{getEpsilon as b}from"../core/libs/gl-matrix-2/math/common.js";import{Axis as x}from"../geometry/support/Axis.js";import{fromPoints as v,closestPoint as S}from"../geometry/support/ray.js";import{cartesianToSpherical as q}from"../geometry/support/sphereUtils.js";import{angle as A}from"../geometry/support/vector.js";import{sv3d as P,sm4d as R}from"../geometry/support/vectorStacks.js";const C=E();function E(){return d()}const _=M,k=M;function w(t,r){return j(r,t)}function O(t,r){return y(t[0],t[1],t[2],r)}function T(t){return t}function z(t){t[0]=t[1]=t[2]=t[3]=0}function L(t,r){return t[0]=t[1]=t[2]=0,t[3]=r,t}function N(t){return t[3]}function U(t){return t}function V(t,r,n,s){return y(t,r,n,s)}function Z(t,r,n){return t!==n&&(n[0]=t[0],n[1]=t[1],n[2]=t[2]),n[3]=t[3]+r,n}function B(t,r,n){return t!==n&&w(t,n),n}function D(t,r){return r}function F(t,r,n){if(null==r)return!1;if(!Y(t,r,X))return!1;let{t0:s,t1:o}=X;if((s<0||o<s&&o>0)&&(s=o),s<0)return!1;if(n){const{origin:t,direction:o}=r;n[0]=t[0]+o[0]*s,n[1]=t[1]+o[1]*s,n[2]=t[2]+o[2]*s}return!0}function I(t,r,n){const s=v(r,n);if(!Y(t,s,X))return[];const{origin:o,direction:e}=s,{t0:i,t1:a}=X,c=r=>{const n=h();return p(n,o,e,r),$(t,n,n)};return Math.abs(i-a)<b()?[c(i)]:[c(i),c(a)]}const X={t0:0,t1:0};function Y(t,r,n){const{origin:s,direction:o}=r,e=G;e[0]=s[0]-t[0],e[1]=s[1]-t[1],e[2]=s[2]-t[2];const i=o[0]*o[0]+o[1]*o[1]+o[2]*o[2];if(0===i)return!1;const a=2*(o[0]*e[0]+o[1]*e[1]+o[2]*e[2]),c=a*a-4*i*(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]-t[3]*t[3]);if(c<0)return!1;const u=Math.sqrt(c);return n.t0=(-a-u)/(2*i),n.t1=(-a+u)/(2*i),!0}const G=h();function H(t,r){return F(t,r,null)}function J(t,r,i){if(F(t,r,i))return i;const a=K(t,r,P.get());return n(i,r.origin,s(P.get(),r.direction,o(r.origin,a)/e(r.direction))),i}function K(t,n,o){const c=P.get(),u=R.get();i(c,n.origin,n.direction);const f=N(t);i(o,c,n.origin),s(o,o,1/e(o)*f);const m=rt(t,n.origin),l=A(n.origin,o);return r(u,l+m,c),a(o,o,u),o}function Q(t,r,n,s){const o=N(t),e=o*o,i=r+.5*Math.PI,a=n*n+e-2*Math.cos(i)*n*o,c=Math.sqrt(a),u=a-e;if(u<=0)return.5;const f=Math.sqrt(u),m=Math.acos(f/c)-Math.asin(o/(c/Math.sin(i)));return Math.min(1,(m+.5*s)/s)}function W(t,r,n){return F(t,r,n)?n:(S(r,U(t),n),$(t,n,n))}function $(t,r,o){const i=c(P.get(),r,U(t)),a=s(P.get(),i,t[3]/e(i));return n(o,a,U(t))}function tt(t,r){const n=c(P.get(),r,U(t)),s=u(n),o=t[3]*t[3];return Math.sqrt(Math.abs(s-o))}function rt(r,n){const s=c(P.get(),n,U(r)),o=e(s),i=N(r),a=i+Math.abs(i-o);return t(i/a)}const nt=h();function st(t,r,n,s){const o=c(nt,r,U(t));switch(n){case x.X:{const t=q(o,nt)[2];return m(s,-Math.sin(t),Math.cos(t),0)}case x.Y:{const t=q(o,nt),r=t[1],n=t[2],e=Math.sin(r);return m(s,-e*Math.cos(n),-e*Math.sin(n),Math.cos(r))}case x.Z:return f(s,o);default:return}}function ot(t,r){const n=c(ct,r,U(t));return e(n)-t[3]}function et(t,r,o,e){const i=ot(t,r),a=st(t,r,x.Z,ct),c=s(ct,a,o-i);return n(e,r,c)}function it(t,r){const n=l(U(t),r),s=N(t);return n<=s*s}function at(t,r,n=d()){const s=o(U(t),U(r)),e=t[3],i=r[3];return s+i<e?(j(n,t),n):s+e<i?(j(n,r),n):(g(n,U(t),U(r),(s+i-e)/(2*s)),n[3]=(s+e+i)/2,n)}const ct=h(),ut=E(),ft=Object.freeze(Object.defineProperty({__proto__:null,NullSphere:C,altitudeAt:ot,angleToSilhouette:rt,axisAt:st,cameraFrustumCoverage:Q,clear:z,closestPoint:W,closestPointOnSilhouette:K,containsPoint:it,copy:w,create:E,distanceToSilhouette:tt,elevate:Z,equals:k,exactEquals:_,fromCenterAndRadius:O,fromRadius:L,fromValues:V,getCenter:U,getExtent:D,getRadius:N,intersectLine:I,intersectRay:F,intersectRayClosestSilhouette:J,intersectsRay:H,projectPoint:$,setAltitudeAt:et,setExtent:B,tmpSphere:ut,union:at,wrap:T},Symbol.toStringTag,{value:"Module"}));export{W as A,rt as B,st as C,ot as D,et as E,C as N,U as a,L as b,E as c,Q as d,w as e,V as f,N as g,tt as h,H as i,F as j,K as k,O as l,_ as m,I as n,it as o,$ as p,k as q,z as r,ft as s,ut as t,at as u,Z as v,T as w,B as x,D as y,J as z};