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