@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.44 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
*/
import{estimateNumberArrayMemory as t}from"../../../../core/memoryEstimations.js";import{l as i,n as s,c as o}from"../../../../chunks/vec32.js";import{fromValues as e}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{newFloatArray as h}from"../../../../geometry/support/FloatArray.js";class n{constructor(t,i,s,o){this.vertices=t,this.positionsES=i,this.offset=o;const n=t.length,r=Math.floor(n/2),g=this.offset+3*r,v=s[g],f=s[g+1],c=s[g+2];this.origin=e(v,f,c),this.positions=h(3*n);const a=this.offset+3*n;for(let e=this.offset;e<a;e+=3)this.positions[e]=s[e]-v,this.positions[e+1]=s[e+1]-f,this.positions[e+2]=s[e+2]-c;this.updatePathVertexInformation()}get usedMemory(){return t(this.positions)}updatePathVertexInformation(){const t=this.vertices.length,e=this.vertices[0];let h=this.offset;const n=this.positions;e.vRight[0]=n[h+3]-n[h],e.vRight[1]=n[h+4]-n[h+1],e.vRight[2]=n[h+5]-n[h+2],h+=3;let r=i(e.vRight);e.vMinSiblingLength=r,s(e.vRight,e.vRight);let g=e;for(let v=1;v<t;++v){const e=this.vertices[v];if(e.vLeft=g.vRight,v<t-1){e.vRight[0]=n[h+3]-n[h],e.vRight[1]=n[h+4]-n[h+1],e.vRight[2]=n[h+5]-n[h+2];const t=i(e.vRight);e.vMinSiblingLength=Math.min(r,t),r=t,s(e.vRight,e.vRight)}else o(e.vRight,e.vLeft),e.vMinSiblingLength=r;g=e,h+=3}}}export{n as Path};