UNPKG

@arcgis/core

Version:

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

3 lines (2 loc) 2.16 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{ObjectStack as r}from"../../core/ObjectStack.js";import{multiply as t,invert as e}from"../../core/libs/gl-matrix-2/math/mat4.js";import{set as o}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{transformMat4 as c}from"../../core/libs/gl-matrix-2/math/vec4.js";import{fromValues as i}from"../../core/libs/gl-matrix-2/factories/vec4f64.js";import{fromRay as f,fromLineSegmentAndDirection as m,create as s}from"./clipRay.js";import{create as a,fromPoints as u,signedDistance as l,clip as p,copy as g,clipInfinite as j}from"./plane.js";import{sm4d as b,sv4d as x}from"./vectorStacks.js";function v(r){return r?[a(r[0]),a(r[1]),a(r[2]),a(r[3]),a(r[4]),a(r[5])]:[a(),a(),a(),a(),a(),a()]}function h(){return[n(),n(),n(),n(),n(),n(),n(),n()]}function k(r,t){for(let e=0;e<B;e++)g(r[e],t[e]);return r}function y(r,n,i,f=F){const m=t(b.get(),n,r);e(m,m);for(let t=0;t<C;++t){const r=c(x.get(),D[t],m);o(f[t],r[0]/r[3],r[1]/r[3],r[2]/r[3])}S(i,f)}function S(r,t){u(t[4],t[0],t[3],r[0]),u(t[1],t[5],t[6],r[1]),u(t[4],t[5],t[1],r[2]),u(t[3],t[2],t[6],r[3]),u(t[0],t[1],t[2],r[4]),u(t[5],t[4],t[7],r[5])}function d(r,t){for(let e=0;e<B;e++){const o=r[e];if(o[0]*t.center[0]+o[1]*t.center[1]+o[2]*t.center[2]+o[3]>=t.radius)return!1}return!0}function w(r,t){return z(r,f(t,E.get()))}function O(r,t){for(let e=0;e<B;e++){const o=r[e];if(!j(o,t))return!1}return!0}function R(r,t,e){return z(r,m(t,e,E.get()))}function q(r,t){for(let e=0;e<B;e++){if(l(r[e],t)>0)return!1}return!0}function z(r,t){for(let e=0;e<B;e++)if(!p(r[e],t))return!1;return!0}const A={bottom:[5,1,0,4],near:[0,1,2,3],far:[5,4,7,6],right:[1,5,6,2],left:[4,0,3,7],top:[7,3,2,6]},B=6,C=8,D=[i(-1,-1,-1,1),i(1,-1,-1,1),i(1,1,-1,1),i(-1,1,-1,1),i(-1,-1,1,1),i(1,-1,1,1),i(1,1,1,1),i(-1,1,1,1)],E=new r(s),F=h();export{S as computePlanes,k as copy,v as create,h as createPoints,y as fromMatrix,O as intersectClipRay,R as intersectsLineSegment,q as intersectsPoint,w as intersectsRay,d as intersectsSphere,B as numPlanes,C as numPoints,A as planePointIndices};