UNPKG

@arcgis/core

Version:

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

3 lines (2 loc) 1.59 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{cgToGIS as e,createDiamondGeometry as n,createTetrahedronGeometry as s,createCylinderGeometry as a,createConeGeometry as c,createBoxGeometry as i,createPolySphereGeometry as t}from"../../webgl-engine/lib/GeometryUtil.js";import{LodResources as r,LodLevelResources as o,LodComponentResources as u,LodComponentEngineGeometry as d}from"../../webgl-engine/lib/lodRendering/LodResources.js";function S(e){switch(e){case"sphere":case"cube":case"diamond":case"cylinder":case"cone":case"inverted-cone":case"tetrahedron":return!0}return!1}function l(S,l){const p=(n,s,a=!1)=>new r(n.map(n=>{const c=s(n.tesselation);return a&&e(c),new o([new u(new d(c))],n.minScreenSpaceRadius)}));switch(S){case"sphere":return p([{tesselation:0,minScreenSpaceRadius:0},{tesselation:1,minScreenSpaceRadius:8},{tesselation:2,minScreenSpaceRadius:16},{tesselation:3,minScreenSpaceRadius:50},{tesselation:4,minScreenSpaceRadius:250}],e=>t(l,.5,e,!0));case"cube":return p([{tesselation:0,minScreenSpaceRadius:0}],()=>i(l,1));case"cone":return p(m,e=>c(l,1,.5,e,!1),!0);case"inverted-cone":return p(m,e=>c(l,1,.5,e,!0),!0);case"cylinder":return p(m,e=>a(l,1,.5,e,[0,0,1],[0,0,.5]));case"tetrahedron":return p([{tesselation:0,minScreenSpaceRadius:0}],()=>s(l,1),!0);case"diamond":return p([{tesselation:0,minScreenSpaceRadius:0}],()=>n(l,1),!0);default:return}}const m=[{tesselation:6,minScreenSpaceRadius:0},{tesselation:18,minScreenSpaceRadius:7},{tesselation:64,minScreenSpaceRadius:65}];export{S as isValidPrimitive,l as primitiveLodResources};