UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 2.19 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.19/LICENSE.txt */ import{projectBuffer as t}from"../../../../geometry/projection/projectBuffer.js";import{newDoubleArray as o,doubleSubArray as s}from"../../../../geometry/support/DoubleArray.js";import{ringsToTriangulationInfo as n}from"../../../../geometry/support/triangulationUtils.js";import{applyPerVertexElevationAlignment as i}from"../../layers/graphics/elevationAlignmentUtils.js";import{drapedZ as e}from"../../terrain/OverlayRenderer.js";function r(t,s,e,r){const p=n(t.rings,!!t.hasZ&&"on-the-ground"!==r.mode,1,t.spatialReference),u=o(p.position.length),h=i(p.position,t.spatialReference,0,u,0,p.position,0,p.position.length/3,s,e,r),a=null!=h;return new g(p.position,u,l(p.polygons,p.position,u),c(p.outlines,p.position,u),a,h)}function p(o,s){const i=n(o.rings,!1,1),r=t(i.position,o.spatialReference,0,i.position,s,0);for(let t=2;t<i.position.length;t+=3)i.position[t]=e;const p=l(i.polygons,i.position),u=c(i.outlines,i.position);return new f(i.position,p,u,r)}function c(t,o,n=null){return t.filter(({count:t})=>t>1).map(({index:t,count:i})=>{const e=3*t,r=3*i;return null!=n?new h(t,i,s(o,e,r),s(n,e,r)):new u(t,i,s(o,e,r))})}function l(t,o,n=null){const i=new Array;for(const{index:e,count:r,holeIndices:p,pathLengths:c}of t){if(r<=1)continue;const t=3*e,l=3*r,u=p.map(t=>t-e),h=null!=n?new a(e,r,s(o,3*e,3*r),s(n,t,l),u,c):new m(e,r,s(o,3*e,3*r),u,c);i.push(h)}return i}class u{constructor(t,o,s){this.index=t,this.count=o,this.position=s}}class h extends u{constructor(t,o,s,n){super(t,o,s),this.mapPositions=n}}class a extends h{constructor(t,o,s,n,i,e){super(t,o,s,n),this.holeIndices=i,this.pathLengths=e}}class m extends u{constructor(t,o,s,n,i){super(t,o,s),this.holeIndices=n,this.pathLengths=i}}class f{constructor(t,o,s,n){this.position=t,this.polygons=o,this.outlines=s,this.projectionSuccess=n}}class g{constructor(t,o,s,n,i,e){this.position=t,this.mapPositions=o,this.polygons=s,this.outlines=n,this.projectionSuccess=i,this.sampledElevation=e}}export{g as PolygonRenderInfo,f as PolygonRenderInfoDraped,a as PolygonVertexData,m as PolygonVertexDataDraped,r as polygonToRenderInfo,p as polygonToRenderInfoDraped};