@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.72 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import"../../../../core/has.js";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};