UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.47 kB
import{isNone as t}from"../../../../core/maybe.js";import{t as e,a as o}from"../../../../chunks/vec3.js";import{c as r}from"../../../../chunks/vec3f64.js";import{projectBuffer as n}from"../../../../geometry/projection.js";import{create as a,set as m,NEGATIVE_INFINITY as s,expandWithBuffer as i,ZERO as f}from"../../../../geometry/support/aaBoundingBox.js";import{newDoubleArray as c}from"../../webgl-engine/lib/DoubleArray.js";function u(t,r,n,a){const m=r.getComponentAabb(n,t,p),s=r.getObjectTransform(n);for(let i=0;i<8;++i)g[0]=1&i?m[0]:m[3],g[1]=2&i?m[1]:m[4],g[2]=4&i?m[2]:m[5],e(g,g,s.rotationScale),o(g,g,s.position),a[3*i]=g[0],a[3*i+1]=g[1],a[3*i+2]=g[2];return a}function l(e,o,r){const a=c(24);return c=>{let l=c.meta.featureExtents;if(t(l)){l=new Float64Array(6*c.meta.featureIds.length),c.meta.featureExtents=l;for(let t=0;t<l.length;t+=6)l[t]=Number.POSITIVE_INFINITY}const b=new Float64Array(l.buffer,6*c.index*Float64Array.BYTES_PER_ELEMENT,6);return b[0]===Number.POSITIVE_INFINITY&&(u(c.index,r,c.meta.objectHandle,a),n(a,o,0,a,e,0,8)?(m(b,s),i(b,a,0,8)):m(b,f)),b}}function b(t,r,n,a){const m=r.getComponentAabb(n,t,p),s=r.getObjectTransform(n);a[0]=0,a[1]=0,a[2]=0;for(let i=0;i<8;++i)g[0]=1&i?m[0]:m[3],g[1]=2&i?m[1]:m[4],g[2]=m[5],e(g,g,s.rotationScale),o(g,g,s.position),a[0]+=g[0],a[1]+=g[1],a[2]+=g[2];return a[0]/=8,a[1]/=8,a[2]/=8,a}const p=a(),g=r();export{u as boundingBoxCornerPoints,b as boundingBoxTop,l as createGetFeatureExtent};