UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 3.32 kB
import{isNone as s}from"../../../../core/maybe.js";import{max as o}from"../../../../core/quantityUtils.js";import{u as i,s as t,h as n,y as r,z as a,a as e,j as c,b as g}from"../../../../chunks/vec2.js";import{a as b,I as f,g as u,b as m,h as p,f as I,n as d,e as N,l as j,z as h}from"../../../../chunks/vec3.js";import{f as l,Z as x}from"../../../../chunks/vec3f64.js";import{a as E,u as T}from"../../../../chunks/boundedPlane.js";import{sv2d as V,sv3d as v}from"../../../../geometry/support/vectorStacks.js";import{MoveVertex as R}from"../operations/MoveVertex.js";import{RotateVertex as k}from"../operations/RotateVertex.js";import{ScaleVertex as y}from"../operations/ScaleVertex.js";import{UpdateVertices as C}from"../operations/UpdateVertices.js";import{autoHorizontalDistanceByElevationMode as F}from"../../../support/automaticLengthMeasurementUtils.js";function S(s,o){return _(s,o,!1)}function Y(s,o){return _(s,o,!0)}function _(s,o,i){if(s instanceof C){if(s.operation instanceof R)return z(s.operation,o,i),!0;if(s.operation instanceof k)return P(s.operation,o,i),!0;if(s.operation instanceof y)return U(s.operation,o,i),!0}return!1}function z(s,o,i=!1){const t=i?-1:1,n=l(t*s.dx,t*s.dy,t*s.dz);b(o.origin,o.origin,n)}function P(s,o,i=!1){const t=i?-s.angle:s.angle;f(o.basis1,o.basis1,x,t),f(o.basis2,o.basis2,x,t)}function U(s,o,t=!1){const n=t?1/s.factor1:s.factor1,r=t?1/s.factor2:s.factor2;u(o.basis1,o.basis1,n),u(o.basis2,o.basis2,r),i(o.origin,o.origin,s.origin,s.axis1,n),i(o.origin,o.origin,s.origin,s.axis2,r)}function A(s,o,i,b){b||(b=E());const f=t(V.get(),s[1],-s[0]),u=t(V.get(),Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),m=t(V.get(),Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),p=V.get();o.components.forEach((o=>o.vertices.forEach((o=>{const i=o.pos;t(p,n(s,i),n(f,i)),r(u,u,p),a(m,m,p)}))));const I=1e-6,d=t(V.get(),m[0]-u[0]<I?i/2:0,m[1]-u[1]<I?i/2:0);return e(u,u,d),c(m,m,d),g(b.basis1,s,(m[0]-u[0])/2),g(b.basis2,f,(m[1]-u[1])/2),t(b.origin,u[0]*s[0]+u[1]*f[0],u[0]*s[1]+u[1]*f[1]),c(b.origin,b.origin,b.basis1),c(b.origin,b.origin,b.basis2),b}function G(s,o,i,t=0,n){n||(n=E()),o.toRenderCoords(s.origin,i,n.origin);const r=v.get();b(r,s.origin,s.basis1),b(r,r,s.basis2),o.toRenderCoords(r,i,r);const a=v.get();b(a,s.origin,s.basis1),m(a,a,s.basis2),o.toRenderCoords(a,i,a);const e=v.get();m(e,s.origin,s.basis1),m(e,e,s.basis2),o.toRenderCoords(e,i,e);const c=v.get();m(c,s.origin,s.basis1),b(c,c,s.basis2),o.toRenderCoords(c,i,c);const g=p(v.get(),r,a,.5);m(g,g,n.origin);const f=p(v.get(),e,c,.5);m(f,n.origin,f),p(n.basis1,g,f,.5);const h=p(v.get(),c,r,.5);m(h,h,n.origin);const l=p(v.get(),a,e,.5);m(l,n.origin,l),p(n.basis2,h,l,.5);const x=I(v.get(),n.basis1,n.basis2),V=I(x,x,n.basis1);return d(V,V),u(n.basis2,V,N(n.basis2,V)),u(n.basis1,n.basis1,1+t/j(n.basis1)),u(n.basis2,n.basis2,1+t/j(n.basis2)),T(n),n}function M(i,t,n,r){const a=v.get();m(a,m(a,i.origin,i.basis1),i.basis2);const e=v.get();h(e,a,i.basis1,2);const c=v.get();h(c,e,i.basis2,2);const g=v.get();h(g,a,i.basis2,2),a[2]=e[2]=c[2]=g[2]=t;const b=r?"on-the-ground":"absolute-height",f=o(F(a,e,n,b),F(g,c,n,b)),u=o(F(e,c,n,b),F(a,g,n,b));return s(u)||s(f)?null:[f,u]}export{S as apply,A as calculateOrientedBounds,M as mapPlaneAutoHorizontalSizeByElevationMode,G as mapPlaneToRenderPlane,Y as unapply};