@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.47 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import{set as t,add as e,scale as r,dist as n}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as o}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{areaPoints3d as i}from"../../../../geometry/support/triangle.js";function s(n,o){if(!n)return!1;const{size:s,data:c,indices:f}=n;t(o,0,0,0),t(u,0,0,0);let g=0,d=0;for(let p=0;p<f.length-2;p+=3){const n=f[p]*s,h=f[p+1]*s,j=f[p+2]*s;t(l,c[n],c[n+1],c[n+2]),t(a,c[h],c[h+1],c[h+2]),t(m,c[j],c[j+1],c[j+2]);const x=i(l,a,m);x?(e(l,l,a),e(l,l,m),r(l,l,1/3*x),e(o,o,l),g+=x):(e(u,u,l),e(u,u,a),e(u,u,m),d+=3)}return(0!==d||0!==g)&&(0!==g?(r(o,o,1/g),!0):0!==d&&(r(o,u,1/d),!0))}function c(e,n){if(!e)return!1;const{size:o,data:i,indices:s}=e;t(n,0,0,0);let c=-1,f=0;for(let t=0;t<s.length;t++){const e=s[t]*o;c!==e&&(n[0]+=i[e],n[1]+=i[e+1],n[2]+=i[e+2],f++),c=e}return f>1&&r(n,n,1/f),f>0}function f(o,i,s){if(!o)return!1;t(s,0,0,0),t(u,0,0,0);let c=0,f=0;const{size:m,data:g,indices:d}=o,p=d.length-1,h=p+(i?2:0);for(let t=0;t<h;t+=2){const o=t<p?t+1:0,i=d[t<p?t:p]*m,h=d[o]*m;l[0]=g[i],l[1]=g[i+1],l[2]=g[i+2],a[0]=g[h],a[1]=g[h+1],a[2]=g[h+2],r(l,e(l,l,a),.5);const j=n(l,a);j>0?(e(s,s,r(l,l,j)),c+=j):0===c&&(e(u,u,l),f++)}return 0!==c?(r(s,s,1/c),!0):0!==f&&(r(s,u,1/f),!0)}const l=o(),a=o(),m=o(),u=o();export{f as computeAttachmentOriginLines,c as computeAttachmentOriginPoints,s as computeAttachmentOriginTriangles};