@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.18 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{Transparency as e}from"./interfaces.js";import{EdgeType as r}from"../../shaders/sources/edgeRenderer/EdgeUtil.glsl.js";function t(e){if(!Array.isArray(e))return f(e)?e.type:r.Mixed;let t;for(const o of e){const e=o.type;if(f(o))if(null==t)t=e;else if(t!==e)return r.Mixed}return t??r.Mixed}function o(r){let t=e.TRANSPARENT;for(const{material:o}of r)if(i(o)){if(o.color[3]*o.opacity<1)return e.TRANSPARENT;t=e.OPAQUE}return t}function n(r){let t=e.TRANSPARENT;for(const{material:o}of r)if(i(o)){switch(o.objectTransparency){case e.TRANSPARENT:return e.TRANSPARENT;case e.OPAQUE:if(o.opacity<1)return e.TRANSPARENT}t=e.OPAQUE}return t}function i(e){return e.size*e.color[3]*e.opacity>0}function f(e){return e.size*e.color[3]>0}function c(e,r,t,o){for(let n=0;n<e.length;n++){const i=e[n].index,f=r[n],c=r[n+1];if(o)for(let e=f;e<c;e++){const r=o[e];t.set(r,i)}else for(let e=f;e<c;e++)t.set(e,i)}}export{o as determineEdgeTransparency,n as determineObjectTransparency,t as determineRendererType,c as fillComponentBufferIndices};