@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.37 kB
JavaScript
import{s as t,a as n,g as e,j as r}from"../../../../chunks/vec3.js";import{c as o}from"../../../../chunks/vec3f64.js";import{areaPoints3d as s}from"../../../../geometry/support/triangle.js";function c(r,o,c){if(!r||!o)return!1;const{size:a,data:f}=r;t(c,0,0,0),t(g,0,0,0);let m=0,h=0;for(let p=0;p<o.length-2;p+=3){const r=o[p+0]*a,j=o[p+1]*a,d=o[p+2]*a;t(i,f[r+0],f[r+1],f[r+2]),t(u,f[j+0],f[j+1],f[j+2]),t(l,f[d+0],f[d+1],f[d+2]);const z=s(i,u,l);z?(n(i,i,u),n(i,i,l),e(i,i,1/3*z),n(c,c,i),m+=z):(n(g,g,i),n(g,g,u),n(g,g,l),h+=3)}return(0!==h||0!==m)&&(0!==m?(e(c,c,1/m),!0):0!==h&&(e(c,g,1/h),!0))}function a(n,r,o){if(!n||!r)return!1;const{size:s,data:c}=n;t(o,0,0,0);let a=-1,f=0;for(let t=0;t<r.length;t++){const n=r[t]*s;a!==n&&(o[0]+=c[n+0],o[1]+=c[n+1],o[2]+=c[n+2],f++),a=n}return f>1&&e(o,o,1/f),f>0}function f(o,s,c,a){if(!o)return!1;t(a,0,0,0),t(g,0,0,0);let f=0,l=0;const{size:m,data:h}=o,p=s?s.length-1:h.length/m-1,j=p+(c?2:0);for(let t=0;t<j;t+=2){const o=t<p?t:p,c=t<p?t+1:0,j=(s?s[o]:o)*m,d=(s?s[c]:c)*m;i[0]=h[j],i[1]=h[j+1],i[2]=h[j+2],u[0]=h[d],u[1]=h[d+1],u[2]=h[d+2],e(i,n(i,i,u),.5);const z=r(i,u);z>0?(n(a,a,e(i,i,z)),f+=z):0===f&&(n(g,g,i),l++)}return 0!==f?(e(a,a,1/f),!0):0!==l&&(e(a,g,1/l),!0)}const i=o(),u=o(),l=o(),g=o();export{f as computeAttachmentOriginLines,a as computeAttachmentOriginPoints,c as computeAttachmentOriginTriangles};