@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.19 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
*/
import{projectAndScale as o,set as i,dot as r,min as t,max as s,subtract as n,add as e,scale as a}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{g as c,L as f,h as m,i as g}from"../../../../chunks/vec32.js";import{fromValues as p,ZEROS as u}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{u as b,d as I}from"../../../../chunks/boundedPlane.js";import{sv2d as N}from"../../../../geometry/support/vectorStacks.js";import{MoveVertex as l}from"../operations/MoveVertex.js";import{RotateVertex as d}from"../operations/RotateVertex.js";import{ScaleVertex as j}from"../operations/ScaleVertex.js";import{UpdateVertices as x}from"../operations/UpdateVertices.js";function V(o,i){return E(o,i,!1)}function T(o,i){return E(o,i,!0)}function E(o,i,r){if(o instanceof x){if(o.operation instanceof l)return h(o.operation,i,r),!0;if(o.operation instanceof d)return v(o.operation,i,r),!0;if(o.operation instanceof j)return F(o.operation,i,r),!0}return!1}function h(o,i,r=!1){const t=r?-1:1,s=p(t*o.dx,t*o.dy,t*o.dz);c(i.origin,i.origin,s),b(i)}function v(o,i,r=!1){const t=r?-o.angle:o.angle;f(i.basis1,i.basis1,u,t),f(i.basis2,i.basis2,u,t),b(i)}function F(i,r,t=!1){const s=t?1/i.factor1:i.factor1,n=t?1/i.factor2:i.factor2;m(r.basis1,r.basis1,s),m(r.basis2,r.basis2,n),o(r.origin,r.origin,i.origin,i.axis1,s),o(r.origin,r.origin,i.origin,i.axis2,n),b(r)}function S(o,f,m,p,u=!1){p||(p=I());const l=i(N.get(),o[1],-o[0]),d=i(N.get(),Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),j=i(N.get(),Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),x=N.get(),V=f.allVertices;V.forEach((({pos:n})=>{i(x,r(o,n),r(l,n)),t(d,d,x),s(j,j,x)}));const T=1e-6,E=i(N.get(),j[0]-d[0]<T?m/2:0,j[1]-d[1]<T?m/2:0);n(d,d,E),e(j,j,E);const h=u?V.reduce(((o,i)=>o+(i.pos[2]??0)),0)/V.length:0;return a(p.basis1,o,(j[0]-d[0])/2),a(p.basis2,l,(j[1]-d[1])/2),g(p.origin,d[0]*o[0]+d[1]*l[0],d[0]*o[1]+d[1]*l[1],h),c(p.origin,p.origin,p.basis1),c(p.origin,p.origin,p.basis2),b(p),p}export{V as apply,T as applyInverse,S as calculateOrientedBounds};