12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.24/esri/copyright.txt for details.
- */
- import"../core/has.js";import t from"../core/Logger.js";import{acosClamped as r,cartesianToSpherical as n}from"../core/mathUtils.js";import{isNone as o}from"../core/maybe.js";import{d as e}from"./mat4.js";import{c as s,a as i,g as a,i as c,l as u,f,m,b as p,p as g,n as l,s as h,d}from"./vec3.js";import{c as j}from"./vec3f64.js";import{c as y}from"./vec4.js";import{c as M,f as v}from"./vec4f64.js";import{Axis as b}from"../geometry/support/Axis.js";import{closestPoint as S}from"../geometry/support/ray.js";import{angle as x}from"../geometry/support/vector.js";import{sv3d as A,sm4d as P}from"../geometry/support/vectorStacks.js";const R=t.getLogger("esri.geometry.support.sphere");function _(){return M()}function q(t,r=_()){return y(r,t)}function w(t,r){return v(t[0],t[1],t[2],r)}function C(t){return t}function O(t){t[0]=t[1]=t[2]=t[3]=0}function T(t,r){return t[0]=t[1]=t[2]=0,t[3]=r,t}function k(t){return t[3]}function E(t){return t}function L(t,r,n,o){return v(t,r,n,o)}function Z(t,r,n){return t!==n&&s(n,t),n[3]=t[3]+r,n}function z(t,r,n){return R.error("sphere.setExtent is not yet supported"),t===n?n:q(t,n)}function U(t,r,n){if(o(r))return!1;const{origin:e,direction:s}=r,i=V;i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2];const a=s[0]*s[0]+s[1]*s[1]+s[2]*s[2],c=2*(s[0]*i[0]+s[1]*i[1]+s[2]*i[2]),u=c*c-4*a*(i[0]*i[0]+i[1]*i[1]+i[2]*i[2]-t[3]*t[3]);if(u<0)return!1;const f=Math.sqrt(u);let m=(-c-f)/(2*a);const p=(-c+f)/(2*a);return(m<0||p<m&&p>0)&&(m=p),!(m<0)&&(n&&(n[0]=e[0]+s[0]*m,n[1]=e[1]+s[1]*m,n[2]=e[2]+s[2]*m),!0)}const V=j();function X(t,r){return U(t,r,null)}function Y(t,r,n){if(U(t,r,n))return n;const o=B(t,r,A.get());return i(n,r.origin,a(A.get(),r.direction,c(r.origin,o)/u(r.direction))),n}function B(t,r,n){const o=A.get(),s=P.get();f(o,r.origin,r.direction);const i=k(t);f(n,o,r.origin),a(n,n,1/u(n)*i);const c=H(t,r.origin),p=x(r.origin,n);return e(s,p+c,o),m(n,n,s),n}function D(t,r,n){return U(t,r,n)?n:(S(r,E(t),n),F(t,n,n))}function F(t,r,n){const o=p(A.get(),r,E(t)),e=a(A.get(),o,t[3]/u(o));return i(n,e,E(t))}function G(t,r){const n=p(A.get(),r,E(t)),o=g(n),e=t[3]*t[3];return Math.sqrt(Math.abs(o-e))}function H(t,n){const o=p(A.get(),n,E(t)),e=u(o),s=k(t),i=s+Math.abs(s-e);return r(s/i)}const I=j();function J(t,r,o,e){const s=p(I,r,E(t));switch(o){case b.X:{const t=n(s,I)[2];return h(e,-Math.sin(t),Math.cos(t),0)}case b.Y:{const t=n(s,I),r=t[1],o=t[2],i=Math.sin(r);return h(e,-i*Math.cos(o),-i*Math.sin(o),Math.cos(r))}case b.Z:return l(e,s);default:return}}function K(t,r){const n=p(W,r,E(t));return u(n)-t[3]}function N(t,r,n,o){const e=K(t,r),s=J(t,r,b.Z,W),c=a(W,s,n-e);return i(o,r,c)}function Q(t,r){const n=d(E(t),r),o=k(t);return n<=o*o}const W=j(),$=_(),tt=Object.freeze(Object.defineProperty({__proto__:null,create:_,copy:q,fromCenterAndRadius:w,wrap:C,clear:O,fromRadius:T,getRadius:k,getCenter:E,fromValues:L,elevate:Z,setExtent:z,intersectRay:U,intersectsRay:X,intersectRayClosestSilhouette:Y,closestPointOnSilhouette:B,closestPoint:D,projectPoint:F,distanceToSilhouette:G,angleToSilhouette:H,axisAt:J,altitudeAt:K,setAltitudeAt:N,containsPoint:Q,tmpSphere:$},Symbol.toStringTag,{value:"Module"}));export{O as a,q as b,_ as c,k as d,G as e,L as f,E as g,U as h,X as i,B as j,T as k,w as l,Q as m,Z as n,z as o,Y as p,D as q,F as r,tt as s,$ as t,H as u,J as v,C as w,K as x,N as y};
|