@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 990 B
JavaScript
import{isNone as t,isSome as e}from"../../../../../core/maybe.js";import{Transparency as r}from"./interfaces.js";function o(r){let o=null;for(const e of r){const r=e.type;if(i(e))if(t(o))o=r;else if(o!==r)return"uber"}return e(o)?o:"uber"}function n(t){let e=r.INVISIBLE;for(const{material:o}of t)if(f(o)){if(o.color[3]*o.opacity<1)return r.TRANSPARENT;e=r.OPAQUE}return e}function c(t){let e=r.INVISIBLE;for(const{material:o}of t)if(f(o)){switch(o.objectTransparency){case r.TRANSPARENT:case r.INVISIBLE:return r.TRANSPARENT;case r.OPAQUE:if(o.opacity<1)return r.TRANSPARENT}e=r.OPAQUE}return e}function f(t){return t.size*t.color[3]*t.opacity>0}function i(t){return t.size*t.color[3]>0}function s(t,e,r,o){for(let n=0;n<t.length;n++){const c=t[n].index,f=e[n],i=e[n+1];if(o)for(let t=f;t<i;t++){const e=o[t];r.set(e,c)}else for(let t=f;t<i;t++)r.set(t,c)}}export{n as determineEdgeTransparency,c as determineObjectTransparency,o as determineRendererType,s as fillComponenBufferIndices};