(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-3f7f7417"],{"0007":function(e,t,r){"use strict";var n=r("7a23"),i=r("313e");const a=["id"];var o={__name:"moreLineEcharts",props:{echartsId:{type:String,default:"morelineId"},data:{type:Object,default:{color:[],list:[],xData:[],labelColor:"#000",rotate:0,interval:0,isVertical:!1}}},setup(e){const t=e;function r(e){let t=e.color,r=e.list,n=r.map((e,r)=>({type:"line",name:e.label,data:e.val,itemStyle:{normal:{color:t[r]}},smooth:!0,showSymbol:!1,areaStyle:{normal:{color:new i["a"].LinearGradient(0,0,0,1,[{offset:0,color:"rgba(199, 237, 250,0.5)"},{offset:1,color:"rgba(199, 237, 250,0.2)"}],!1)}}}));o(n)}function o(e){var r=i["b"](document.getElementById(t.echartsId)),n={grid:{top:"20%",right:"6%",left:"2%",bottom:"3%",containLabel:!0},legend:{data:t.data.list.map(e=>e.label),textStyle:{color:t.data.labelColor||"#fff"},icon:"diamond",itemWidth:16,itemHeight:8,itemGap:5},tooltip:{trigger:"axis",axisPointer:{lineStyle:{color:"#ddd"}},backgroundColor:"rgba(255,255,255,1)",padding:[5,10],textStyle:{color:"#7588E4"},extraCssText:"box-shadow: 0 0 5px rgba(0,0,0,0.3)"},xAxis:{type:"category",data:t.data.xData,axisTick:{show:!1},axisLine:{show:!1},axisLabel:{show:!0,color:t.data.labelColor||"#fff",interval:t.data.interval||0,rotate:t.data.rotate||0,formatter:function(e){return t.data.isVertical?e.split("").join("\n"):e}}},yAxis:{type:"value",splitLine:{show:!0,lineStyle:{type:"dashed",color:"rgba(14,95,255,0.5)"}},axisTick:{show:!1},axisLine:{show:!1},axisLabel:{color:t.data.labelColor||"#fff"}},series:e};n&&r.setOption(n),window.addEventListener("resize",(function(){r.resize()}))}return Object(n["watch"])(()=>t.data,e=>{Object(n["nextTick"])(()=>{r(e)})},{immediate:!0,deep:!0}),(t,r)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("div",{style:{height:"100%",width:"100%"},id:e.echartsId},null,8,a))}};const s=o;t["a"]=s},"01d1":function(e,t,r){"use strict";r("ffe1")},"01ed":function(e,t,r){},"042f":function(e,t,r){e.exports=r.p+"static/img/icon_066.3f0f78a2.gif"},"07e7":function(e,t,r){e.exports={menuText:"#bfcbd9",menuActiveText:"#fff",subMenuActiveText:"#f4f4f5",menuBg:"#304156",menuHover:"#263445",subMenuBg:"#1f2d3d",subMenuHover:"#001528",sideBarWidth:"210px"}},"0824":function(e,t,r){},"0b15":function(e,t,r){},"0c96":function(e,t,r){"use strict";r("b20b")},"0d88":function(e,t,r){"use strict";r("757b")},"0e36":function(e,t,r){},"151f":function(e,t,r){"use strict";r("6bfe")},"16dc":function(e,t,r){"use strict";r("0e36")},"1cc3":function(e,t,r){"use strict";r("1e30")},"1def":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOqSURBVHgBzZdbSBRRGMf/Z2Ycdc1LWtKGkpGu3cE2jSR7kC4ElUEUXSDqoeipKEHoLSIKoofqIQiCegsMolgisiSFLhQVUnTRLtuNysi77a6zc+kcdXRbz1l3Fmn9w8Keb/b75nfOfJcdglprH2zpaMZZ0kptXrryYlSd0OBDOlQYWE/XmRPtI00GiFGQJEOAoE2aDBA4TZrI4CLJEKizMslkgGA+SqIBj2zGhrmFWJ6uIo8G7YaFplPX0Pj0PY3gEILdh0SUb1wQ7qmoOrYDtdkZKABHD9+g/owPjU4gmFlxehKHa7BFBMFUOQ9bXSpunKiMH4LWrqY4gVg8G3mz8lGJcVRWjL3UpzVeCHocPslJki33wIM4pOmocAKBk6RDiQdiYwU8xW4U0E9ZPCApMlx71pnV7PvXdqn57s7YEOw+LFm3iyDoo1izfy12T8uK7yRsmRbQHjIiDgTXL9yUG199HK6oKAi2WQkxqqO2BrVOIZhCjCRCdLVp12rj6LRsuHgQQ2wcCHZxW9Vwj0hAehQIUxqNta3aWsGDGAXhJOaCwvGrQ6Q0mXDtJQWmlwcRc+hlxegV40mViOhSkai3SMLZwdr2BMswSQCCspZEA4zuqQUJKmzy7R099MYcCFbWEgRD7+oDNCFB/dH5JA3PJR8PgloyJR4Eu1h/Hz9aPsEHh+oLWwgaY6vG/9l89OFjuFPUZWVUHvWCM2+KcvS8B6+Md2Ul8p1sF1LBEo3qdy/aHr2F7/YLHF86B0FCUBQ2YHb1w8/sb3+aTwqno4/93jAR6Okj/oZn5HLnFy1QPiMstdSlXXQ09EpzNU9xjv7h0Dz1OM2jZmryMrjekBXsHEhpYbu6V2c1UJ/bts8y94BnYX6g+cC6XF907h1cqp1IU6yXolaviIbe3FytijqycrtlB2RwMzOMX5d2q2d4AZfMCJRmqZZCfb5Hg6fKljygk0WieSOJhh51zBt0jNhVSY62Kj9Dr7AhFkwPzWenYAfMVLHCsMjeSPCakpCbnZ6/S11558uU8xAMPUU0ee8WhHYNmHL5iJ0mmSvFmhK5q3J3uDqokx+PO1JPsoChK93PgtroWKCnusF+HFfbsJCavvEgGLgCwdB7/hPuEcfhTPdf6F/5ujt1i+2TrRql+enWfDvguaeojwQf73FE5pHCg4Cg+0XvSpHRSqtGE/lEg4sghlzYn2eHf3RjBUzUR5oMEOI3vf8MwX/TSwLE2KGXJAj8M/SSCMHMfwEhRFBg0Rvr/QAAAABJRU5ErkJggg=="},"1e30":function(e,t,r){},"1e60":function(e,t,r){},"205a":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAANFJREFUKFNNkDFLQmEYhZ9zFamf4Ogon2M/KggcgobEwbXRUYeiJYQcHPsNTVG3RRoCQSdb1Egv955Qv9J3ejmc8xw4YuWqEkaYhTPafPFCTT8cnZg5IN60F6fa8FjkdKnp888n3h1UIv0PipyciQuuaWiw1cWzAwWphG12wEjNbO7JuRRPDiKShDHyoWdJwZl4cFBCGuM7U/wzJ9xS4Ur0HfC+Lho2JEwt2qwY0tRa3LgueDWUEXNK3HFCjwt9HFpbriJGbEmnnJMxpqPv451+AfVRUXRTi9RCAAAAAElFTkSuQmCC"},"243a":function(e,t,r){"use strict";var n=r("7a23"),i=r("042f"),a=r.n(i),o=r("ff09"),s=r.n(o),l=r("f814"),c=r.n(l),u=r("205a"),h=r.n(u),d=r("f9ca"),f=r.n(d),p=r("5d2d"),m=(r("c5cb"),r("986e"),r("b893")),g=r("6605"),v=r("5502");r("65ca"),r("fb68");const _=e=>(Object(n["pushScopeId"])("data-v-d12f5f3a"),e=e(),Object(n["popScopeId"])(),e),y={class:"headBox"},x={class:"headBoxBg"},b={class:"flex align-center pointer mr10"},A=["src"],T={class:""},w={class:"f15 text"},E={class:"tests"},S={class:"flex align-center mr10 ml10 pointer"},C=["src"],M={class:"f16 text"},O={class:"tests"},D={class:"flex align-center pointer relative"},L={key:0,class:"tqCount"},N={key:1,width:"34",height:"34",class:"mr10",src:a.a,alt:""},R={key:2,class:"mr10",src:s.a,alt:""},P={class:"f16 text"},I={class:"tests"},B={class:"tqBox pt10 pl10 pr10"},F=_(()=>Object(n["createElementVNode"])("li",{class:"tqItem flex align-center pointer mt10 bth"},[Object(n["createElementVNode"])("div",{class:"ml43 tc",style:{width:"100px"}},"温度"),Object(n["createElementVNode"])("div",{class:"tc",style:{width:"80px"}},"天气"),Object(n["createElementVNode"])("div",{class:"tc",style:{width:"100px"}},"风向"),Object(n["createElementVNode"])("div",{class:"tc",style:{width:"80px"}},"风速"),Object(n["createElementVNode"])("div",{class:"tc",style:{width:"100px"}},"日期")],-1)),U={key:0,class:"Count"},z=["src"],j={class:"tc",style:{width:"100px"}},V=_(()=>Object(n["createElementVNode"])("div",{class:"tc",style:{width:"80px"}},"晴",-1)),G={class:"tc",style:{width:"100px"}},k=_(()=>Object(n["createElementVNode"])("div",{class:"tc",style:{width:"80px"}},"微风",-1)),H={class:"tc",style:{width:"100px"}},W={class:"leftBtn-yjbtn flex"},X=["onClick"],Y={class:"btms"},Z={class:"top-center pointer"},q={key:0,class:"topBtn topBtn-right"},Q=["onClick"],K={class:"rightIcon"},J={class:"flex align-center"},$=_(()=>Object(n["createElementVNode"])("img",{class:"mr10",src:c.a,alt:""},null,-1)),ee={class:"f14"},te={style:{color:"#0BB7FF"}},re=_(()=>Object(n["createElementVNode"])("img",{style:{width:"10px"},src:h.a,alt:""},null,-1)),ne=[re],ie=["onClick"],ae={class:"ml10",style:{color:"#fff"}},oe={class:"ml10 mr10"};var se={__name:"head",props:{title:{type:String,default:"林芝哨岗系统"},type:{type:String,default:""}},setup(e){const t=e,i=r("77d8"),a=r("40c7"),o=r("6b35"),s=r("76b1"),l=r("1def"),c=r("3651"),u=r("410d"),h=r("d089"),d=Object(p["a"])("USERNAME"),_=Object(p["a"])("deptId")?Object(p["a"])("deptId")[0].deptName:"",re=Object(n["ref"])([{dqtq:"晴",fx:"北",dqwd:"30",btwd:"10",yjwd:"20",tqrq:"2022-10-10",list:[]},{dqtq:"晴",fx:"北",dqwd:"30",btwd:"10",yjwd:"20",tqrq:"2022-10-10",list:[]},{dqtq:"晴",fx:"北",dqwd:"30",btwd:"10",yjwd:"20",tqrq:"2022-10-10",list:[]}]),se=Object(n["ref"])(!1),le=Object(v["b"])(),ce=Object(g["d"])(),ue=(Object(g["c"])(),Object(n["reactive"])({rightBtn:["四色预警","重点人群"],leftBtn:["预警布控","研判首页"],moreBtn:["退出登录"]})),he=Object(n["ref"])(""),de=Object(n["ref"])(!1),fe=(Object(n["ref"])(""),Object(n["ref"])(0)),pe=Object(n["ref"])("00"),me=Object(n["ref"])("00"),ge=Object(n["ref"])("00"),ve=Object(m["f"])(),_e=Object(n["ref"])(Object(m["e"])(null,"ymd")),ye=Object(n["ref"])(null);Object(n["onMounted"])(()=>{ye.value=setInterval(()=>{Te()},1e3)});const xe=e=>{switch(he.value=e,e){case"预警布控":ce.push("/warningControl");break;case"四色预警":ce.push("/IdentityManage");break;case"研判首页":ce.push("/ResearchHome");break;case"后台":ce.push("/editPassword");break;case"重点人群":const e=ce.resolve({path:"/KeyPopulations",query:{}});window.open(e.href,"_blank");break;case"退出登录":window.opener=null,window.open("","_self"),window.close(),le.commit("app/clearTag",null,{immediate:!0}),le.commit("permission/deleteRouter",{immediate:!0}),le.commit("user/deleteKeepLiiveRoute","home");break}};function be(){se.value=!se.value}function Ae(e){switch(e){case"晴":return i;case"小雨":return a;case"中雨":return s;case"大雨":return l;case"雷阵雨":return c;case"多云":return h;case"阴":return u;case"冻雨":return c;case"雾":return c;case"冰雹":return c;case"大到暴雪":return c;case"中雪":return c;case"小雪":return c;case"大到暴雨":return c}}function Te(){const e=new Date;ge.value=e.getHours(),pe.value=e.getMinutes(),me.value=e.getSeconds(),fe.value=fe.value<10?"0"+fe.value:fe.value,ge.value=ge.value<10?"0"+ge.value:ge.value,pe.value=pe.value<10?"0"+pe.value:pe.value,me.value=me.value<10?"0"+me.value:me.value}return Object(n["onUnmounted"])(()=>{clearInterval(ye.value)}),(e,r)=>{const i=Object(n["resolveComponent"])("el-popover"),a=Object(n["resolveComponent"])("Notification"),s=Object(n["resolveComponent"])("el-icon");return Object(n["openBlock"])(),Object(n["createElementBlock"])("div",y,[Object(n["createElementVNode"])("div",x,[Object(n["createVNode"])(i,{width:"480px",visible:se.value,"append-to-body":!0,trigger:"click","popper-class":"bszdr-tq-Popover"},{reference:Object(n["withCtx"])(()=>[re.value&&re.value.length>0?(Object(n["openBlock"])(),Object(n["createElementBlock"])("ul",{key:0,class:"topBtn topBtn-left flex",ref:"btnRefs",onClick:be},[Object(n["createElementVNode"])("li",b,[Object(n["createElementVNode"])("img",{class:"mr10",src:Ae(re.value[0].dqtq),alt:""},null,8,A),Object(n["createElementVNode"])("div",T,[Object(n["createElementVNode"])("div",w,Object(n["toDisplayString"])(re.value[0].dqtq),1),Object(n["createElementVNode"])("div",E,Object(n["toDisplayString"])(re.value[0].fx),1)])]),Object(n["createElementVNode"])("li",S,[Object(n["createElementVNode"])("img",{class:"mr10",src:Object(n["unref"])(o),alt:""},null,8,C),Object(n["createElementVNode"])("div",null,[Object(n["createElementVNode"])("div",M,Object(n["toDisplayString"])(re.value[0].dqwd)+"°C",1),Object(n["createElementVNode"])("div",O,Object(n["toDisplayString"])(re.value[0].btwd)+"°~"+Object(n["toDisplayString"])(re.value[0].yjwd)+"° ",1)])]),Object(n["createElementVNode"])("li",D,[re.value[0].list.length>0?(Object(n["openBlock"])(),Object(n["createElementBlock"])("span",L,Object(n["toDisplayString"])(re.value[0].list.length),1)):Object(n["createCommentVNode"])("",!0),re.value[0].list.length>0?(Object(n["openBlock"])(),Object(n["createElementBlock"])("img",N)):(Object(n["openBlock"])(),Object(n["createElementBlock"])("img",R)),Object(n["createElementVNode"])("div",null,[Object(n["createElementVNode"])("div",P,Object(n["toDisplayString"])(ge.value+":"+pe.value+":"+me.value),1),Object(n["createElementVNode"])("div",I,Object(n["toDisplayString"])(Object(n["unref"])(ve))+" "+Object(n["toDisplayString"])(_e.value),1)])])],512)):Object(n["createCommentVNode"])("",!0)]),default:Object(n["withCtx"])(()=>[Object(n["createElementVNode"])("ul",B,[F,(Object(n["openBlock"])(!0),Object(n["createElementBlock"])(n["Fragment"],null,Object(n["renderList"])(re.value,(e,t)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("li",{class:"tqItem relative flex align-center pointer mb8",key:t},[e.list.length>0?(Object(n["openBlock"])(),Object(n["createElementBlock"])("span",U,Object(n["toDisplayString"])(e.list.length),1)):Object(n["createCommentVNode"])("",!0),Object(n["createElementVNode"])("img",{class:"mr10",src:Ae(e.dqtq),alt:""},null,8,z),Object(n["createElementVNode"])("div",j,Object(n["toDisplayString"])(e.btwd)+"° ~ "+Object(n["toDisplayString"])(e.yjwd)+"° ",1),V,Object(n["createElementVNode"])("div",G,Object(n["toDisplayString"])(e.fx),1),k,Object(n["createElementVNode"])("div",H,Object(n["toDisplayString"])(e.tqrq.slice(0,11)),1)]))),128))])]),_:1},8,["visible"]),Object(n["createElementVNode"])("ul",W,[(Object(n["openBlock"])(!0),Object(n["createElementBlock"])(n["Fragment"],null,Object(n["renderList"])(ue.leftBtn,e=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("li",{class:Object(n["normalizeClass"])(["leftBtn-item pointer",he.value==e?"yjbtnActive":""]),onClick:Object(n["withModifiers"])(t=>xe(e),["stop"]),key:e},[Object(n["createElementVNode"])("span",Y,Object(n["toDisplayString"])(e),1)],10,X))),128))]),Object(n["createElementVNode"])("div",Z,Object(n["toDisplayString"])(t.title),1),t.type?Object(n["createCommentVNode"])("",!0):(Object(n["openBlock"])(),Object(n["createElementBlock"])("ul",q,[(Object(n["openBlock"])(!0),Object(n["createElementBlock"])(n["Fragment"],null,Object(n["renderList"])(ue.rightBtn,e=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("li",{class:Object(n["normalizeClass"])(["topBtn-item",he.value==e?"active-topBtn":""]),onClick:Object(n["withModifiers"])(t=>xe(e),["stop"]),key:e},[Object(n["createElementVNode"])("span",null,Object(n["toDisplayString"])(e),1)],10,Q))),128))])),Object(n["createElementVNode"])("ul",K,[Object(n["createElementVNode"])("div",J,[$,Object(n["createElementVNode"])("div",ee,[Object(n["createElementVNode"])("div",te,Object(n["toDisplayString"])(Object(n["unref"])(d)),1),Object(n["createElementVNode"])("div",null,Object(n["toDisplayString"])(Object(n["unref"])(_)),1)]),Object(n["createVNode"])(i,{"popper-class":"zdy-meuns-popover",placement:"bottom",width:"400","append-to-body":!0,visible:de.value,"onUpdate:visible":r[1]||(r[1]=e=>de.value=e),trigger:"click"},{reference:Object(n["withCtx"])(()=>[Object(n["createElementVNode"])("span",{onClick:r[0]||(r[0]=e=>de.value=!de.value),class:"ml10 mr10"},ne)]),default:Object(n["withCtx"])(()=>[(Object(n["openBlock"])(!0),Object(n["createElementBlock"])(n["Fragment"],null,Object(n["renderList"])(ue.moreBtn,e=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("div",{class:"settingItem",onClick:Object(n["withModifiers"])(t=>xe(e),["stop"]),key:e},[Object(n["createVNode"])(s,{color:"#fff",style:{top:"2px"}},{default:Object(n["withCtx"])(()=>[Object(n["createVNode"])(a)]),_:1}),Object(n["createElementVNode"])("i",ae,Object(n["toDisplayString"])(e),1)],8,ie))),128))]),_:1},8,["visible"]),Object(n["createElementVNode"])("span",oe,[Object(n["createElementVNode"])("img",{onClick:r[2]||(r[2]=Object(n["withModifiers"])(e=>xe("后台"),["stop"])),src:f.a,alt:""})])])])])])}}},le=(r("d71f"),r("d7ef"),r("6b0d")),ce=r.n(le);const ue=ce()(se,[["__scopeId","data-v-d12f5f3a"]]);t["a"]=ue},"24e9":function(e,t,r){},2609:function(e,t){e.exports="data:image/png;base64,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"},2847:function(e,t,r){"use strict";var n=r("7a23"),i=r("313e");const a=["id"];var o={__name:"barHatEcharts",props:{echartsId:{type:String,default:"barHatId"},data:{type:Object,default:{xDate:["巴宜区","工布江达县","波密县","朗县","墨脱县","察隅县","米林县"],list:[{name:"总数",value:[10,20,30,40,50,60,70],color:["rgba(0,244,255,1)","rgba(0,77,167,1)"],hatColor:"#087df9"},{name:"已处置",value:[10,20,30,40,50,60,70],color:["rgba(24, 232, 229, 1)","rgba(3, 110, 83, 1)"],hatColor:"#00FFFF"}]}}},setup(e){const t=e;function r(){let e=t.data.xDate,r=t.data.list.map(e=>({name:e.name})),n=t.data.list.map((e,t)=>{let r={name:e.name,type:"bar",data:e.value,barWidth:"10px",itemStyle:{normal:{color:new i["a"].LinearGradient(0,0,0,1,[{offset:0,color:e.color?e.color[0]:"rgba(0,244,255,1)"},{offset:1,color:e.color?e.color[1]:"rgba(0,77,167,1)"}],!1)}},markPoint:{symbol:"path://M62 62h900v900h-900v-900z",symbolSize:[11,4],itemStyle:{color:e.hatColor||"#087df9"},data:e.value.map((e,t)=>({xAxis:t,yAxis:e+0}))}};return r});o(e,r,n)}function o(e,r,n){var a=i["b"](document.getElementById(t.echartsId)),o={legend:{type:"plain",show:!0,right:0,textStyle:{color:"#ddd"},data:r},tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},grid:{top:"25%",right:"8%",left:"10%",bottom:"22%"},xAxis:[{type:"category",data:e,axisLine:{lineStyle:{color:"rgba(255,255,255,0.12)"}},axisLabel:{margin:10,color:"#e2e9ff",textStyle:{fontSize:14}}}],yAxis:[{axisLabel:{formatter:"{value}",color:"#e2e9ff"},axisLine:{show:!1,lineStyle:{color:"rgba(255,255,255,1)"}},splitLine:{lineStyle:{color:"rgba(255,255,255,0.12)"}}}],series:n};o&&a.setOption(o),window.onresize=function(){a.resize()},document.getElementById(t.echartsId).setAttribute("_echarts_instance_","")}return Object(n["watch"])(()=>t.data,e=>{Object(n["nextTick"])(()=>{r()})},{immediate:!0,deep:!0}),Object(n["onMounted"])(()=>{o()}),(t,r)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("div",{style:{height:"100%",width:"100%"},id:e.echartsId},null,8,a))}},s=(r("0c96"),r("6b0d")),l=r.n(s);const c=l()(o,[["__scopeId","data-v-1aa153cf"]]);t["a"]=c},"2f18":function(e,t,r){e.exports={menuText:"#bfcbd9",menuActiveText:"#fff",subMenuActiveText:"#f4f4f5",menuBg:"#304156",menuHover:"#263445",subMenuBg:"#1f2d3d",subMenuHover:"#001528",sideBarWidth:"210px"}},3426:function(e,t,r){"use strict";r("1e60")},3651:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPASURBVHgBzZdbSBRRGMf/5+w4prZWapaykkZtWXY1LGWNiC5EF4MoutDtwaiXHlKE3rpAhfRQPQQ+RQ8FbReKrRfL0q5ECgZluERXKZQsM9t2x509naNObjYzu7NI6x8W9nzD99/ffHO+8+0QVLA90BREA06TVh4r5KtCDOorFHiQBBkq1vC1fbhz6EiAGASJMwQIvHQkQOAkqSd9izhDoIrZyUiAEDlSrIYHN2Dt9BwUJ8lI56ZdYKivvoa6xtfcwSKE+B0S1r5RQWSNQ+mRragYkwIHdPT4FdynPKizAiHCktVKHCjDRiMIoZJ8bEqWceNYSfQQvHcVyQrE7DykT8pECSJo3hSU85zWaCF4OTzUyiYrdsKJKKQEUWQFAsdJpxQNxLoiOKdkwcE/86IBSbAhefeq0FLx/WM7bbizzRxC/I7YrFuMIPijWLF3JXZlpEZXCU0hBrT71bCC4HrNLVvdyzcDHTUEQtwshUl3VJShwiqEkF+QhImv1u9Yrh7KGINkPYh+Nh0IcXFz6cAZEYPUISBCo7jX5qXMpQcxCKKzMWfmRO4OIyXaiG58qiNUqAdhOvRSTc6KSJIpMbqUa3S2UMPZIY7tYZYaIj4YtDU1GmD8npoRo3pD+vHuHrTpQYi2pjAYepcfoR4x6mdQn+TWM3pJD4JH7FQPQlx0P8Tn5nd8bVE/ehl+qf92Tct76nnWwisSy9C7WBt8krYazyc5JBdjWCJiX7rhff4Wj73tuLl3BdYSgrLeIOTvP9Em4j/UkLIoH06OskQNwdfdQ9ruv4DnbhPxxjz0FkwI2Du8gY7KC2mVfFmYOzaY3u1nv74GEpqF4b0qVvtg/XaZO2WWXj3vXpgVcBZk+hr2r0rzaHtPxPofR6LpvJHMht7kcco+n2Kz8ZXY7ZiWpjizU9SOc7vkU8KQQ9S4spu37Lx94qgwnD/RNy1VZhKH+ISBvZc/XilOouqbp5WjTOcNNR16DLkSZdlaeOpYZVlmSrBIM3z1zRkQcVd2Y44wtMtwqYyUI6wBMpLUufZEtibS0KNmk9fdaq++/WH02f7SwpucwEYHgmSWlvPg85y+diyfceW9MPSrtOm7n3r/ePWdmKgN9JImMwgBLsFk/L/rkjo1Q/F839b0LG7pStyo5eyZcbWYV+0wyXtxSOScaYQ7HELkVFexiBAiLBlBDDUUpb3sRQGPtGmGeakfGzjEUSt/CY2GnhQthJ6ho+Be53BAmL/pxWgYa47+m95/htB/04sDxL9DL04Q+GvoxRFChH8DnVdK2KAwq/EAAAAASUVORK5CYII="},"3db9":function(e,t,r){"use strict";function n(e){var t=new XMLHttpRequest;t.open("get",e.url),t.responseType=e.responseType||"text",e.onprogress&&(t.onprogress=function(t){if(t.lengthComputable){var r=t.loaded/t.total;e.onprogress(r,t.loaded,t.total)}else e.onprogress(null)}),t.onload=function(r){t.status>=400?e.onerror&&e.onerror():e.onload&&e.onload(t.response)},e.onerror&&(t.onerror=e.onerror),t.send(null)}t["a"]={get:n}},"40c7":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAN3SURBVHgBzZdbSFRBGMf/M3vULFxXKyswwge3OyxJRUUpWRZhLxmCvmgFSpgPEQjVW4UG2kVIpIeMRFG80EXCDALrIcunrQejTVp1DfGyXtZ21bO753TG8n7OHs9BWr+X3fnPfN/8mPPNfDME18QczJgP71FKvktagtRKwJwNg0cTwhEKP1KldsRK+9DVADEHEmQIENjoaoBACWkl040gQ6BAjCCrAYL50JWCEE7S2or4iyV6IJgPXamVGPVFbd0c0r9lvo+YRPrz7pWnqkEwmeqFiF0P/6NcOJ5cRWKsCel93k2GxT6CgT7Ii314Ww1CouA5PRDX03B2TxyOh1CsZe37l4C2Xy+sNc2OthmfroZtV4Ce7PzOshtqEODQRJAvhmmBuJWJ9B2xSIaMbXS1IvHb8dZ214G3P6fiLEzL7Kh5pwaBIuKkWiCyk7FTCYLZoDEJXRuykvYb2wsjDWNrlwvB5qFaEjPFAjNUrHtj1vTv6eg3qWXmvFAG0VKZElNtzih8vfdMhhwEm4eDht0RYsBNUQVkdJ1l9v/lLeVpeQXisxOR9DOPsBj7ZJxNDoKN5dQgck/h0LHd2B7CoV4NgtkUNaFyZyci+C6YR2otbMUL7MWNLwdTezv57aNyEMzI9DVAR2IqgggihqeE2fYkD2dxreHO0DgUIQIWPbYSWiGmQfwL121NKNbnnhWyAkGwPOKUciJxt3piyhlHWR1dCBMTJVr6kw8e3cSLDiicslQpMTkOh6HDwiiR1YfCdj0fOWJqkYNgecRBqejpNKKgPx3JrxN79jjkICQlgpOFkDqHXLBtMGr/PF5Rfm+9su+z2hz7nJqL3hc7PkKHTfiWggyMEKutB85ApyyFQtF73II29yQaocE8EsTEol3Dtm/9B1qndtTTQJX3wjZy3mpHkcuNXiZ5/fC4PKjwC4jzTvpK3W7Bw3TW3/4DVf0esUhKACvTpDGejm7axM4QmwNtavWGLOn8B6F2s8rZO9bg5omhusNYxwKeix/rNUeJvrufTONYxkVo8VHP6b1jhnNigjFUCJcCVrGA8dH+koHfBpM0slkrBJuH6oFgPryPOL0C6ZsJKAokKTpcSNEDwWRODwSTy79GFs0POD41xhuoMKwH4q9LgKKnJ6BeH7oaIJRfev8ZQv6lFwSIpS+9IEFgwUsviBBM/gNTlnAcQxhtnwAAAABJRU5ErkJggg=="},"40e0":function(e,t,r){"use strict";r("ccec")},"410d":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPFSURBVHgBzZdbTBNZGMf/5/TClqZQlOViYEmzWHfVXciyu4kad1mbdS9ln3ySbNCoUeM1hkii0cRoiA+K2ng3xgdC1Kg8qICoaeIl6ouaeomXWkHqhYC2VhIsTNsZ56BAaWemdGIs/6Rpz3/mm/n1nG++bw5BtbAYgwrjMhzkseiViaMyDMsPDmdhgB4RVIhj0+eOoWMBYhgkxRAgcNOxAIHt5BIZGKQYAjWCiYwFCBZDPxcE/yc9fmTigu1qIFgMVQNRlddQEBsTCGcV5um68qNjhHLStbxuf0UiCGZTNTNx0LqouvkH+6/RMZ2hXE1sDK+hO5cX7NqSCEKk4LRQsRzOd7Zj/4w7N6f5J7vDfr95KotZ5dl9Ijrm2amiFYB3/krP3vWJIKDFWYKVQpqanHhZnl9b9ajB5/TbfFIxRyfPrWFW5YNjzkQQ2Ep8JO7gKCCiwdcW1lmXTdj9X15aV4Ge9Kf3819dr++uci99fODGaGaCQbD7sMd3rhqI/Czk1k7ZYfvX3FRhDrqgCwcQrVb/3032+y11DOJ8/eycN9y4jWbtuyL7vZamWAh2H6Km6a2bg8qpFszSUaQPnjCx04EfvWtGwPBE+EN3VbgVmUHvckjLae+zuCfffOCIhWDnapOF2FyJhd8VwIYYPclfjYCxBL89nDXkhSKGWjFmT037tsbTryteeLhJASmIjyuVBMT/v2OmFMSgXmeUoyN73tCYEL5U/DLVPa92K0Ek3fR+sWIaEqjj62EQPeHSP/1dTgmC5ZE2md5h1CMbCRQwlg799vZ942YQj362fjvJ0DaTVAvPIVNltYkglvyF2SUWTM/OgBWjUD81o/57D0zcM7zp9PvYTFgNnlM8sOHtDLMv61pAssBpoSIxlRQSBPToigY+KMY0RzF/s7iRX2Tpc14oNbrGS0GIjin68Y2bCVsJ5iNJ9YR49IaFEV73W+KqbaD75SCYLdv02HJAhbSUxHk5WUJpdqZYcxSqLIVMYo42J2KVJgHCVGkLm5VKPZXtvCpFZHzLBOJS6jdUrvMSgktQIZasUnrojTxVanpUrvN6OnEBKhQMx4ME++E8dEY/8N4iBSE6ZRQynXddPXwd3biOJPRehAhGRoL0cfAdadU4lSCYrcH0TWWxEIMHL7pwZ0ohbudkwiwO80IRvH/yClf2teDw+AwEcjPFi4p+Ty9e3GpDa7sfbQadYNTrkSH6gZ4g2bvrpKbR24VeJQimj3UkibftRBdUG0PHAoT8Tu8LQ0jv9FIAEb/TSxEERuz0UgjB7A+wBGQzRhV/sQAAAABJRU5ErkJggg=="},4418:function(e,t,r){},"47fa":function(e,t){e.exports="data:image/png;base64,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"},"4efe":function(e,t,r){"use strict";r("0824")},5062:function(e,t,r){"use strict";r("eba8")},"5cfa":function(e,t,r){"use strict";r("ca7c")},"5d89":function(e,t,r){"use strict";r("24e9")},"5dab":function(e,t,r){e.exports={menuText:"#bfcbd9",menuActiveText:"#fff",subMenuActiveText:"#f4f4f5",menuBg:"#304156",menuHover:"#263445",subMenuBg:"#1f2d3d",subMenuHover:"#001528",sideBarWidth:"210px"}},"620a":function(e,t,r){"use strict";(function(e){var n,i=r("3db9"),a={supportWebGL:function(){if(null==n)try{var e=document.createElement("canvas"),t=e.getContext("webgl")||e.getContext("experimental-webgl");if(!t)throw new Error}catch(r){n=!1}return n}};a.Int8Array="undefined"===typeof Int8Array?Array:Int8Array,a.Uint8Array="undefined"===typeof Uint8Array?Array:Uint8Array,a.Uint16Array="undefined"===typeof Uint16Array?Array:Uint16Array,a.Uint32Array="undefined"===typeof Uint32Array?Array:Uint32Array,a.Int16Array="undefined"===typeof Int16Array?Array:Int16Array,a.Float32Array="undefined"===typeof Float32Array?Array:Float32Array,a.Float64Array="undefined"===typeof Float64Array?Array:Float64Array;var o={};"undefined"!==typeof window?o=window:"undefined"!==typeof e&&(o=e),a.requestAnimationFrame=o.requestAnimationFrame||o.msRequestAnimationFrame||o.mozRequestAnimationFrame||o.webkitRequestAnimationFrame||function(e){setTimeout(e,16)},a.createCanvas=function(){return document.createElement("canvas")},a.createImage=function(){return new o.Image},a.request={get:i["a"].get},a.addEventListener=function(e,t,r,n){e.addEventListener(t,r,n)},a.removeEventListener=function(e,t,r){e.removeEventListener(t,r)},t["a"]=a}).call(this,r("c8ba"))},"65ca":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFjSURBVHgBfVLLTQNBDLVHW0CgASKOcKAFOuDTARUE0QDpCI6IC1JSAKICqAAlh+yiPezj2bszazYiI814/Ma/Z49qi09RORHwVJ6UEBHlHbxrxpQgBtxFv9DJl8oWmDr4a8aysUMTXB2WSur8ur+0eArUgidPkiN6AAtYaeOAuoPfSmq/l9oxsNEhuBTarKTp7WTsw5bXWY5FuTE9v0vWA+2Emm+kZBuNPMi5HjHwDUxvKanjR+6MNrFbnOkxdrRjcmdRW8UrNtb2mn2O/Vjh7U+D1nifvH8L/Wwnb6xR2jHiCxZmkF6xYNZL6vfuQZyVXqT8brIhJWPQGKMnQGQcX+RahlSaNkxmFA7ZdCCl4eOwgxM0TDvLmNSmE73jRxqr4P/Qbj+Q9F8ClU0nZNdQsf9gRUisg3/XI9muklaW1OaRZ+Lugh7WjBVdl5KSPNPo458Pf2AtMafzIwNdkeqpLHXzC3TgwP/UekYxAAAAAElFTkSuQmCC"},"68a8":function(e,t,r){"use strict";r("4418")},"6b35":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAATlSURBVHgBzZd/TFtVFMe/7/FKoVAg/NpA0OIqBsQwIEFZMgcbIkyYzsTEacyIUxaS/aESNf5hNDHZFmOdJjqXOBIMGOOMRkHDmILglBp1bItmOCwTR9WBbUHa0t99nvu6umdtX4ldBidp+u6Pc+/nnXPuOfdx6BI7EBY/xvAad576aqhVgytigxcDSEUyAmiltvZq6/BrAeIKyCpDgMMUvxYg8DI3ykmNVYbA06KWWwsQTEe4mhDqXLRrK7AvKQVFbCDgxoiQihOXBGUItg+fCIR1V85+ywO5N4Z1MqvxfJIGpUE3zByPb+m5NShiPB4E6+YTsYRWZc/xiapappNehs2cgByfDcN/DmHHpXqugSzSS0AFaXqUKkEQhZdPyB0kF53XF0qmTaYVmIg4EtZx/YJ51pWUhhwlCAgY4JUgxHZuzntWWOjf2vYCorhw3zevP/PQ2DvHZGNIzoYlElxIw69KEDjAWQUlS3AUZOb7r3M0Fw21Egx2jAy8zSCGWu/L9AT9+7WCXVeVc3a20/iGUdqMxHkBNZk1qJWW+Quzl+FmlCAYuBDPHfXHxwyjzVu66gvGNnx8xz0nt5cMHhRFPB6erhGWjaRzkDarE6kd9KIgVYet5CIuuAwDmxPwIF0Jgu3Dx4sJk12/XPT+b098MdvQ0KIbPC6HYHJz5vkZpuN3UhzIhYcnbQOM7NEzL60VEyLUrQAhj4kWsgQ9b0SEaASXh+l4baiQ93Nsw0iJAREaWgGE7xFVHZm6HVHk3GKZTq4jZGCKS4JDDCLZYcKWlUCsuOiZnPpnEUM8AbVa3k4tpGPKJAi16A+5g8AUIdiJ4mNBsMA0bOrKZ0GmFZbKEUeEdBSzf78DWmYN+Zh6Pa2iAMFOlBAzJnSDP9Gz7vRizYsalTsl2ubz7jwzyyNZt6FNlY1tog/WpR9RkVUbAvEv4Q/6myGLdGb3i0m2MZyKBsFelkcMd/SaHj4x9HvzQJ/pQTNiyO4v+w7PFelT1floJYjphZN4zmuBNTzuWUSPR0QVuX9SlYEOpVQfs+jtGe8+1fZ5/ydsYM6VPxEJcdpWZRyeazBq9Ghi7cXv0e1zIpC7DV1kgVxWd9bdhaPucdQsfIdeNif1BrQlVPT0aaYDkSBzrrxj0oJ0pClxTTFLZFSijlVf2bR71SXoYGNBD8zS9SCRoqfq89kvOoqn5CAtxcNnpAWBrHBfOGDlwguhYigGsEwbav5X0ZOfqMfGj/bYfdp//P/zYkkx06ENLDx7U7YShzcjQZzTlF3JHWSpfBZHsVI9vxKIw7d3btpT+tbGJyde2UuRNsOmTCxUSzo+K21Eb5rXiCLbTu4D9yz2Bhw4w36OSRi8NJ7fJiW2rIBTuhZETfXszrorHsSjpd273YGUyYxqe/lHn26/tTDNciRbZcnVfzht4LUQ8urxFM3V+e14yTpKbx0WssS6NlRSVn6VHW0KaIN0qqJkWU7pS0+vNWnO7Sw/xKygCvIN3Lsua9h6XbccKh0w331hylX63vomaINBfE2npZCyqZWuirNBP1yqLJQxS8SDCDGHQWKk+s+a7ixszP+qRw4RzbS8BpvTb0Il5ZRG/vLlmeZPkmtMjh8w4luWgjVmqg+BrPDKjzilPBEdfi1AxP7Su8YQ0b/0VgHiv0VvlSDwr6K3ihCs+2+CSOTc/QKyEgAAAABJRU5ErkJggg=="},"6b5f":function(e,t,r){"use strict";r("01ed")},"6bc6":function(e,t,r){"use strict";r("5dab")},"6bfe":function(e,t,r){},"6ddd":function(e,t,r){},"6e34":function(e,t){e.exports="data:image/png;base64,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"},"757b":function(e,t,r){e.exports={menuText:"#bfcbd9",menuActiveText:"#fff",subMenuActiveText:"#f4f4f5",menuBg:"#304156",menuHover:"#263445",subMenuBg:"#1f2d3d",subMenuHover:"#001528",sideBarWidth:"210px"}},"76b1":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANJSURBVHgBzZddSBRRGIbfMzuOuf7lT5KhZKBr/hSYZCkZImUImUEoVhAGFV4FtSB0F10URKF151XdphDF5kWR5UYJoYKBbbhIFi3FRomuuu7f7HSOOWh6Zp3ZrPWFhT3f8L3nmTPnO98MgVW5AFUh2HGHjNFYOR2VY0mTCMCGBEiQcZSOk9c7R9gIEEsgMYYAgVPYCBC4RfrJwiDGEGhXkslGgGA5YrSGV06gYWcuKhMkZFDTKSjov/kQfUPj1MEgBJuHLCtfXRDZaai+dgrW1ETkgKOBD+jutKHPCAQLi0ZX4nIjmrQgmKqK0GyW8Ph6lX4IWrsB0QjE7h3I2J6FKqyhsnycpzljeiHoctgEI5us0gILdCgQQoURCNwgP0U9EMcqYMnPRg79lekBiTPBfLY+XMv+f3EL9uenI0OwedhmPakFQR9FXdsRtGam6FsJVWEFcPvkZQuCR129pr73HxcragUEu1kBEarD2girUQgmHyNZJjo6fuawfDUzFWYexG82DgS72FK9eEZEIXkFCNMm6tVSqxzgQSyBcDZmSe7a1aGleBPhxgtywuU8iIhNLyXCWbGWJIFoXcrTOlsEzd7Bju11lhwmXmiUtaDVwOg9jSBKBcP8uGcWLh4EK2sBGk2v5w36EaXmQnyS3kHhAQ+CRpIFHgS72P0a30Y+0bFBzQQVzMurq8bxWbANOuiKaJyyavfV7Dcd55CUk4EGRUENG//wwPluAgNON5601aGBEDQGQ5Cm5+Bi8RlZDuwvgoWi1MhheD2zxPVqFLYXw4Lzr5repaKFzWyno/K8zaEMj0+Zn/THjTDDl+3KM5rzVM3Zl+23lGZ57Rfr021GOi87W0QjTa8wPWDZlih/v9cqdfIM92z1FqZIikhzvuJfND01XLA5cChRUsZVw5ItvuIkkSS8dcePMsNkCR2yQlizcxiBYPMIRt4xzXFKkj9Edqk5e7ODtYXp/mLV0CcLw9M+uhcMQrB5RL0QzHCia/agYyq+Sc1JleTCeJNiUg3vDqE7GggWFvVCMMMeJ0ppxKUaiiawtzCz0Y3J6zeiXgie4e3mtPvrARH5Sy9Kw2hz+F96/xmC/6UXA4jVTS9GEPij6cUQgoV/ASuALsY5lhf+AAAAAElFTkSuQmCC"},"776b":function(e,t,r){"use strict";r("b347")},"77d8":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANxSURBVHgBzZd7SFNRHMd/93Z3r6PNVhLi21Iks6hcZCvIfITTXErEyDQzCck/IsiI/kiyB/RPFkJ/+UcvfIIROtKpSxMfRREWIakomtNESZ2uh7s6b/coS8vd3bsHzd8/2zmH3zmfe36PLweDPCYHLDYPLVCE9bBzcnYkh2WbBBo0IAYSzJDMjqWu9sHXAsQyiJshAINefC1AwF3sFbY4cDMEXGGk2FqAQD64sxu+Ve07M5tJZTgDgXxwZ29im2c3zNCe/s5AoGlcCASdIxFzhUNMmMa7DDsNXBAZoWUpfBAsBY3zQmSRYpinO2tiVQUrIaoPpbTO5YgVFQPq4e6ZcH1exP2wfyFq4lQFDw9k5bMw/rYggAANBhcYii8cmvhj1xN8tarsjse33n+Tf2lPVIRIRMZc9hNlK+CAXqC+UgRdHFurawuUDh1+dPDstfoRpUbVVHPPFgTcwSawVYsc8c3YWuY/Zto8/Tzm+CUSN/mCDTPOSSfULVWFPh6j4pKBU018EOgcVL5pICDJwmU95nfJe2/yQayEOap7cfrNVUUdHwQ6hwCB1dGeGBUpFAKZVGT0akmMjqImmTY+iKVpARAomSWin2lgp2HAXAyXflbzQSwtCYCYyxYp2P/BYL/Jkvy04XwQqKIILohPqTtyA9cP/TIDHlupT5tXB1WAIxa6oc8L7eXtMW6WUYZokmYegJUGh3PdRJhn70dWEZmRHwEKNvGk4KCR+CwdsH74NQthHDAGbweOLktwhYMqpestSfanWTlgSp/GZ7LI6QaXiF71kGqY/TGA3YYN+u3X80KAUNHrmwqtYxaYIrDTGIAnLhU9lEdJjdqXqEmBYMMG47W6ViEQgkTPksw+0rEjJ5qrCoXBYIPnO4ovB3nqo4VAoLLGhUBYVNRPMipOaqjNZMN0Ax1mhcCA1uK0unMmhtiNfFjVVvFBoN5C8EGkh5SmKv3qk5GKlvQvCRhlYFpZnx62muSoT6ASzQx+Wk6A5ANWMhWyGI5x0J/cUqlR+mtVdLokn8RdIHpIeblUtDkhRq3w7vjusYtOtZaYdDppIMvpfpeIni0pj9jUJcMxZh1XdfDdBAgWPZ74biSn9Z0Teyh7fKzpDeEMBNpQRDO3nYWw/dJzcENHfay/9P4zhPWXnhsgVouemyDgL9FzIwSa/g0vzH2s3l38NAAAAABJRU5ErkJggg=="},"7abe":function(e,t,r){"use strict";r.r(t);var n=r("7a23"),i=r("986e"),a=r("7902");const o={class:"my-header"},s={class:"imgIcon"},l={class:"contant-dragger-dialog mt5"};var c={__name:"dialogDragger",props:{title:{type:String,default:""},parentClass:String,top:{type:String,default:"110px"},modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","close"],setup(e,{emit:t}){const r=e;function i(e){t("update:modelValue",!1),t("close",!1)}return(e,t)=>{const a=Object(n["resolveComponent"])("Close"),c=Object(n["resolveComponent"])("el-icon"),u=Object(n["resolveComponent"])("el-dialog");return Object(n["openBlock"])(),Object(n["createElementBlock"])("div",{style:{"pointer-events":"none"},class:Object(n["normalizeClass"])(r.parentClass)},[Object(n["createVNode"])(u,{top:r.top,style:{"pointer-events":"auto !important"},modal:!1,draggable:"",modelValue:r.modelValue,"onUpdate:modelValue":t[0]||(t[0]=e=>r.modelValue=e),"destroy-on-close":!0,"show-close":!1,"close-on-click-modal":!1,"custom-class":"zdy-model-dialog"},{title:Object(n["withCtx"])(()=>[Object(n["createElementVNode"])("div",o,[Object(n["createElementVNode"])("span",s,Object(n["toDisplayString"])(r.title),1),Object(n["createVNode"])(c,{color:"#ffffff",size:"20px",onClick:i,style:{cursor:"pointer"}},{default:Object(n["withCtx"])(()=>[Object(n["createVNode"])(a)]),_:1})])]),default:Object(n["withCtx"])(()=>[Object(n["createElementVNode"])("div",l,[Object(n["renderSlot"])(e.$slots,"default")])]),_:3},8,["top","modelValue"])],2)}}},u=(r("dd0d"),r("1cc3"),r("6b0d")),h=r.n(u);const d=h()(c,[["__scopeId","data-v-5569190a"]]);var f=d,p=r("61f7");const m=e=>(Object(n["pushScopeId"])("data-v-56bea829"),e=e(),Object(n["popScopeId"])(),e),g={class:"warning-image"},v=["src"],_={class:"warning-info"},y={class:"flex just-between align-center"},x={class:"flex align-center mt4"},b=m(()=>Object(n["createElementVNode"])("span",{class:"gapline mr10 ml10"},null,-1)),A=m(()=>Object(n["createElementVNode"])("span",{class:"gapline mr10 ml10"},null,-1)),T={key:0,class:"tag"},w={class:"mt4"},E={class:"mt4 one_text_detail"},S={class:"mt4 two_text_detail"};var C={__name:"yjItem",props:{item:{type:Object,default:{}}},setup(e){const t=e=>{switch(e){case"10":return"red";case"20":return"orange";case"30":return"yellow";default:return"blue"}};return(r,i)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("div",{class:Object(n["normalizeClass"])(["warning-card flex align-center",t(e.item.yjJb)])},[Object(n["createElementVNode"])("div",g,[Object(n["createElementVNode"])("img",{src:e.item.yjTp,width:"80",height:"120",alt:""},null,8,v)]),Object(n["createElementVNode"])("div",_,[Object(n["createElementVNode"])("div",y,[Object(n["createElementVNode"])("div",x,[Object(n["createElementVNode"])("span",null,Object(n["toDisplayString"])(e.item.yjRyxm),1),b,Object(n["createElementVNode"])("span",null,Object(n["toDisplayString"])(Object(n["unref"])(p["a"])(e.item.yjRysfzh,2)),1),A,Object(n["createElementVNode"])("span",null,Object(n["toDisplayString"])(Object(n["unref"])(p["a"])(e.item.yjRysfzh,3)),1)]),e.item.yjbqmc?(Object(n["openBlock"])(),Object(n["createElementBlock"])("span",T,Object(n["toDisplayString"])(e.item.yjbqmc),1)):Object(n["createCommentVNode"])("",!0)]),Object(n["createElementVNode"])("div",w,"身份证:"+Object(n["toDisplayString"])(e.item.yjRysfzh),1),Object(n["createElementVNode"])("div",E,"预警地址:"+Object(n["toDisplayString"])(e.item.yjDz),1),Object(n["createElementVNode"])("div",S,"预警内容:"+Object(n["toDisplayString"])(e.item.yjNr),1)])],2))}};r("d0f4");const M=h()(C,[["__scopeId","data-v-56bea829"]]);var O=M,D={__name:"home_yj",props:{data:{type:Array,default:[]},show:{type:Boolean,default:!1}},setup(e){const t=e,r=Object(n["ref"])(null);function o(){i["a"].emit("deletePointArea","home_yj_map"),i["a"].emit("showHomeYJ",!1)}return(e,i)=>(Object(n["openBlock"])(),Object(n["createBlock"])(f,{title:"预警详情",top:"150px",modelValue:t.show,"onUpdate:modelValue":i[0]||(i[0]=e=>t.show=e),onClose:o},{default:Object(n["withCtx"])(()=>[Object(n["createElementVNode"])("ul",{class:"warningList",ref_key:"gjyjList",ref:r},[(Object(n["openBlock"])(!0),Object(n["createElementBlock"])(n["Fragment"],null,Object(n["renderList"])(t.data,e=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("li",{key:e.id},[Object(n["createVNode"])(O,{item:e},null,8,["item"])]))),128)),Object(n["createVNode"])(a["f"],{show:t.data.length<=0,imgSize:150},null,8,["show"])],512)]),_:1},8,["modelValue"]))}};r("5d89");const L=h()(D,[["__scopeId","data-v-64a9dc3c"]]);var N=L;const R={class:"noScollLine"};var P={__name:"leftDialog",setup(e){const{proxy:t}=Object(n["getCurrentInstance"])(),r=Object(n["ref"])({showYj:!1}),a=Object(n["reactive"])({Info_YJ:[]});return Object(n["onMounted"])(()=>{i["a"].on("showHomeYJ",e=>{r.value.showYj=!!e,e&&(a.Info_YJ=e)})}),Object(n["onUnmounted"])(()=>{i["a"].off("showHomeYJ")}),(e,t)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("div",R,[r.value.showYj?(Object(n["openBlock"])(),Object(n["createBlock"])(N,{key:0,show:r.value.showYj,data:a.Info_YJ},null,8,["show","data"])):Object(n["createCommentVNode"])("",!0)]))}};const I=P;var B=I,F=r("b932"),U=r("243a");const z=e=>(Object(n["pushScopeId"])("data-v-834681f4"),e=e(),Object(n["popScopeId"])(),e),j=z(()=>Object(n["createElementVNode"])("div",{class:"comom-title"},[Object(n["createElementVNode"])("span",{class:"title"},"线索研判盯办统计")],-1)),V={class:"comom-cnt xsBox flex flex-warp just-between align-center"};var G={__name:"dbCount",setup(e){const t=Object(n["ref"])([{label:"线索总数",value:"892"},{label:"下发总数",value:"892"},{label:"已处置总数",value:"892"},{label:"反馈总数",value:"892"},{label:"未反馈总数",value:"892"},{label:"未处置总数",value:"892"}]);return(e,r)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])(n["Fragment"],null,[j,Object(n["createElementVNode"])("ul",V,[(Object(n["openBlock"])(!0),Object(n["createElementBlock"])(n["Fragment"],null,Object(n["renderList"])(t.value,(e,t)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("li",{class:"xs-item",key:t},Object(n["toDisplayString"])(e.label)+":"+Object(n["toDisplayString"])(e.value)+"条 ",1))),128))])],64))}};r("4efe");const k=h()(G,[["__scopeId","data-v-834681f4"]]);var H=k,W=r("e767"),X=r("c5cb");const Y=e=>(Object(n["pushScopeId"])("data-v-264d8ed3"),e=e(),Object(n["popScopeId"])(),e),Z=Y(()=>Object(n["createElementVNode"])("div",{class:"comom-title"},[Object(n["createElementVNode"])("span",{class:"title"},"情报反馈统计")],-1)),q={class:"comom-cnt"};var Q={__name:"qbfkCount",setup(e){const t=Object(n["ref"])([]);Object(n["onMounted"])(()=>{r()});const r=()=>{Object(X["d"])({cjLx:0},"/mosty-gsxt/qbcj/getXscjTjByCzzt").then(e=>{let r=[["#FF6B9A","#FF4B7A"],["#FFAA33","#FF8A00"],["#FFE699","#FFD666"],["#66B5FF","#3AA1FF"]],n=e||[];t.value=n.map((e,t)=>({label:e.zdmc,value:e.count,color:r[t]}))})};return(e,r)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])(n["Fragment"],null,[Z,Object(n["createElementVNode"])("div",q,[Object(n["createVNode"])(W["a"],{echartsId:"qbfk",data:t.value},null,8,["data"])])],64))}};r("01d1");const K=h()(Q,[["__scopeId","data-v-264d8ed3"]]);var J=K,$=r("0007");const ee=e=>(Object(n["pushScopeId"])("data-v-588b35fc"),e=e(),Object(n["popScopeId"])(),e),te=ee(()=>Object(n["createElementVNode"])("div",{class:"comom-title"},[Object(n["createElementVNode"])("span",{class:"title"},"情报上报数量统计")],-1)),re={class:"comom-cnt qxsbBox"};var ne={__name:"qbsbCount",setup(e){const t=Object(n["reactive"])({xData:["巴宜区","工布江达县","米林县","墨脱县","波密县","察隅县","朗县"],color:["#0386FB","#00FFFF"],list:[{label:"总数",val:[0,0,0,0,0,0,0]},{label:"已处置",val:[0,0,0,0,0,0,0]}]});Object(n["onMounted"])(()=>{r()});const r=()=>{Object(X["d"])({},"/mosty-gsxt/qbcj/getXscjTjForQx").then(e=>{t.xDate=e?e.ycz.map(e=>e.org_name):[],t.list[0].val=e?e.zs.map(e=>e.count):[],t.list[1].val=e?e.ycz.map(e=>e.count):[]})};return(e,r)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])(n["Fragment"],null,[te,Object(n["createElementVNode"])("div",re,[Object(n["createVNode"])($["a"],{echartsId:"qbsbEcharts",data:t},null,8,["data"])])],64))}};r("16dc");const ie=h()(ne,[["__scopeId","data-v-588b35fc"]]);var ae=ie,oe=r("2847");const se=e=>(Object(n["pushScopeId"])("data-v-5110e1f3"),e=e(),Object(n["popScopeId"])(),e),le=se(()=>Object(n["createElementVNode"])("div",{class:"comom-title"},[Object(n["createElementVNode"])("span",{class:"title"},"情报来源类型")],-1)),ce={class:"comom-cnt"};var ue={__name:"qblyType",setup(e){const t=Object(n["reactive"])({xDate:["110警情","人力情报","系统采集","民警处置单"],list:[{name:"总数",value:[0,0,0,0],color:["rgba(0,244,255,1)","rgba(0,77,167,1)"],hatColor:"#087df9"},{name:"已处置",value:[0,0,0,0],color:["rgba(24, 232, 229, 1)","rgba(3, 110, 83, 1)"],hatColor:"#00FFFF"}]});Object(n["onMounted"])(()=>{r()});const r=()=>{Object(X["d"])({},"/mosty-gsxt/qbcj/getXscjTjForLylx").then(e=>{t.xDate=e?e.cz.map(e=>e.zdmc):[],t.list[0].value=e?e.zs.map(e=>e.count):[],t.list[1].value=e?e.cz.map(e=>e.count):[]})};return(e,r)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])(n["Fragment"],null,[le,Object(n["createElementVNode"])("div",ce,[Object(n["createVNode"])(oe["a"],{echartsId:"qbltBox",data:t},null,8,["data"])])],64))}};r("40e0");const he=h()(ue,[["__scopeId","data-v-5110e1f3"]]);var de=he,fe=r("ea5d");const pe=e=>(Object(n["pushScopeId"])("data-v-5ed7f91e"),e=e(),Object(n["popScopeId"])(),e),me={class:"comom-title"},ge={class:"title"},ve=["onClick"],_e={class:"comom-cnt",id:"qcbk"},ye=pe(()=>Object(n["createElementVNode"])("img",{width:"30",height:"30",src:"",alt:""},null,-1));var xe={__name:"bkcz",setup(e){const{proxy:t}=Object(n["getCurrentInstance"])(),{D_GS_ZDQT_LB:r,D_GS_ZDQT_FXDJ:i,D_GS_ZDR_RYJB:a,D_BZ_XB:o,D_GS_ZDR_BK_ZT:s,D_GS_ZDR_CZZT:l}=t.$dict("D_GS_ZDQT_LB","D_GS_ZDQT_FXDJ","D_GS_ZDR_RYJB","D_BZ_XB","D_GS_ZDR_BK_ZT","D_GS_ZDR_CZZT"),c=Object(n["reactive"])(["全域布控处置重点人员","全域布控处置重点群体"]),u=Object(n["ref"])(0),h=Object(n["reactive"])({tableData:[],keyCount:0,tableConfiger:{loading:!1,rowHieght:61,haveControls:!1,showSelectType:"null",showIndex:!1,stripe:!0},tableColumn:[{label:"照片",prop:"tp",showSolt:!0},{label:"姓名",prop:"ryXm",showOverflowTooltip:!0},{label:"性别",prop:"ryXb",showOverflowTooltip:!0,showSolt:!0},{label:"身份证号码",prop:"rySfzh",showOverflowTooltip:!0},{label:"管控单位",prop:"gxSsbmmc",showOverflowTooltip:!0},{label:"人员级别",prop:"zdrRyjb",showOverflowTooltip:!0,showSolt:!0},{label:"管控状态",prop:"zdrBkZt",showOverflowTooltip:!0,showSolt:!0},{label:"处置状态",prop:"zdrCzzt",showOverflowTooltip:!0,showSolt:!0}]}),d=Object(n["ref"])(1),f=Object(n["ref"])(0);Object(n["onMounted"])(()=>{m(),v()});const p=e=>{switch(u.value=e,h.tableData=[],d.value=0,f.value=0,e){case 0:h.tableColumn=[{label:"照片",prop:"tp",showSolt:!0},{label:"姓名",prop:"ryXm",showOverflowTooltip:!0},{label:"性别",prop:"ryXb",showOverflowTooltip:!0,showSolt:!0},{label:"身份证号码",prop:"rySfzh",showOverflowTooltip:!0},{label:"管控单位",prop:"gxSsbmmc",showOverflowTooltip:!0},{label:"人员级别",prop:"zdrRyjb",showOverflowTooltip:!0,showSolt:!0},{label:"管控状态",prop:"zdrBkZt",showOverflowTooltip:!0,showSolt:!0},{label:"处置状态",prop:"zdrCzzt",showOverflowTooltip:!0,showSolt:!0}];break;case 1:h.tableColumn=[{label:"群体名称",prop:"qtMc"},{label:"群体类别",prop:"qtLb",showSolt:!0},{label:"风险等级",prop:"qtFxdj",showSolt:!0},{label:"列控原因",prop:"zdrLkyy"},{label:"开始时间",prop:"zdrRkkssj"},{label:"截至时间",prop:"zdrRkjssj"}];break}h.keyCount++,m()},m=()=>{h.tableConfiger.loading=!0;let e=0==u.value?"/mosty-gsxt/tbGsxtZdry/selectPage":"/mosty-gsxt/tbGsxtZdqt/selectPage",t={pageSize:10,pageCurrent:d.value};Object(X["c"])(t,e).then(e=>{let t=e.records||[];h.tableData=1==d.value?t:h.tableData.concat(t),f.value=e.total,h.tableConfiger.loading=!1}).catch(()=>{h.tableConfiger.loading=!1})},g=()=>{if(h.tableData.length==f.value)return!1;d.value++,m()},v=()=>{h.tableHeight=document.getElementById("qcbk").offsetHeight-12,window.onresize=function(){v()}};return(e,t)=>{const d=Object(n["resolveComponent"])("DictTag");return Object(n["openBlock"])(),Object(n["createElementBlock"])(n["Fragment"],null,[Object(n["createElementVNode"])("div",me,[Object(n["createElementVNode"])("div",ge,[(Object(n["openBlock"])(!0),Object(n["createElementBlock"])(n["Fragment"],null,Object(n["renderList"])(c,(e,t)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("span",{class:"mr12 pointer nowrap",style:Object(n["normalizeStyle"])({fontSize:u.value==t?"22px":"18px"}),key:t,onClick:e=>p(t)},Object(n["toDisplayString"])(e),13,ve))),128))])]),Object(n["createElementVNode"])("div",_e,[(Object(n["openBlock"])(),Object(n["createBlock"])(fe["a"],{onChangePage:g,customClass:"zdy_bkcz_table",tableData:h.tableData,tableColumn:h.tableColumn,tableHeight:h.tableHeight,key:h.keyCount,tableConfiger:h.tableConfiger},{tp:Object(n["withCtx"])(({row:e})=>[ye]),ryXb:Object(n["withCtx"])(({row:e})=>[Object(n["createVNode"])(d,{tag:!1,value:e.ryXb,color:"#fff",options:Object(n["unref"])(o)},null,8,["value","options"])]),zdrRyjb:Object(n["withCtx"])(({row:e})=>[Object(n["createVNode"])(d,{tag:!1,value:e.zdrRyjb,color:"#fff",options:Object(n["unref"])(a)},null,8,["value","options"])]),zdrBkZt:Object(n["withCtx"])(({row:e})=>[Object(n["createVNode"])(d,{tag:!1,value:e.zdrBkZt,color:"#fff",options:Object(n["unref"])(s)},null,8,["value","options"])]),zdrCzzt:Object(n["withCtx"])(({row:e})=>[Object(n["createVNode"])(d,{tag:!1,color:"#FDBC3A",value:e.zdrCzzt,options:Object(n["unref"])(l)},null,8,["value","options"])]),qtFxdj:Object(n["withCtx"])(({row:e})=>[Object(n["createVNode"])(d,{value:e.qtFxdj,color:"#fff",options:Object(n["unref"])(i)},null,8,["value","options"])]),qtLb:Object(n["withCtx"])(({row:e})=>[Object(n["createVNode"])(d,{value:e.qtLb,color:"#fff",options:Object(n["unref"])(r)},null,8,["value","options"])]),_:1},8,["tableData","tableColumn","tableHeight","tableConfiger"]))])],64)}}};r("68a8"),r("b180");const be=h()(xe,[["__scopeId","data-v-5ed7f91e"]]);var Ae=be,Te=r("db0a");const we=e=>(Object(n["pushScopeId"])("data-v-51ec4fa7"),e=e(),Object(n["popScopeId"])(),e),Ee=we(()=>Object(n["createElementVNode"])("div",{class:"comom-title"},[Object(n["createElementVNode"])("span",{class:"title"},"重点人员动态预警")],-1)),Se={class:"comom-cnt zdryBox"},Ce={style:{height:"33px"}},Me={class:"ryBox",style:{overflow:"auto"}},Oe=["onClick"];var De={__name:"zdryWarning",setup(e){const{proxy:t}=Object(n["getCurrentInstance"])(),o=Object(n["reactive"])({list:["红","橙","黄","蓝"],hasChoose:["红","橙","黄","蓝"]}),s=Object(n["ref"])(0),l=Object(n["ref"])("10,20,30,40"),c=Object(n["ref"])(1),u=Object(n["ref"])(!1),h=Object(n["ref"])([]);function d(e){c.value=1,h.value=[],o.hasChoose=e;let t=[];e.forEach(e=>{"红"==e&&t.push(10),"橙"==e&&t.push(20),"黄"==e&&t.push(30),"蓝"==e&&t.push(40)}),l.value=t.join(","),0==e.length?h.value=[]:p()}Object(n["onMounted"])(()=>{p()});const f=()=>{h.value.length!=s.value&&(c.value++,p())},p=()=>{let e={pageSize:10,pageNum:c.value,yjJb:l.value};u.value=!0,Object(X["d"])(e,"/mosty-jmxf/tbYjxx/getPageList").then(e=>{u.value=!1;let t=e.records||[];h.value=1==c.value?t:h.value.concat(t),s.value=e.total}).catch(()=>{u.value=!1})},m=e=>{if(i["a"].emit("showHomeYJ",[e]),i["a"].emit("deletePointArea","home_yj_map"),!e.jd||!e.jd)return t.$message({type:"warning",message:"该预警没有坐标!"});let n=r("8f1c");"20"==e.yjjb&&(n=r("2609")),"30"==e.yjjb&&(n=r("6e34")),"40"==e.yjjb&&(n=r("eab7")),i["a"].emit("addPointArea",{flag:"home_yj_map",icon:n,coords:[e]}),i["a"].emit("setMapCenter",{location:[e.jd,e.wd],zoomLevel:10})};return(e,t)=>{const r=Object(n["resolveDirective"])("loading"),i=Object(n["resolveDirective"])("infinite-scroll");return Object(n["openBlock"])(),Object(n["createElementBlock"])(n["Fragment"],null,[Ee,Object(n["createElementVNode"])("div",Se,[Object(n["createElementVNode"])("div",Ce,[Object(n["createVNode"])(Te["a"],{data:o,onChangeData:d},null,8,["data"])]),Object(n["withDirectives"])((Object(n["openBlock"])(),Object(n["createElementBlock"])("ul",Me,[(Object(n["openBlock"])(!0),Object(n["createElementBlock"])(n["Fragment"],null,Object(n["renderList"])(h.value,e=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("li",{key:e.id,onClick:t=>m(e)},[Object(n["createVNode"])(O,{item:e},null,8,["item"])],8,Oe))),128)),Object(n["createVNode"])(a["f"],{show:!u.value&&h.value.length<=0,imgSize:100},null,8,["show"])])),[[r,u.value],[i,f]])])],64)}}};r("776b"),r("cb54");const Le=h()(De,[["__scopeId","data-v-51ec4fa7"]]);var Ne=Le;const Re=e=>(Object(n["pushScopeId"])("data-v-7c5391de"),e=e(),Object(n["popScopeId"])(),e),Pe={class:"comom-title"},Ie={class:"title"},Be=["onClick"],Fe={id:"zdgk",class:"comom-cnt"},Ue=Re(()=>Object(n["createElementVNode"])("img",{width:"30",height:"30",src:"",alt:""},null,-1));var ze={__name:"zdgk",setup(e){const{proxy:t}=Object(n["getCurrentInstance"])(),{D_BZ_XB:r,D_GS_ZDQT_LB:i,D_GS_ZDQT_FXDJ:a}=t.$dict("D_BZ_XB","D_GS_ZDQT_LB","D_GS_ZDQT_FXDJ"),o=Object(n["reactive"])(["重点人管控信息","重点全体管控信息"]),s=Object(n["ref"])(0),l=Object(n["ref"])(1),c=Object(n["ref"])(0),u=Object(n["reactive"])({tableData:[],keyCount:0,tableConfiger:{loading:!1,rowHieght:61,haveControls:!1,showSelectType:"null",showIndex:!1,stripe:!0},total:0,pageConfiger:{pageSize:20,pageNum:1},tableColumn:[{label:"照片",prop:"tp",showSolt:!0},{label:"姓名",prop:"ryXm",showOverflowTooltip:!0},{label:"性别",prop:"ryXb",showOverflowTooltip:!0,showSolt:!0},{label:"身份证号码",prop:"rySfzh",showOverflowTooltip:!0},{label:"管控原因",prop:"zdrLkyy",showOverflowTooltip:!0}]});Object(n["onMounted"])(()=>{f(),d()});const h=e=>{switch(s.value=e,l.value=1,u.tableData=[],e){case 0:u.tableColumn=[{label:"照片",prop:"tp",showSolt:!0},{label:"姓名",prop:"ryXm",showOverflowTooltip:!0},{label:"性别",prop:"ryXb",showOverflowTooltip:!0,showSolt:!0},{label:"身份证号码",prop:"rySfzh",showOverflowTooltip:!0},{label:"管控原因",prop:"zdrLkyy",showOverflowTooltip:!0}];break;case 1:u.tableColumn=[{label:"照片",prop:"tp",showSolt:!0},{label:"群体名称",prop:"qtMc",showOverflowTooltip:!0},{label:"群体类别",prop:"qtLb",showOverflowTooltip:!0,showSolt:!0},{label:"风险等级",prop:"qtFxdj",showOverflowTooltip:!0,showSolt:!0},{label:"列控原因",prop:"zdrLkyy",showOverflowTooltip:!0}];break}u.keyCount++,d()},d=()=>{u.tableConfiger.loading=!0;let e={pageSize:10,pageCurrent:l.value},t=0==s.value?"/mosty-gsxt/tbGsxtZdry/selectPage":"/mosty-gsxt/tbGsxtZdqt/selectPage";Object(X["c"])(e,t).then(e=>{let t=e.records||[];u.tableData=1==l.value?t:u.tableData.concat(t),c.value=e.total,u.tableConfiger.loading=!1}).catch(()=>{u.tableConfiger.loading=!1})},f=()=>{u.tableHeight=document.getElementById("zdgk").offsetHeight-10,window.onresize=function(){f()}},p=()=>{if(u.tableData.length==c.value)return!1;l.value++,d()};return(e,t)=>{const l=Object(n["resolveComponent"])("DictTag");return Object(n["openBlock"])(),Object(n["createElementBlock"])(n["Fragment"],null,[Object(n["createElementVNode"])("div",Pe,[Object(n["createElementVNode"])("div",Ie,[(Object(n["openBlock"])(!0),Object(n["createElementBlock"])(n["Fragment"],null,Object(n["renderList"])(o,(e,t)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("span",{class:"mr12 pointer nowrap",style:Object(n["normalizeStyle"])({fontSize:s.value==t?"22px":"18px"}),key:t,onClick:e=>h(t)},Object(n["toDisplayString"])(e),13,Be))),128))])]),Object(n["createElementVNode"])("div",Fe,[(Object(n["openBlock"])(),Object(n["createBlock"])(fe["a"],{onChangePage:p,customClass:"zdy_bkcz_table",tableData:u.tableData,tableColumn:u.tableColumn,tableHeight:u.tableHeight,key:u.keyCount,tableConfiger:u.tableConfiger},{ryXb:Object(n["withCtx"])(({row:e})=>[Object(n["createVNode"])(l,{tag:!1,value:e.ryXb,color:"#fff",options:Object(n["unref"])(r)},null,8,["value","options"])]),qtLb:Object(n["withCtx"])(({row:e})=>[Object(n["createVNode"])(l,{tag:!1,value:e.qtLb,color:"#fff",options:Object(n["unref"])(i)},null,8,["value","options"])]),qtFxdj:Object(n["withCtx"])(({row:e})=>[Object(n["createVNode"])(l,{tag:!1,value:e.qtFxdj,color:"#fff",options:Object(n["unref"])(a)},null,8,["value","options"])]),tp:Object(n["withCtx"])(({row:e})=>[Ue]),_:1},8,["tableData","tableColumn","tableHeight","tableConfiger"]))])],64)}}};r("151f"),r("cc61");const je=h()(ze,[["__scopeId","data-v-7c5391de"]]);var Ve=je;const Ge=e=>(Object(n["pushScopeId"])("data-v-83af3c34"),e=e(),Object(n["popScopeId"])(),e),ke=Ge(()=>Object(n["createElementVNode"])("div",{class:"comom-title"},[Object(n["createElementVNode"])("div",{class:"title"},"重点人发掘情况")],-1)),He={class:"comom-cnt",id:"fjfk"};var We={__name:"fjqk",setup(e){const t=Object(n["reactive"])({tableData:[],keyCount:0,tableConfiger:{loading:!1,rowHieght:61,haveControls:!1,showSelectType:"null",showIndex:!1,stripe:!0},tableColumn:[{label:"姓名",prop:"ryXm",showOverflowTooltip:!0},{label:"手机号码",prop:"rySjhm",showOverflowTooltip:!0},{label:"身份证号码",prop:"rySfzh",showOverflowTooltip:!0},{label:"户籍地址",prop:"ryHjdz",showOverflowTooltip:!0}]}),r=Object(n["ref"])(0),i=Object(n["ref"])(1);Object(n["onMounted"])(()=>{a(),s()});const a=()=>{t.tableConfiger.loading=!0;let e={sfZbkry:1,pageSize:10,pageCurrent:i.value};Object(X["c"])(e,"/mosty-gsxt/tbGsxtRqfjRy/selectPage").then(e=>{let n=e.records||[];t.tableData=1==i.value?n:t.tableData.concat(n),r.value=e.total,t.tableConfiger.loading=!1}).catch(()=>{t.tableConfiger.loading=!1})},o=()=>{if(t.tableData.length==r.value)return!1;i.value++,a()},s=()=>{t.tableHeight=document.getElementById("fjfk").offsetHeight-10,window.onresize=function(){s()}};return(e,r)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])(n["Fragment"],null,[ke,Object(n["createElementVNode"])("div",He,[(Object(n["openBlock"])(),Object(n["createBlock"])(fe["a"],{onChangePage:o,customClass:"zdy_bkcz_table",tableData:t.tableData,tableColumn:t.tableColumn,tableHeight:t.tableHeight,key:t.keyCount,tableConfiger:t.tableConfiger},null,8,["tableData","tableColumn","tableHeight","tableConfiger"]))])],64))}};r("aab7"),r("0d88");const Xe=h()(We,[["__scopeId","data-v-83af3c34"]]);var Ye=Xe;const Ze={class:"ww100 h80 flex just-between align-center pl10 pr10"},qe={class:"mr10"},Qe=["src"],Ke={class:"vountItem"},Je={style:{color:"#ffffff"},class:"f16 lh20"},$e={class:"mt4 f12",style:{color:"#ffffff"}};var et={__name:"yszs",setup(e){const t=Object(n["ref"])([{type:"xs",label:"线索总数",value:"0",icon:r("e762")},{type:"xscz",label:"已处置线索总数",value:"0",icon:r("47fa")},{type:"zdry",label:"重点人总数",value:"0",icon:r("a88d")},{type:"zdqt",label:"重点群体总数",value:"0",icon:r("be90")}]);Object(n["onMounted"])(()=>{i()});const i=()=>{Object(X["d"])({},"/mosty-gsxt/qbcj/getXscjTjForZs").then(e=>{for(let r in e){let n=t.value.findIndex(e=>r==e.type);-1!=n&&(t.value[n].value=e[r])}})};return(e,r)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("div",Ze,[(Object(n["openBlock"])(!0),Object(n["createElementBlock"])(n["Fragment"],null,Object(n["renderList"])(t.value,(e,t)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("div",{class:"flex align-center",key:t},[Object(n["createElementVNode"])("div",qe,[Object(n["createElementVNode"])("img",{src:e.icon,alt:""},null,8,Qe)]),Object(n["createElementVNode"])("div",Ke,[Object(n["createElementVNode"])("div",Je,Object(n["toDisplayString"])(e.label),1),Object(n["createElementVNode"])("div",$e,Object(n["toDisplayString"])(e.value),1)])]))),128))]))}};r("c881");const tt=h()(et,[["__scopeId","data-v-1269311a"]]);var rt=tt;const nt={class:"homeBox"},it={class:"home-aside asideL"},at={class:"asideL-top"},ot={class:"asideL-Bottom"},st={class:"commom-aside"},lt={class:"commom-aside"},ct={class:"commom-aside"},ut={class:"home-aside asideR"},ht={class:"commom-aside-big"},dt={class:"commom-aside-big"},ft={class:"commom-aside-small"},pt={class:"home-center"},mt={class:"home-foot-t"};var gt={__name:"index",setup(e){return(e,t)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])(n["Fragment"],null,[Object(n["createElementVNode"])("div",nt,[Object(n["createVNode"])(F["a"]),Object(n["createVNode"])(U["a"]),Object(n["createElementVNode"])("div",it,[Object(n["createElementVNode"])("div",at,[Object(n["createVNode"])(H)]),Object(n["createElementVNode"])("div",ot,[Object(n["createElementVNode"])("div",st,[Object(n["createVNode"])(ae)]),Object(n["createElementVNode"])("div",lt,[Object(n["createVNode"])(de)]),Object(n["createElementVNode"])("div",ct,[Object(n["createVNode"])(J)])])]),Object(n["createElementVNode"])("div",ut,[Object(n["createElementVNode"])("div",ht,[Object(n["createVNode"])(Ne)]),Object(n["createElementVNode"])("div",dt,[Object(n["createVNode"])(Ve)]),Object(n["createElementVNode"])("div",ft,[Object(n["createVNode"])(Ye)])]),Object(n["createElementVNode"])("div",pt,[Object(n["createVNode"])(rt)]),Object(n["createElementVNode"])("div",mt,[Object(n["createVNode"])(Ae)])]),Object(n["createVNode"])(Object(n["unref"])(B))],64))}};r("6b5f");const vt=h()(gt,[["__scopeId","data-v-25632726"]]);t["default"]=vt},"8f1c":function(e,t){e.exports="data:image/png;base64,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"},a88d:function(e,t){e.exports="data:image/png;base64,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"},aab7:function(e,t,r){"use strict";r("d6ad")},b180:function(e,t,r){"use strict";r("07e7")},b20b:function(e,t,r){},b347:function(e,t,r){},bac7:function(e,t,r){},bd4e:function(e,t,r){e.exports={menuText:"#bfcbd9",menuActiveText:"#fff",subMenuActiveText:"#f4f4f5",menuBg:"#304156",menuHover:"#263445",subMenuBg:"#1f2d3d",subMenuHover:"#001528",sideBarWidth:"210px"}},be90:function(e,t){e.exports="data:image/png;base64,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"},c881:function(e,t,r){"use strict";r("fc72")},ca7c:function(e,t,r){},cb54:function(e,t,r){"use strict";r("0b15")},cc61:function(e,t,r){"use strict";r("bd4e")},ccec:function(e,t,r){},d089:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKJSURBVHgBzZdPaNRAFMa/mc1md2PXVlMUZA9FD9KbbUHQk+DFg4rgxaIiBRFBpISK59aDFiuWQqGgICKe1HqwiJ6kZVU8SakHtUXwIP6rWpdlo2yajDNd69puJjpxbfJdknnJZH6ZzHtfhqCHHcOi5jGBIfKSxzp4qwNVfUEZY8hAh4vdvJ2tdx8aB4gqSMQQIJimcYDABTJOFhoRQ+A0y5I4QIg+NA4Qog+NA4QI0zhAcIqyFhbiWjfa0ykM8PMWx4M9O4fpKw9wY2oGt1UhoGGM4CRLqUDkTLj9R9Cja2iFjzwG68AA8ioQOEc+U9WZ6D+MnTKIhWcTDO7dik4VCDEOVYEYPoopXf9tEIl2tWOPCoQYh0JhYa4zsR1/ocZVyKlAVJgX3TcA4tJxFNc0obVk45CRXnJNqve2Y4njzYmknn+Gr0EQVRAJRNtGZE/tw/6khm1QEF+w+PDd/dX+OEcmR/P0+ot3uOoHIWaPoJttlmXH+S6c0Sg2QFG2y1Aoe8ui5LXHaJs1jE3wySgq+xxnD8IMAyHkiimpEWt5O+sOQpLWVLYwM+k/Z4dMqQTxjTc3/cymZRCBpsffaQtCSqf+IGkdph8EgkzPcWGjznI9YiubXqGENwgpx/OPM8YmZbWFQmJ695/yWEiV5v1JKPVOyAoclTnvnce4zDz0QVFFh+GbW5s1HmN91kjylazKJrCj15D5zS30Ftc2QF9twDBSlYVGCMY/FXBx6C7u5ZrR2JCGmUigxONPwMEfzrDnGiXrM/x+l/8e8AR6xCG6rBFtNKjUi8raiX/8qZGV7fqb3n+GqIRjAFEFiRgieKe3ghDynd4KQ/jv9CKAqDW9iCCwxPQihBDhH8usBXP/DkcOAAAAAElFTkSuQmCC"},d0f4:function(e,t,r){"use strict";r("6ddd")},d6ad:function(e,t,r){},d71f:function(e,t,r){"use strict";r("ee19")},d7ef:function(e,t,r){"use strict";r("2f18")},db0a:function(e,t,r){"use strict";var n=r("7a23");const i={class:"checkBox"},a=Object(n["createTextVNode"])("全部");var o={__name:"index",props:{data:{type:Object,default:{list:[],hasChoose:[]}},width:String,customClass:String},emits:["changeData"],setup(e,{emit:t}){const r=e,o=Object(n["ref"])(!1),s=Object(n["ref"])(!0),l=Object(n["ref"])([]),c=Object(n["ref"])([]);function u(e){l.value=e?c.value:[],s.value=!1,t("changeData",l.value)}function h(e){d(e),t("changeData",l.value)}function d(e){let t=e.length,r=c.value.length;o.value=t==r,s.value=t>0&&tr.data,e=>{l.value=e.hasChoose,c.value=e.list,d(e.hasChoose)},{deep:!0,immediate:!0}),(t,d)=>{const f=Object(n["resolveComponent"])("el-checkbox"),p=Object(n["resolveComponent"])("el-checkbox-group");return Object(n["openBlock"])(),Object(n["createElementBlock"])("div",i,[Object(n["createVNode"])(f,{class:Object(n["normalizeClass"])(["checkall",e.customClass]),modelValue:o.value,"onUpdate:modelValue":d[0]||(d[0]=e=>o.value=e),indeterminate:s.value,onChange:u},{default:Object(n["withCtx"])(()=>[a]),_:1},8,["class","modelValue","indeterminate"]),Object(n["createVNode"])(p,{modelValue:l.value,"onUpdate:modelValue":d[1]||(d[1]=e=>l.value=e),onChange:h},{default:Object(n["withCtx"])(()=>[Object(n["createElementVNode"])("span",{class:Object(n["normalizeClass"])(["zwModel",e.customClass])},null,2),(Object(n["openBlock"])(!0),Object(n["createElementBlock"])(n["Fragment"],null,Object(n["renderList"])(c.value,t=>(Object(n["openBlock"])(),Object(n["createBlock"])(f,{class:Object(n["normalizeClass"])(e.customClass),key:t,label:t,style:Object(n["normalizeStyle"])({width:r.width||"auto"})},{default:Object(n["withCtx"])(()=>[Object(n["createTextVNode"])(Object(n["toDisplayString"])(t),1)]),_:2},1032,["class","label","style"]))),128))]),_:1},8,["modelValue"])])}}},s=(r("5062"),r("6b0d")),l=r.n(s);const c=l()(o,[["__scopeId","data-v-d30d3ffa"]]);t["a"]=c},dd0d:function(e,t,r){"use strict";r("bac7")},e762:function(e,t){e.exports="data:image/png;base64,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"},e767:function(e,t,r){"use strict";var n=r("7a23"),i=r("313e"),a=r("aa74"),o=r("22b4"),s=(r("1be7"),r("f95e")),l=r("5e81"),c=r("ee29");Object(o["a"])([s["a"],l["a"]]);function u(e,t,r){"object"==typeof t&&(r=t,t=null);var n,i=this;if(!(e instanceof Function))for(var a in n=[],e)e.hasOwnProperty(a)&&n.push(a);var o=function(t){if(i.apply(this,arguments),e instanceof Function?h(this,e.call(this,t)):d(this,e,n),this.constructor===o)for(var r=o.__initializers__,a=0;a=this._maxSize&&r>0){var n=this._list.head;this._list.remove(n),delete this._map[n.key]}var i=this._list.insert(t);i.key=e,this._map[e]=i}},N.prototype.get=function(e){var t=this._map[e];if(this._map.hasOwnProperty(e))return t!==this._list.tail&&(this._list.remove(t),this._list.insertEntry(t)),t.value},N.prototype.remove=function(e){var t=this._map[e];"undefined"!==typeof t&&(delete this._map[e],this._list.remove(t))},N.prototype.clear=function(){this._list.clear(),this._map={}};var R=N,P={},I={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function B(e){return e=Math.round(e),e<0?0:e>255?255:e}function F(e){return e=Math.round(e),e<0?0:e>360?360:e}function U(e){return e<0?0:e>1?1:e}function z(e){return e.length&&"%"===e.charAt(e.length-1)?B(parseFloat(e)/100*255):B(parseInt(e,10))}function j(e){return e.length&&"%"===e.charAt(e.length-1)?U(parseFloat(e)/100):U(parseFloat(e))}function V(e,t,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?e+(t-e)*r*6:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}function G(e,t,r){return e+(t-e)*r}function k(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function H(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var W=new R(20),X=null;function Y(e,t){X&&H(X,t),X=W.put(e,X||t.slice())}function Z(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=j(e[1]),i=j(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=2*i-a;return t=t||[],k(t,B(255*V(o,a,r+1/3)),B(255*V(o,a,r)),B(255*V(o,a,r-1/3)),1),4===e.length&&(t[3]=e[3]),t}function q(e){if(e){var t,r,n=e[0]/255,i=e[1]/255,a=e[2]/255,o=Math.min(n,i,a),s=Math.max(n,i,a),l=s-o,c=(s+o)/2;if(0===l)t=0,r=0;else{r=c<.5?l/(s+o):l/(2-s-o);var u=((s-n)/6+l/2)/l,h=((s-i)/6+l/2)/l,d=((s-a)/6+l/2)/l;n===s?t=d-h:i===s?t=1/3+u-d:a===s&&(t=2/3+h-u),t<0&&(t+=1),t>1&&(t-=1)}var f=[360*t,r,c];return null!=e[3]&&f.push(e[3]),f}}P.parse=function(e,t){if(e){t=t||[];var r=W.get(e);if(r)return H(t,r);e+="";var n=e.replace(/ /g,"").toLowerCase();if(n in I)return H(t,I[n]),Y(e,t),t;if("#"!==n.charAt(0)){var i=n.indexOf("("),a=n.indexOf(")");if(-1!==i&&a+1===n.length){var o=n.substr(0,i),s=n.substr(i+1,a-(i+1)).split(","),l=1;switch(o){case"rgba":if(4!==s.length)return void k(t,0,0,0,1);l=j(s.pop());case"rgb":return 3!==s.length?void k(t,0,0,0,1):(k(t,z(s[0]),z(s[1]),z(s[2]),l),Y(e,t),t);case"hsla":return 4!==s.length?void k(t,0,0,0,1):(s[3]=j(s[3]),Z(s,t),Y(e,t),t);case"hsl":return 3!==s.length?void k(t,0,0,0,1):(Z(s,t),Y(e,t),t);default:return}}k(t,0,0,0,1)}else{if(4===n.length){var c=parseInt(n.substr(1),16);return c>=0&&c<=4095?(k(t,(3840&c)>>4|(3840&c)>>8,240&c|(240&c)>>4,15&c|(15&c)<<4,1),Y(e,t),t):void k(t,0,0,0,1)}if(7===n.length){c=parseInt(n.substr(1),16);return c>=0&&c<=16777215?(k(t,(16711680&c)>>16,(65280&c)>>8,255&c,1),Y(e,t),t):void k(t,0,0,0,1)}}}},P.parseToFloat=function(e,t){if(t=P.parse(e,t),t)return t[0]/=255,t[1]/=255,t[2]/=255,t},P.lift=function(e,t){var r=P.parse(e);if(r){for(var n=0;n<3;n++)r[n]=t<0?r[n]*(1-t)|0:(255-r[n])*t+r[n]|0;return P.stringify(r,4===r.length?"rgba":"rgb")}},P.toHex=function(e){var t=P.parse(e);if(t)return((1<<24)+(t[0]<<16)+(t[1]<<8)+ +t[2]).toString(16).slice(1)},P.fastLerp=function(e,t,r){if(t&&t.length&&e>=0&&e<=1){r=r||[];var n=e*(t.length-1),i=Math.floor(n),a=Math.ceil(n),o=t[i],s=t[a],l=n-i;return r[0]=B(G(o[0],s[0],l)),r[1]=B(G(o[1],s[1],l)),r[2]=B(G(o[2],s[2],l)),r[3]=U(G(o[3],s[3],l)),r}},P.fastMapToColor=P.fastLerp,P.lerp=function(e,t,r){if(t&&t.length&&e>=0&&e<=1){var n=e*(t.length-1),i=Math.floor(n),a=Math.ceil(n),o=P.parse(t[i]),s=P.parse(t[a]),l=n-i,c=P.stringify([B(G(o[0],s[0],l)),B(G(o[1],s[1],l)),B(G(o[2],s[2],l)),U(G(o[3],s[3],l))],"rgba");return r?{color:c,leftIndex:i,rightIndex:a,value:n}:c}},P.mapToColor=P.lerp,P.modifyHSL=function(e,t,r,n){if(e=P.parse(e),e)return e=q(e),null!=t&&(e[0]=F(t)),null!=r&&(e[1]=j(r)),null!=n&&(e[2]=j(n)),P.stringify(Z(e),"rgba")},P.modifyAlpha=function(e,t){if(e=P.parse(e),e&&null!=t)return e[3]=U(t),P.stringify(e,"rgba")},P.stringify=function(e,t){if(e&&e.length){var r=e[0]+","+e[1]+","+e[2];return"rgba"!==t&&"hsva"!==t&&"hsla"!==t||(r+=","+e[3]),t+"("+r+")"}};var Q=P,K=Q.parseToFloat,J={};function $(e){var t=Object.keys(e);t.sort();for(var r=[],n=0;n=0},getEnabledUniforms:function(){return this._enabledUniforms},getTextureUniforms:function(){return this._textureUniforms},set:function(e,t){if("object"===typeof e)for(var r in e){var n=e[r];this.setUniform(r,n)}else this.setUniform(e,t)},get:function(e){var t=this.uniforms[e];if(t)return t.value},attachShader:function(e,t){var r=this.uniforms;this.uniforms=e.createUniforms(),this.shader=e;var n=this.uniforms;this._enabledUniforms=Object.keys(n),this._enabledUniforms.sort(),this._textureUniforms=this._enabledUniforms.filter((function(e){var t=this.uniforms[e].type;return"t"===t||"tv"===t}),this);var i=this.vertexDefines,a=this.fragmentDefines;if(this.vertexDefines=b.clone(e.vertexDefines),this.fragmentDefines=b.clone(e.fragmentDefines),t){for(var o in r)n[o]&&(n[o].value=r[o].value);b.defaults(this.vertexDefines,i),b.defaults(this.fragmentDefines,a)}var s={};for(var l in e.textures)s[l]={shaderType:e.textures[l].shaderType,type:e.textures[l].type,enabled:!(!t||!this._textureStatus[l])&&this._textureStatus[l].enabled};this._textureStatus=s,this._programKey=""},clone:function(){var e=new this.constructor({name:this.name,shader:this.shader});for(var t in this.uniforms)e.uniforms[t].value=this.uniforms[t].value;return e.depthTest=this.depthTest,e.depthMask=this.depthMask,e.transparent=this.transparent,e.blend=this.blend,e.vertexDefines=b.clone(this.vertexDefines),e.fragmentDefines=b.clone(this.fragmentDefines),e.enableTexture(this.getEnabledTextures()),e.precision=this.precision,e},define:function(e,t,r){var n=this.vertexDefines,i=this.fragmentDefines;"vertex"!==e&&"fragment"!==e&&"both"!==e&&arguments.length<3&&(r=t,t=e,e="both"),r=null!=r?r:null,"vertex"!==e&&"both"!==e||n[t]!==r&&(n[t]=r,this._programKey=""),"fragment"!==e&&"both"!==e||i[t]!==r&&(i[t]=r,"both"!==e&&(this._programKey=""))},undefine:function(e,t){"vertex"!==e&&"fragment"!==e&&"both"!==e&&arguments.length<2&&(t=e,e="both"),"vertex"!==e&&"both"!==e||this.isDefined("vertex",t)&&(delete this.vertexDefines[t],this._programKey=""),"fragment"!==e&&"both"!==e||this.isDefined("fragment",t)&&(delete this.fragmentDefines[t],"both"!==e&&(this._programKey=""))},isDefined:function(e,t){switch(e){case"vertex":return void 0!==this.vertexDefines[t];case"fragment":return void 0!==this.fragmentDefines[t]}},getDefine:function(e,t){switch(e){case"vertex":return this.vertexDefines[t];case"fragment":return this.fragmentDefines[t]}},enableTexture:function(e){if(Array.isArray(e))for(var t=0;t0&&(i=1/Math.sqrt(i),e[0]=t[0]*i,e[1]=t[1]*i),e},oe.dot=function(e,t){return e[0]*t[0]+e[1]*t[1]},oe.cross=function(e,t,r){var n=t[0]*r[1]-t[1]*r[0];return e[0]=e[1]=0,e[2]=n,e},oe.lerp=function(e,t,r,n){var i=t[0],a=t[1];return e[0]=i+n*(r[0]-i),e[1]=a+n*(r[1]-a),e},oe.random=function(e,t){t=t||1;var r=2*GLMAT_RANDOM()*Math.PI;return e[0]=Math.cos(r)*t,e[1]=Math.sin(r)*t,e},oe.transformMat2=function(e,t,r){var n=t[0],i=t[1];return e[0]=r[0]*n+r[2]*i,e[1]=r[1]*n+r[3]*i,e},oe.transformMat2d=function(e,t,r){var n=t[0],i=t[1];return e[0]=r[0]*n+r[2]*i+r[4],e[1]=r[1]*n+r[3]*i+r[5],e},oe.transformMat3=function(e,t,r){var n=t[0],i=t[1];return e[0]=r[0]*n+r[3]*i+r[6],e[1]=r[1]*n+r[4]*i+r[7],e},oe.transformMat4=function(e,t,r){var n=t[0],i=t[1];return e[0]=r[0]*n+r[4]*i+r[12],e[1]=r[1]*n+r[5]*i+r[13],e},oe.forEach=function(){var e=oe.create();return function(t,r,n,i,a,o){var s,l;for(r||(r=2),n||(n=0),l=i?Math.min(i*r+n,t.length):t.length,s=n;s0&&n.push("#define "+i.toUpperCase()+"_COUNT "+a)}if(r)for(var o=0;oc.getMaxJointNumber()&&(f.USE_SKIN_MATRICES_TEXTURE=null),d+="\n"+Ae(f)+"\n"}a&&(d+="\n#define INSTANCING\n");var p=d+Ae(t.vertexDefines,l,h),m=d+Ae(t.fragmentDefines,l,h),g=p+"\n"+t.shader.vertex,v=["OES_standard_derivatives","EXT_shader_texture_lod"].filter((function(e){return null!=c.getGLExtension(e)}));v.indexOf("EXT_shader_texture_lod")>=0&&(m+="\n#define SUPPORT_TEXTURE_LOD"),v.indexOf("OES_standard_derivatives")>=0&&(m+="\n#define SUPPORT_STANDARD_DERIVATIVES");var _=Te(v)+"\n"+we(t.precision)+"\n"+m+"\n"+t.shader.fragment,y=be(g,t.vertexDefines,l),x=be(_,t.fragmentDefines,l);s=new ye;s.uniformSemantics=t.shader.uniformSemantics,s.attributes=t.shader.attributes;var b=s.buildProgram(u,t.shader,y,x);return s.__error=b,n[o]=s,s};var Se=Ee,Ce=/uniform\s+(bool|float|int|vec2|vec3|vec4|ivec2|ivec3|ivec4|mat2|mat3|mat4|sampler2D|samplerCube)\s+([\s\S]*?);/g,Me=/attribute\s+(float|int|vec2|vec3|vec4)\s+([\s\S]*?);/g,Oe=/#define\s+(\w+)?(\s+[\d-.]+)?\s*;?\s*\n/g,De={bool:"1i",int:"1i",sampler2D:"t",samplerCube:"t",float:"1f",vec2:"2f",vec3:"3f",vec4:"4f",ivec2:"2i",ivec3:"3i",ivec4:"4i",mat2:"m2",mat3:"m3",mat4:"m4"};function Le(e){for(var t=[],r=0;r=0){if(f!==l&&f!==h){Ve();break}f=c,m=[]}else if(f!==l)if(f!==h)g(v),f=s;else{var _=v;Re.indexOf(_)>=0||Pe.indexOf(_)>=0||Ie.indexOf(_)>=0?p[o].semantic=_:"ignore"===_||"unconfigurable"===_?p[o].ignore=!0:p[o].value="bool"===e?"true"===_:parseFloat(_)}else p[o].value="bool"===e?"true"===v:parseFloat(v),m=null;else{if(f!==c){Ve();break}if(!(m instanceof Array)){Ve();break}m.push(+n[++a])}else p[o].value=new O["a"].Float32Array(m),m=null,f=d;else if(f===c){if(!(m instanceof Array)){Ve();break}m.push(+n[++a])}else f=d;else f=h;else{if(f!==s&&f!==u){Ve();break}f=l}}return p}function ke(e,t){"object"===typeof e&&(t=e.fragment,e=e.vertex),e=je(e),t=je(t),this._shaderID=ze(e,t),this._vertexCode=ke.parseImport(e),this._fragmentCode=ke.parseImport(t),this.attributeSemantics={},this.matrixSemantics={},this.uniformSemantics={},this.matrixSemanticKeys=[],this.uniformTemplates={},this.attributes={},this.textures={},this.vertexDefines={},this.fragmentDefines={},this._parseAttributes(),this._parseUniforms(),this._parseDefines()}ke.prototype={constructor:ke,createUniforms:function(){var e={};for(var t in this.uniformTemplates){var r=this.uniformTemplates[t];e[t]={type:r.type,value:r.value()}}return e},_parseImport:function(){this._vertexCode=ke.parseImport(this.vertex),this._fragmentCode=ke.parseImport(this.fragment)},_addSemanticUniform:function(e,t,r){if(Re.indexOf(r)>=0)this.attributeSemantics[r]={symbol:e,type:t};else if(Ie.indexOf(r)>=0){var n=!1,i=r;r.match(/TRANSPOSE$/)&&(n=!0,i=r.slice(0,-9)),this.matrixSemantics[r]={symbol:e,type:t,isTranspose:n,semanticNoTranspose:i}}else Pe.indexOf(r)>=0&&(this.uniformSemantics[r]={symbol:e,type:t})},_addMaterialUniform:function(e,t,r,n,i,a){a[e]={type:r,value:i?Ne["array"]:n||Ne[t],semantic:null}},_parseUniforms:function(){var e={},t=this,r="vertex";function n(e){return null!=e?function(){return e}:null}function i(i,a,o){var s=Ge(a,o),l=[];for(var c in s){var u=s[c],h=u.semantic,d=c,f=De[a],p=n(s[c].value);s[c].isArray&&(d+="["+s[c].arraySize+"]",f+="v"),l.push(d),t._uniformList.push(c),u.ignore||("sampler2D"!==a&&"samplerCube"!==a||(t.textures[c]={shaderType:r,type:a}),h?t._addSemanticUniform(c,f,h):t._addMaterialUniform(c,a,f,p,s[c].isArray,e))}return l.length>0?"uniform "+a+" "+l.join(",")+";\n":""}this._uniformList=[],this._vertexCode=this._vertexCode.replace(Ce,i),r="fragment",this._fragmentCode=this._fragmentCode.replace(Ce,i),t.matrixSemanticKeys=Object.keys(this.matrixSemantics),this.uniformTemplates=e},_parseAttributes:function(){var e={},t=this;function r(r,n,i){var a=Ge(n,i),o=Be[n]||1,s=[];for(var l in a){var c=a[l].semantic;if(e[l]={type:"float",size:o,semantic:c||null},c){if(Re.indexOf(c)<0)throw new Error('Unkown semantic "'+c+'"');t.attributeSemantics[c]={symbol:l,type:n}}s.push(l)}return"attribute "+n+" "+s.join(",")+";\n"}this._vertexCode=this._vertexCode.replace(Me,r),this.attributes=e},_parseDefines:function(){var e=this,t="vertex";function r(r,n,i){var a="vertex"===t?e.vertexDefines:e.fragmentDefines;return a[n]||(a[n]="false"!==i&&("true"===i||(i?isNaN(parseFloat(i))?i.trim():parseFloat(i):null))),""}this._vertexCode=this._vertexCode.replace(Oe,r),t="fragment",this._fragmentCode=this._fragmentCode.replace(Oe,r)},clone:function(){var e=Ue[this._shaderID],t=new ke(e.vertex,e.fragment);return t}},Object.defineProperty&&(Object.defineProperty(ke.prototype,"shaderID",{get:function(){return this._shaderID}}),Object.defineProperty(ke.prototype,"vertex",{get:function(){return this._vertexCode}}),Object.defineProperty(ke.prototype,"fragment",{get:function(){return this._fragmentCode}}),Object.defineProperty(ke.prototype,"uniforms",{get:function(){return this._uniformList}}));var He=/(@import)\s*([0-9a-zA-Z_\-\.]*)/g;ke.parseImport=function(e){return e=e.replace(He,(function(e,t,r){e=ke.source(r);return e?ke.parseImport(e):(console.error('Shader chunk "'+r+'" not existed in library'),"")})),e};var We=/(@export)\s*([0-9a-zA-Z_\-\.]*)\s*\n([\s\S]*?)@end/g;ke["import"]=function(e){e.replace(We,(function(e,t,r,n){n=n.replace(/(^[\s\t\xa0\u3000]+)|([\u3000\xa0\s\t]+\x24)/g,"");if(n){var i,a=r.split("."),o=ke.codes,s=0;while(s 0.0) {\n if (texture2D(alphaMap, v_Texcoord).a <= alphaCutoff) {\n discard;\n }\n }\n gl_FragColor = vec4(0.0,0.0,0.0,1.0);\n}\n@end",Ze={create:function(){var e=new ie(16);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},clone:function(e){var t=new ie(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},identity:function(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},transpose:function(e,t){if(e===t){var r=t[1],n=t[2],i=t[3],a=t[6],o=t[7],s=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=a,e[11]=t[14],e[12]=i,e[13]=o,e[14]=s}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e},invert:function(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],l=t[6],c=t[7],u=t[8],h=t[9],d=t[10],f=t[11],p=t[12],m=t[13],g=t[14],v=t[15],_=r*s-n*o,y=r*l-i*o,x=r*c-a*o,b=n*l-i*s,A=n*c-a*s,T=i*c-a*l,w=u*m-h*p,E=u*g-d*p,S=u*v-f*p,C=h*g-d*m,M=h*v-f*m,O=d*v-f*g,D=_*O-y*M+x*C+b*S-A*E+T*w;return D?(D=1/D,e[0]=(s*O-l*M+c*C)*D,e[1]=(i*M-n*O-a*C)*D,e[2]=(m*T-g*A+v*b)*D,e[3]=(d*A-h*T-f*b)*D,e[4]=(l*S-o*O-c*E)*D,e[5]=(r*O-i*S+a*E)*D,e[6]=(g*x-p*T-v*y)*D,e[7]=(u*T-d*x+f*y)*D,e[8]=(o*M-s*S+c*w)*D,e[9]=(n*S-r*M-a*w)*D,e[10]=(p*A-m*x+v*_)*D,e[11]=(h*x-u*A-f*_)*D,e[12]=(s*E-o*C-l*w)*D,e[13]=(r*C-n*E+i*w)*D,e[14]=(m*y-p*b-g*_)*D,e[15]=(u*b-h*y+d*_)*D,e):null},adjoint:function(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],l=t[6],c=t[7],u=t[8],h=t[9],d=t[10],f=t[11],p=t[12],m=t[13],g=t[14],v=t[15];return e[0]=s*(d*v-f*g)-h*(l*v-c*g)+m*(l*f-c*d),e[1]=-(n*(d*v-f*g)-h*(i*v-a*g)+m*(i*f-a*d)),e[2]=n*(l*v-c*g)-s*(i*v-a*g)+m*(i*c-a*l),e[3]=-(n*(l*f-c*d)-s*(i*f-a*d)+h*(i*c-a*l)),e[4]=-(o*(d*v-f*g)-u*(l*v-c*g)+p*(l*f-c*d)),e[5]=r*(d*v-f*g)-u*(i*v-a*g)+p*(i*f-a*d),e[6]=-(r*(l*v-c*g)-o*(i*v-a*g)+p*(i*c-a*l)),e[7]=r*(l*f-c*d)-o*(i*f-a*d)+u*(i*c-a*l),e[8]=o*(h*v-f*m)-u*(s*v-c*m)+p*(s*f-c*h),e[9]=-(r*(h*v-f*m)-u*(n*v-a*m)+p*(n*f-a*h)),e[10]=r*(s*v-c*m)-o*(n*v-a*m)+p*(n*c-a*s),e[11]=-(r*(s*f-c*h)-o*(n*f-a*h)+u*(n*c-a*s)),e[12]=-(o*(h*g-d*m)-u*(s*g-l*m)+p*(s*d-l*h)),e[13]=r*(h*g-d*m)-u*(n*g-i*m)+p*(n*d-i*h),e[14]=-(r*(s*g-l*m)-o*(n*g-i*m)+p*(n*l-i*s)),e[15]=r*(s*d-l*h)-o*(n*d-i*h)+u*(n*l-i*s),e},determinant:function(e){var t=e[0],r=e[1],n=e[2],i=e[3],a=e[4],o=e[5],s=e[6],l=e[7],c=e[8],u=e[9],h=e[10],d=e[11],f=e[12],p=e[13],m=e[14],g=e[15],v=t*o-r*a,_=t*s-n*a,y=t*l-i*a,x=r*s-n*o,b=r*l-i*o,A=n*l-i*s,T=c*p-u*f,w=c*m-h*f,E=c*g-d*f,S=u*m-h*p,C=u*g-d*p,M=h*g-d*m;return v*M-_*C+y*S+x*E-b*w+A*T},multiply:function(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],l=t[5],c=t[6],u=t[7],h=t[8],d=t[9],f=t[10],p=t[11],m=t[12],g=t[13],v=t[14],_=t[15],y=r[0],x=r[1],b=r[2],A=r[3];return e[0]=y*n+x*s+b*h+A*m,e[1]=y*i+x*l+b*d+A*g,e[2]=y*a+x*c+b*f+A*v,e[3]=y*o+x*u+b*p+A*_,y=r[4],x=r[5],b=r[6],A=r[7],e[4]=y*n+x*s+b*h+A*m,e[5]=y*i+x*l+b*d+A*g,e[6]=y*a+x*c+b*f+A*v,e[7]=y*o+x*u+b*p+A*_,y=r[8],x=r[9],b=r[10],A=r[11],e[8]=y*n+x*s+b*h+A*m,e[9]=y*i+x*l+b*d+A*g,e[10]=y*a+x*c+b*f+A*v,e[11]=y*o+x*u+b*p+A*_,y=r[12],x=r[13],b=r[14],A=r[15],e[12]=y*n+x*s+b*h+A*m,e[13]=y*i+x*l+b*d+A*g,e[14]=y*a+x*c+b*f+A*v,e[15]=y*o+x*u+b*p+A*_,e},multiplyAffine:function(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[4],s=t[5],l=t[6],c=t[8],u=t[9],h=t[10],d=t[12],f=t[13],p=t[14],m=r[0],g=r[1],v=r[2];return e[0]=m*n+g*o+v*c,e[1]=m*i+g*s+v*u,e[2]=m*a+g*l+v*h,m=r[4],g=r[5],v=r[6],e[4]=m*n+g*o+v*c,e[5]=m*i+g*s+v*u,e[6]=m*a+g*l+v*h,m=r[8],g=r[9],v=r[10],e[8]=m*n+g*o+v*c,e[9]=m*i+g*s+v*u,e[10]=m*a+g*l+v*h,m=r[12],g=r[13],v=r[14],e[12]=m*n+g*o+v*c+d,e[13]=m*i+g*s+v*u+f,e[14]=m*a+g*l+v*h+p,e}};Ze.mul=Ze.multiply,Ze.mulAffine=Ze.multiplyAffine,Ze.translate=function(e,t,r){var n,i,a,o,s,l,c,u,h,d,f,p,m=r[0],g=r[1],v=r[2];return t===e?(e[12]=t[0]*m+t[4]*g+t[8]*v+t[12],e[13]=t[1]*m+t[5]*g+t[9]*v+t[13],e[14]=t[2]*m+t[6]*g+t[10]*v+t[14],e[15]=t[3]*m+t[7]*g+t[11]*v+t[15]):(n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],l=t[5],c=t[6],u=t[7],h=t[8],d=t[9],f=t[10],p=t[11],e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e[6]=c,e[7]=u,e[8]=h,e[9]=d,e[10]=f,e[11]=p,e[12]=n*m+s*g+h*v+t[12],e[13]=i*m+l*g+d*v+t[13],e[14]=a*m+c*g+f*v+t[14],e[15]=o*m+u*g+p*v+t[15]),e},Ze.scale=function(e,t,r){var n=r[0],i=r[1],a=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},Ze.rotate=function(e,t,r,n){var i,a,o,s,l,c,u,h,d,f,p,m,g,v,_,y,x,b,A,T,w,E,S,C,M=n[0],O=n[1],D=n[2],L=Math.sqrt(M*M+O*O+D*D);return Math.abs(L)0&&(a=1/Math.sqrt(a),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a),e},Qe.dot=function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},Qe.cross=function(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[0],s=r[1],l=r[2];return e[0]=i*l-a*s,e[1]=a*o-n*l,e[2]=n*s-i*o,e},Qe.lerp=function(e,t,r,n){var i=t[0],a=t[1],o=t[2];return e[0]=i+n*(r[0]-i),e[1]=a+n*(r[1]-a),e[2]=o+n*(r[2]-o),e},Qe.random=function(e,t){t=t||1;var r=2*ae()*Math.PI,n=2*ae()-1,i=Math.sqrt(1-n*n)*t;return e[0]=Math.cos(r)*i,e[1]=Math.sin(r)*i,e[2]=n*t,e},Qe.transformMat4=function(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[3]*n+r[7]*i+r[11]*a+r[15];return o=o||1,e[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/o,e[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/o,e[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/o,e},Qe.transformMat3=function(e,t,r){var n=t[0],i=t[1],a=t[2];return e[0]=n*r[0]+i*r[3]+a*r[6],e[1]=n*r[1]+i*r[4]+a*r[7],e[2]=n*r[2]+i*r[5]+a*r[8],e},Qe.transformQuat=function(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[0],s=r[1],l=r[2],c=r[3],u=c*n+s*a-l*i,h=c*i+l*n-o*a,d=c*a+o*i-s*n,f=-o*n-s*i-l*a;return e[0]=u*c+f*-o+h*-l-d*-s,e[1]=h*c+f*-s+d*-o-u*-l,e[2]=d*c+f*-l+u*-s-h*-o,e},Qe.rotateX=function(e,t,r,n){var i=[],a=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],a[0]=i[0],a[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),a[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2],e},Qe.rotateY=function(e,t,r,n){var i=[],a=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],a[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),a[1]=i[1],a[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2],e},Qe.rotateZ=function(e,t,r,n){var i=[],a=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],a[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),a[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),a[2]=i[2],e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2],e},Qe.forEach=function(){var e=Qe.create();return function(t,r,n,i,a,o){var s,l;for(r||(r=3),n||(n=0),l=i?Math.min(i*r+n,t.length):t.length,s=n;s1?0:Math.acos(i)};var Ke=Qe;Xe["import"](Ye);var Je=qe.create,$e={};function et(e){return e.material}function tt(e,t,r){return t.uniforms[r].value}function rt(e,t,r,n){return r!==n}function nt(e){return!0}function it(){}var at={float:M.FLOAT,byte:M.BYTE,ubyte:M.UNSIGNED_BYTE,short:M.SHORT,ushort:M.UNSIGNED_SHORT};function ot(e,t,r){this.availableAttributes=e,this.availableAttributeSymbols=t,this.indicesBuffer=r,this.vao=null}function st(e){var t,r;this.bind=function(e){t||(t=O["a"].createCanvas(),t.width=t.height=1,t.getContext("2d"));var n=e.gl,i=!r;i&&(r=n.createTexture()),n.bindTexture(n.TEXTURE_2D,r),i&&n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,t)},this.unbind=function(e){e.gl.bindTexture(e.gl.TEXTURE_2D,null)},this.isRenderable=function(){return!0}}var lt=T.extend((function(){return{canvas:null,_width:100,_height:100,devicePixelRatio:"undefined"!==typeof window&&window.devicePixelRatio||1,clearColor:[0,0,0,0],clearBit:17664,alpha:!0,depth:!0,stencil:!1,antialias:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!1,throwError:!0,gl:null,viewport:{},maxJointNumber:20,__currentFrameBuffer:null,_viewportStack:[],_clearStack:[],_sceneRendering:null}}),(function(){this.canvas||(this.canvas=O["a"].createCanvas());var e=this.canvas;try{var t={alpha:this.alpha,depth:this.depth,stencil:this.stencil,antialias:this.antialias,premultipliedAlpha:this.premultipliedAlpha,preserveDrawingBuffer:this.preserveDrawingBuffer};if(this.gl=e.getContext("webgl",t)||e.getContext("experimental-webgl",t),!this.gl)throw new Error;this._glinfo=new C(this.gl),this.gl.targetRenderer&&console.error("Already created a renderer"),this.gl.targetRenderer=this,this.resize()}catch(r){throw"Error creating WebGL Context "+r}this._programMgr=new Se(this),this._placeholderTexture=new st(this)}),{resize:function(e,t){var r=this.canvas,n=this.devicePixelRatio;null!=e?(r.style&&(r.style.width=e+"px",r.style.height=t+"px"),r.width=e*n,r.height=t*n,this._width=e,this._height=t):(this._width=r.width/n,this._height=r.height/n),this.setViewport(0,0,this._width,this._height)},getWidth:function(){return this._width},getHeight:function(){return this._height},getViewportAspect:function(){var e=this.viewport;return e.width/e.height},setDevicePixelRatio:function(e){this.devicePixelRatio=e,this.resize(this._width,this._height)},getDevicePixelRatio:function(){return this.devicePixelRatio},getGLExtension:function(e){return this._glinfo.getExtension(e)},getGLParameter:function(e){return this._glinfo.getParameter(e)},setViewport:function(e,t,r,n,i){if("object"===typeof e){var a=e;e=a.x,t=a.y,r=a.width,n=a.height,i=a.devicePixelRatio}i=i||this.devicePixelRatio,this.gl.viewport(e*i,t*i,r*i,n*i),this.viewport={x:e,y:t,width:r,height:n,devicePixelRatio:i}},saveViewport:function(){this._viewportStack.push(this.viewport)},restoreViewport:function(){this._viewportStack.length>0&&this.setViewport(this._viewportStack.pop())},saveClear:function(){this._clearStack.push({clearBit:this.clearBit,clearColor:this.clearColor})},restoreClear:function(){if(this._clearStack.length>0){var e=this._clearStack.pop();this.clearColor=e.clearColor,this.clearBit=e.clearBit}},bindSceneRendering:function(e){this._sceneRendering=e},render:function(e,t,r,n){var i=this.gl,a=this.clearColor;if(this.clearBit){i.colorMask(!0,!0,!0,!0),i.depthMask(!0);var o=this.viewport,s=!1,l=o.devicePixelRatio;(o.width!==this._width||o.height!==this._height||l&&l!==this.devicePixelRatio||o.x||o.y)&&(s=!0,i.enable(i.SCISSOR_TEST),i.scissor(o.x*l,o.y*l,o.width*l,o.height*l)),i.clearColor(a[0],a[1],a[2],a[3]),i.clear(this.clearBit),s&&i.disable(i.SCISSOR_TEST)}if(r||e.update(!1),e.updateLights(),t=t||e.getMainCamera(),t){t.update();var c=e.updateRenderList(t,!0);this._sceneRendering=e;var u=c.opaque,h=c.transparent,d=e.material;e.trigger("beforerender",this,e,t,c),n?(this.renderPreZ(u,e,t),i.depthFunc(i.LEQUAL)):i.depthFunc(i.LESS);for(var f=Je(),p=Ke.create(),m=0;m0){var s=e[i-1],l=s.joints?s.joints.length:0,c=a.joints?a.joints.length:0;if(c===l&&a.material===s.material&&a.lightGroup===s.lightGroup){a.__program=s.__program;continue}}var u=this._programMgr.getProgram(a,o,t);this.validateProgram(u),a.__program=u}},renderPass:function(e,t,r){this.trigger("beforerenderpass",this,e,t,r),r=r||{},r.getMaterial=r.getMaterial||et,r.getUniform=r.getUniform||tt,r.isMaterialChanged=r.isMaterialChanged||rt,r.beforeRender=r.beforeRender||it,r.afterRender=r.afterRender||it;var n=r.ifRender||nt;this.updatePrograms(e,this._sceneRendering,r),r.sortCompare&&e.sort(r.sortCompare);var i=this.viewport,a=i.devicePixelRatio,o=[i.x*a,i.y*a,i.width*a,i.height*a],s=this.devicePixelRatio,l=this.__currentFrameBuffer?[this.__currentFrameBuffer.getTextureWidth(),this.__currentFrameBuffer.getTextureHeight()]:[this._width*s,this._height*s],c=[o[2],o[3]],u=Date.now();t?(qe.copy(ct.VIEW,t.viewMatrix.array),qe.copy(ct.PROJECTION,t.projectionMatrix.array),qe.copy(ct.VIEWINVERSE,t.worldTransform.array)):(qe.identity(ct.VIEW),qe.identity(ct.PROJECTION),qe.identity(ct.VIEWINVERSE)),qe.multiply(ct.VIEWPROJECTION,ct.PROJECTION,ct.VIEW),qe.invert(ct.PROJECTIONINVERSE,ct.PROJECTION),qe.invert(ct.VIEWPROJECTIONINVERSE,ct.VIEWPROJECTION);for(var h,d,f,p,m,g,v,_,y,x,b,A,T=this.gl,w=this._sceneRendering,E=null,S=0;Sthis.getMaxJointNumber()){var a=i.getSubSkinMatricesTexture(e.__uid__,e.joints);t.useTextureSlot(this,a,r),t.setUniform(n,"1i","skinMatricesTexture",r),t.setUniform(n,"1f","skinMatricesTextureSize",a.width)}else{var o=i.getSubSkinMatrices(e.__uid__,e.joints);t.setUniformOfSemantic(n,"SKIN_MATRIX",o)}},_renderObject:function(e,t,r){var n=this.gl,i=e.geometry,a=e.mode;null==a&&(a=4);var o=null,s=e.isInstancedMesh&&e.isInstancedMesh();if(!s||(o=this.getGLExtension("ANGLE_instanced_arrays"),o)){var l;if(s&&(l=this._bindInstancedAttributes(e,r,o)),t.indicesBuffer){var c=this.getGLExtension("OES_element_index_uint"),u=c&&i.indices instanceof Uint32Array,h=u?n.UNSIGNED_INT:n.UNSIGNED_SHORT;s?o.drawElementsInstancedANGLE(a,t.indicesBuffer.count,h,0,e.getInstanceCount()):n.drawElements(a,t.indicesBuffer.count,h,0)}else s?o.drawArraysInstancedANGLE(a,0,i.vertexCount,e.getInstanceCount()):n.drawArrays(a,0,i.vertexCount);if(s)for(var d=0;dr?r:e}ht.add=function(e,t,r){return Ke.add(e.array,t.array,r.array),e._dirty=!0,e},ht.set=function(e,t,r,n){Ke.set(e.array,t,r,n),e._dirty=!0},ht.copy=function(e,t){return Ke.copy(e.array,t.array),e._dirty=!0,e},ht.cross=function(e,t,r){return Ke.cross(e.array,t.array,r.array),e._dirty=!0,e},ht.dist=function(e,t){return Ke.distance(e.array,t.array)},ht.distance=ht.dist,ht.div=function(e,t,r){return Ke.divide(e.array,t.array,r.array),e._dirty=!0,e},ht.divide=ht.div,ht.dot=function(e,t){return Ke.dot(e.array,t.array)},ht.len=function(e){return Ke.length(e.array)},ht.lerp=function(e,t,r,n){return Ke.lerp(e.array,t.array,r.array,n),e._dirty=!0,e},ht.min=function(e,t,r){return Ke.min(e.array,t.array,r.array),e._dirty=!0,e},ht.max=function(e,t,r){return Ke.max(e.array,t.array,r.array),e._dirty=!0,e},ht.mul=function(e,t,r){return Ke.multiply(e.array,t.array,r.array),e._dirty=!0,e},ht.multiply=ht.mul,ht.negate=function(e,t){return Ke.negate(e.array,t.array),e._dirty=!0,e},ht.normalize=function(e,t){return Ke.normalize(e.array,t.array),e._dirty=!0,e},ht.random=function(e,t){return Ke.random(e.array,t),e._dirty=!0,e},ht.scale=function(e,t,r){return Ke.scale(e.array,t.array,r),e._dirty=!0,e},ht.scaleAndAdd=function(e,t,r,n){return Ke.scaleAndAdd(e.array,t.array,r.array,n),e._dirty=!0,e},ht.sqrDist=function(e,t){return Ke.sqrDist(e.array,t.array)},ht.squaredDistance=ht.sqrDist,ht.sqrLen=function(e){return Ke.sqrLen(e.array)},ht.squaredLength=ht.sqrLen,ht.sub=function(e,t,r){return Ke.subtract(e.array,t.array,r.array),e._dirty=!0,e},ht.subtract=ht.sub,ht.transformMat3=function(e,t,r){return Ke.transformMat3(e.array,t.array,r.array),e._dirty=!0,e},ht.transformMat4=function(e,t,r){return Ke.transformMat4(e.array,t.array,r.array),e._dirty=!0,e},ht.transformQuat=function(e,t,r){return Ke.transformQuat(e.array,t.array,r.array),e._dirty=!0,e};var mt=Math.atan2,gt=Math.asin,vt=Math.abs;ht.eulerFromQuat=function(e,t,r){e._dirty=!0,t=t.array;var n=e.array,i=t[0],a=t[1],o=t[2],s=t[3],l=i*i,c=a*a,u=o*o,h=s*s;r=(r||"XYZ").toUpperCase();switch(r){case"XYZ":n[0]=mt(2*(i*s-a*o),h-l-c+u),n[1]=gt(pt(2*(i*o+a*s),-1,1)),n[2]=mt(2*(o*s-i*a),h+l-c-u);break;case"YXZ":n[0]=gt(pt(2*(i*s-a*o),-1,1)),n[1]=mt(2*(i*o+a*s),h-l-c+u),n[2]=mt(2*(i*a+o*s),h-l+c-u);break;case"ZXY":n[0]=gt(pt(2*(i*s+a*o),-1,1)),n[1]=mt(2*(a*s-o*i),h-l-c+u),n[2]=mt(2*(o*s-i*a),h-l+c-u);break;case"ZYX":n[0]=mt(2*(i*s+o*a),h-l-c+u),n[1]=gt(pt(2*(a*s-i*o),-1,1)),n[2]=mt(2*(i*a+o*s),h+l-c-u);break;case"YZX":n[0]=mt(2*(i*s-o*a),h-l+c-u),n[1]=mt(2*(a*s-i*o),h+l-c-u),n[2]=gt(pt(2*(i*a+o*s),-1,1));break;case"XZY":n[0]=mt(2*(i*s+a*o),h-l+c-u),n[1]=mt(2*(i*o+a*s),h+l-c-u),n[2]=gt(pt(2*(o*s-i*a),-1,1));break;default:console.warn("Unkown order: "+r)}return e},ht.eulerFromMat3=function(e,t,r){var n=t.array,i=n[0],a=n[3],o=n[6],s=n[1],l=n[4],c=n[7],u=n[2],h=n[5],d=n[8],f=e.array;r=(r||"XYZ").toUpperCase();switch(r){case"XYZ":f[1]=gt(pt(o,-1,1)),vt(o)<.99999?(f[0]=mt(-c,d),f[2]=mt(-a,i)):(f[0]=mt(h,l),f[2]=0);break;case"YXZ":f[0]=gt(-pt(c,-1,1)),vt(c)<.99999?(f[1]=mt(o,d),f[2]=mt(s,l)):(f[1]=mt(-u,i),f[2]=0);break;case"ZXY":f[0]=gt(pt(h,-1,1)),vt(h)<.99999?(f[1]=mt(-u,d),f[2]=mt(-a,l)):(f[1]=0,f[2]=mt(s,i));break;case"ZYX":f[1]=gt(-pt(u,-1,1)),vt(u)<.99999?(f[0]=mt(h,d),f[2]=mt(s,i)):(f[0]=0,f[2]=mt(-a,l));break;case"YZX":f[2]=gt(pt(s,-1,1)),vt(s)<.99999?(f[0]=mt(-c,l),f[1]=mt(-u,i)):(f[0]=0,f[1]=mt(o,d));break;case"XZY":f[2]=gt(-pt(a,-1,1)),vt(a)<.99999?(f[0]=mt(h,l),f[1]=mt(o,i)):(f[0]=mt(-c,d),f[1]=0);break;default:console.warn("Unkown order: "+r)}return e._dirty=!0,e},Object.defineProperties(ht,{POSITIVE_X:{get:function(){return new ht(1,0,0)}},NEGATIVE_X:{get:function(){return new ht(-1,0,0)}},POSITIVE_Y:{get:function(){return new ht(0,1,0)}},NEGATIVE_Y:{get:function(){return new ht(0,-1,0)}},POSITIVE_Z:{get:function(){return new ht(0,0,1)}},NEGATIVE_Z:{get:function(){return new ht(0,0,-1)}},UP:{get:function(){return new ht(0,1,0)}},ZERO:{get:function(){return new ht}}});var _t=ht,yt=1e-5,xt=function(e,t){this.origin=e||new _t,this.direction=t||new _t};xt.prototype={constructor:xt,intersectPlane:function(e,t){var r=e.normal.array,n=e.distance,i=this.origin.array,a=this.direction.array,o=Ke.dot(r,a);if(0===o)return null;t||(t=new _t);var s=(Ke.dot(r,i)-n)/o;return Ke.scaleAndAdd(t.array,i,a,-s),t._dirty=!0,t},mirrorAgainstPlane:function(e){var t=Ke.dot(e.normal.array,this.direction.array);Ke.scaleAndAdd(this.direction.array,this.direction.array,e.normal.array,2*-t),this.direction._dirty=!0},distanceToPoint:function(){var e=Ke.create();return function(t){Ke.sub(e,t,this.origin.array);var r=Ke.dot(e,this.direction.array);if(r<0)return Ke.distance(this.origin.array,t);var n=Ke.lenSquared(e);return Math.sqrt(n-r*r)}}(),intersectSphere:function(){var e=Ke.create();return function(t,r,n){var i=this.origin.array,a=this.direction.array;t=t.array,Ke.sub(e,t,i);var o=Ke.dot(e,a),s=Ke.squaredLength(e),l=s-o*o,c=r*r;if(!(l>c)){var u=Math.sqrt(c-l),h=o-u,d=o+u;return n||(n=new _t),h<0?d<0?null:(Ke.scaleAndAdd(n.array,i,a,d),n):(Ke.scaleAndAdd(n.array,i,a,h),n)}}}(),intersectBoundingBox:function(e,t){var r,n,i,a,o,s,l=this.direction.array,c=this.origin.array,u=e.min.array,h=e.max.array,d=1/l[0],f=1/l[1],p=1/l[2];if(d>=0?(r=(u[0]-c[0])*d,n=(h[0]-c[0])*d):(n=(u[0]-c[0])*d,r=(h[0]-c[0])*d),f>=0?(i=(u[1]-c[1])*f,a=(h[1]-c[1])*f):(a=(u[1]-c[1])*f,i=(h[1]-c[1])*f),r>a||i>n)return null;if((i>r||r!==r)&&(r=i),(a=0?(o=(u[2]-c[2])*p,s=(h[2]-c[2])*p):(s=(u[2]-c[2])*p,o=(h[2]-c[2])*p),r>s||o>n)return null;if((o>r||r!==r)&&(r=o),(s=0?r:n;return t||(t=new _t),Ke.scaleAndAdd(t.array,c,l,m),t},intersectTriangle:function(){var e=Ke.create(),t=Ke.create(),r=Ke.create(),n=Ke.create();return function(i,a,o,s,l,c){var u=this.direction.array,h=this.origin.array;i=i.array,a=a.array,o=o.array,Ke.sub(e,a,i),Ke.sub(t,o,i),Ke.cross(n,t,u);var d=Ke.dot(e,n);if(s){if(d>-yt)return null}else if(d>-yt&&d1)return null;Ke.cross(n,e,r);var p=Ke.dot(u,n)/d;if(p<0||p>1||f+p>1)return null;Ke.cross(n,e,t);var m=-Ke.dot(r,n)/d;return m<0?null:(l||(l=new _t),c&&_t.set(c,1-f-p,f,p),Ke.scaleAndAdd(l.array,h,u,m),l)}}(),applyTransform:function(e){_t.add(this.direction,this.direction,this.origin),_t.transformMat4(this.origin,this.origin,e),_t.transformMat4(this.direction,this.direction,e),_t.sub(this.direction,this.direction,this.origin),_t.normalize(this.direction,this.direction)},copy:function(e){_t.copy(this.origin,e.origin),_t.copy(this.direction,e.direction)},clone:function(){var e=new xt;return e.copy(this),e}};var bt=xt,At={create:function(){var e=new ie(4);return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e},clone:function(e){var t=new ie(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},fromValues:function(e,t,r,n){var i=new ie(4);return i[0]=e,i[1]=t,i[2]=r,i[3]=n,i},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e},set:function(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e},add:function(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e},subtract:function(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e}};At.sub=At.subtract,At.multiply=function(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e[3]=t[3]*r[3],e},At.mul=At.multiply,At.divide=function(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e[3]=t[3]/r[3],e},At.div=At.divide,At.min=function(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e[3]=Math.min(t[3],r[3]),e},At.max=function(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e[3]=Math.max(t[3],r[3]),e},At.scale=function(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e},At.scaleAndAdd=function(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e},At.distance=function(e,t){var r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2],a=t[3]-e[3];return Math.sqrt(r*r+n*n+i*i+a*a)},At.dist=At.distance,At.squaredDistance=function(e,t){var r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2],a=t[3]-e[3];return r*r+n*n+i*i+a*a},At.sqrDist=At.squaredDistance,At.length=function(e){var t=e[0],r=e[1],n=e[2],i=e[3];return Math.sqrt(t*t+r*r+n*n+i*i)},At.len=At.length,At.squaredLength=function(e){var t=e[0],r=e[1],n=e[2],i=e[3];return t*t+r*r+n*n+i*i},At.sqrLen=At.squaredLength,At.negate=function(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=-t[3],e},At.inverse=function(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e[3]=1/t[3],e},At.normalize=function(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=r*r+n*n+i*i+a*a;return o>0&&(o=1/Math.sqrt(o),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e[3]=t[3]*o),e},At.dot=function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]},At.lerp=function(e,t,r,n){var i=t[0],a=t[1],o=t[2],s=t[3];return e[0]=i+n*(r[0]-i),e[1]=a+n*(r[1]-a),e[2]=o+n*(r[2]-o),e[3]=s+n*(r[3]-s),e},At.random=function(e,t){return t=t||1,e[0]=ae(),e[1]=ae(),e[2]=ae(),e[3]=ae(),At.normalize(e,e),At.scale(e,e,t),e},At.transformMat4=function(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3];return e[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,e[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,e[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,e[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,e},At.transformQuat=function(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[0],s=r[1],l=r[2],c=r[3],u=c*n+s*a-l*i,h=c*i+l*n-o*a,d=c*a+o*i-s*n,f=-o*n-s*i-l*a;return e[0]=u*c+f*-o+h*-l-d*-s,e[1]=h*c+f*-s+d*-o-u*-l,e[2]=d*c+f*-l+u*-s-h*-o,e},At.forEach=function(){var e=At.create();return function(t,r,n,i,a,o){var s,l;for(r||(r=4),n||(n=0),l=i?Math.min(i*r+n,t.length):t.length,s=n;s.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Ke.cross(e,i,a),n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=1+o,St.normalize(n,n))}}(),St.setAxes=function(){var e=Et.create();return function(t,r,n,i){return e[0]=n[0],e[3]=n[1],e[6]=n[2],e[1]=i[0],e[4]=i[1],e[7]=i[2],e[2]=-r[0],e[5]=-r[1],e[8]=-r[2],St.normalize(t,St.fromMat3(t,e))}}(),St.clone=Tt.clone,St.fromValues=Tt.fromValues,St.copy=Tt.copy,St.set=Tt.set,St.identity=function(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e},St.setAxisAngle=function(e,t,r){r*=.5;var n=Math.sin(r);return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=Math.cos(r),e},St.add=Tt.add,St.multiply=function(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=r[0],l=r[1],c=r[2],u=r[3];return e[0]=n*u+o*s+i*c-a*l,e[1]=i*u+o*l+a*s-n*c,e[2]=a*u+o*c+n*l-i*s,e[3]=o*u-n*s-i*l-a*c,e},St.mul=St.multiply,St.scale=Tt.scale,St.rotateX=function(e,t,r){r*=.5;var n=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(r),l=Math.cos(r);return e[0]=n*l+o*s,e[1]=i*l+a*s,e[2]=a*l-i*s,e[3]=o*l-n*s,e},St.rotateY=function(e,t,r){r*=.5;var n=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(r),l=Math.cos(r);return e[0]=n*l-a*s,e[1]=i*l+o*s,e[2]=a*l+n*s,e[3]=o*l-i*s,e},St.rotateZ=function(e,t,r){r*=.5;var n=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(r),l=Math.cos(r);return e[0]=n*l+i*s,e[1]=i*l-n*s,e[2]=a*l+o*s,e[3]=o*l-a*s,e},St.calculateW=function(e,t){var r=t[0],n=t[1],i=t[2];return e[0]=r,e[1]=n,e[2]=i,e[3]=Math.sqrt(Math.abs(1-r*r-n*n-i*i)),e},St.dot=Tt.dot,St.lerp=Tt.lerp,St.slerp=function(e,t,r,n){var i,a,o,s,l,c=t[0],u=t[1],h=t[2],d=t[3],f=r[0],p=r[1],m=r[2],g=r[3];return a=c*f+u*p+h*m+d*g,a<0&&(a=-a,f=-f,p=-p,m=-m,g=-g),1-a>1e-6?(i=Math.acos(a),o=Math.sin(i),s=Math.sin((1-n)*i)/o,l=Math.sin(n*i)/o):(s=1-n,l=n),e[0]=s*c+l*f,e[1]=s*u+l*p,e[2]=s*h+l*m,e[3]=s*d+l*g,e},St.invert=function(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=r*r+n*n+i*i+a*a,s=o?1/o:0;return e[0]=-r*s,e[1]=-n*s,e[2]=-i*s,e[3]=a*s,e},St.conjugate=function(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e},St.length=Tt.length,St.len=St.length,St.squaredLength=Tt.squaredLength,St.sqrLen=St.squaredLength,St.normalize=Tt.normalize,St.fromMat3=function(e,t){var r,n=t[0]+t[4]+t[8];if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else{var i=0;t[4]>t[0]&&(i=1),t[8]>t[3*i+i]&&(i=2);var a=(i+1)%3,o=(i+2)%3;r=Math.sqrt(t[3*i+i]-t[3*a+a]-t[3*o+o]+1),e[i]=.5*r,r=.5/r,e[3]=(t[3*a+o]-t[3*o+a])*r,e[a]=(t[3*a+i]+t[3*i+a])*r,e[o]=(t[3*o+i]+t[3*i+o])*r}return e};var Ct=St,Mt=function(){this._axisX=new _t,this._axisY=new _t,this._axisZ=new _t,this.array=qe.create(),this._dirty=!0};Mt.prototype={constructor:Mt,setArray:function(e){for(var t=0;t0){var t=this.min,r=this.max,n=t.array,i=r.array;Ft(n,e[0]),Ft(i,e[0]);for(var a=1;ai[0]&&(i[0]=o[0]),o[1]>i[1]&&(i[1]=o[1]),o[2]>i[2]&&(i[2]=o[2])}t._dirty=!0,r._dirty=!0}},union:function(e){var t=this.min,r=this.max;return Ke.min(t.array,t.array,e.min.array),Ke.max(r.array,r.array,e.max.array),t._dirty=!0,r._dirty=!0,this},intersection:function(e){var t=this.min,r=this.max;return Ke.max(t.array,t.array,e.min.array),Ke.min(r.array,r.array,e.max.array),t._dirty=!0,r._dirty=!0,this},intersectBoundingBox:function(e){var t=this.min.array,r=this.max.array,n=e.min.array,i=e.max.array;return!(t[0]>i[0]||t[1]>i[1]||t[2]>i[2]||r[0]=i[0]&&r[1]>=i[1]&&r[2]>=i[2]},containPoint:function(e){var t=this.min.array,r=this.max.array,n=e.array;return t[0]<=n[0]&&t[1]<=n[1]&&t[2]<=n[2]&&r[0]>=n[0]&&r[1]>=n[1]&&r[2]>=n[2]},isFinite:function(){var e=this.min.array,t=this.max.array;return isFinite(e[0])&&isFinite(e[1])&&isFinite(e[2])&&isFinite(t[0])&&isFinite(t[1])&&isFinite(t[2])},applyTransform:function(e){this.transformFrom(this,e)},transformFrom:function(){var e=Ke.create(),t=Ke.create(),r=Ke.create(),n=Ke.create(),i=Ke.create(),a=Ke.create();return function(o,s){var l=o.min.array,c=o.max.array,u=s.array;return e[0]=u[0]*l[0],e[1]=u[1]*l[0],e[2]=u[2]*l[0],t[0]=u[0]*c[0],t[1]=u[1]*c[0],t[2]=u[2]*c[0],r[0]=u[4]*l[1],r[1]=u[5]*l[1],r[2]=u[6]*l[1],n[0]=u[4]*c[1],n[1]=u[5]*c[1],n[2]=u[6]*c[1],i[0]=u[8]*l[2],i[1]=u[9]*l[2],i[2]=u[10]*l[2],a[0]=u[8]*c[2],a[1]=u[9]*c[2],a[2]=u[10]*c[2],l=this.min.array,c=this.max.array,l[0]=Math.min(e[0],t[0])+Math.min(r[0],n[0])+Math.min(i[0],a[0])+u[12],l[1]=Math.min(e[1],t[1])+Math.min(r[1],n[1])+Math.min(i[1],a[1])+u[13],l[2]=Math.min(e[2],t[2])+Math.min(r[2],n[2])+Math.min(i[2],a[2])+u[14],c[0]=Math.max(e[0],t[0])+Math.max(r[0],n[0])+Math.max(i[0],a[0])+u[12],c[1]=Math.max(e[1],t[1])+Math.max(r[1],n[1])+Math.max(i[1],a[1])+u[13],c[2]=Math.max(e[2],t[2])+Math.max(r[2],n[2])+Math.max(i[2],a[2])+u[14],this.min._dirty=!0,this.max._dirty=!0,this}}(),applyProjection:function(e){var t=this.min.array,r=this.max.array,n=e.array,i=t[0],a=t[1],o=t[2],s=r[0],l=r[1],c=t[2],u=r[0],h=r[1],d=r[2];if(1===n[15])t[0]=n[0]*i+n[12],t[1]=n[5]*a+n[13],r[2]=n[10]*o+n[14],r[0]=n[0]*u+n[12],r[1]=n[5]*h+n[13],t[2]=n[10]*d+n[14];else{var f=-1/o;t[0]=n[0]*i*f,t[1]=n[5]*a*f,r[2]=(n[10]*o+n[14])*f,f=-1/c,r[0]=n[0]*s*f,r[1]=n[5]*l*f,f=-1/d,t[2]=(n[10]*d+n[14])*f}return this.min._dirty=!0,this.max._dirty=!0,this},updateVertices:function(){var e=this.vertices;if(!e){e=[];for(var t=0;t<8;t++)e[t]=Ke.fromValues(0,0,0);this.vertices=e}var r=this.min.array,n=this.max.array;return Bt(e[0],r[0],r[1],r[2]),Bt(e[1],r[0],n[1],r[2]),Bt(e[2],n[0],r[1],r[2]),Bt(e[3],n[0],n[1],r[2]),Bt(e[4],r[0],r[1],n[2]),Bt(e[5],r[0],n[1],n[2]),Bt(e[6],n[0],r[1],n[2]),Bt(e[7],n[0],n[1],n[2]),this},copy:function(e){var t=this.min,r=this.max;return Ft(t.array,e.min.array),Ft(r.array,e.max.array),t._dirty=!0,r._dirty=!0,this},clone:function(){var e=new Ut;return e.copy(this),e}};var zt=Ut,jt=0,Vt=T.extend({name:"",position:null,rotation:null,scale:null,worldTransform:null,localTransform:null,autoUpdateLocalTransform:!0,_parent:null,_scene:null,_needsUpdateWorldTransform:!0,_inIterating:!1,__depth:0},(function(){this.name||(this.name=(this.type||"NODE")+"_"+jt++),this.position||(this.position=new _t),this.rotation||(this.rotation=new It),this.scale||(this.scale=new _t(1,1,1)),this.worldTransform=new Lt,this.localTransform=new Lt,this._children=[]}),{target:null,invisible:!1,isSkinnedMesh:function(){return!1},isRenderable:function(){return!1},setName:function(e){var t=this._scene;if(t){var r=t._nodeRepository;delete r[this.name],r[e]=this}this.name=e},add:function(e){var t=e._parent;if(t!==this){t&&t.remove(e),e._parent=this,this._children.push(e);var r=this._scene;r&&r!==e.scene&&e.traverse(this._addSelfToScene,this),e._needsUpdateWorldTransform=!0}},remove:function(e){var t=this._children,r=t.indexOf(e);r<0||(t.splice(r,1),e._parent=null,this._scene&&e.traverse(this._removeSelfFromScene,this))},removeAll:function(){for(var e=this._children,t=0;t0},beforeRender:function(e){},afterRender:function(e,t){},getBoundingBox:function(e,t){return t=Gt.prototype.getBoundingBox.call(this,e,t),this.geometry&&this.geometry.boundingBox&&t.union(this.geometry.boundingBox),t},clone:function(){var e=["castShadow","receiveShadow","mode","culling","cullFace","frontFace","frustumCulling","renderOrder","lineWidth","ignorePicking","ignorePreZ","ignoreGBuffer"];return function(){var t=Gt.prototype.clone.call(this);t.geometry=this.geometry,t.material=this.material;for(var r=0;r=0&&b[y]>1e-4&&(Ke.transformMat4(w,x,v[A[y]]),Ke.scaleAndAdd(T,T,w,b[y]));E.set(_,T)}}for(_=0;_>t;return e+1},dispose:function(e){var t=this._cache;t.use(e.__uid__);var r=t.get("webgl_texture");r&&e.gl.deleteTexture(r),t.deleteContext(e.__uid__)},isRenderable:function(){},isPowerOfTwo:function(){}});Object.defineProperty(Qt.prototype,"width",{get:function(){return this._width},set:function(e){this._width=e}}),Object.defineProperty(Qt.prototype,"height",{get:function(){return this._height},set:function(e){this._height=e}}),Qt.BYTE=M.BYTE,Qt.UNSIGNED_BYTE=M.UNSIGNED_BYTE,Qt.SHORT=M.SHORT,Qt.UNSIGNED_SHORT=M.UNSIGNED_SHORT,Qt.INT=M.INT,Qt.UNSIGNED_INT=M.UNSIGNED_INT,Qt.FLOAT=M.FLOAT,Qt.HALF_FLOAT=36193,Qt.UNSIGNED_INT_24_8_WEBGL=34042,Qt.DEPTH_COMPONENT=M.DEPTH_COMPONENT,Qt.DEPTH_STENCIL=M.DEPTH_STENCIL,Qt.ALPHA=M.ALPHA,Qt.RGB=M.RGB,Qt.RGBA=M.RGBA,Qt.LUMINANCE=M.LUMINANCE,Qt.LUMINANCE_ALPHA=M.LUMINANCE_ALPHA,Qt.SRGB=35904,Qt.SRGB_ALPHA=35906,Qt.COMPRESSED_RGB_S3TC_DXT1_EXT=33776,Qt.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777,Qt.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778,Qt.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779,Qt.NEAREST=M.NEAREST,Qt.LINEAR=M.LINEAR,Qt.NEAREST_MIPMAP_NEAREST=M.NEAREST_MIPMAP_NEAREST,Qt.LINEAR_MIPMAP_NEAREST=M.LINEAR_MIPMAP_NEAREST,Qt.NEAREST_MIPMAP_LINEAR=M.NEAREST_MIPMAP_LINEAR,Qt.LINEAR_MIPMAP_LINEAR=M.LINEAR_MIPMAP_LINEAR,Qt.REPEAT=M.REPEAT,Qt.CLAMP_TO_EDGE=M.CLAMP_TO_EDGE,Qt.MIRRORED_REPEAT=M.MIRRORED_REPEAT;var Kt=Qt,Jt=Ht.extend({skeleton:null,joints:null},(function(){this.joints||(this.joints=[])}),{offsetMatrix:null,isInstancedMesh:function(){return!1},isSkinnedMesh:function(){return!!(this.skeleton&&this.joints&&this.joints.length>0)},clone:function(){var e=Ht.prototype.clone.call(this);return e.skeleton=this.skeleton,this.joints&&(e.joints=this.joints.slice()),e}});Jt.POINTS=M.POINTS,Jt.LINES=M.LINES,Jt.LINE_LOOP=M.LINE_LOOP,Jt.LINE_STRIP=M.LINE_STRIP,Jt.TRIANGLES=M.TRIANGLES,Jt.TRIANGLE_STRIP=M.TRIANGLE_STRIP,Jt.TRIANGLE_FAN=M.TRIANGLE_FAN,Jt.BACK=M.BACK,Jt.FRONT=M.FRONT,Jt.FRONT_AND_BACK=M.FRONT_AND_BACK,Jt.CW=M.CW,Jt.CCW=M.CCW;var $t=Jt,er={isPowerOfTwo:function(e){return 0===(e&e-1)},nextPowerOfTwo:function(e){return e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e++,e},nearestPowerOfTwo:function(e){return Math.pow(2,Math.round(Math.log(e)/Math.LN2))}},tr=er,rr=tr.isPowerOfTwo;function nr(e){return Math.pow(2,Math.round(Math.log(e)/Math.LN2))}function ir(e,t){var r=nr(e.width),n=nr(e.height);t=t||document.createElement("canvas"),t.width=r,t.height=n;var i=t.getContext("2d");return i.drawImage(e.image,0,0,r,n),t}var ar=Kt.extend((function(){return{image:null,pixels:null,mipmaps:[],convertToPOT:!1}}),{textureType:"texture2D",update:function(e){var t=e.gl;t.bindTexture(t.TEXTURE_2D,this._cache.get("webgl_texture")),this.updateCommon(e);var r=this.format,n=this.type,i=!(!this.convertToPOT||this.mipmaps.length||!this.image||this.wrapS!==Kt.REPEAT&&this.wrapT!==Kt.REPEAT||!this.NPOT);t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,i?this.wrapS:this.getAvailableWrapS()),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,i?this.wrapT:this.getAvailableWrapT()),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,i?this.magFilter:this.getAvailableMagFilter()),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,i?this.minFilter:this.getAvailableMinFilter());var a=e.getGLExtension("EXT_texture_filter_anisotropic");if(a&&this.anisotropic>1&&t.texParameterf(t.TEXTURE_2D,a.TEXTURE_MAX_ANISOTROPY_EXT,this.anisotropic),36193===n){var o=e.getGLExtension("OES_texture_half_float");o||(n=M.FLOAT)}if(this.mipmaps.length)for(var s=this.width,l=this.height,c=0;c=Kt.COMPRESSED_RGB_S3TC_DXT1_EXT?e.compressedTexImage2D(e.TEXTURE_2D,r,a,n,i,0,t.pixels):e.texImage2D(e.TEXTURE_2D,r,a,n,i,0,a,o,t.pixels)},generateMipmap:function(e){var t=e.gl;this.useMipmap&&!this.NPOT&&(t.bindTexture(t.TEXTURE_2D,this._cache.get("webgl_texture")),t.generateMipmap(t.TEXTURE_2D))},isPowerOfTwo:function(){return rr(this.width)&&rr(this.height)},isRenderable:function(){return this.image?this.image.width>0&&this.image.height>0:!(!this.width||!this.height)},bind:function(e){e.gl.bindTexture(e.gl.TEXTURE_2D,this.getWebGLTexture(e))},unbind:function(e){e.gl.bindTexture(e.gl.TEXTURE_2D,null)},load:function(e,t){var r=O["a"].createImage();t&&(r.crossOrigin=t);var n=this;return r.onload=function(){n.dirty(),n.trigger("success",n)},r.onerror=function(){n.trigger("error",n)},r.src=e,this.image=r,this}});Object.defineProperty(ar.prototype,"width",{get:function(){return this.image?this.image.width:this._width},set:function(e){this.image?console.warn("Texture from image can't set width"):(this._width!==e&&this.dirty(),this._width=e)}}),Object.defineProperty(ar.prototype,"height",{get:function(){return this.image?this.image.height:this._height},set:function(e){this.image?console.warn("Texture from image can't set height"):(this._height!==e&&this.dirty(),this._height=e)}});var or=ar;function sr(e){return{byte:O["a"].Int8Array,ubyte:O["a"].Uint8Array,short:O["a"].Int16Array,ushort:O["a"].Uint16Array}[e]||O["a"].Float32Array}function lr(e){return"attr_"+e}function cr(e,t,r,n){switch(this.name=e,this.type=t,this.size=r,this.semantic=n||"",this.value=null,r){case 1:this.get=function(e){return this.value[e]},this.set=function(e,t){this.value[e]=t},this.copy=function(e,t){this.value[e]=this.value[e]};break;case 2:this.get=function(e,t){var r=this.value;return t[0]=r[2*e],t[1]=r[2*e+1],t},this.set=function(e,t){var r=this.value;r[2*e]=t[0],r[2*e+1]=t[1]},this.copy=function(e,t){var r=this.value;t*=2,e*=2,r[e]=r[t],r[e+1]=r[t+1]};break;case 3:this.get=function(e,t){var r=3*e,n=this.value;return t[0]=n[r],t[1]=n[r+1],t[2]=n[r+2],t},this.set=function(e,t){var r=3*e,n=this.value;n[r]=t[0],n[r+1]=t[1],n[r+2]=t[2]},this.copy=function(e,t){var r=this.value;t*=3,e*=3,r[e]=r[t],r[e+1]=r[t+1],r[e+2]=r[t+2]};break;case 4:this.get=function(e,t){var r=this.value,n=4*e;return t[0]=r[n],t[1]=r[n+1],t[2]=r[n+2],t[3]=r[n+3],t},this.set=function(e,t){var r=this.value,n=4*e;r[n]=t[0],r[n+1]=t[1],r[n+2]=t[2],r[n+3]=t[3]},this.copy=function(e,t){var r=this.value;t*=4,e*=4,r[e]=r[t],r[e+1]=r[t+1],r[e+2]=r[t+2],r[e+3]=r[t+3]}}}function ur(e,t,r,n,i){this.name=e,this.type=t,this.buffer=r,this.size=n,this.semantic=i,this.symbol="",this.needsRemove=!1}function hr(e){this.buffer=e,this.count=0}cr.prototype.init=function(e){if(!this.value||this.value.length!==e*this.size){var t=sr(this.type);this.value=new t(e*this.size)}},cr.prototype.fromArray=function(e){var t,r=sr(this.type);if(e[0]&&e[0].length){var n=0,i=this.size;t=new r(e.length*i);for(var a=0;a=0){t||(t=[]);var r=this.indices;return t[0]=r[3*e],t[1]=r[3*e+1],t[2]=r[3*e+2],t}},setTriangleIndices:function(e,t){var r=this.indices;r[3*e]=t[0],r[3*e+1]=t[1],r[3*e+2]=t[2]},isUseIndices:function(){return!!this.indices},initIndicesFromArray:function(e){var t,r=this.vertexCount>65535?O["a"].Uint32Array:O["a"].Uint16Array;if(e[0]&&e[0].length){var n=0,i=3;t=new r(e.length*i);for(var a=0;a=0&&(t.splice(r,1),delete this.attributes[e],!0)},getAttribute:function(e){return this.attributes[e]},getEnabledAttributes:function(){var e=this._enabledAttributes,t=this._attributeList;if(e)return e;for(var r=[],n=this.vertexCount,i=0;ia[0]&&(a[0]=s),l>a[1]&&(a[1]=l),c>a[2]&&(a[2]=c)}r._dirty=!0,n._dirty=!0}},generateVertexNormals:function(){if(this.vertexCount){var e=this.indices,t=this.attributes,r=t.position.value,n=t.normal.value;if(n&&n.length===r.length)for(var i=0;i65535&&(this.indices=new O["a"].Uint32Array(this.indices));for(var e=this.attributes,t=this.indices,r=this.getEnabledAttributes(),n={},i=0;ithis.distance,i=1;i<8;i++)if(Ke.dot(t[i].array,r)>this.distance!=n)return!0},intersectLine:function(){var e=Ke.create();return function(t,r,n){var i=this.distanceToPoint(t),a=this.distanceToPoint(r);if(i>0&&a>0||i<0&&a<0)return null;var o=this.normal.array,s=this.distance,l=t.array;Ke.sub(e,r.array,t.array),Ke.normalize(e,e);var c=Ke.dot(o,e);if(0===c)return null;n||(n=new _t);var u=(Ke.dot(o,l)-s)/c;return Ke.scaleAndAdd(n.array,l,e,-u),n._dirty=!0,n}}(),applyTransform:function(){var e=qe.create(),t=Tt.create(),r=Tt.create();return r[3]=1,function(n){n=n.array,Ke.scale(r,this.normal.array,this.distance),Tt.transformMat4(r,r,n),this.distance=Ke.dot(r,this.normal.array),qe.invert(e,n),qe.transpose(e,e),t[3]=0,Ke.copy(t,this.normal.array),Tt.transformMat4(t,t,e),Ke.copy(this.normal.array,t)}}(),copy:function(e){Ke.copy(this.normal.array,e.normal.array),this.normal._dirty=!0,this.distance=e.distance},clone:function(){var e=new Or;return e.copy(this),e}};var Dr=Or,Lr=Ke.set,Nr=Ke.copy,Rr=Ke.transformMat4,Pr=Math.min,Ir=Math.max,Br=function(){this.planes=[];for(var e=0;e<6;e++)this.planes.push(new Dr);this.boundingBox=new zt,this.vertices=[];for(e=0;e<8;e++)this.vertices[e]=Ke.fromValues(0,0,0)};Br.prototype={setFromProjection:function(e){var t=this.planes,r=e.array,n=r[0],i=r[1],a=r[2],o=r[3],s=r[4],l=r[5],c=r[6],u=r[7],h=r[8],d=r[9],f=r[10],p=r[11],m=r[12],g=r[13],v=r[14],_=r[15];Lr(t[0].normal.array,o-n,u-s,p-h),t[0].distance=-(_-m),t[0].normalize(),Lr(t[1].normal.array,o+n,u+s,p+h),t[1].distance=-(_+m),t[1].normalize(),Lr(t[2].normal.array,o+i,u+l,p+d),t[2].distance=-(_+g),t[2].normalize(),Lr(t[3].normal.array,o-i,u-l,p-d),t[3].distance=-(_-g),t[3].normalize(),Lr(t[4].normal.array,o-a,u-c,p-f),t[4].distance=-(_-v),t[4].normalize(),Lr(t[5].normal.array,o+a,u+c,p+f),t[5].distance=-(_+v),t[5].normalize();var y=this.boundingBox,x=this.vertices;if(0===_){var b=l/n,A=-v/(f-1),T=-v/(f+1),w=-T/l,E=-A/l;y.min.set(-w*b,-w,T),y.max.set(w*b,w,A),Lr(x[0],-w*b,-w,T),Lr(x[1],-w*b,w,T),Lr(x[2],w*b,-w,T),Lr(x[3],w*b,w,T),Lr(x[4],-E*b,-E,A),Lr(x[5],-E*b,E,A),Lr(x[6],E*b,-E,A),Lr(x[7],E*b,E,A)}else{var S=(-1-m)/n,C=(1-m)/n,M=(1-g)/l,O=(-1-g)/l,D=(-1-v)/f,L=(1-v)/f;y.min.set(Math.min(S,C),Math.min(O,M),Math.min(L,D)),y.max.set(Math.max(C,S),Math.max(M,O),Math.max(D,L));var N=y.min.array,R=y.max.array;Lr(x[0],N[0],N[1],N[2]),Lr(x[1],N[0],R[1],N[2]),Lr(x[2],R[0],N[1],N[2]),Lr(x[3],R[0],R[1],N[2]),Lr(x[4],N[0],N[1],R[2]),Lr(x[5],N[0],R[1],R[2]),Lr(x[6],R[0],N[1],R[2]),Lr(x[7],R[0],R[1],R[2])}},getTransformedBoundingBox:function(){var e=Ke.create();return function(t,r){var n=this.vertices,i=r.array,a=t.min,o=t.max,s=a.array,l=o.array,c=n[0];Rr(e,c,i),Nr(s,e),Nr(l,e);for(var u=1;u<8;u++)c=n[u],Rr(e,c,i),s[0]=Pr(e[0],s[0]),s[1]=Pr(e[1],s[1]),s[2]=Pr(e[2],s[2]),l[0]=Ir(e[0],l[0]),l[1]=Ir(e[1],l[1]),l[2]=Ir(e[2],l[2]);return a._dirty=!0,o._dirty=!0,t}}()};var Fr=Br,Ur=Gt.extend((function(){return{projectionMatrix:new Lt,invProjectionMatrix:new Lt,viewMatrix:new Lt,frustum:new Fr}}),(function(){this.update(!0)}),{update:function(e){Gt.prototype.update.call(this,e),Lt.invert(this.viewMatrix,this.worldTransform),this.updateProjectionMatrix(),Lt.invert(this.invProjectionMatrix,this.projectionMatrix),this.frustum.setFromProjection(this.projectionMatrix)},setViewMatrix:function(e){Lt.copy(this.viewMatrix,e),Lt.invert(this.worldTransform,e),this.decomposeWorldTransform()},decomposeProjectionMatrix:function(){},setProjectionMatrix:function(e){Lt.copy(this.projectionMatrix,e),Lt.invert(this.invProjectionMatrix,e),this.decomposeProjectionMatrix()},updateProjectionMatrix:function(){},castRay:function(){var e=Tt.create();return function(t,r){var n=void 0!==r?r:new bt,i=t.array[0],a=t.array[1];return Tt.set(e,i,a,-1,1),Tt.transformMat4(e,e,this.invProjectionMatrix.array),Tt.transformMat4(e,e,this.worldTransform.array),Ke.scale(n.origin.array,e,1/e[3]),Tt.set(e,i,a,1,1),Tt.transformMat4(e,e,this.invProjectionMatrix.array),Tt.transformMat4(e,e,this.worldTransform.array),Ke.scale(e,e,1/e[3]),Ke.sub(n.direction.array,e,n.origin.array),Ke.normalize(n.direction.array,n.direction.array),n.direction._dirty=!0,n.origin._dirty=!0,n}}()}),zr=Ur,jr=qe.create(),Vr=qe.create(),Gr={};function kr(e){var t=[],r=Object.keys(e);r.sort();for(var n=0;n0&&console.warn("Found multiple camera in one scene. Use the fist one."),this._cameraList.push(e)):e instanceof Mr&&this.lights.push(e),e.name&&(this._nodeRepository[e.name]=e)},removeFromScene:function(e){var t;e instanceof zr?(t=this._cameraList.indexOf(e),t>=0&&this._cameraList.splice(t,1)):e instanceof Mr&&(t=this.lights.indexOf(e),t>=0&&this.lights.splice(t,1)),e.name&&delete this._nodeRepository[e.name]},getNode:function(e){return this._nodeRepository[e]},setMainCamera:function(e){var t=this._cameraList.indexOf(e);t>=0&&this._cameraList.splice(t,1),this._cameraList.unshift(e)},getMainCamera:function(){return this._cameraList[0]},getLights:function(){return this.lights},updateLights:function(){var e=this.lights;this._previousLightNumber=this._lightNumber;for(var t={},r=0;r0&&this._doUpdateRenderList(o,t,r,n,i)}},isFrustumCulled:function(){var e=new zt,t=new Lt;return function(r,n,i){var a=r.boundingBox;if(a||(a=r.skeleton&&r.skeleton.boundingBox?r.skeleton.boundingBox:r.geometry.boundingBox),!a)return!1;if(t.array=i,e.transformFrom(a,t),r.castShadow&&this.viewBoundingBoxLastFrame.union(e),r.frustumCulling){if(!e.intersectBoundingBox(n.frustum.boundingBox))return!0;t.array=n.projectionMatrix.array,e.max.array[2]>0&&e.min.array[2]<0&&(e.max.array[2]=-1e-20),e.applyProjection(t);var o=e.min.array,s=e.max.array;if(s[0]<-1||o[0]>1||s[1]<-1||o[1]>1||s[2]<-1||o[2]>1)return!0}return!1}}(),_updateLightUniforms:function(){var e=this.lights;e.sort(Xr);var t=this._lightUniforms;for(var r in t)for(var n in t[r])t[r][n].value.length=0;for(var i=0;i1&&t.texParameterf(t.TEXTURE_CUBE_MAP,i.TEXTURE_MAX_ANISOTROPY_EXT,this.anisotropic),36193===n){var a=e.getGLExtension("OES_texture_half_float");a||(n=M.FLOAT)}if(this.mipmaps.length)for(var o=this.width,s=this.height,l=0;l0&&e.height>0}Object.defineProperty(Kr.prototype,"width",{get:function(){return this.image&&this.image.px?this.image.px.width:this._width},set:function(e){this.image&&this.image.px?console.warn("Texture from image can't set width"):(this._width!==e&&this.dirty(),this._width=e)}}),Object.defineProperty(Kr.prototype,"height",{get:function(){return this.image&&this.image.px?this.image.px.height:this._height},set:function(e){this.image&&this.image.px?console.warn("Texture from image can't set height"):(this._height!==e&&this.dirty(),this._height=e)}});var $r=Kr,en=zr.extend({fov:50,aspect:1,near:.1,far:2e3},{updateProjectionMatrix:function(){var e=this.fov/180*Math.PI;this.projectionMatrix.perspective(e,this.aspect,this.near,this.far)},decomposeProjectionMatrix:function(){var e=this.projectionMatrix.array,t=2*Math.atan(1/e[5]);this.fov=t/Math.PI*180,this.aspect=e[5]/e[0],this.near=e[14]/(e[10]-1),this.far=e[14]/(e[10]+1)},clone:function(){var e=zr.prototype.clone.call(this);return e.fov=this.fov,e.aspect=this.aspect,e.near=this.near,e.far=this.far,e}}),tn=en,rn="framebuffer",nn="renderbuffer",an=nn+"_width",on=nn+"_height",sn=nn+"_attached",ln="depthtexture_attached",cn=M.FRAMEBUFFER,un=M.RENDERBUFFER,hn=M.DEPTH_ATTACHMENT,dn=M.COLOR_ATTACHMENT0,fn=T.extend({depthBuffer:!0,viewport:null,_width:0,_height:0,_textures:null,_boundRenderer:null},(function(){this._cache=new qt,this._textures={}}),{getTextureWidth:function(){return this._width},getTextureHeight:function(){return this._height},bind:function(e){if(e.__currentFrameBuffer){if(e.__currentFrameBuffer===this)return;console.warn("Renderer already bound with another framebuffer. Unbind it first")}e.__currentFrameBuffer=this;var t=e.gl;t.bindFramebuffer(cn,this._getFrameBufferGL(e)),this._boundRenderer=e;var r=this._cache;r.put("viewport",e.viewport);var n,i,a=!1;for(var o in this._textures){a=!0;var s=this._textures[o];s&&(n=s.texture.width,i=s.texture.height,this._doAttach(e,s.texture,o,s.target))}this._width=n,this._height=i,!a&&this.depthBuffer&&console.error("Must attach texture before bind, or renderbuffer may have incorrect width and height."),this.viewport?e.setViewport(this.viewport):e.setViewport(0,0,n,i,1);var l=r.get("attached_textures");if(l)for(var o in l)if(!this._textures[o]){var c=l[o];this._doDetach(t,o,c)}if(!r.get(ln)&&this.depthBuffer){r.miss(nn)&&r.put(nn,t.createRenderbuffer());var u=r.get(nn);n===r.get(an)&&i===r.get(on)||(t.bindRenderbuffer(un,u),t.renderbufferStorage(un,t.DEPTH_COMPONENT16,n,i),r.put(an,n),r.put(on,i),t.bindRenderbuffer(un,null)),r.get(sn)||(t.framebufferRenderbuffer(cn,hn,un,u),r.put(sn,!0))}},unbind:function(e){e.__currentFrameBuffer=null;var t=e.gl;t.bindFramebuffer(cn,null),this._boundRenderer=null,this._cache.use(e.__uid__);var r=this._cache.get("viewport");r&&e.setViewport(r),this.updateMipmap(e)},updateMipmap:function(e){var t=e.gl;for(var r in this._textures){var n=this._textures[r];if(n){var i=n.texture;if(!i.NPOT&&i.useMipmap&&i.minFilter===Kt.LINEAR_MIPMAP_LINEAR){var a="textureCube"===i.textureType?M.TEXTURE_CUBE_MAP:M.TEXTURE_2D;t.bindTexture(a,i.getWebGLTexture(e)),t.generateMipmap(a),t.bindTexture(a,null)}}}},checkStatus:function(e){return e.checkFramebufferStatus(cn)},_getFrameBufferGL:function(e){var t=this._cache;return t.use(e.__uid__),t.miss(rn)&&t.put(rn,e.gl.createFramebuffer()),t.get(rn)},attach:function(e,t,r){if(!e.width)throw new Error("The texture attached to color buffer is not a valid.");t=t||dn,r=r||M.TEXTURE_2D;var n,i=this._boundRenderer,a=i&&i.gl;if(a){var o=this._cache;o.use(i.__uid__),n=o.get("attached_textures")}var s=this._textures[t];if(!s||s.target!==r||s.texture!==e||!n||null==n[t]){var l=!0;i&&(l=this._doAttach(i,e,t,r),this.viewport||i.setViewport(0,0,e.width,e.height,1)),l&&(this._textures[t]=this._textures[t]||{},this._textures[t].texture=e,this._textures[t].target=r)}},_doAttach:function(e,t,r,n){var i=e.gl,a=t.getWebGLTexture(e),o=this._cache.get("attached_textures");if(o&&o[r]){var s=o[r];if(s.texture===t&&s.target===n)return}r=+r;var l=!0;if(r===hn||r===M.DEPTH_STENCIL_ATTACHMENT){var c=e.getGLExtension("WEBGL_depth_texture");if(c||(console.error("Depth texture is not supported by the browser"),l=!1),t.format!==M.DEPTH_COMPONENT&&t.format!==M.DEPTH_STENCIL&&(console.error("The texture attached to depth buffer is not a valid."),l=!1),l){var u=this._cache.get(nn);u&&(i.framebufferRenderbuffer(cn,hn,un,null),i.deleteRenderbuffer(u),this._cache.put(nn,!1)),this._cache.put(sn,!1),this._cache.put(ln,!0)}}return i.framebufferTexture2D(cn,r,n,a,0),o||(o={},this._cache.put("attached_textures",o)),o[r]=o[r]||{},o[r].texture=t,o[r].target=n,l},_doDetach:function(e,t,r){e.framebufferTexture2D(cn,t,r,null,0);var n=this._cache.get("attached_textures");n&&n[t]&&(n[t]=null),t!==hn&&t!==M.DEPTH_STENCIL_ATTACHMENT||this._cache.put(ln,!1)},detach:function(e,t){if(this._textures[e]=null,this._boundRenderer){var r=this._cache;r.use(this._boundRenderer.__uid__),this._doDetach(this._boundRenderer.gl,e,t)}},dispose:function(e){var t=e.gl,r=this._cache;r.use(e.__uid__);var n=r.get(nn);n&&t.deleteRenderbuffer(n);var i=r.get(rn);i&&t.deleteFramebuffer(i),r.deleteContext(e.__uid__),this._textures={}}});fn.DEPTH_ATTACHMENT=hn,fn.COLOR_ATTACHMENT0=dn,fn.STENCIL_ATTACHMENT=M.STENCIL_ATTACHMENT,fn.DEPTH_STENCIL_ATTACHMENT=M.DEPTH_STENCIL_ATTACHMENT;var pn=fn,mn=["px","nx","py","ny","pz","nz"],gn=T.extend((function(){var e={position:new _t,far:1e3,near:.1,texture:null,shadowMapPass:null},t=e._cameras={px:new tn({fov:90}),nx:new tn({fov:90}),py:new tn({fov:90}),ny:new tn({fov:90}),pz:new tn({fov:90}),nz:new tn({fov:90})};return t.px.lookAt(_t.POSITIVE_X,_t.NEGATIVE_Y),t.nx.lookAt(_t.NEGATIVE_X,_t.NEGATIVE_Y),t.py.lookAt(_t.POSITIVE_Y,_t.POSITIVE_Z),t.ny.lookAt(_t.NEGATIVE_Y,_t.NEGATIVE_Z),t.pz.lookAt(_t.POSITIVE_Z,_t.NEGATIVE_Y),t.nz.lookAt(_t.NEGATIVE_Z,_t.NEGATIVE_Y),e._frameBuffer=new pn,e}),{getCamera:function(e){return this._cameras[e]},render:function(e,t,r){var n=e.gl;r||t.update();for(var i=this.texture.width,a=2*Math.atan(i/(i-.5))/Math.PI*180,o=0;o<6;o++){var s=mn[o],l=this._cameras[s];if(_t.copy(l.position,this.position),l.far=this.far,l.near=this.near,l.fov=a,this.shadowMapPass){l.update();var c=t.getBoundingBox();c.applyTransform(l.viewMatrix),t.viewBoundingBoxLastFrame.copy(c),this.shadowMapPass.render(e,t,l,!0)}this._frameBuffer.attach(this.texture,n.COLOR_ATTACHMENT0,n.TEXTURE_CUBE_MAP_POSITIVE_X+o),this._frameBuffer.bind(e),e.render(t,l,!0),this._frameBuffer.unbind(e)}},dispose:function(e){this._frameBuffer.dispose(e)}}),vn=gn,_n=yr.extend({dynamic:!1,widthSegments:1,heightSegments:1},(function(){this.build()}),{build:function(){for(var e=this.heightSegments,t=this.widthSegments,r=this.attributes,n=[],i=[],a=[],o=[],s=0;s<=e;s++)for(var l=s/e,c=0;c<=t;c++){var u=c/t;if(n.push([2*u-1,2*l-1,0]),i&&i.push([u,l]),a&&a.push([0,0,1]),c0?this.material.define("fragment","LOD"):this.material.undefine("fragment","LOD"),e.renderPass([this],r)}}),Sn=En,Cn=Sn,Mn=542327876,On=131072,Dn=512,Ln=4;function Nn(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}var Rn=31,Pn=Nn("DXT1"),In=Nn("DXT3"),Bn=Nn("DXT5"),Fn=0,Un=1,zn=2,jn=3,Vn=4,Gn=7,kn=20,Hn=21,Wn=28,Xn={parse:function(e,t){var r=new Int32Array(e,0,Rn);if(r[Fn]!==Mn)return null;if(!r(kn)&Ln)return null;var n,i,a=r(Hn),o=r[Vn],s=r[jn],l=r[Wn]&Dn,c=r[zn]&On;switch(a){case Pn:n=8,i=Kt.COMPRESSED_RGB_S3TC_DXT1_EXT;break;case In:n=16,i=Kt.COMPRESSED_RGBA_S3TC_DXT3_EXT;break;case Bn:n=16,i=Kt.COMPRESSED_RGBA_S3TC_DXT5_EXT;break;default:return null}var u=r[Un]+4,h=l?6:1,d=1;c&&(d=Math.max(1,r[Gn]));for(var f=[],p=0;p0){var i=Math.pow(2,e[3]-128-8+n);t[r+0]=e[0]*i,t[r+1]=e[1]*i,t[r+2]=e[2]*i}else t[r+0]=0,t[r+1]=0,t[r+2]=0;return t[r+3]=1,t}function Jn(e,t,r){for(var n="",i=t;i0)if(e[a][0]=t[r++],e[a][1]=t[r++],e[a][2]=t[r++],e[a][3]=t[r++],1===e[a][0]&&1===e[a][1]&&1===e[a][2]){for(var s=e[a][3]<>>0;s>0;s--)$n(e[a-1],e[a]),a++,o--;i+=8}else a++,o--,i=0;return r}function ti(e,t,r,n){if(nQn)return ei(e,t,r,n);var i=t[r++];if(2!=i)return ei(e,t,r-1,n);if(e[0][1]=t[r++],e[0][2]=t[r++],i=t[r++],(e[0][2]<<8>>>0|i)>>>0!==n)return null;for(i=0;i<4;i++)for(var a=0;a128){o=(127&o)>>>0;var s=t[r++];while(o--)e[a++][i]=s}else while(o--)e[a++][i]=t[r++]}return r}var ri={parseRGBE:function(e,t,r){null==r&&(r=0);var n=new Uint8Array(e),i=n.length;if("#?"===Jn(n,0,2)){for(var a=2;a=i)){a+=2;for(var o="";a20)return console.warn("Given image is not a height map"),e}var f,p,m,g;l%(4*n)===0?(f=o.data[l],m=o.data[l+4]):l%(4*n)===4*(n-1)?(f=o.data[l-4],m=o.data[l]):(f=o.data[l-4],m=o.data[l+4]),l<4*n?(p=o.data[l],g=o.data[l+4*n]):l>n*(i-1)*4?(p=o.data[l-4*n],g=o.data[l]):(p=o.data[l-4*n],g=o.data[l+4*n]),s.data[l]=f-m+127,s.data[l+1]=p-g+127,s.data[l+2]=255,s.data[l+3]=255}return a.putImageData(s,0,0),r},isHeightImage:function(e,t,r){if(!e||!e.width||!e.height)return!1;var n=document.createElement("canvas"),i=n.getContext("2d"),a=t||32;r=r||20,n.width=n.height=a,i.drawImage(e,0,0,a,a);for(var o=i.getImageData(0,0,a,a),s=0;sr)return!1}return!0},_fetchTexture:function(e,t,r){O["a"].request.get({url:e,responseType:"arraybuffer",onload:t,onerror:r})},createChessboard:function(e,t,r,n){e=e||512,t=t||64,r=r||"black",n=n||"white";var i=Math.ceil(e/t),a=document.createElement("canvas");a.width=e,a.height=e;var o=a.getContext("2d");o.fillStyle=n,o.fillRect(0,0,e,e),o.fillStyle=r;for(var s=0;s=0||(oi.forEach((function(t){e.on(t,this[si(t)],this)}),this),this._meshes.push(e))},detachFromMesh:function(e){var t=this._meshes.indexOf(e);t>=0&&this._meshes.splice(t,1),oi.forEach((function(t){e.off(t,this[si(t)])}),this)},dispose:function(){this._meshes.forEach((function(e){this.detachFromMesh(e)}),this)}};var ci=li,ui=zr.extend({left:-1,right:1,near:-1,far:1,top:1,bottom:-1},{updateProjectionMatrix:function(){this.projectionMatrix.ortho(this.left,this.right,this.bottom,this.top,this.near,this.far)},decomposeProjectionMatrix:function(){var e=this.projectionMatrix.array;this.left=(-1-e[12])/e[0],this.right=(1-e[12])/e[0],this.top=(1-e[13])/e[5],this.bottom=(-1-e[13])/e[5],this.near=-(-1-e[14])/e[10],this.far=-(1-e[14])/e[10]},clone:function(){var e=zr.prototype.clone.call(this);return e.left=this.left,e.right=this.right,e.near=this.near,e.far=this.far,e.top=this.top,e.bottom=this.bottom,e}}),hi=ui,di="\n@export clay.compositor.vertex\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nattribute vec3 position : POSITION;\nattribute vec2 texcoord : TEXCOORD_0;\nvarying vec2 v_Texcoord;\nvoid main()\n{\n v_Texcoord = texcoord;\n gl_Position = worldViewProjection * vec4(position, 1.0);\n}\n@end";Xe["import"](di);var fi=new yn,pi=new $t({geometry:fi,frustumCulling:!1}),mi=new hi,gi=T.extend((function(){return{fragment:"",outputs:null,material:null,blendWithPrevious:!1,clearColor:!1,clearDepth:!0}}),(function(){var e=new Xe(Xe.source("clay.compositor.vertex"),this.fragment),t=new re({shader:e});t.enableTexturesAll(),this.material=t}),{setUniform:function(e,t){this.material.setUniform(e,t)},getUniform:function(e){var t=this.material.uniforms[e];if(t)return t.value},attachOutput:function(e,t){this.outputs||(this.outputs={}),t=t||M.COLOR_ATTACHMENT0,this.outputs[t]=e},detachOutput:function(e){for(var t in this.outputs)this.outputs[t]===e&&(this.outputs[t]=null)},bind:function(e,t){if(this.outputs)for(var r in this.outputs){var n=this.outputs[r];n&&t.attach(n,r)}t&&t.bind(e)},unbind:function(e,t){t.unbind(e)},render:function(e,t){var r=e.gl;if(t){this.bind(e,t);var n=e.getGLExtension("EXT_draw_buffers");if(n&&this.outputs){var i=[];for(var a in this.outputs)a=+a,a>=r.COLOR_ATTACHMENT0&&a<=r.COLOR_ATTACHMENT0+8&&i.push(a);n.drawBuffersEXT(i)}}this.trigger("beforerender",this,e);var o=this.clearDepth?r.DEPTH_BUFFER_BIT:0;if(r.depthMask(!0),this.clearColor){o|=r.COLOR_BUFFER_BIT,r.colorMask(!0,!0,!0,!0);var s=this.clearColor;Array.isArray(s)&&r.clearColor(s[0],s[1],s[2],s[3])}r.clear(o),this.blendWithPrevious?(r.enable(r.BLEND),this.material.transparent=!0):(r.disable(r.BLEND),this.material.transparent=!1),this.renderQuad(e),this.trigger("afterrender",this,e),t&&this.unbind(e,t)},renderQuad:function(e){pi.material=this.material,e.renderPass([pi],mi)},dispose:function(e){}}),vi=gi,_i="#define SAMPLE_NUMBER 1024\n#define PI 3.14159265358979\nuniform sampler2D normalDistribution;\nuniform vec2 viewportSize : [512, 256];\nconst vec3 N = vec3(0.0, 0.0, 1.0);\nconst float fSampleNumber = float(SAMPLE_NUMBER);\nvec3 importanceSampleNormal(float i, float roughness, vec3 N) {\n vec3 H = texture2D(normalDistribution, vec2(roughness, i)).rgb;\n vec3 upVector = abs(N.y) > 0.999 ? vec3(1.0, 0.0, 0.0) : vec3(0.0, 1.0, 0.0);\n vec3 tangentX = normalize(cross(N, upVector));\n vec3 tangentZ = cross(N, tangentX);\n return normalize(tangentX * H.x + N * H.y + tangentZ * H.z);\n}\nfloat G_Smith(float roughness, float NoV, float NoL) {\n float k = roughness * roughness / 2.0;\n float G1V = NoV / (NoV * (1.0 - k) + k);\n float G1L = NoL / (NoL * (1.0 - k) + k);\n return G1L * G1V;\n}\nvoid main() {\n vec2 uv = gl_FragCoord.xy / viewportSize;\n float NoV = uv.x;\n float roughness = uv.y;\n vec3 V;\n V.x = sqrt(1.0 - NoV * NoV);\n V.y = 0.0;\n V.z = NoV;\n float A = 0.0;\n float B = 0.0;\n for (int i = 0; i < SAMPLE_NUMBER; i++) {\n vec3 H = importanceSampleNormal(float(i) / fSampleNumber, roughness, N);\n vec3 L = reflect(-V, H);\n float NoL = clamp(L.z, 0.0, 1.0);\n float NoH = clamp(H.z, 0.0, 1.0);\n float VoH = clamp(dot(V, H), 0.0, 1.0);\n if (NoL > 0.0) {\n float G = G_Smith(roughness, NoV, NoL);\n float G_Vis = G * VoH / (NoH * NoV);\n float Fc = pow(1.0 - VoH, 5.0);\n A += (1.0 - Fc) * G_Vis;\n B += Fc * G_Vis;\n }\n }\n gl_FragColor = vec4(vec2(A, B) / fSampleNumber, 0.0, 1.0);\n}\n",yi="#define SHADER_NAME prefilter\n#define SAMPLE_NUMBER 1024\n#define PI 3.14159265358979\nuniform mat4 viewInverse : VIEWINVERSE;\nuniform samplerCube environmentMap;\nuniform sampler2D normalDistribution;\nuniform float roughness : 0.5;\nvarying vec2 v_Texcoord;\nvarying vec3 v_WorldPosition;\n@import clay.util.rgbm\nvec3 importanceSampleNormal(float i, float roughness, vec3 N) {\n vec3 H = texture2D(normalDistribution, vec2(roughness, i)).rgb;\n vec3 upVector = abs(N.y) > 0.999 ? vec3(1.0, 0.0, 0.0) : vec3(0.0, 1.0, 0.0);\n vec3 tangentX = normalize(cross(N, upVector));\n vec3 tangentZ = cross(N, tangentX);\n return normalize(tangentX * H.x + N * H.y + tangentZ * H.z);\n}\nvoid main() {\n vec3 eyePos = viewInverse[3].xyz;\n vec3 V = normalize(v_WorldPosition - eyePos);\n vec3 N = V;\n vec3 prefilteredColor = vec3(0.0);\n float totalWeight = 0.0;\n float fMaxSampleNumber = float(SAMPLE_NUMBER);\n for (int i = 0; i < SAMPLE_NUMBER; i++) {\n vec3 H = importanceSampleNormal(float(i) / fMaxSampleNumber, roughness, N);\n vec3 L = reflect(-V, H);\n float NoL = clamp(dot(N, L), 0.0, 1.0);\n if (NoL > 0.0) {\n prefilteredColor += decodeHDR(textureCube(environmentMap, L)).rgb * NoL;\n totalWeight += NoL;\n }\n }\n gl_FragColor = encodeHDR(vec4(prefilteredColor / totalWeight, 1.0));\n}\n",xi={},bi=["px","nx","py","ny","pz","nz"];xi.prefilterEnvironmentMap=function(e,t,r,n,i){i&&n||(n=xi.generateNormalDistribution(),i=xi.integrateBRDF(e,n)),r=r||{};var a=r.width||64,o=r.height||64,s=r.type||t.type,l=new $r({width:a,height:o,type:s,flipY:!1,mipmaps:[]});l.isPowerOfTwo()||console.warn("Width and height must be power of two to enable mipmap.");var c=Math.min(a,o),u=Math.log(c)/Math.log(2)+1,h=new re({shader:new Xe({vertex:Xe.source("clay.skybox.vertex"),fragment:yi})});h.set("normalDistribution",n),r.encodeRGBM&&h.define("fragment","RGBM_ENCODE"),r.decodeRGBM&&h.define("fragment","RGBM_DECODE");var d,f=new Yr;if("texture2D"===t.textureType){var p=new $r({width:a,height:o,type:s===Kt.FLOAT?Kt.HALF_FLOAT:s});ai.panoramaToCubeMap(e,t,p,{encodeRGBM:r.decodeRGBM}),t=p}d=new Sn({scene:f,material:h}),d.material.set("environmentMap",t);var m=new vn({texture:l});r.encodeRGBM&&(s=l.type=Kt.UNSIGNED_BYTE);for(var g=new or({width:a,height:o,type:s}),v=new pn({depthBuffer:!1}),_=O["a"][s===Kt.UNSIGNED_BYTE?"Uint8Array":"Float32Array"],y=0;y>>16)>>>0;c=((1431655765&c)<<1|(2863311530&c)>>>1)>>>0,c=((858993459&c)<<2|(3435973836&c)>>>2)>>>0,c=((252645135&c)<<4|(4042322160&c)>>>4)>>>0,c=(((16711935&c)<<8|(4278255360&c)>>>8)>>>0)/4294967296;var u=Math.sqrt((1-c)/(1+(s*s-1)*c));i[l]=u}for(l=0;l65535?Uint32Array:Uint16Array,_=this.indices=new v(t*e*6),y=this.radius,x=this.phiStart,b=this.phiLength,A=this.thetaStart,T=this.thetaLength,w=(y=this.radius,[]),E=[],S=0,C=1/y;for(d=0;d<=e;d++)for(h=0;h<=t;h++)c=h/t,u=d/e,o=-y*Math.cos(x+c*b)*Math.sin(A+u*T),s=y*Math.cos(A+u*T),l=y*Math.sin(x+c*b)*Math.sin(A+u*T),w[0]=o,w[1]=s,w[2]=l,E[0]=c,E[1]=u,r.set(S,w),n.set(S,E),w[0]*=C,w[1]*=C,w[2]*=C,i.set(S,w),S++;var M=t+1,O=0;for(d=0;d=0&&l.splice(e,1)})),l.push(c),this.__zr&&this.__zr.animation.addAnimator(c),c},stopAnimation:function(e){this._animators=this._animators||[];for(var t=this._animators,r=t.length,n=0;n 1e-4)\n{\n skinMatrixWS += getSkinMatrix(joint.y) * weight.y;\n}\nif (weight.z > 1e-4)\n{\n skinMatrixWS += getSkinMatrix(joint.z) * weight.z;\n}\nfloat weightW = 1.0-weight.x-weight.y-weight.z;\nif (weightW > 1e-4)\n{\n skinMatrixWS += getSkinMatrix(joint.w) * weightW;\n}\n@end\n@export clay.chunk.instancing_header\n#ifdef INSTANCING\nattribute vec4 instanceMat1;\nattribute vec4 instanceMat2;\nattribute vec4 instanceMat3;\n#endif\n@end\n@export clay.chunk.instancing_matrix\nmat4 instanceMat = mat4(\n vec4(instanceMat1.xyz, 0.0),\n vec4(instanceMat2.xyz, 0.0),\n vec4(instanceMat3.xyz, 0.0),\n vec4(instanceMat1.w, instanceMat2.w, instanceMat3.w, 1.0)\n);\n@end\n@export clay.util.parallax_correct\nvec3 parallaxCorrect(in vec3 dir, in vec3 pos, in vec3 boxMin, in vec3 boxMax) {\n vec3 first = (boxMax - pos) / dir;\n vec3 second = (boxMin - pos) / dir;\n vec3 further = max(first, second);\n float dist = min(further.x, min(further.y, further.z));\n vec3 fixedPos = pos + dir * dist;\n vec3 boxCenter = (boxMax + boxMin) * 0.5;\n return normalize(fixedPos - boxCenter);\n}\n@end\n@export clay.util.clamp_sample\nvec4 clampSample(const in sampler2D texture, const in vec2 coord)\n{\n#ifdef STEREO\n float eye = step(0.5, coord.x) * 0.5;\n vec2 coordClamped = clamp(coord, vec2(eye, 0.0), vec2(0.5 + eye, 1.0));\n#else\n vec2 coordClamped = clamp(coord, vec2(0.0), vec2(1.0));\n#endif\n return texture2D(texture, coordClamped);\n}\n@end\n@export clay.util.ACES\nvec3 ACESToneMapping(vec3 color)\n{\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\n@end",ca="\n@export ecgl.common.transformUniforms\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nuniform mat4 worldInverseTranspose : WORLDINVERSETRANSPOSE;\nuniform mat4 world : WORLD;\n@end\n\n@export ecgl.common.attributes\nattribute vec3 position : POSITION;\nattribute vec2 texcoord : TEXCOORD_0;\nattribute vec3 normal : NORMAL;\n@end\n\n@export ecgl.common.uv.header\nuniform vec2 uvRepeat : [1.0, 1.0];\nuniform vec2 uvOffset : [0.0, 0.0];\nuniform vec2 detailUvRepeat : [1.0, 1.0];\nuniform vec2 detailUvOffset : [0.0, 0.0];\n\nvarying vec2 v_Texcoord;\nvarying vec2 v_DetailTexcoord;\n@end\n\n@export ecgl.common.uv.main\nv_Texcoord = texcoord * uvRepeat + uvOffset;\nv_DetailTexcoord = texcoord * detailUvRepeat + detailUvOffset;\n@end\n\n@export ecgl.common.uv.fragmentHeader\nvarying vec2 v_Texcoord;\nvarying vec2 v_DetailTexcoord;\n@end\n\n\n@export ecgl.common.albedo.main\n\n vec4 albedoTexel = vec4(1.0);\n#ifdef DIFFUSEMAP_ENABLED\n albedoTexel = texture2D(diffuseMap, v_Texcoord);\n #ifdef SRGB_DECODE\n albedoTexel = sRGBToLinear(albedoTexel);\n #endif\n#endif\n\n#ifdef DETAILMAP_ENABLED\n vec4 detailTexel = texture2D(detailMap, v_DetailTexcoord);\n #ifdef SRGB_DECODE\n detailTexel = sRGBToLinear(detailTexel);\n #endif\n albedoTexel.rgb = mix(albedoTexel.rgb, detailTexel.rgb, detailTexel.a);\n albedoTexel.a = detailTexel.a + (1.0 - detailTexel.a) * albedoTexel.a;\n#endif\n\n@end\n\n@export ecgl.common.wireframe.vertexHeader\n\n#ifdef WIREFRAME_QUAD\nattribute vec4 barycentric;\nvarying vec4 v_Barycentric;\n#elif defined(WIREFRAME_TRIANGLE)\nattribute vec3 barycentric;\nvarying vec3 v_Barycentric;\n#endif\n\n@end\n\n@export ecgl.common.wireframe.vertexMain\n\n#if defined(WIREFRAME_QUAD) || defined(WIREFRAME_TRIANGLE)\n v_Barycentric = barycentric;\n#endif\n\n@end\n\n\n@export ecgl.common.wireframe.fragmentHeader\n\nuniform float wireframeLineWidth : 1;\nuniform vec4 wireframeLineColor: [0, 0, 0, 0.5];\n\n#ifdef WIREFRAME_QUAD\nvarying vec4 v_Barycentric;\nfloat edgeFactor () {\n vec4 d = fwidth(v_Barycentric);\n vec4 a4 = smoothstep(vec4(0.0), d * wireframeLineWidth, v_Barycentric);\n return min(min(min(a4.x, a4.y), a4.z), a4.w);\n}\n#elif defined(WIREFRAME_TRIANGLE)\nvarying vec3 v_Barycentric;\nfloat edgeFactor () {\n vec3 d = fwidth(v_Barycentric);\n vec3 a3 = smoothstep(vec3(0.0), d * wireframeLineWidth, v_Barycentric);\n return min(min(a3.x, a3.y), a3.z);\n}\n#endif\n\n@end\n\n\n@export ecgl.common.wireframe.fragmentMain\n\n#if defined(WIREFRAME_QUAD) || defined(WIREFRAME_TRIANGLE)\n if (wireframeLineWidth > 0.) {\n vec4 lineColor = wireframeLineColor;\n#ifdef SRGB_DECODE\n lineColor = sRGBToLinear(lineColor);\n#endif\n\n gl_FragColor.rgb = mix(gl_FragColor.rgb, lineColor.rgb, (1.0 - edgeFactor()) * lineColor.a);\n }\n#endif\n@end\n\n\n\n\n@export ecgl.common.bumpMap.header\n\n#ifdef BUMPMAP_ENABLED\nuniform sampler2D bumpMap;\nuniform float bumpScale : 1.0;\n\n\nvec3 bumpNormal(vec3 surfPos, vec3 surfNormal, vec3 baseNormal)\n{\n vec2 dSTdx = dFdx(v_Texcoord);\n vec2 dSTdy = dFdy(v_Texcoord);\n\n float Hll = bumpScale * texture2D(bumpMap, v_Texcoord).x;\n float dHx = bumpScale * texture2D(bumpMap, v_Texcoord + dSTdx).x - Hll;\n float dHy = bumpScale * texture2D(bumpMap, v_Texcoord + dSTdy).x - Hll;\n\n vec3 vSigmaX = dFdx(surfPos);\n vec3 vSigmaY = dFdy(surfPos);\n vec3 vN = surfNormal;\n\n vec3 R1 = cross(vSigmaY, vN);\n vec3 R2 = cross(vN, vSigmaX);\n\n float fDet = dot(vSigmaX, R1);\n\n vec3 vGrad = sign(fDet) * (dHx * R1 + dHy * R2);\n return normalize(abs(fDet) * baseNormal - vGrad);\n\n}\n#endif\n\n@end\n\n@export ecgl.common.normalMap.vertexHeader\n\n#ifdef NORMALMAP_ENABLED\nattribute vec4 tangent : TANGENT;\nvarying vec3 v_Tangent;\nvarying vec3 v_Bitangent;\n#endif\n\n@end\n\n@export ecgl.common.normalMap.vertexMain\n\n#ifdef NORMALMAP_ENABLED\n if (dot(tangent, tangent) > 0.0) {\n v_Tangent = normalize((worldInverseTranspose * vec4(tangent.xyz, 0.0)).xyz);\n v_Bitangent = normalize(cross(v_Normal, v_Tangent) * tangent.w);\n }\n#endif\n\n@end\n\n\n@export ecgl.common.normalMap.fragmentHeader\n\n#ifdef NORMALMAP_ENABLED\nuniform sampler2D normalMap;\nvarying vec3 v_Tangent;\nvarying vec3 v_Bitangent;\n#endif\n\n@end\n\n@export ecgl.common.normalMap.fragmentMain\n#ifdef NORMALMAP_ENABLED\n if (dot(v_Tangent, v_Tangent) > 0.0) {\n vec3 normalTexel = texture2D(normalMap, v_DetailTexcoord).xyz;\n if (dot(normalTexel, normalTexel) > 0.0) { N = normalTexel * 2.0 - 1.0;\n mat3 tbn = mat3(v_Tangent, v_Bitangent, v_Normal);\n N = normalize(tbn * N);\n }\n }\n#endif\n@end\n\n\n\n@export ecgl.common.vertexAnimation.header\n\n#ifdef VERTEX_ANIMATION\nattribute vec3 prevPosition;\nattribute vec3 prevNormal;\nuniform float percent;\n#endif\n\n@end\n\n@export ecgl.common.vertexAnimation.main\n\n#ifdef VERTEX_ANIMATION\n vec3 pos = mix(prevPosition, position, percent);\n vec3 norm = mix(prevNormal, normal, percent);\n#else\n vec3 pos = position;\n vec3 norm = normal;\n#endif\n\n@end\n\n\n@export ecgl.common.ssaoMap.header\n#ifdef SSAOMAP_ENABLED\nuniform sampler2D ssaoMap;\nuniform vec4 viewport : VIEWPORT;\n#endif\n@end\n\n@export ecgl.common.ssaoMap.main\n float ao = 1.0;\n#ifdef SSAOMAP_ENABLED\n ao = texture2D(ssaoMap, (gl_FragCoord.xy - viewport.xy) / viewport.zw).r;\n#endif\n@end\n\n\n\n\n@export ecgl.common.diffuseLayer.header\n\n#if (LAYER_DIFFUSEMAP_COUNT > 0)\nuniform float layerDiffuseIntensity[LAYER_DIFFUSEMAP_COUNT];\nuniform sampler2D layerDiffuseMap[LAYER_DIFFUSEMAP_COUNT];\n#endif\n\n@end\n\n@export ecgl.common.emissiveLayer.header\n\n#if (LAYER_EMISSIVEMAP_COUNT > 0)\nuniform float layerEmissionIntensity[LAYER_EMISSIVEMAP_COUNT];\nuniform sampler2D layerEmissiveMap[LAYER_EMISSIVEMAP_COUNT];\n#endif\n\n@end\n\n@export ecgl.common.layers.header\n@import ecgl.common.diffuseLayer.header\n@import ecgl.common.emissiveLayer.header\n@end\n\n@export ecgl.common.diffuseLayer.main\n\n#if (LAYER_DIFFUSEMAP_COUNT > 0)\n for (int _idx_ = 0; _idx_ < LAYER_DIFFUSEMAP_COUNT; _idx_++) {{\n float intensity = layerDiffuseIntensity[_idx_];\n vec4 texel2 = texture2D(layerDiffuseMap[_idx_], v_Texcoord);\n #ifdef SRGB_DECODE\n texel2 = sRGBToLinear(texel2);\n #endif\n albedoTexel.rgb = mix(albedoTexel.rgb, texel2.rgb * intensity, texel2.a);\n albedoTexel.a = texel2.a + (1.0 - texel2.a) * albedoTexel.a;\n }}\n#endif\n\n@end\n\n@export ecgl.common.emissiveLayer.main\n\n#if (LAYER_EMISSIVEMAP_COUNT > 0)\n for (int _idx_ = 0; _idx_ < LAYER_EMISSIVEMAP_COUNT; _idx_++)\n {{\n vec4 texel2 = texture2D(layerEmissiveMap[_idx_], v_Texcoord) * layerEmissionIntensity[_idx_];\n #ifdef SRGB_DECODE\n texel2 = sRGBToLinear(texel2);\n #endif\n float intensity = layerEmissionIntensity[_idx_];\n gl_FragColor.rgb += texel2.rgb * texel2.a * intensity;\n }}\n#endif\n\n@end\n",ua="@export ecgl.color.vertex\n\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\n\n@import ecgl.common.uv.header\n\nattribute vec2 texcoord : TEXCOORD_0;\nattribute vec3 position: POSITION;\n\n@import ecgl.common.wireframe.vertexHeader\n\n#ifdef VERTEX_COLOR\nattribute vec4 a_Color : COLOR;\nvarying vec4 v_Color;\n#endif\n\n#ifdef VERTEX_ANIMATION\nattribute vec3 prevPosition;\nuniform float percent : 1.0;\n#endif\n\n#ifdef ATMOSPHERE_ENABLED\nattribute vec3 normal: NORMAL;\nuniform mat4 worldInverseTranspose : WORLDINVERSETRANSPOSE;\nvarying vec3 v_Normal;\n#endif\n\nvoid main()\n{\n#ifdef VERTEX_ANIMATION\n vec3 pos = mix(prevPosition, position, percent);\n#else\n vec3 pos = position;\n#endif\n\n gl_Position = worldViewProjection * vec4(pos, 1.0);\n\n @import ecgl.common.uv.main\n\n#ifdef VERTEX_COLOR\n v_Color = a_Color;\n#endif\n\n#ifdef ATMOSPHERE_ENABLED\n v_Normal = normalize((worldInverseTranspose * vec4(normal, 0.0)).xyz);\n#endif\n\n @import ecgl.common.wireframe.vertexMain\n\n}\n\n@end\n\n@export ecgl.color.fragment\n\n#define LAYER_DIFFUSEMAP_COUNT 0\n#define LAYER_EMISSIVEMAP_COUNT 0\n\nuniform sampler2D diffuseMap;\nuniform sampler2D detailMap;\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\n\n#ifdef ATMOSPHERE_ENABLED\nuniform mat4 viewTranspose: VIEWTRANSPOSE;\nuniform vec3 glowColor;\nuniform float glowPower;\nvarying vec3 v_Normal;\n#endif\n\n#ifdef VERTEX_COLOR\nvarying vec4 v_Color;\n#endif\n\n@import ecgl.common.layers.header\n\n@import ecgl.common.uv.fragmentHeader\n\n@import ecgl.common.wireframe.fragmentHeader\n\n@import clay.util.srgb\n\nvoid main()\n{\n#ifdef SRGB_DECODE\n gl_FragColor = sRGBToLinear(color);\n#else\n gl_FragColor = color;\n#endif\n\n#ifdef VERTEX_COLOR\n gl_FragColor *= v_Color;\n#endif\n\n @import ecgl.common.albedo.main\n\n @import ecgl.common.diffuseLayer.main\n\n gl_FragColor *= albedoTexel;\n\n#ifdef ATMOSPHERE_ENABLED\n float atmoIntensity = pow(1.0 - dot(v_Normal, (viewTranspose * vec4(0.0, 0.0, 1.0, 0.0)).xyz), glowPower);\n gl_FragColor.rgb += glowColor * atmoIntensity;\n#endif\n\n @import ecgl.common.emissiveLayer.main\n\n @import ecgl.common.wireframe.fragmentMain\n\n}\n@end",ha="/**\n * http: */\n\n@export ecgl.lambert.vertex\n\n@import ecgl.common.transformUniforms\n\n@import ecgl.common.uv.header\n\n\n@import ecgl.common.attributes\n\n@import ecgl.common.wireframe.vertexHeader\n\n#ifdef VERTEX_COLOR\nattribute vec4 a_Color : COLOR;\nvarying vec4 v_Color;\n#endif\n\n\n@import ecgl.common.vertexAnimation.header\n\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\nvoid main()\n{\n @import ecgl.common.uv.main\n\n @import ecgl.common.vertexAnimation.main\n\n\n gl_Position = worldViewProjection * vec4(pos, 1.0);\n\n v_Normal = normalize((worldInverseTranspose * vec4(norm, 0.0)).xyz);\n v_WorldPosition = (world * vec4(pos, 1.0)).xyz;\n\n#ifdef VERTEX_COLOR\n v_Color = a_Color;\n#endif\n\n @import ecgl.common.wireframe.vertexMain\n}\n\n@end\n\n\n@export ecgl.lambert.fragment\n\n#define LAYER_DIFFUSEMAP_COUNT 0\n#define LAYER_EMISSIVEMAP_COUNT 0\n\n#define NORMAL_UP_AXIS 1\n#define NORMAL_FRONT_AXIS 2\n\n@import ecgl.common.uv.fragmentHeader\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\nuniform sampler2D diffuseMap;\nuniform sampler2D detailMap;\n\n@import ecgl.common.layers.header\n\nuniform float emissionIntensity: 1.0;\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\n\nuniform mat4 viewInverse : VIEWINVERSE;\n\n#ifdef ATMOSPHERE_ENABLED\nuniform mat4 viewTranspose: VIEWTRANSPOSE;\nuniform vec3 glowColor;\nuniform float glowPower;\n#endif\n\n#ifdef AMBIENT_LIGHT_COUNT\n@import clay.header.ambient_light\n#endif\n#ifdef AMBIENT_SH_LIGHT_COUNT\n@import clay.header.ambient_sh_light\n#endif\n\n#ifdef DIRECTIONAL_LIGHT_COUNT\n@import clay.header.directional_light\n#endif\n\n#ifdef VERTEX_COLOR\nvarying vec4 v_Color;\n#endif\n\n\n@import ecgl.common.ssaoMap.header\n\n@import ecgl.common.bumpMap.header\n\n@import clay.util.srgb\n\n@import ecgl.common.wireframe.fragmentHeader\n\n@import clay.plugin.compute_shadow_map\n\nvoid main()\n{\n#ifdef SRGB_DECODE\n gl_FragColor = sRGBToLinear(color);\n#else\n gl_FragColor = color;\n#endif\n\n#ifdef VERTEX_COLOR\n #ifdef SRGB_DECODE\n gl_FragColor *= sRGBToLinear(v_Color);\n #else\n gl_FragColor *= v_Color;\n #endif\n#endif\n\n @import ecgl.common.albedo.main\n\n @import ecgl.common.diffuseLayer.main\n\n gl_FragColor *= albedoTexel;\n\n vec3 N = v_Normal;\n#ifdef DOUBLE_SIDED\n vec3 eyePos = viewInverse[3].xyz;\n vec3 V = normalize(eyePos - v_WorldPosition);\n\n if (dot(N, V) < 0.0) {\n N = -N;\n }\n#endif\n\n float ambientFactor = 1.0;\n\n#ifdef BUMPMAP_ENABLED\n N = bumpNormal(v_WorldPosition, v_Normal, N);\n ambientFactor = dot(v_Normal, N);\n#endif\n\n vec3 N2 = vec3(N.x, N[NORMAL_UP_AXIS], N[NORMAL_FRONT_AXIS]);\n\n vec3 diffuseColor = vec3(0.0, 0.0, 0.0);\n\n @import ecgl.common.ssaoMap.main\n\n#ifdef AMBIENT_LIGHT_COUNT\n for(int i = 0; i < AMBIENT_LIGHT_COUNT; i++)\n {\n diffuseColor += ambientLightColor[i] * ambientFactor * ao;\n }\n#endif\n#ifdef AMBIENT_SH_LIGHT_COUNT\n for(int _idx_ = 0; _idx_ < AMBIENT_SH_LIGHT_COUNT; _idx_++)\n {{\n diffuseColor += calcAmbientSHLight(_idx_, N2) * ambientSHLightColor[_idx_] * ao;\n }}\n#endif\n#ifdef DIRECTIONAL_LIGHT_COUNT\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n float shadowContribsDir[DIRECTIONAL_LIGHT_COUNT];\n if(shadowEnabled)\n {\n computeShadowOfDirectionalLights(v_WorldPosition, shadowContribsDir);\n }\n#endif\n for(int i = 0; i < DIRECTIONAL_LIGHT_COUNT; i++)\n {\n vec3 lightDirection = -directionalLightDirection[i];\n vec3 lightColor = directionalLightColor[i];\n\n float shadowContrib = 1.0;\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n if (shadowEnabled)\n {\n shadowContrib = shadowContribsDir[i];\n }\n#endif\n\n float ndl = dot(N, normalize(lightDirection)) * shadowContrib;\n\n diffuseColor += lightColor * clamp(ndl, 0.0, 1.0);\n }\n#endif\n\n gl_FragColor.rgb *= diffuseColor;\n\n#ifdef ATMOSPHERE_ENABLED\n float atmoIntensity = pow(1.0 - dot(v_Normal, (viewTranspose * vec4(0.0, 0.0, 1.0, 0.0)).xyz), glowPower);\n gl_FragColor.rgb += glowColor * atmoIntensity;\n#endif\n\n @import ecgl.common.emissiveLayer.main\n\n @import ecgl.common.wireframe.fragmentMain\n}\n\n@end",da="@export ecgl.realistic.vertex\n\n@import ecgl.common.transformUniforms\n\n@import ecgl.common.uv.header\n\n@import ecgl.common.attributes\n\n\n@import ecgl.common.wireframe.vertexHeader\n\n#ifdef VERTEX_COLOR\nattribute vec4 a_Color : COLOR;\nvarying vec4 v_Color;\n#endif\n\n#ifdef NORMALMAP_ENABLED\nattribute vec4 tangent : TANGENT;\nvarying vec3 v_Tangent;\nvarying vec3 v_Bitangent;\n#endif\n\n@import ecgl.common.vertexAnimation.header\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\nvoid main()\n{\n\n @import ecgl.common.uv.main\n\n @import ecgl.common.vertexAnimation.main\n\n gl_Position = worldViewProjection * vec4(pos, 1.0);\n\n v_Normal = normalize((worldInverseTranspose * vec4(norm, 0.0)).xyz);\n v_WorldPosition = (world * vec4(pos, 1.0)).xyz;\n\n#ifdef VERTEX_COLOR\n v_Color = a_Color;\n#endif\n\n#ifdef NORMALMAP_ENABLED\n v_Tangent = normalize((worldInverseTranspose * vec4(tangent.xyz, 0.0)).xyz);\n v_Bitangent = normalize(cross(v_Normal, v_Tangent) * tangent.w);\n#endif\n\n @import ecgl.common.wireframe.vertexMain\n\n}\n\n@end\n\n\n\n@export ecgl.realistic.fragment\n\n#define LAYER_DIFFUSEMAP_COUNT 0\n#define LAYER_EMISSIVEMAP_COUNT 0\n#define PI 3.14159265358979\n#define ROUGHNESS_CHANEL 0\n#define METALNESS_CHANEL 1\n\n#define NORMAL_UP_AXIS 1\n#define NORMAL_FRONT_AXIS 2\n\n#ifdef VERTEX_COLOR\nvarying vec4 v_Color;\n#endif\n\n@import ecgl.common.uv.fragmentHeader\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\nuniform sampler2D diffuseMap;\n\nuniform sampler2D detailMap;\nuniform sampler2D metalnessMap;\nuniform sampler2D roughnessMap;\n\n@import ecgl.common.layers.header\n\nuniform float emissionIntensity: 1.0;\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\n\nuniform float metalness : 0.0;\nuniform float roughness : 0.5;\n\nuniform mat4 viewInverse : VIEWINVERSE;\n\n#ifdef ATMOSPHERE_ENABLED\nuniform mat4 viewTranspose: VIEWTRANSPOSE;\nuniform vec3 glowColor;\nuniform float glowPower;\n#endif\n\n#ifdef AMBIENT_LIGHT_COUNT\n@import clay.header.ambient_light\n#endif\n\n#ifdef AMBIENT_SH_LIGHT_COUNT\n@import clay.header.ambient_sh_light\n#endif\n\n#ifdef AMBIENT_CUBEMAP_LIGHT_COUNT\n@import clay.header.ambient_cubemap_light\n#endif\n\n#ifdef DIRECTIONAL_LIGHT_COUNT\n@import clay.header.directional_light\n#endif\n\n@import ecgl.common.normalMap.fragmentHeader\n\n@import ecgl.common.ssaoMap.header\n\n@import ecgl.common.bumpMap.header\n\n@import clay.util.srgb\n\n@import clay.util.rgbm\n\n@import ecgl.common.wireframe.fragmentHeader\n\n@import clay.plugin.compute_shadow_map\n\nvec3 F_Schlick(float ndv, vec3 spec) {\n return spec + (1.0 - spec) * pow(1.0 - ndv, 5.0);\n}\n\nfloat D_Phong(float g, float ndh) {\n float a = pow(8192.0, g);\n return (a + 2.0) / 8.0 * pow(ndh, a);\n}\n\nvoid main()\n{\n vec4 albedoColor = color;\n\n vec3 eyePos = viewInverse[3].xyz;\n vec3 V = normalize(eyePos - v_WorldPosition);\n#ifdef VERTEX_COLOR\n #ifdef SRGB_DECODE\n albedoColor *= sRGBToLinear(v_Color);\n #else\n albedoColor *= v_Color;\n #endif\n#endif\n\n @import ecgl.common.albedo.main\n\n @import ecgl.common.diffuseLayer.main\n\n albedoColor *= albedoTexel;\n\n float m = metalness;\n\n#ifdef METALNESSMAP_ENABLED\n float m2 = texture2D(metalnessMap, v_DetailTexcoord)[METALNESS_CHANEL];\n m = clamp(m2 + (m - 0.5) * 2.0, 0.0, 1.0);\n#endif\n\n vec3 baseColor = albedoColor.rgb;\n albedoColor.rgb = baseColor * (1.0 - m);\n vec3 specFactor = mix(vec3(0.04), baseColor, m);\n\n float g = 1.0 - roughness;\n\n#ifdef ROUGHNESSMAP_ENABLED\n float g2 = 1.0 - texture2D(roughnessMap, v_DetailTexcoord)[ROUGHNESS_CHANEL];\n g = clamp(g2 + (g - 0.5) * 2.0, 0.0, 1.0);\n#endif\n\n vec3 N = v_Normal;\n\n#ifdef DOUBLE_SIDED\n if (dot(N, V) < 0.0) {\n N = -N;\n }\n#endif\n\n float ambientFactor = 1.0;\n\n#ifdef BUMPMAP_ENABLED\n N = bumpNormal(v_WorldPosition, v_Normal, N);\n ambientFactor = dot(v_Normal, N);\n#endif\n\n@import ecgl.common.normalMap.fragmentMain\n\n vec3 N2 = vec3(N.x, N[NORMAL_UP_AXIS], N[NORMAL_FRONT_AXIS]);\n\n vec3 diffuseTerm = vec3(0.0);\n vec3 specularTerm = vec3(0.0);\n\n float ndv = clamp(dot(N, V), 0.0, 1.0);\n vec3 fresnelTerm = F_Schlick(ndv, specFactor);\n\n @import ecgl.common.ssaoMap.main\n\n#ifdef AMBIENT_LIGHT_COUNT\n for(int _idx_ = 0; _idx_ < AMBIENT_LIGHT_COUNT; _idx_++)\n {{\n diffuseTerm += ambientLightColor[_idx_] * ambientFactor * ao;\n }}\n#endif\n\n#ifdef AMBIENT_SH_LIGHT_COUNT\n for(int _idx_ = 0; _idx_ < AMBIENT_SH_LIGHT_COUNT; _idx_++)\n {{\n diffuseTerm += calcAmbientSHLight(_idx_, N2) * ambientSHLightColor[_idx_] * ao;\n }}\n#endif\n\n#ifdef DIRECTIONAL_LIGHT_COUNT\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n float shadowContribsDir[DIRECTIONAL_LIGHT_COUNT];\n if(shadowEnabled)\n {\n computeShadowOfDirectionalLights(v_WorldPosition, shadowContribsDir);\n }\n#endif\n for(int _idx_ = 0; _idx_ < DIRECTIONAL_LIGHT_COUNT; _idx_++)\n {{\n vec3 L = -directionalLightDirection[_idx_];\n vec3 lc = directionalLightColor[_idx_];\n\n vec3 H = normalize(L + V);\n float ndl = clamp(dot(N, normalize(L)), 0.0, 1.0);\n float ndh = clamp(dot(N, H), 0.0, 1.0);\n\n float shadowContrib = 1.0;\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n if (shadowEnabled)\n {\n shadowContrib = shadowContribsDir[_idx_];\n }\n#endif\n\n vec3 li = lc * ndl * shadowContrib;\n\n diffuseTerm += li;\n specularTerm += li * fresnelTerm * D_Phong(g, ndh);\n }}\n#endif\n\n\n#ifdef AMBIENT_CUBEMAP_LIGHT_COUNT\n vec3 L = reflect(-V, N);\n L = vec3(L.x, L[NORMAL_UP_AXIS], L[NORMAL_FRONT_AXIS]);\n float rough2 = clamp(1.0 - g, 0.0, 1.0);\n float bias2 = rough2 * 5.0;\n vec2 brdfParam2 = texture2D(ambientCubemapLightBRDFLookup[0], vec2(rough2, ndv)).xy;\n vec3 envWeight2 = specFactor * brdfParam2.x + brdfParam2.y;\n vec3 envTexel2;\n for(int _idx_ = 0; _idx_ < AMBIENT_CUBEMAP_LIGHT_COUNT; _idx_++)\n {{\n envTexel2 = RGBMDecode(textureCubeLodEXT(ambientCubemapLightCubemap[_idx_], L, bias2), 8.12);\n specularTerm += ambientCubemapLightColor[_idx_] * envTexel2 * envWeight2 * ao;\n }}\n#endif\n\n gl_FragColor.rgb = albedoColor.rgb * diffuseTerm + specularTerm;\n gl_FragColor.a = albedoColor.a;\n\n#ifdef ATMOSPHERE_ENABLED\n float atmoIntensity = pow(1.0 - dot(v_Normal, (viewTranspose * vec4(0.0, 0.0, 1.0, 0.0)).xyz), glowPower);\n gl_FragColor.rgb += glowColor * atmoIntensity;\n#endif\n\n#ifdef SRGB_ENCODE\n gl_FragColor = linearTosRGB(gl_FragColor);\n#endif\n\n @import ecgl.common.emissiveLayer.main\n\n @import ecgl.common.wireframe.fragmentMain\n}\n\n@end",fa="@export ecgl.hatching.vertex\n\n@import ecgl.realistic.vertex\n\n@end\n\n\n@export ecgl.hatching.fragment\n\n#define NORMAL_UP_AXIS 1\n#define NORMAL_FRONT_AXIS 2\n\n@import ecgl.common.uv.fragmentHeader\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\nuniform vec4 color : [0.0, 0.0, 0.0, 1.0];\nuniform vec4 paperColor : [1.0, 1.0, 1.0, 1.0];\n\nuniform mat4 viewInverse : VIEWINVERSE;\n\n#ifdef AMBIENT_LIGHT_COUNT\n@import clay.header.ambient_light\n#endif\n#ifdef AMBIENT_SH_LIGHT_COUNT\n@import clay.header.ambient_sh_light\n#endif\n\n#ifdef DIRECTIONAL_LIGHT_COUNT\n@import clay.header.directional_light\n#endif\n\n#ifdef VERTEX_COLOR\nvarying vec4 v_Color;\n#endif\n\n\n@import ecgl.common.ssaoMap.header\n\n@import ecgl.common.bumpMap.header\n\n@import clay.util.srgb\n\n@import ecgl.common.wireframe.fragmentHeader\n\n@import clay.plugin.compute_shadow_map\n\nuniform sampler2D hatch1;\nuniform sampler2D hatch2;\nuniform sampler2D hatch3;\nuniform sampler2D hatch4;\nuniform sampler2D hatch5;\nuniform sampler2D hatch6;\n\nfloat shade(in float tone) {\n vec4 c = vec4(1. ,1., 1., 1.);\n float step = 1. / 6.;\n vec2 uv = v_DetailTexcoord;\n if (tone <= step / 2.0) {\n c = mix(vec4(0.), texture2D(hatch6, uv), 12. * tone);\n }\n else if (tone <= step) {\n c = mix(texture2D(hatch6, uv), texture2D(hatch5, uv), 6. * tone);\n }\n if(tone > step && tone <= 2. * step){\n c = mix(texture2D(hatch5, uv), texture2D(hatch4, uv) , 6. * (tone - step));\n }\n if(tone > 2. * step && tone <= 3. * step){\n c = mix(texture2D(hatch4, uv), texture2D(hatch3, uv), 6. * (tone - 2. * step));\n }\n if(tone > 3. * step && tone <= 4. * step){\n c = mix(texture2D(hatch3, uv), texture2D(hatch2, uv), 6. * (tone - 3. * step));\n }\n if(tone > 4. * step && tone <= 5. * step){\n c = mix(texture2D(hatch2, uv), texture2D(hatch1, uv), 6. * (tone - 4. * step));\n }\n if(tone > 5. * step){\n c = mix(texture2D(hatch1, uv), vec4(1.), 6. * (tone - 5. * step));\n }\n\n return c.r;\n}\n\nconst vec3 w = vec3(0.2125, 0.7154, 0.0721);\n\nvoid main()\n{\n#ifdef SRGB_DECODE\n vec4 inkColor = sRGBToLinear(color);\n#else\n vec4 inkColor = color;\n#endif\n\n#ifdef VERTEX_COLOR\n #ifdef SRGB_DECODE\n inkColor *= sRGBToLinear(v_Color);\n #else\n inkColor *= v_Color;\n #endif\n#endif\n\n vec3 N = v_Normal;\n#ifdef DOUBLE_SIDED\n vec3 eyePos = viewInverse[3].xyz;\n vec3 V = normalize(eyePos - v_WorldPosition);\n\n if (dot(N, V) < 0.0) {\n N = -N;\n }\n#endif\n\n float tone = 0.0;\n\n float ambientFactor = 1.0;\n\n#ifdef BUMPMAP_ENABLED\n N = bumpNormal(v_WorldPosition, v_Normal, N);\n ambientFactor = dot(v_Normal, N);\n#endif\n\n vec3 N2 = vec3(N.x, N[NORMAL_UP_AXIS], N[NORMAL_FRONT_AXIS]);\n\n @import ecgl.common.ssaoMap.main\n\n#ifdef AMBIENT_LIGHT_COUNT\n for(int i = 0; i < AMBIENT_LIGHT_COUNT; i++)\n {\n tone += dot(ambientLightColor[i], w) * ambientFactor * ao;\n }\n#endif\n#ifdef AMBIENT_SH_LIGHT_COUNT\n for(int _idx_ = 0; _idx_ < AMBIENT_SH_LIGHT_COUNT; _idx_++)\n {{\n tone += dot(calcAmbientSHLight(_idx_, N2) * ambientSHLightColor[_idx_], w) * ao;\n }}\n#endif\n#ifdef DIRECTIONAL_LIGHT_COUNT\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n float shadowContribsDir[DIRECTIONAL_LIGHT_COUNT];\n if(shadowEnabled)\n {\n computeShadowOfDirectionalLights(v_WorldPosition, shadowContribsDir);\n }\n#endif\n for(int i = 0; i < DIRECTIONAL_LIGHT_COUNT; i++)\n {\n vec3 lightDirection = -directionalLightDirection[i];\n float lightTone = dot(directionalLightColor[i], w);\n\n float shadowContrib = 1.0;\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n if (shadowEnabled)\n {\n shadowContrib = shadowContribsDir[i];\n }\n#endif\n\n float ndl = dot(N, normalize(lightDirection)) * shadowContrib;\n\n tone += lightTone * clamp(ndl, 0.0, 1.0);\n }\n#endif\n\n gl_FragColor = mix(inkColor, paperColor, shade(clamp(tone, 0.0, 1.0)));\n }\n@end\n",pa="@export ecgl.sm.depth.vertex\n\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\n\nattribute vec3 position : POSITION;\nattribute vec2 texcoord : TEXCOORD_0;\n\n#ifdef VERTEX_ANIMATION\nattribute vec3 prevPosition;\nuniform float percent : 1.0;\n#endif\n\nvarying vec4 v_ViewPosition;\nvarying vec2 v_Texcoord;\n\nvoid main(){\n\n#ifdef VERTEX_ANIMATION\n vec3 pos = mix(prevPosition, position, percent);\n#else\n vec3 pos = position;\n#endif\n\n v_ViewPosition = worldViewProjection * vec4(pos, 1.0);\n gl_Position = v_ViewPosition;\n\n v_Texcoord = texcoord;\n\n}\n@end\n\n\n\n@export ecgl.sm.depth.fragment\n\n@import clay.sm.depth.fragment\n\n@end";function ma(e){return!e||"none"===e}function ga(e){return e instanceof HTMLCanvasElement||e instanceof HTMLImageElement||e instanceof Image}function va(e){return e.getZr&&e.setOption}Object.assign(Gt.prototype,sa),Xe.import(la),Xe.import(Ye),Xe.import(ca),Xe.import(ua),Xe.import(ha),Xe.import(da),Xe.import(fa),Xe.import(pa);var _a=Yr.prototype.addToScene,ya=Yr.prototype.removeFromScene;Yr.prototype.addToScene=function(e){if(_a.call(this,e),this.__zr){var t=this.__zr;e.traverse((function(e){e.__zr=t,e.addAnimatorsToZr&&e.addAnimatorsToZr(t)}))}},Yr.prototype.removeFromScene=function(e){ya.call(this,e),e.traverse((function(e){var t=e.__zr;e.__zr=null,t&&e.removeAnimatorsFromZr&&e.removeAnimatorsFromZr(t)}))},re.prototype.setTextureImage=function(e,t,r,n){if(this.shader){var i,a=r.getZr(),o=this;return o.autoUpdateTextureStatus=!1,o.disableTexture(e),ma(t)||(i=xa.loadTexture(t,r,n,(function(t){o.enableTexture(e),a&&a.refresh()})),o.set(e,i)),i}};var xa={};xa.Renderer=ut,xa.Node=Gt,xa.Mesh=$t,xa.Shader=Xe,xa.Material=re,xa.Texture=Kt,xa.Texture2D=or,xa.Geometry=yr,xa.SphereGeometry=Bi,xa.PlaneGeometry=yn,xa.CubeGeometry=Tn,xa.AmbientLight=Ui,xa.DirectionalLight=ji,xa.PointLight=Gi,xa.SpotLight=Hi,xa.PerspectiveCamera=tn,xa.OrthographicCamera=hi,xa.Vector2=ue,xa.Vector3=_t,xa.Vector4=Zi,xa.Quaternion=It,xa.Matrix2=Ji,xa.Matrix2d=ra,xa.Matrix3=ia,xa.Matrix4=Lt,xa.Plane=Dr,xa.Ray=bt,xa.BoundingBox=zt,xa.Frustum=Fr;var ba=null;function Aa(){return null!==ba||(ba=ai.createBlank("rgba(255,255,255,0)").image),ba}function Ta(e){return Math.pow(2,Math.round(Math.log(e)/Math.LN2))}function wa(e){if((e.wrapS===Kt.REPEAT||e.wrapT===Kt.REPEAT)&&e.image){var t=Ta(e.width),r=Ta(e.height);if(t!==e.width||r!==e.height){var n=document.createElement("canvas");n.width=t,n.height=r;var i=n.getContext("2d");i.drawImage(e.image,0,0,t,r),e.image=n}}}xa.loadTexture=function(e,t,r,n){"function"===typeof r&&(n=r,r={}),r=r||{};for(var i=Object.keys(r).sort(),a="",o=0;o3?t[3]=e[3]:t[3]=1,t):(t=a["h"].parse(e||"#000",t)||[0,0,0,0],t[0]/=255,t[1]/=255,t[2]/=255,t)},xa.directionFromAlphaBeta=function(e,t){var r=e/180*Math.PI+Math.PI/2,n=-t/180*Math.PI+Math.PI/2,i=[],a=Math.sin(r);return i[0]=a*Math.cos(n),i[1]=-Math.cos(r),i[2]=a*Math.sin(n),i},xa.getShadowResolution=function(e){var t=1024;switch(e){case"low":t=512;break;case"medium":break;case"high":t=2048;break;case"ultra":t=4096;break}return t},xa.COMMON_SHADERS=["lambert","color","realistic","hatching","shadow"],xa.createShader=function(e){"ecgl.shadow"===e&&(e="ecgl.displayShadow");var t=Xe.source(e+".vertex"),r=Xe.source(e+".fragment");t||console.error("Vertex shader of '%s' not exits",e),r||console.error("Fragment shader of '%s' not exits",e);var n=new Xe(t,r);return n.name=e,n},xa.createMaterial=function(e,t){t instanceof Array||(t=[t]);var r=xa.createShader(e),n=new re({shader:r});return t.forEach((function(e){"string"===typeof e&&n.define(e)})),n},xa.setMaterialFromModel=function(e,t,r,n){t.autoUpdateTextureStatus=!1;var i=r.getModel(e+"Material"),a=i.get("detailTexture"),o=Pi.firstNotNull(i.get("textureTiling"),1),s=Pi.firstNotNull(i.get("textureOffset"),0);"number"===typeof o&&(o=[o,o]),"number"===typeof s&&(s=[s,s]);var l=o[0]>1||o[1]>1?xa.Texture.REPEAT:xa.Texture.CLAMP_TO_EDGE,c={anisotropic:8,wrapS:l,wrapT:l};if("realistic"===e){var u=i.get("roughness"),h=i.get("metalness");null!=h?isNaN(h)&&(t.setTextureImage("metalnessMap",h,n,c),h=Pi.firstNotNull(i.get("metalnessAdjust"),.5)):h=0,null!=u?isNaN(u)&&(t.setTextureImage("roughnessMap",u,n,c),u=Pi.firstNotNull(i.get("roughnessAdjust"),.5)):u=.5;var d=i.get("normalTexture");t.setTextureImage("detailMap",a,n,c),t.setTextureImage("normalMap",d,n,c),t.set({roughness:u,metalness:h,detailUvRepeat:o,detailUvOffset:s})}else if("lambert"===e)t.setTextureImage("detailMap",a,n,c),t.set({detailUvRepeat:o,detailUvOffset:s});else if("color"===e)t.setTextureImage("detailMap",a,n,c),t.set({detailUvRepeat:o,detailUvOffset:s});else if("hatching"===e){var f=i.get("hatchingTextures")||[];f.length;for(var p=0;p<6;p++)t.setTextureImage("hatch"+(p+1),f[p],n,{anisotropic:8,wrapS:xa.Texture.REPEAT,wrapT:xa.Texture.REPEAT});t.set({detailUvRepeat:o,detailUvOffset:s})}},xa.updateVertexAnimation=function(e,t,r,n){var i=n.get("animation"),a=n.get("animationDurationUpdate"),o=n.get("animationEasingUpdate"),s=r.shadowDepthMaterial;if(i&&t&&a>0&&t.geometry.vertexCount===r.geometry.vertexCount){r.material.define("vertex","VERTEX_ANIMATION"),r.ignorePreZ=!0,s&&s.define("vertex","VERTEX_ANIMATION");for(var l=0;l=0&&this._viewsToDispose.splice(t,1),this.views.push(e),e.layer=this;var r=this.zr;e.scene.traverse((function(e){e.__zr=r,e.addAnimatorsToZr&&e.addAnimatorsToZr(r)}))}},Ca.prototype.removeView=function(e){if(e.layer===this){var t=this.views.indexOf(e);t>=0&&(this.views.splice(t,1),e.scene.traverse(Ma,this),e.layer=null,this._viewsToDispose.push(e))}},Ca.prototype.removeViewsAll=function(){this.views.forEach((function(e){e.scene.traverse(Ma,this),e.layer=null,this._viewsToDispose.push(e)}),this),this.views.length=0},Ca.prototype.resize=function(e,t){var r=this.renderer;r.resize(e,t)},Ca.prototype.clear=function(){var e=this.renderer.gl,t=this._backgroundColor||[0,0,0,0];e.clearColor(t[0],t[1],t[2],t[3]),e.depthMask(!0),e.colorMask(!0,!0,!0,!0),e.clear(e.DEPTH_BUFFER_BIT|e.COLOR_BUFFER_BIT)},Ca.prototype.clearDepth=function(){var e=this.renderer.gl;e.clear(e.DEPTH_BUFFER_BIT)},Ca.prototype.clearColor=function(){var e=this.renderer.gl;e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)},Ca.prototype.needsRefresh=function(){this.zr.refresh()},Ca.prototype.refresh=function(e){this._backgroundColor=e?Ea.parseColor(e):[0,0,0,0],this.renderer.clearColor=this._backgroundColor;for(var t=0;t20)){e=e.event;var n=this.pickObject(e.offsetX,e.offsetY);n&&(this._dispatchEvent(e.type,e,n),this._dispatchDataEvent(e.type,e,n));var i=this._clickToSetFocusPoint(e);if(i){var a=i.view.setDOFFocusOnPoint(i.distance);a&&this.zr.refresh()}}}},Ca.prototype._clickToSetFocusPoint=function(e){for(var t=this.renderer,r=t.viewport,n=this.views.length-1;n>=0;n--){var i=this.views[n];if(i.hasDOF()&&i.containPoint(e.offsetX,e.offsetY)){this._picking.scene=i.scene,this._picking.camera=i.camera,t.viewport=i.viewport;var a=this._picking.pick(e.offsetX,e.offsetY,!0);if(a)return a.view=i,a}}t.viewport=r},Ca.prototype.onglobalout=function(e){var t=this._hovered;t&&this._dispatchEvent("mouseout",e,{target:t.target})},Ca.prototype.pickObject=function(e,t){for(var r=[],n=this.renderer,i=n.viewport,a=0;a=0&&(h.dataIndex=this._lastDataIndex,h.seriesIndex=this._lastSeriesIndex,this.zr.handler.dispatchToElement(u,"mouseout",t)),l=!0):null!=s&&s!==this._lastEventData&&(null!=this._lastEventData&&(h.eventData=this._lastEventData,this.zr.handler.dispatchToElement(u,"mouseout",t)),l=!0),this._lastEventData=s,this._lastDataIndex=i,this._lastSeriesIndex=o),h.eventData=s,h.dataIndex=i,h.seriesIndex=o,(null!=s||parseInt(i,10)>=0&&parseInt(o,10)>=0)&&(this.zr.handler.dispatchToElement(u,e,t),l&&this.zr.handler.dispatchToElement(u,"mouseover",t))},Ca.prototype._dispatchToView=function(e,t){for(var r=0;r=0&&(Fa(t),"mapbox"===t.coordinateSystem&&(t.coordinateSystem="mapbox3D",e.mapbox3D=e.mapbox))})),Ua(e.xAxis3D),Ua(e.yAxis3D),Ua(e.zAxis3D),Ua(e.grid3D),Ba(e.geo3D)};function ja(e){this._layers={},this._zr=e}ja.prototype.update=function(e,t){var r=this,n=t.getZr();if(n.getWidth()&&n.getHeight()){for(var i in this._layers)this._layers[i].removeViewsAll();e.eachComponent((function(r,n){if("series"!==r){var i=t.getViewOfComponentModel(n),a=n.coordinateSystem;if(i.__ecgl__){if(a){if(!a.viewGL)return void console.error("Can't find viewGL in coordinateSystem of component "+n.id);l=a.viewGL}else{if(!n.viewGL)return void console.error("Can't find viewGL of component "+n.id);l=a.viewGL}var l=a.viewGL,c=o(n);c.addView(l),i.afterRender&&i.afterRender(n,e,t,c),s(i.groupGL,n.get("silent"))}}})),e.eachSeries((function(r){var n=t.getViewOfSeriesModel(r),i=r.coordinateSystem;if(n.__ecgl__){if(i&&!i.viewGL&&!n.viewGL)return void console.error("Can't find viewGL of series "+n.id);var a=i&&i.viewGL||n.viewGL,l=o(r);l.addView(a),n.afterRender&&n.afterRender(r,e,t,l),s(n.groupGL,r.get("silent"))}}))}else console.warn("Dom has no width or height");function o(e){var t;n.setSleepAfterStill(0),t=(e.coordinateSystem&&e.coordinateSystem.model,e.get("zlevel"));var i=r._layers,o=i[t];if(!o){if(o=i[t]=new Pa("gl-"+t,n),n.painter.isSingleCanvas()){o.virtual=!0;var s=new a["l"].Image({z:1e4,style:{image:o.renderer.canvas},silent:!0});o.__hostImage=s,n.add(s)}n.painter.insertLayer(t,o)}return o.__hostImage&&o.__hostImage.setStyle({width:o.renderer.getWidth(),height:o.renderer.getHeight()}),o}function s(e,t){e&&e.traverse((function(e){e.isRenderable&&e.isRenderable()&&(e.ignorePicking=null!=e.$ignorePicking?e.$ignorePicking:t)}))}},a["s"]((function(e){var t=e.getZr(),r=t.painter.dispose;t.painter.dispose=function(){"function"===typeof this.eachOtherLayer&&this.eachOtherLayer((function(e){e instanceof Pa&&e.dispose()})),r.call(this)},t.painter.getRenderedCanvas=function(e){if(e=e||{},this._singleCanvas)return this._layers[0].dom;var t=document.createElement("canvas"),r=e.pixelRatio||this.dpr;t.width=this.getWidth()*r,t.height=this.getHeight()*r;var n=t.getContext("2d");n.dpr=r,n.clearRect(0,0,t.width,t.height),e.backgroundColor&&(n.fillStyle=e.backgroundColor,n.fillRect(0,0,t.width,t.height));var i,a=this.storage.getDisplayList(!0),o={},s=this;function l(e,t){var r,i=s._zlevelList;null==e&&(e=-1/0);for(var a=0;ae&&o0&&this._notFirst?this.animateTo({alpha:c,beta:u,center:h,distance:a,orthographicSize:o,easing:l.animationEasingUpdate,duration:l.animationDurationUpdate}):(this.setDistance(a),this.setAlpha(c),this.setBeta(u),this.setCenter(h),this.setOrthographicSize(o)),this._notFirst=!0,this._validateProperties()},_validateProperties:function(){0},animateTo:function(e){var t=this.zr,r=this,n={},i={};return null!=e.distance&&(n.distance=this.getDistance(),i.distance=e.distance),null!=e.orthographicSize&&(n.orthographicSize=this.getOrthographicSize(),i.orthographicSize=e.orthographicSize),null!=e.alpha&&(n.alpha=this.getAlpha(),i.alpha=e.alpha),null!=e.beta&&(n.beta=this.getBeta(),i.beta=e.beta),null!=e.center&&(n.center=this.getCenter(),i.center=e.center),this._addAnimator(t.animation.animate(n).when(e.duration||1e3,i).during((function(){null!=n.alpha&&r.setAlpha(n.alpha),null!=n.beta&&r.setBeta(n.beta),null!=n.distance&&r.setDistance(n.distance),null!=n.center&&r.setCenter(n.center),null!=n.orthographicSize&&r.setOrthographicSize(n.orthographicSize),r._needsUpdate=!0}))).start(e.easing||"linear")},stopAllAnimation:function(){for(var e=0;e0},_update:function(e){if(this._rotating){var t=("cw"===this.autoRotateDirection?1:-1)*this.autoRotateSpeed/180*Math.PI;this._phi-=t*e/1e3,this._needsUpdate=!0}else this._rotateVelocity.len()>0&&(this._needsUpdate=!0);(Math.abs(this._zoomSpeed)>.1||this._panVelocity.len()>0)&&(this._needsUpdate=!0),this._needsUpdate&&(e=Math.min(e,50),this._updateDistanceOrSize(e),this._updatePan(e),this._updateRotate(e),this._updateTransform(),this.getCamera().update(),this.zr&&this.zr.refresh(),this.trigger("update"),this._needsUpdate=!1)},_updateRotate:function(e){var t=this._rotateVelocity;this._phi=t.y*e/20+this._phi,this._theta=t.x*e/20+this._theta,this.setAlpha(this.getAlpha()),this.setBeta(this.getBeta()),this._vectorDamping(t,Math.pow(this.damping,e/16))},_updateDistanceOrSize:function(e){"perspective"===this._projection?this._setDistance(this._distance+this._zoomSpeed*e/20):this._setOrthoSize(this._orthoSize+this._zoomSpeed*e/20),this._zoomSpeed*=Math.pow(this.damping,e/16)},_setDistance:function(e){this._distance=Math.max(Math.min(e,this.maxDistance),this.minDistance)},_setOrthoSize:function(e){this._orthoSize=Math.max(Math.min(e,this.maxOrthographicSize),this.minOrthographicSize);var t=this.getCamera(),r=this._orthoSize,n=r/this.viewGL.viewport.height*this.viewGL.viewport.width;t.left=-n/2,t.right=n/2,t.top=r/2,t.bottom=-r/2},_updatePan:function(e){var t=this._panVelocity,r=this._distance,n=this.getCamera(),i=n.worldTransform.y,a=n.worldTransform.x;this._center.scaleAndAdd(a,-t.x*r/200).scaleAndAdd(i,-t.y*r/200),this._vectorDamping(t,0)},_updateTransform:function(){var e=this.getCamera(),t=new _t,r=this._theta+Math.PI/2,n=this._phi+Math.PI/2,i=Math.sin(r);t.x=i*Math.cos(n),t.y=-Math.cos(r),t.z=i*Math.sin(n),e.position.copy(this._center).scaleAndAdd(t,this._distance),e.rotation.identity().rotateY(-this._phi).rotateX(-this._theta)},_startCountingStill:function(){clearTimeout(this._stillTimeout);var e=this.autoRotateAfterStill,t=this;!isNaN(e)&&e>0&&(this._stillTimeout=setTimeout((function(){t._rotating=!0}),1e3*e))},_vectorDamping:function(e,t){var r=e.len();r*=t,r<1e-4&&(r=0),e.normalize().scale(r)},_decomposeTransform:function(){if(this.getCamera()){this.getCamera().updateWorldTransform();var e=this.getCamera().worldTransform.z,t=Math.asin(e.y),r=Math.atan2(e.x,e.z);this._theta=t,this._phi=-r,this.setBeta(this.getBeta()),this.setAlpha(this.getAlpha()),this.getCamera().aspect?this._setDistance(this.getCamera().position.dist(this._center)):this._setOrthoSize(this.getCamera().top-this.getCamera().bottom)}},_mouseDownHandler:function(e){if(!e.target&&!this._isAnimating()){var t=e.offsetX,r=e.offsetY;this.viewGL&&!this.viewGL.containPoint(t,r)||(this.zr.on("mousemove",this._mouseMoveHandler),this.zr.on("mouseup",this._mouseUpHandler),e.event.targetTouches?1===e.event.targetTouches.length&&(this._mode="rotate"):e.event.button===Za[this.rotateMouseButton]?this._mode="rotate":e.event.button===Za[this.panMouseButton]?this._mode="pan":this._mode="",this._rotateVelocity.set(0,0),this._rotating=!1,this.autoRotate&&this._startCountingStill(),this._mouseX=e.offsetX,this._mouseY=e.offsetY)}},_mouseMoveHandler:function(e){if((!e.target||!e.target.__isGLToZRProxy)&&!this._isAnimating()){var t=qa(this.panSensitivity),r=qa(this.rotateSensitivity);"rotate"===this._mode?(this._rotateVelocity.y=(e.offsetX-this._mouseX)/this.zr.getHeight()*2*r[0],this._rotateVelocity.x=(e.offsetY-this._mouseY)/this.zr.getWidth()*2*r[1]):"pan"===this._mode&&(this._panVelocity.x=(e.offsetX-this._mouseX)/this.zr.getWidth()*t[0]*400,this._panVelocity.y=(-e.offsetY+this._mouseY)/this.zr.getHeight()*t[1]*400),this._mouseX=e.offsetX,this._mouseY=e.offsetY,e.event.preventDefault()}},_mouseWheelHandler:function(e){if(!this._isAnimating()){var t=e.event.wheelDelta||-e.event.detail;this._zoomHandler(e,t)}},_pinchHandler:function(e){this._isAnimating()||(this._zoomHandler(e,e.pinchScale>1?1:-1),this._mode="")},_zoomHandler:function(e,t){if(0!==t){var r,n=e.offsetX,i=e.offsetY;if(!this.viewGL||this.viewGL.containPoint(n,i))r="perspective"===this._projection?Math.max(Math.max(Math.min(this._distance-this.minDistance,this.maxDistance-this._distance))/20,.5):Math.max(Math.max(Math.min(this._orthoSize-this.minOrthographicSize,this.maxOrthographicSize-this._orthoSize))/20,.5),this._zoomSpeed=(t>0?-1:1)*r*this.zoomSensitivity,this._rotating=!1,this.autoRotate&&"rotate"===this._mode&&this._startCountingStill(),e.event.preventDefault()}},_mouseUpHandler:function(){this.zr.off("mousemove",this._mouseMoveHandler),this.zr.off("mouseup",this._mouseUpHandler)},_isRightMouseButtonUsed:function(){return"right"===this.rotateMouseButton||"right"===this.panMouseButton},_contextMenuHandler:function(e){this._isRightMouseButtonUsed()&&e.preventDefault()},_addAnimator:function(e){var t=this._animators;return t.push(e),e.done((function(){var r=t.indexOf(e);r>=0&&t.splice(r,1)})),e}});Object.defineProperty(Qa.prototype,"autoRotate",{get:function(e){return this._autoRotate},set:function(e){this._autoRotate=e,this._rotating=e}});var Ka=Qa,Ja={convertToDynamicArray:function(e){e&&this.resetOffset();var t=this.attributes;for(var r in t)e||!t[r].value?t[r].value=[]:t[r].value=Array.prototype.slice.call(t[r].value);e||!this.indices?this.indices=[]:this.indices=Array.prototype.slice.call(this.indices)},convertToTypedArray:function(){var e=this.attributes;for(var t in e)e[t].value&&e[t].value.length>0?e[t].value=new Float32Array(e[t].value):e[t].value=null;this.indices&&this.indices.length>0&&(this.indices=this.vertexCount>65535?new Uint32Array(this.indices):new Uint16Array(this.indices)),this.dirty()}},$a={vec2:se,vec3:Ke,vec4:Tt,mat2:Qi,mat2d:ea,mat3:Et,mat4:qe,quat:Ct},eo=$a,to=eo.vec3,ro=[[0,0],[1,1]],no=yr.extend((function(){return{segmentScale:1,dynamic:!0,useNativeLine:!0,attributes:{position:new yr.Attribute("position","float",3,"POSITION"),positionPrev:new yr.Attribute("positionPrev","float",3),positionNext:new yr.Attribute("positionNext","float",3),prevPositionPrev:new yr.Attribute("prevPositionPrev","float",3),prevPosition:new yr.Attribute("prevPosition","float",3),prevPositionNext:new yr.Attribute("prevPositionNext","float",3),offset:new yr.Attribute("offset","float",1),color:new yr.Attribute("color","float",4,"COLOR")}}}),{resetOffset:function(){this._vertexOffset=0,this._triangleOffset=0,this._itemVertexOffsets=[]},setVertexCount:function(e){var t=this.attributes;this.vertexCount!==e&&(t.position.init(e),t.color.init(e),this.useNativeLine||(t.positionPrev.init(e),t.positionNext.init(e),t.offset.init(e)),e>65535?this.indices instanceof Uint16Array&&(this.indices=new Uint32Array(this.indices)):this.indices instanceof Uint32Array&&(this.indices=new Uint16Array(this.indices)))},setTriangleCount:function(e){this.triangleCount!==e&&(this.indices=0===e?null:this.vertexCount>65535?new Uint32Array(3*e):new Uint16Array(3*e))},_getCubicCurveApproxStep:function(e,t,r,n){var i=to.dist(e,t)+to.dist(r,t)+to.dist(n,r),a=1/(i+1)*this.segmentScale;return a},getCubicCurveVertexCount:function(e,t,r,n){var i=this._getCubicCurveApproxStep(e,t,r,n),a=Math.ceil(1/i);return this.useNativeLine?2*a:2*a+2},getCubicCurveTriangleCount:function(e,t,r,n){var i=this._getCubicCurveApproxStep(e,t,r,n),a=Math.ceil(1/i);return this.useNativeLine?0:2*a},getLineVertexCount:function(){return this.getPolylineVertexCount(ro)},getLineTriangleCount:function(){return this.getPolylineTriangleCount(ro)},getPolylineVertexCount:function(e){var t;if("number"===typeof e)t=e;else{var r="number"!==typeof e[0];t=r?e.length:e.length/3}return this.useNativeLine?2*(t-1):2*(t-1)+2},getPolylineTriangleCount:function(e){var t;if("number"===typeof e)t=e;else{var r="number"!==typeof e[0];t=r?e.length:e.length/3}return this.useNativeLine?0:2*Math.max(t-1,0)},addCubicCurve:function(e,t,r,n,i,a){null==a&&(a=1);var o=e[0],s=e[1],l=e[2],c=t[0],u=t[1],h=t[2],d=r[0],f=r[1],p=r[2],m=n[0],g=n[1],v=n[2],_=this._getCubicCurveApproxStep(e,t,r,n),y=_*_,x=y*_,b=3*_,A=3*y,T=6*y,w=6*x,E=o-2*c+d,S=s-2*u+f,C=l-2*h+p,M=3*(c-d)-o+m,O=3*(u-f)-s+g,D=3*(h-p)-l+v,L=o,N=s,R=l,P=(c-o)*b+E*A+M*x,I=(u-s)*b+S*A+O*x,B=(h-l)*b+C*A+D*x,F=E*T+M*w,U=S*T+O*w,z=C*T+D*w,j=M*w,V=O*w,G=D*w,k=0,H=0,W=Math.ceil(1/_),X=new Float32Array(3*(W+1)),Y=(X=[],0);for(H=0;H1&&(L=P>0?Math.min(L,m):Math.max(L,m),N=I>0?Math.min(N,g):Math.max(N,g),R=B>0?Math.min(R,v):Math.max(R,v));return this.addPolyline(X,i,a)},addLine:function(e,t,r,n){return this.addPolyline([e,t],r,n)},addPolyline:function(e,t,r,n,i){if(e.length){var a="number"!==typeof e[0];if(null==i&&(i=a?e.length:e.length/3),!(i<2)){null==n&&(n=0),null==r&&(r=1),this._itemVertexOffsets.push(this._vertexOffset);a="number"!==typeof e[0];var o,s,l=a?"number"!==typeof t[0]:t.length/4===i,c=this.attributes.position,u=this.attributes.positionPrev,h=this.attributes.positionNext,d=this.attributes.color,f=this.attributes.offset,p=this.indices,m=this._vertexOffset;r=Math.max(r,.01);for(var g=n;g1&&(c.copy(m,m-1),d.copy(m,m-1),m++):(g0&&(h.set(m-2,o),h.set(m-1,o)),c.set(m,o),c.set(m+1,o),d.set(m,s),d.set(m+1,s),f.set(m,r/2),f.set(m+1,-r/2),m+=2),this.useNativeLine)d.set(m,s),c.set(m,o),m++;else if(g>0){var y=3*this._triangleOffset;p=this.indices;p[y]=m-4,p[y+1]=m-3,p[y+2]=m-2,p[y+3]=m-3,p[y+4]=m-1,p[y+5]=m-2,this._triangleOffset+=2}}if(!this.useNativeLine){var x=this._vertexOffset,b=this._vertexOffset+2*i;u.copy(x,x+2),u.copy(x+1,x+3),h.copy(b-1,b-3),h.copy(b-2,b-4)}return this._vertexOffset=m,this._vertexOffset}}},setItemColor:function(e,t){for(var r=this._itemVertexOffsets[e],n=eo&&(i=this._x=0,a+=this._rowHeight+l,this._y=a,this._rowHeight=0),this._x+=t+l,this._rowHeight=Math.max(this._rowHeight,r),a+r+l>s)return null;e.x+=this.offsetX*this.dpr+i,e.y+=this.offsetY*this.dpr+a,this._zr.add(e);var c=[this.offsetX/this.width,this.offsetY/this.height],u=[[i/o+c[0],a/s+c[1]],[(i+t)/o+c[0],(a+r)/s+c[1]]];return u},_fitElement:function(e,t,r){var n=e.getBoundingRect(),i=t/n.width,a=r/n.height;e.x=-n.x*i,e.y=-n.y*a,e.scaleX=i,e.scaleY=a,e.update()}},oo.prototype={clear:function(){for(var e=0;e=e)){var a=(n+this._nodeWidth)*this._dpr,o=(i+this._nodeHeight)*this._dpr;try{this._zr.resize({width:a,height:o})}catch(l){this._canvas.width=a,this._canvas.height=o}var s=new ao(this._zr,n,i,this._nodeWidth,this._nodeHeight,this._gap,this._dpr);return this._textureAtlasNodes.push(s),s}},add:function(e,t,r){if(this._coords[e.id])return this._coords[e.id];var n=this._getCurrentNode().add(e,t,r);if(!n){var i=this._expand();if(!i)return;n=i.add(e,t,r)}return this._coords[e.id]=n,n},getCoordsScale:function(){var e=this._dpr;return[this._nodeWidth/this._canvas.width*e,this._nodeHeight/this._canvas.height*e]},getCoords:function(e){return this._coords[e]},dispose:function(){this._zr.dispose()}};var so=oo;function lo(){}lo.prototype={constructor:lo,setScene:function(e){this._scene=e,this._skybox&&this._skybox.attachScene(this._scene)},initLight:function(e){this._lightRoot=e,this.mainLight=new Ea.DirectionalLight({shadowBias:.005}),this.ambientLight=new Ea.AmbientLight,e.add(this.mainLight),e.add(this.ambientLight)},dispose:function(){this._lightRoot&&(this._lightRoot.remove(this.mainLight),this._lightRoot.remove(this.ambientLight))},updateLight:function(e){var t=this.mainLight,r=this.ambientLight,n=e.getModel("light"),i=n.getModel("main"),a=n.getModel("ambient");t.intensity=i.get("intensity"),r.intensity=a.get("intensity"),t.color=Ea.parseColor(i.get("color")).slice(0,3),r.color=Ea.parseColor(a.get("color")).slice(0,3);var o=i.get("alpha")||0,s=i.get("beta")||0;t.position.setArray(Ea.directionFromAlphaBeta(o,s)),t.lookAt(Ea.Vector3.ZERO),t.castShadow=i.get("shadow"),t.shadowResolution=Ea.getShadowResolution(i.get("shadowQuality"))},updateAmbientCubemap:function(e,t,r){var n=t.getModel("light.ambientCubemap"),i=n.get("texture");if(i){this._cubemapLightsCache=this._cubemapLightsCache||{};var a=this._cubemapLightsCache[i];if(!a){var o=this;a=this._cubemapLightsCache[i]=Ea.createAmbientCubemap(n.option,e,r,(function(){o._isSkyboxFromAmbientCubemap&&o._skybox.setEnvironmentMap(a.specular.cubemap),r.getZr().refresh()}))}this._lightRoot.add(a.diffuse),this._lightRoot.add(a.specular),this._currentCubemapLights=a}else this._currentCubemapLights&&(this._lightRoot.remove(this._currentCubemapLights.diffuse),this._lightRoot.remove(this._currentCubemapLights.specular),this._currentCubemapLights=null)},updateSkybox:function(e,t,r){var n=t.get("environment"),i=this;function o(){return i._skybox=i._skybox||new Sn,i._skybox}var s=o();if(n&&"none"!==n)if("auto"===n)if(this._isSkyboxFromAmbientCubemap=!0,this._currentCubemapLights){var l=this._currentCubemapLights.specular.cubemap;s.setEnvironmentMap(l),this._scene&&s.attachScene(this._scene),s.material.set("lod",3)}else this._skybox&&this._skybox.detachScene();else if("object"===typeof n&&n.colorStops||"string"===typeof n&&a["h"].parse(n)){this._isSkyboxFromAmbientCubemap=!1;var c=new Ea.Texture2D({anisotropic:8,flipY:!1});s.setEnvironmentMap(c);var u=c.image=document.createElement("canvas");u.width=u.height=16;var h=u.getContext("2d"),d=new a["l"].Rect({shape:{x:0,y:0,width:16,height:16},style:{fill:n}});a["o"](h,d),s.attachScene(this._scene)}else{this._isSkyboxFromAmbientCubemap=!1;c=Ea.loadTexture(n,r,{anisotropic:8,flipY:!1});s.setEnvironmentMap(c),s.attachScene(this._scene)}else this._skybox&&this._skybox.detachScene(this._scene),this._skybox=null;var f=t.coordinateSystem;if(this._skybox)if(!f||!f.viewGL||"auto"===n||n.match&&n.match(/.hdr$/))this._skybox.material.undefine("fragment","SRGB_DECODE");else{var p=f.viewGL.isLinearSpace()?"define":"undefine";this._skybox.material[p]("fragment","SRGB_DECODE")}}};var co=lo,uo=eo.vec3,ho=yr.extend((function(){return{segmentScale:1,useNativeLine:!0,attributes:{position:new yr.Attribute("position","float",3,"POSITION"),normal:new yr.Attribute("normal","float",3,"NORMAL"),color:new yr.Attribute("color","float",4,"COLOR")}}}),{resetOffset:function(){this._vertexOffset=0,this._faceOffset=0},setQuadCount:function(e){var t=this.attributes,r=this.getQuadVertexCount()*e,n=this.getQuadTriangleCount()*e;this.vertexCount!==r&&(t.position.init(r),t.normal.init(r),t.color.init(r)),this.triangleCount!==n&&(this.indices=r>65535?new Uint32Array(3*n):new Uint16Array(3*n))},getQuadVertexCount:function(){return 4},getQuadTriangleCount:function(){return 2},addQuad:function(){var e=uo.create(),t=uo.create(),r=uo.create(),n=[0,3,1,3,2,1];return function(i,a){var o=this.attributes.position,s=this.attributes.normal,l=this.attributes.color;uo.sub(e,i[1],i[0]),uo.sub(t,i[2],i[1]),uo.cross(r,e,t),uo.normalize(r,r);for(var c=0;c<4;c++)o.set(this._vertexOffset+c,i[c]),l.set(this._vertexOffset+c,a),s.set(this._vertexOffset+c,r);var u=3*this._faceOffset;for(c=0;c<6;c++)this.indices[u+c]=n[c]+this._vertexOffset;this._vertexOffset+=4,this._faceOffset+=2}}()});a["w"].defaults(ho.prototype,Ja);var fo=ho,po=Pi.firstNotNull,mo={x:0,y:2,z:1};function go(e,t,r,n){var i=[0,0,0],a=n<0?r.getExtentMin():r.getExtentMax();i[mo[r.dim]]=a,e.position.setArray(i),e.rotation.identity(),t.distance=-Math.abs(a),t.normal.set(0,0,0),"x"===r.dim?(e.rotation.rotateY(n*Math.PI/2),t.normal.x=-n):"z"===r.dim?(e.rotation.rotateX(-n*Math.PI/2),t.normal.y=-n):(n>0&&e.rotation.rotateY(Math.PI),t.normal.z=-n)}function vo(e,t,r){this.rootNode=new Ea.Node;var n=new Ea.Mesh({geometry:new io({useNativeLine:!1}),material:t,castShadow:!1,ignorePicking:!0,$ignorePicking:!0,renderOrder:1}),i=new Ea.Mesh({geometry:new fo,material:r,castShadow:!1,culling:!1,ignorePicking:!0,$ignorePicking:!0,renderOrder:0});this.rootNode.add(i),this.rootNode.add(n),this.faceInfo=e,this.plane=new Ea.Plane,this.linesMesh=n,this.quadsMesh=i}vo.prototype.update=function(e,t,r){var n=e.coordinateSystem,i=[n.getAxis(this.faceInfo[0]),n.getAxis(this.faceInfo[1])],a=this.linesMesh.geometry,o=this.quadsMesh.geometry;a.convertToDynamicArray(!0),o.convertToDynamicArray(!0),this._updateSplitLines(a,i,e,r),this._udpateSplitAreas(o,i,e,r),a.convertToTypedArray(),o.convertToTypedArray();var s=n.getAxis(this.faceInfo[2]);go(this.rootNode,this.plane,s,this.faceInfo[3])},vo.prototype._updateSplitLines=function(e,t,r,n){var i=n.getDevicePixelRatio();t.forEach((function(n,o){var s=n.model,l=t[1-o].getExtent();if(!n.scale.isBlank()){var c=s.getModel("splitLine",r.getModel("splitLine"));if(c.get("show")){var u=c.getModel("lineStyle"),h=u.get("color"),d=po(u.get("opacity"),1),f=po(u.get("width"),1);h=a["w"].isArray(h)?h:[h];for(var p=n.getTicksCoords({tickModel:c}),m=0,g=0;g65535?new Uint32Array(3*r):new Uint16Array(3*r))},setSpriteAlign:function(e,t,r,n,i){var a,o,s,l;switch(null==r&&(r="left"),null==n&&(n="top"),i=i||0,r){case"left":a=i,s=t[0]+i;break;case"center":case"middle":a=-t[0]/2,s=t[0]/2;break;case"right":a=-t[0]-i,s=-i;break}switch(n){case"bottom":o=i,l=t[1]+i;break;case"middle":o=-t[1]/2,l=t[1]/2;break;case"top":o=-t[1]-i,l=-i;break}var c=4*e,u=this.attributes.offset;u.set(c,[a,l]),u.set(c+1,[s,l]),u.set(c+2,[s,o]),u.set(c+3,[a,o])},addSprite:function(e,t,r,n,i,a){var o=this._vertexOffset;this.setSprite(this._vertexOffset/4,e,t,r,n,i,a);for(var s=0;s 0.0) {\n currProj = clipNear(currProj, nextProj);\n }\n else if (prevProj.w > 0.0) {\n currProj = clipNear(currProj, prevProj);\n }\n }\n\n vec2 prevScreen = (prevProj.xy / abs(prevProj.w) + 1.0) * 0.5 * viewport.zw;\n vec2 currScreen = (currProj.xy / abs(currProj.w) + 1.0) * 0.5 * viewport.zw;\n vec2 nextScreen = (nextProj.xy / abs(nextProj.w) + 1.0) * 0.5 * viewport.zw;\n\n vec2 dir;\n float len = offset;\n if (position == positionPrev) {\n dir = normalize(nextScreen - currScreen);\n }\n else if (position == positionNext) {\n dir = normalize(currScreen - prevScreen);\n }\n else {\n vec2 dirA = normalize(currScreen - prevScreen);\n vec2 dirB = normalize(nextScreen - currScreen);\n\n vec2 tanget = normalize(dirA + dirB);\n\n float miter = 1.0 / max(dot(tanget, dirA), 0.5);\n len *= miter;\n dir = tanget;\n }\n\n dir = vec2(-dir.y, dir.x) * len;\n currScreen += dir;\n\n currProj.xy = (currScreen / viewport.zw - 0.5) * 2.0 * abs(currProj.w);\n@end\n\n\n@export ecgl.meshLines3D.vertex\n\nattribute vec3 position: POSITION;\nattribute vec3 positionPrev;\nattribute vec3 positionNext;\nattribute float offset;\nattribute vec4 a_Color : COLOR;\n\n#ifdef VERTEX_ANIMATION\nattribute vec3 prevPosition;\nattribute vec3 prevPositionPrev;\nattribute vec3 prevPositionNext;\nuniform float percent : 1.0;\n#endif\n\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nuniform vec4 viewport : VIEWPORT;\nuniform float near : NEAR;\n\nvarying vec4 v_Color;\n\n@import ecgl.common.wireframe.vertexHeader\n\n@import ecgl.lines3D.clipNear\n\nvoid main()\n{\n @import ecgl.lines3D.expandLine\n\n gl_Position = currProj;\n\n v_Color = a_Color;\n\n @import ecgl.common.wireframe.vertexMain\n}\n@end\n\n\n@export ecgl.meshLines3D.fragment\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\n\nvarying vec4 v_Color;\n\n@import ecgl.common.wireframe.fragmentHeader\n\n@import clay.util.srgb\n\nvoid main()\n{\n#ifdef SRGB_DECODE\n gl_FragColor = sRGBToLinear(color * v_Color);\n#else\n gl_FragColor = color * v_Color;\n#endif\n\n @import ecgl.common.wireframe.fragmentMain\n}\n\n@end",Do=Pi.firstNotNull;Ea.Shader.import(Oo);var Lo={x:0,y:2,z:1},No=a["d"].extend({type:"grid3D",__ecgl__:!0,init:function(e,t){var r=[["y","z","x",-1,"left"],["y","z","x",1,"right"],["x","y","z",-1,"bottom"],["x","y","z",1,"top"],["x","z","y",-1,"far"],["x","z","y",1,"near"]],n=["x","y","z"],i=new Ea.Material({shader:Ea.createShader("ecgl.color"),depthMask:!1,transparent:!0}),a=new Ea.Material({shader:Ea.createShader("ecgl.meshLines3D"),depthMask:!1,transparent:!0});i.define("fragment","DOUBLE_SIDED"),i.define("both","VERTEX_COLOR"),this.groupGL=new Ea.Node,this._control=new Ka({zr:t.getZr()}),this._control.init(),this._faces=r.map((function(e){var t=new _o(e,a,i);return this.groupGL.add(t.rootNode),t}),this),this._axes=n.map((function(e){var t=new Mo(e,a);return this.groupGL.add(t.rootNode),t}),this);var o=t.getDevicePixelRatio();this._axisLabelSurface=new so({width:256,height:256,devicePixelRatio:o}),this._axisLabelSurface.onupdate=function(){t.getZr().refresh()},this._axisPointerLineMesh=new Ea.Mesh({geometry:new io({useNativeLine:!1}),material:a,castShadow:!1,ignorePicking:!0,renderOrder:3}),this.groupGL.add(this._axisPointerLineMesh),this._axisPointerLabelsSurface=new so({width:128,height:128,devicePixelRatio:o}),this._axisPointerLabelsMesh=new To({ignorePicking:!0,renderOrder:4,castShadow:!1}),this._axisPointerLabelsMesh.material.set("textureAtlas",this._axisPointerLabelsSurface.getTexture()),this.groupGL.add(this._axisPointerLabelsMesh),this._lightRoot=new Ea.Node,this._sceneHelper=new co,this._sceneHelper.initLight(this._lightRoot)},render:function(e,t,r){this._model=e,this._api=r;var n=e.coordinateSystem;n.viewGL.add(this._lightRoot),e.get("show")?n.viewGL.add(this.groupGL):n.viewGL.remove(this.groupGL);var i=this._control;i.setViewGL(n.viewGL);var a=e.getModel("viewControl");i.setFromViewControlModel(a,0),this._axisLabelSurface.clear(),i.off("update"),e.get("show")&&(this._faces.forEach((function(n){n.update(e,t,r)}),this),this._axes.forEach((function(t){t.update(e,this._axisLabelSurface,r)}),this)),i.on("update",this._onCameraChange.bind(this,e,r),this),this._sceneHelper.setScene(n.viewGL.scene),this._sceneHelper.updateLight(e),n.viewGL.setPostEffect(e.getModel("postEffect"),r),n.viewGL.setTemporalSuperSampling(e.getModel("temporalSuperSampling")),this._initMouseHandler(e)},afterRender:function(e,t,r,n){var i=n.renderer;this._sceneHelper.updateAmbientCubemap(i,e,r),this._sceneHelper.updateSkybox(i,e,r)},showAxisPointer:function(e,t,r,n){this._doShowAxisPointer(),this._updateAxisPointer(n.value)},hideAxisPointer:function(e,t,r,n){this._doHideAxisPointer()},_initMouseHandler:function(e){var t=e.coordinateSystem,r=t.viewGL;e.get("show")&&e.get("axisPointer.show")?r.on("mousemove",this._updateAxisPointerOnMousePosition,this):r.off("mousemove",this._updateAxisPointerOnMousePosition)},_updateAxisPointerOnMousePosition:function(e){if(!e.target){for(var t,r=this._model,n=r.coordinateSystem,i=n.viewGL,a=i.castRay(e.offsetX,e.offsetY,new Ea.Ray),o=0;on[1]?0:1,s=this._faces[2*r+o],l=this._faces[2*r+1-o];s.rootNode.invisible=!0,l.rootNode.invisible=!1}},_updateAxisLinePosition:function(){var e=this._model.coordinateSystem,t=e.getAxis("x"),r=e.getAxis("y"),n=e.getAxis("z"),i=n.getExtentMax(),a=n.getExtentMin(),o=t.getExtentMin(),s=t.getExtentMax(),l=r.getExtentMax(),c=r.getExtentMin(),u=this._axes[0].rootNode,h=this._axes[1].rootNode,d=this._axes[2].rootNode,f=this._faces,p=f[4].rootNode.invisible?c:l,m=f[2].rootNode.invisible?i:a,g=f[0].rootNode.invisible?o:s,v=f[2].rootNode.invisible?i:a,_=f[0].rootNode.invisible?s:o,y=f[4].rootNode.invisible?c:l;u.rotation.identity(),h.rotation.identity(),d.rotation.identity(),f[4].rootNode.invisible&&(this._axes[0].flipped=!0,u.rotation.rotateX(Math.PI)),f[0].rootNode.invisible&&(this._axes[1].flipped=!0,h.rotation.rotateZ(Math.PI)),f[4].rootNode.invisible&&(this._axes[2].flipped=!0,d.rotation.rotateY(Math.PI)),u.position.set(0,m,p),h.position.set(g,v,0),d.position.set(_,0,y),u.update(),h.update(),d.update(),this._updateAxisLabelAlign()},_updateAxisLabelAlign:function(){var e=this._control.getCamera(),t=[new Ea.Vector4,new Ea.Vector4],r=new Ea.Vector4;this.groupGL.getWorldPosition(r),r.w=1,r.transformMat4(e.viewMatrix).transformMat4(e.projectionMatrix),r.x/=r.w,r.y/=r.w,this._axes.forEach((function(n){for(var i=n.axisLineCoords,a=(n.labelsMesh.geometry,0);ar.y?"bottom":"top"):(s="middle",o=u>r.x?"left":"right"),n.setSpriteAlign(o,s,this._api)}),this)},_doShowAxisPointer:function(){this._axisPointerLineMesh.invisible&&(this._axisPointerLineMesh.invisible=!1,this._axisPointerLabelsMesh.invisible=!1,this._api.getZr().refresh())},_doHideAxisPointer:function(){this._axisPointerLineMesh.invisible||(this._axisPointerLineMesh.invisible=!0,this._axisPointerLabelsMesh.invisible=!0,this._api.getZr().refresh())},_updateAxisPointer:function(e){var t=this._model.coordinateSystem,r=t.dataToPoint(e),n=this._axisPointerLineMesh,i=n.geometry,a=this._model.getModel("axisPointer"),o=this._api.getDevicePixelRatio();function s(e){return Pi.firstNotNull(e.model.get("axisPointer.show"),a.get("show"))}function l(e){var t=e.model.getModel("axisPointer",a),r=t.getModel("lineStyle"),n=Ea.parseColor(r.get("color")),i=Do(r.get("width"),1),o=Do(r.get("opacity"),1);return n[3]*=o,{color:n,lineWidth:i}}i.convertToDynamicArray(!0);for(var c=0;c 0.0) {\n if (texture2D(alphaMap, v_Texcoord).a <= alphaCutoff) {\n discard;\n }\n }\n#ifdef USE_VSM\n depth = depth * 0.5 + 0.5;\n float moment1 = depth;\n float moment2 = depth * depth;\n #ifdef SUPPORT_STANDARD_DERIVATIVES\n float dx = dFdx(depth);\n float dy = dFdy(depth);\n moment2 += 0.25*(dx*dx+dy*dy);\n #endif\n gl_FragColor = vec4(moment1, moment2, 0.0, 1.0);\n#else\n #ifdef SUPPORT_STANDARD_DERIVATIVES\n float dx = dFdx(depth);\n float dy = dFdy(depth);\n depth += sqrt(dx*dx + dy*dy) * slopeScale + bias;\n #else\n depth += bias;\n #endif\n gl_FragColor = encodeFloat(depth * 0.5 + 0.5);\n#endif\n}\n@end\n@export clay.sm.debug_depth\nuniform sampler2D depthMap;\nvarying vec2 v_Texcoord;\n@import clay.util.decode_float\nvoid main() {\n vec4 tex = texture2D(depthMap, v_Texcoord);\n#ifdef USE_VSM\n gl_FragColor = vec4(tex.rgb, 1.0);\n#else\n float depth = decodeFloat(tex);\n gl_FragColor = vec4(depth, depth, depth, 1.0);\n#endif\n}\n@end\n@export clay.sm.distance.vertex\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nuniform mat4 world : WORLD;\nattribute vec3 position : POSITION;\n@import clay.chunk.skinning_header\nvarying vec3 v_WorldPosition;\nvoid main (){\n vec4 P = vec4(position, 1.0);\n#ifdef SKINNING\n @import clay.chunk.skin_matrix\n P = skinMatrixWS * P;\n#endif\n#ifdef INSTANCING\n @import clay.chunk.instancing_matrix\n P = instanceMat * P;\n#endif\n gl_Position = worldViewProjection * P;\n v_WorldPosition = (world * P).xyz;\n}\n@end\n@export clay.sm.distance.fragment\nuniform vec3 lightPosition;\nuniform float range : 100;\nvarying vec3 v_WorldPosition;\n@import clay.util.encode_float\nvoid main(){\n float dist = distance(lightPosition, v_WorldPosition);\n#ifdef USE_VSM\n gl_FragColor = vec4(dist, dist * dist, 0.0, 0.0);\n#else\n dist = dist / range;\n gl_FragColor = encodeFloat(dist);\n#endif\n}\n@end\n@export clay.plugin.shadow_map_common\n@import clay.util.decode_float\nfloat tapShadowMap(sampler2D map, vec2 uv, float z){\n vec4 tex = texture2D(map, uv);\n return step(z, decodeFloat(tex) * 2.0 - 1.0);\n}\nfloat pcf(sampler2D map, vec2 uv, float z, float textureSize, vec2 scale) {\n float shadowContrib = tapShadowMap(map, uv, z);\n vec2 offset = vec2(1.0 / textureSize) * scale;\n#ifdef PCF_KERNEL_SIZE\n for (int _idx_ = 0; _idx_ < PCF_KERNEL_SIZE; _idx_++) {{\n shadowContrib += tapShadowMap(map, uv + offset * pcfKernel[_idx_], z);\n }}\n return shadowContrib / float(PCF_KERNEL_SIZE + 1);\n#else\n shadowContrib += tapShadowMap(map, uv+vec2(offset.x, 0.0), z);\n shadowContrib += tapShadowMap(map, uv+vec2(offset.x, offset.y), z);\n shadowContrib += tapShadowMap(map, uv+vec2(-offset.x, offset.y), z);\n shadowContrib += tapShadowMap(map, uv+vec2(0.0, offset.y), z);\n shadowContrib += tapShadowMap(map, uv+vec2(-offset.x, 0.0), z);\n shadowContrib += tapShadowMap(map, uv+vec2(-offset.x, -offset.y), z);\n shadowContrib += tapShadowMap(map, uv+vec2(offset.x, -offset.y), z);\n shadowContrib += tapShadowMap(map, uv+vec2(0.0, -offset.y), z);\n return shadowContrib / 9.0;\n#endif\n}\nfloat pcf(sampler2D map, vec2 uv, float z, float textureSize) {\n return pcf(map, uv, z, textureSize, vec2(1.0));\n}\nfloat chebyshevUpperBound(vec2 moments, float z){\n float p = 0.0;\n z = z * 0.5 + 0.5;\n if (z <= moments.x) {\n p = 1.0;\n }\n float variance = moments.y - moments.x * moments.x;\n variance = max(variance, 0.0000001);\n float mD = moments.x - z;\n float pMax = variance / (variance + mD * mD);\n pMax = clamp((pMax-0.4)/(1.0-0.4), 0.0, 1.0);\n return max(p, pMax);\n}\nfloat computeShadowContrib(\n sampler2D map, mat4 lightVPM, vec3 position, float textureSize, vec2 scale, vec2 offset\n) {\n vec4 posInLightSpace = lightVPM * vec4(position, 1.0);\n posInLightSpace.xyz /= posInLightSpace.w;\n float z = posInLightSpace.z;\n if(all(greaterThan(posInLightSpace.xyz, vec3(-0.99, -0.99, -1.0))) &&\n all(lessThan(posInLightSpace.xyz, vec3(0.99, 0.99, 1.0)))){\n vec2 uv = (posInLightSpace.xy+1.0) / 2.0;\n #ifdef USE_VSM\n vec2 moments = texture2D(map, uv * scale + offset).xy;\n return chebyshevUpperBound(moments, z);\n #else\n return pcf(map, uv * scale + offset, z, textureSize, scale);\n #endif\n }\n return 1.0;\n}\nfloat computeShadowContrib(sampler2D map, mat4 lightVPM, vec3 position, float textureSize) {\n return computeShadowContrib(map, lightVPM, position, textureSize, vec2(1.0), vec2(0.0));\n}\nfloat computeShadowContribOmni(samplerCube map, vec3 direction, float range)\n{\n float dist = length(direction);\n vec4 shadowTex = textureCube(map, direction);\n#ifdef USE_VSM\n vec2 moments = shadowTex.xy;\n float variance = moments.y - moments.x * moments.x;\n float mD = moments.x - dist;\n float p = variance / (variance + mD * mD);\n if(moments.x + 0.001 < dist){\n return clamp(p, 0.0, 1.0);\n }else{\n return 1.0;\n }\n#else\n return step(dist, (decodeFloat(shadowTex) + 0.0002) * range);\n#endif\n}\n@end\n@export clay.plugin.compute_shadow_map\n#if defined(SPOT_LIGHT_SHADOWMAP_COUNT) || defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT) || defined(POINT_LIGHT_SHADOWMAP_COUNT)\n#ifdef SPOT_LIGHT_SHADOWMAP_COUNT\nuniform sampler2D spotLightShadowMaps[SPOT_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\nuniform mat4 spotLightMatrices[SPOT_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\nuniform float spotLightShadowMapSizes[SPOT_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\n#endif\n#ifdef DIRECTIONAL_LIGHT_SHADOWMAP_COUNT\n#if defined(SHADOW_CASCADE)\nuniform sampler2D directionalLightShadowMaps[1]:unconfigurable;\nuniform mat4 directionalLightMatrices[SHADOW_CASCADE]:unconfigurable;\nuniform float directionalLightShadowMapSizes[1]:unconfigurable;\nuniform float shadowCascadeClipsNear[SHADOW_CASCADE]:unconfigurable;\nuniform float shadowCascadeClipsFar[SHADOW_CASCADE]:unconfigurable;\n#else\nuniform sampler2D directionalLightShadowMaps[DIRECTIONAL_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\nuniform mat4 directionalLightMatrices[DIRECTIONAL_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\nuniform float directionalLightShadowMapSizes[DIRECTIONAL_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\n#endif\n#endif\n#ifdef POINT_LIGHT_SHADOWMAP_COUNT\nuniform samplerCube pointLightShadowMaps[POINT_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\n#endif\nuniform bool shadowEnabled : true;\n#ifdef PCF_KERNEL_SIZE\nuniform vec2 pcfKernel[PCF_KERNEL_SIZE];\n#endif\n@import clay.plugin.shadow_map_common\n#if defined(SPOT_LIGHT_SHADOWMAP_COUNT)\nvoid computeShadowOfSpotLights(vec3 position, inout float shadowContribs[SPOT_LIGHT_COUNT] ) {\n float shadowContrib;\n for(int _idx_ = 0; _idx_ < SPOT_LIGHT_SHADOWMAP_COUNT; _idx_++) {{\n shadowContrib = computeShadowContrib(\n spotLightShadowMaps[_idx_], spotLightMatrices[_idx_], position,\n spotLightShadowMapSizes[_idx_]\n );\n shadowContribs[_idx_] = shadowContrib;\n }}\n for(int _idx_ = SPOT_LIGHT_SHADOWMAP_COUNT; _idx_ < SPOT_LIGHT_COUNT; _idx_++){{\n shadowContribs[_idx_] = 1.0;\n }}\n}\n#endif\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n#ifdef SHADOW_CASCADE\nvoid computeShadowOfDirectionalLights(vec3 position, inout float shadowContribs[DIRECTIONAL_LIGHT_COUNT]){\n float depth = (2.0 * gl_FragCoord.z - gl_DepthRange.near - gl_DepthRange.far)\n / (gl_DepthRange.far - gl_DepthRange.near);\n float shadowContrib;\n shadowContribs[0] = 1.0;\n for (int _idx_ = 0; _idx_ < SHADOW_CASCADE; _idx_++) {{\n if (\n depth >= shadowCascadeClipsNear[_idx_] &&\n depth <= shadowCascadeClipsFar[_idx_]\n ) {\n shadowContrib = computeShadowContrib(\n directionalLightShadowMaps[0], directionalLightMatrices[_idx_], position,\n directionalLightShadowMapSizes[0],\n vec2(1.0 / float(SHADOW_CASCADE), 1.0),\n vec2(float(_idx_) / float(SHADOW_CASCADE), 0.0)\n );\n shadowContribs[0] = shadowContrib;\n }\n }}\n for(int _idx_ = DIRECTIONAL_LIGHT_SHADOWMAP_COUNT; _idx_ < DIRECTIONAL_LIGHT_COUNT; _idx_++) {{\n shadowContribs[_idx_] = 1.0;\n }}\n}\n#else\nvoid computeShadowOfDirectionalLights(vec3 position, inout float shadowContribs[DIRECTIONAL_LIGHT_COUNT]){\n float shadowContrib;\n for(int _idx_ = 0; _idx_ < DIRECTIONAL_LIGHT_SHADOWMAP_COUNT; _idx_++) {{\n shadowContrib = computeShadowContrib(\n directionalLightShadowMaps[_idx_], directionalLightMatrices[_idx_], position,\n directionalLightShadowMapSizes[_idx_]\n );\n shadowContribs[_idx_] = shadowContrib;\n }}\n for(int _idx_ = DIRECTIONAL_LIGHT_SHADOWMAP_COUNT; _idx_ < DIRECTIONAL_LIGHT_COUNT; _idx_++) {{\n shadowContribs[_idx_] = 1.0;\n }}\n}\n#endif\n#endif\n#if defined(POINT_LIGHT_SHADOWMAP_COUNT)\nvoid computeShadowOfPointLights(vec3 position, inout float shadowContribs[POINT_LIGHT_COUNT] ){\n vec3 lightPosition;\n vec3 direction;\n for(int _idx_ = 0; _idx_ < POINT_LIGHT_SHADOWMAP_COUNT; _idx_++) {{\n lightPosition = pointLightPosition[_idx_];\n direction = position - lightPosition;\n shadowContribs[_idx_] = computeShadowContribOmni(pointLightShadowMaps[_idx_], direction, pointLightRange[_idx_]);\n }}\n for(int _idx_ = POINT_LIGHT_SHADOWMAP_COUNT; _idx_ < POINT_LIGHT_COUNT; _idx_++) {{\n shadowContribs[_idx_] = 1.0;\n }}\n}\n#endif\n#endif\n@end",Yo=["px","nx","py","ny","pz","nz"];function Zo(e,t,r){if("alphaMap"===r)return e.material.get("diffuseMap");if("alphaCutoff"===r){if(e.material.isDefined("fragment","ALPHA_TEST")&&e.material.get("diffuseMap")){var n=e.material.get("alphaCutoff");return n||0}return 0}return"uvRepeat"===r?e.material.get("uvRepeat"):"uvOffset"===r?e.material.get("uvOffset"):t.get(r)}function qo(e,t){var r=e.material,n=t.material;return r.get("diffuseMap")!==n.get("diffuseMap")||(r.get("alphaCutoff")||0)!==(n.get("alphaCutoff")||0)}Xe["import"](Xo);var Qo=T.extend((function(){return{softShadow:Qo.PCF,shadowBlur:1,lightFrustumBias:"auto",kernelPCF:new Float32Array([1,0,1,1,-1,1,0,1,-1,0,-1,-1,1,-1,0,-1]),precision:"highp",_lastRenderNotCastShadow:!1,_frameBuffer:new pn,_textures:{},_shadowMapNumber:{POINT_LIGHT:0,DIRECTIONAL_LIGHT:0,SPOT_LIGHT:0},_depthMaterials:{},_distanceMaterials:{},_receivers:[],_lightsCastShadow:[],_lightCameras:{},_lightMaterials:{},_texturePool:new Wo}}),(function(){this._gaussianPassH=new vi({fragment:Xe.source("clay.compositor.gaussian_blur")}),this._gaussianPassV=new vi({fragment:Xe.source("clay.compositor.gaussian_blur")}),this._gaussianPassH.setUniform("blurSize",this.shadowBlur),this._gaussianPassH.setUniform("blurDir",0),this._gaussianPassV.setUniform("blurSize",this.shadowBlur),this._gaussianPassV.setUniform("blurDir",1),this._outputDepthPass=new vi({fragment:Xe.source("clay.sm.debug_depth")})}),{render:function(e,t,r,n){r||(r=t.getMainCamera()),this.trigger("beforerender",this,e,t,r),this._renderShadowPass(e,t,r,n),this.trigger("afterrender",this,e,t,r)},renderDebug:function(e,t){e.saveClear();var r=e.viewport,n=0,i=0,a=t||r.width/4,o=a;for(var s in this.softShadow===Qo.VSM?this._outputDepthPass.material.define("fragment","USE_VSM"):this._outputDepthPass.material.undefine("fragment","USE_VSM"),this._textures){var l=this._textures[s];e.setViewport(n,i,a*l.width/l.height,o),this._outputDepthPass.setUniform("depthMap",l),this._outputDepthPass.render(e),n+=a*l.width/l.height}e.setViewport(r),e.restoreClear()},_updateReceivers:function(e,t){if(t.receiveShadow?(this._receivers.push(t),t.material.set("shadowEnabled",1),t.material.set("pcfKernel",this.kernelPCF)):t.material.set("shadowEnabled",0),this.softShadow===Qo.VSM)t.material.define("fragment","USE_VSM"),t.material.undefine("fragment","PCF_KERNEL_SIZE");else{t.material.undefine("fragment","USE_VSM");var r=this.kernelPCF;r&&r.length?t.material.define("fragment","PCF_KERNEL_SIZE",r.length/2):t.material.undefine("fragment","PCF_KERNEL_SIZE")}},_update:function(e,t){var r=this;t.traverse((function(t){t.isRenderable()&&r._updateReceivers(e,t)}));for(var n=0;n4){console.warn("Support at most 4 cascade");continue}p.shadowCascade>1&&(o=p),this.renderDirectionalLightShadow(e,t,r,p,h,u,c)}else"SPOT_LIGHT"===p.type?this.renderSpotLightShadow(e,t,p,l,s):"POINT_LIGHT"===p.type&&this.renderPointLightShadow(e,t,p,d);this._shadowMapNumber[p.type]++}for(var m in this._shadowMapNumber){var g=this._shadowMapNumber[m],v=m+"_SHADOWMAP_COUNT";for(f=0;f0?y.define("fragment",v,g):y.isDefined("fragment",v)&&y.undefine("fragment",v))}}for(f=0;f0){var b=c.map(E);if(x.directionalLightShadowMaps={value:c,type:"tv"},x.directionalLightMatrices={value:u,type:"m4v"},x.directionalLightShadowMapSizes={value:b,type:"1fv"},o){var A=h.slice(),T=h.slice();A.pop(),T.shift(),A.reverse(),T.reverse(),u.reverse(),x.shadowCascadeClipsNear={value:A,type:"1fv"},x.shadowCascadeClipsFar={value:T,type:"1fv"}}}if(s.length>0){var w=s.map(E);x=t.shadowUniforms;x.spotLightShadowMaps={value:s,type:"tv"},x.spotLightMatrices={value:l,type:"m4v"},x.spotLightShadowMapSizes={value:w,type:"1fv"}}d.length>0&&(x.pointLightShadowMaps={value:d,type:"tv"})}function E(e){return e.height}},renderDirectionalLightShadow:function(){var e=new Fr,t=new Lt,r=new zt,n=new Lt,i=new Lt,a=new Lt,o=new Lt;return function(s,l,c,u,h,d,f){var p=this._getDepthMaterial(u),m={getMaterial:function(e){return e.shadowDepthMaterial||p},isMaterialChanged:qo,getUniform:Zo,ifRender:function(e){return e.castShadow},sortCompare:ut.opaqueSortCompare};if(!l.viewBoundingBoxLastFrame.isFinite()){var g=l.getBoundingBox();l.viewBoundingBoxLastFrame.copy(g).applyTransform(c.viewMatrix)}var v=Math.min(-l.viewBoundingBoxLastFrame.min.z,c.far),_=Math.max(-l.viewBoundingBoxLastFrame.max.z,c.near),y=this._getDirectionalLightCamera(u,l,c),x=a.array;o.copy(y.projectionMatrix),qe.invert(i.array,y.worldTransform.array),qe.multiply(i.array,i.array,c.worldTransform.array),qe.multiply(x,o.array,i.array);for(var b=[],A=c instanceof tn,T=(c.near+c.far)/(c.near-c.far),w=2*c.near*c.far/(c.near-c.far),E=0;E<=u.shadowCascade;E++){var S=_*Math.pow(v/_,E/u.shadowCascade),C=_+(v-_)*E/u.shadowCascade,M=S*u.cascadeSplitLogFactor+C*(1-u.cascadeSplitLogFactor);b.push(M),h.push(-(-M*T+w)/-M)}var O=this._getTexture(u,u.shadowCascade);f.push(O);var D=s.viewport,L=s.gl;this._frameBuffer.attach(O),this._frameBuffer.bind(s),L.clear(L.COLOR_BUFFER_BIT|L.DEPTH_BUFFER_BIT);for(E=0;Ed?s>f?p[i>0?"px":"nx"]=!0:p[o>0?"pz":"nz"]=!0:d>f?p[a>0?"py":"ny"]=!0:p[o>0?"pz":"nz"]=!0}for(r=0;r0){var t=this.outputs[e];t.keepLastFrame?(this._prevOutputTextures[e]&&this._compositor.releaseTexture(this._prevOutputTextures[e]),this._prevOutputTextures[e]=this._outputTextures[e]):this._compositor.releaseTexture(this._outputTextures[e])}}}),$o=Jo,es=T.extend((function(){return{nodes:[]}}),{dirty:function(){this._dirty=!0},addNode:function(e){this.nodes.indexOf(e)>=0||(this.nodes.push(e),this._dirty=!0)},removeNode:function(e){"string"===typeof e&&(e=this.getNodeByName(e));var t=this.nodes.indexOf(e);t>=0&&(this.nodes.splice(t,1),this._dirty=!0)},getNodeByName:function(e){for(var t=0;t=r.COLOR_ATTACHMENT0&&l<=r.COLOR_ATTACHMENT0+8&&u.push(l);c.drawBuffersEXT(u)}e.saveClear(),e.clearBit=M.DEPTH_BUFFER_BIT|M.COLOR_BUFFER_BIT,t=e.render(this.scene,this.camera,!this.autoUpdateScene,this.preZ),e.restoreClear(),n.unbind(e)}else t=e.render(this.scene,this.camera,!this.autoUpdateScene,this.preZ);this.trigger("afterrender",t),this._rendering=!1,this._rendered=!0}}),as=is,os=$o.extend((function(){return{texture:null,outputs:{color:{}}}}),(function(){}),{getOutput:function(e,t){return this.texture},beforeFrame:function(){},afterFrame:function(){}}),ss=os,ls=$o.extend((function(){return{name:"",inputs:{},outputs:null,shader:"",inputLinks:{},outputLinks:{},pass:null,_prevOutputTextures:{},_outputTextures:{},_outputReferences:{},_rendering:!1,_rendered:!1,_compositor:null}}),(function(){var e=new vi({fragment:this.shader});this.pass=e}),{render:function(e,t){this.trigger("beforerender",e),this._rendering=!0;var r=e.gl;for(var n in this.inputLinks){var i=this.inputLinks[n],a=i.node.getOutput(e,i.pin);this.pass.setUniform(n,a)}if(this.outputs){this.pass.outputs={};var o={};for(var s in this.outputs){var l=this.updateParameter(s,e);isNaN(l.width)&&this.updateParameter(s,e);var c=this.outputs[s],u=this._compositor.allocateTexture(l);this._outputTextures[s]=u;var h=c.attachment||r.COLOR_ATTACHMENT0;"string"===typeof h&&(h=r[h]),o[h]=u}for(var h in this._compositor.getFrameBuffer().bind(e),o)this._compositor.getFrameBuffer().attach(o[h],h);this.pass.render(e),this._compositor.getFrameBuffer().updateMipmap(e)}else this.pass.outputs=null,this._compositor.getFrameBuffer().unbind(e),this.pass.render(e,t);for(var n in this.inputLinks){i=this.inputLinks[n];i.node.removeReference(i.pin)}this._rendering=!1,this._rendered=!0,this.trigger("afterrender",e)},updateParameter:function(e,t){var r,n,i=this.outputs[e],a=i.parameters,o=i._parametersCopy;if(o||(o=i._parametersCopy={}),a)for(var s in a)"width"!==s&&"height"!==s&&(o[s]=a[s]);return r="function"===typeof a.width?a.width.call(this,t):a.width,n="function"===typeof a.height?a.height.call(this,t):a.height,r=Math.ceil(r),n=Math.ceil(n),o.width===r&&o.height===n||this._outputTextures[e]&&this._outputTextures[e].dispose(t),o.width=r,o.height=n,o},setParameter:function(e,t){this.pass.setUniform(e,t)},getParameter:function(e){return this.pass.getUniform(e)},setParameters:function(e){for(var t in e)this.setParameter(t,e[t])},define:function(e,t){this.pass.material.define("fragment",e,t)},undefine:function(e){this.pass.material.undefine("fragment",e)},removeReference:function(e){if(this._outputReferences[e]--,0===this._outputReferences[e]){var t=this.outputs[e];t.keepLastFrame?(this._prevOutputTextures[e]&&this._compositor.releaseTexture(this._prevOutputTextures[e]),this._prevOutputTextures[e]=this._outputTextures[e]):this._compositor.releaseTexture(this._outputTextures[e])}},clear:function(){$o.prototype.clear.call(this),this.pass.material.disableTexturesAll()}}),cs=ls,us="@export clay.compositor.coloradjust\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float brightness : 0.0;\nuniform float contrast : 1.0;\nuniform float exposure : 0.0;\nuniform float gamma : 1.0;\nuniform float saturation : 1.0;\nconst vec3 w = vec3(0.2125, 0.7154, 0.0721);\nvoid main()\n{\n vec4 tex = texture2D( texture, v_Texcoord);\n vec3 color = clamp(tex.rgb + vec3(brightness), 0.0, 1.0);\n color = clamp( (color-vec3(0.5))*contrast+vec3(0.5), 0.0, 1.0);\n color = clamp( color * pow(2.0, exposure), 0.0, 1.0);\n color = clamp( pow(color, vec3(gamma)), 0.0, 1.0);\n float luminance = dot( color, w );\n color = mix(vec3(luminance), color, saturation);\n gl_FragColor = vec4(color, tex.a);\n}\n@end\n@export clay.compositor.brightness\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float brightness : 0.0;\nvoid main()\n{\n vec4 tex = texture2D( texture, v_Texcoord);\n vec3 color = tex.rgb + vec3(brightness);\n gl_FragColor = vec4(color, tex.a);\n}\n@end\n@export clay.compositor.contrast\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float contrast : 1.0;\nvoid main()\n{\n vec4 tex = texture2D( texture, v_Texcoord);\n vec3 color = (tex.rgb-vec3(0.5))*contrast+vec3(0.5);\n gl_FragColor = vec4(color, tex.a);\n}\n@end\n@export clay.compositor.exposure\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float exposure : 0.0;\nvoid main()\n{\n vec4 tex = texture2D(texture, v_Texcoord);\n vec3 color = tex.rgb * pow(2.0, exposure);\n gl_FragColor = vec4(color, tex.a);\n}\n@end\n@export clay.compositor.gamma\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float gamma : 1.0;\nvoid main()\n{\n vec4 tex = texture2D(texture, v_Texcoord);\n vec3 color = pow(tex.rgb, vec3(gamma));\n gl_FragColor = vec4(color, tex.a);\n}\n@end\n@export clay.compositor.saturation\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float saturation : 1.0;\nconst vec3 w = vec3(0.2125, 0.7154, 0.0721);\nvoid main()\n{\n vec4 tex = texture2D(texture, v_Texcoord);\n vec3 color = tex.rgb;\n float luminance = dot(color, w);\n color = mix(vec3(luminance), color, saturation);\n gl_FragColor = vec4(color, tex.a);\n}\n@end",hs="@export clay.compositor.kernel.gaussian_9\nfloat gaussianKernel[9];\ngaussianKernel[0] = 0.07;\ngaussianKernel[1] = 0.09;\ngaussianKernel[2] = 0.12;\ngaussianKernel[3] = 0.14;\ngaussianKernel[4] = 0.16;\ngaussianKernel[5] = 0.14;\ngaussianKernel[6] = 0.12;\ngaussianKernel[7] = 0.09;\ngaussianKernel[8] = 0.07;\n@end\n@export clay.compositor.kernel.gaussian_13\nfloat gaussianKernel[13];\ngaussianKernel[0] = 0.02;\ngaussianKernel[1] = 0.03;\ngaussianKernel[2] = 0.06;\ngaussianKernel[3] = 0.08;\ngaussianKernel[4] = 0.11;\ngaussianKernel[5] = 0.13;\ngaussianKernel[6] = 0.14;\ngaussianKernel[7] = 0.13;\ngaussianKernel[8] = 0.11;\ngaussianKernel[9] = 0.08;\ngaussianKernel[10] = 0.06;\ngaussianKernel[11] = 0.03;\ngaussianKernel[12] = 0.02;\n@end\n@export clay.compositor.gaussian_blur\n#define SHADER_NAME gaussian_blur\nuniform sampler2D texture;varying vec2 v_Texcoord;\nuniform float blurSize : 2.0;\nuniform vec2 textureSize : [512.0, 512.0];\nuniform float blurDir : 0.0;\n@import clay.util.rgbm\n@import clay.util.clamp_sample\nvoid main (void)\n{\n @import clay.compositor.kernel.gaussian_9\n vec2 off = blurSize / textureSize;\n off *= vec2(1.0 - blurDir, blurDir);\n vec4 sum = vec4(0.0);\n float weightAll = 0.0;\n for (int i = 0; i < 9; i++) {\n float w = gaussianKernel[i];\n vec4 texel = decodeHDR(clampSample(texture, v_Texcoord + float(i - 4) * off));\n sum += texel * w;\n weightAll += w;\n }\n gl_FragColor = encodeHDR(sum / max(weightAll, 0.01));\n}\n@end\n",ds="@export clay.compositor.hdr.log_lum\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nconst vec3 w = vec3(0.2125, 0.7154, 0.0721);\n@import clay.util.rgbm\nvoid main()\n{\n vec4 tex = decodeHDR(texture2D(texture, v_Texcoord));\n float luminance = dot(tex.rgb, w);\n luminance = log(luminance + 0.001);\n gl_FragColor = encodeHDR(vec4(vec3(luminance), 1.0));\n}\n@end\n@export clay.compositor.hdr.lum_adaption\nvarying vec2 v_Texcoord;\nuniform sampler2D adaptedLum;\nuniform sampler2D currentLum;\nuniform float frameTime : 0.02;\n@import clay.util.rgbm\nvoid main()\n{\n float fAdaptedLum = decodeHDR(texture2D(adaptedLum, vec2(0.5, 0.5))).r;\n float fCurrentLum = exp(encodeHDR(texture2D(currentLum, vec2(0.5, 0.5))).r);\n fAdaptedLum += (fCurrentLum - fAdaptedLum) * (1.0 - pow(0.98, 30.0 * frameTime));\n gl_FragColor = encodeHDR(vec4(vec3(fAdaptedLum), 1.0));\n}\n@end\n@export clay.compositor.lum\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nconst vec3 w = vec3(0.2125, 0.7154, 0.0721);\nvoid main()\n{\n vec4 tex = texture2D( texture, v_Texcoord );\n float luminance = dot(tex.rgb, w);\n gl_FragColor = vec4(vec3(luminance), 1.0);\n}\n@end",fs="\n@export clay.compositor.lut\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform sampler2D lookup;\nvoid main()\n{\n vec4 tex = texture2D(texture, v_Texcoord);\n float blueColor = tex.b * 63.0;\n vec2 quad1;\n quad1.y = floor(floor(blueColor) / 8.0);\n quad1.x = floor(blueColor) - (quad1.y * 8.0);\n vec2 quad2;\n quad2.y = floor(ceil(blueColor) / 8.0);\n quad2.x = ceil(blueColor) - (quad2.y * 8.0);\n vec2 texPos1;\n texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * tex.r);\n texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * tex.g);\n vec2 texPos2;\n texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * tex.r);\n texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * tex.g);\n vec4 newColor1 = texture2D(lookup, texPos1);\n vec4 newColor2 = texture2D(lookup, texPos2);\n vec4 newColor = mix(newColor1, newColor2, fract(blueColor));\n gl_FragColor = vec4(newColor.rgb, tex.w);\n}\n@end",ps="@export clay.compositor.vignette\n#define OUTPUT_ALPHA\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float darkness: 1;\nuniform float offset: 1;\n@import clay.util.rgbm\nvoid main()\n{\n vec4 texel = decodeHDR(texture2D(texture, v_Texcoord));\n gl_FragColor.rgb = texel.rgb;\n vec2 uv = (v_Texcoord - vec2(0.5)) * vec2(offset);\n gl_FragColor = encodeHDR(vec4(mix(texel.rgb, vec3(1.0 - darkness), dot(uv, uv)), texel.a));\n}\n@end",ms="@export clay.compositor.output\n#define OUTPUT_ALPHA\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\n@import clay.util.rgbm\nvoid main()\n{\n vec4 tex = decodeHDR(texture2D(texture, v_Texcoord));\n gl_FragColor.rgb = tex.rgb;\n#ifdef OUTPUT_ALPHA\n gl_FragColor.a = tex.a;\n#else\n gl_FragColor.a = 1.0;\n#endif\n gl_FragColor = encodeHDR(gl_FragColor);\n#ifdef PREMULTIPLY_ALPHA\n gl_FragColor.rgb *= gl_FragColor.a;\n#endif\n}\n@end",gs="@export clay.compositor.bright\nuniform sampler2D texture;\nuniform float threshold : 1;\nuniform float scale : 1.0;\nuniform vec2 textureSize: [512, 512];\nvarying vec2 v_Texcoord;\nconst vec3 lumWeight = vec3(0.2125, 0.7154, 0.0721);\n@import clay.util.rgbm\nvec4 median(vec4 a, vec4 b, vec4 c)\n{\n return a + b + c - min(min(a, b), c) - max(max(a, b), c);\n}\nvoid main()\n{\n vec4 texel = decodeHDR(texture2D(texture, v_Texcoord));\n#ifdef ANTI_FLICKER\n vec3 d = 1.0 / textureSize.xyx * vec3(1.0, 1.0, 0.0);\n vec4 s1 = decodeHDR(texture2D(texture, v_Texcoord - d.xz));\n vec4 s2 = decodeHDR(texture2D(texture, v_Texcoord + d.xz));\n vec4 s3 = decodeHDR(texture2D(texture, v_Texcoord - d.zy));\n vec4 s4 = decodeHDR(texture2D(texture, v_Texcoord + d.zy));\n texel = median(median(texel, s1, s2), s3, s4);\n#endif\n float lum = dot(texel.rgb , lumWeight);\n vec4 color;\n if (lum > threshold && texel.a > 0.0)\n {\n color = vec4(texel.rgb * scale, texel.a * scale);\n }\n else\n {\n color = vec4(0.0);\n }\n gl_FragColor = encodeHDR(color);\n}\n@end\n",vs="@export clay.compositor.downsample\nuniform sampler2D texture;\nuniform vec2 textureSize : [512, 512];\nvarying vec2 v_Texcoord;\n@import clay.util.rgbm\nfloat brightness(vec3 c)\n{\n return max(max(c.r, c.g), c.b);\n}\n@import clay.util.clamp_sample\nvoid main()\n{\n vec4 d = vec4(-1.0, -1.0, 1.0, 1.0) / textureSize.xyxy;\n#ifdef ANTI_FLICKER\n vec3 s1 = decodeHDR(clampSample(texture, v_Texcoord + d.xy)).rgb;\n vec3 s2 = decodeHDR(clampSample(texture, v_Texcoord + d.zy)).rgb;\n vec3 s3 = decodeHDR(clampSample(texture, v_Texcoord + d.xw)).rgb;\n vec3 s4 = decodeHDR(clampSample(texture, v_Texcoord + d.zw)).rgb;\n float s1w = 1.0 / (brightness(s1) + 1.0);\n float s2w = 1.0 / (brightness(s2) + 1.0);\n float s3w = 1.0 / (brightness(s3) + 1.0);\n float s4w = 1.0 / (brightness(s4) + 1.0);\n float oneDivideSum = 1.0 / (s1w + s2w + s3w + s4w);\n vec4 color = vec4(\n (s1 * s1w + s2 * s2w + s3 * s3w + s4 * s4w) * oneDivideSum,\n 1.0\n );\n#else\n vec4 color = decodeHDR(clampSample(texture, v_Texcoord + d.xy));\n color += decodeHDR(clampSample(texture, v_Texcoord + d.zy));\n color += decodeHDR(clampSample(texture, v_Texcoord + d.xw));\n color += decodeHDR(clampSample(texture, v_Texcoord + d.zw));\n color *= 0.25;\n#endif\n gl_FragColor = encodeHDR(color);\n}\n@end",_s="\n@export clay.compositor.upsample\n#define HIGH_QUALITY\nuniform sampler2D texture;\nuniform vec2 textureSize : [512, 512];\nuniform float sampleScale: 0.5;\nvarying vec2 v_Texcoord;\n@import clay.util.rgbm\n@import clay.util.clamp_sample\nvoid main()\n{\n#ifdef HIGH_QUALITY\n vec4 d = vec4(1.0, 1.0, -1.0, 0.0) / textureSize.xyxy * sampleScale;\n vec4 s;\n s = decodeHDR(clampSample(texture, v_Texcoord - d.xy));\n s += decodeHDR(clampSample(texture, v_Texcoord - d.wy)) * 2.0;\n s += decodeHDR(clampSample(texture, v_Texcoord - d.zy));\n s += decodeHDR(clampSample(texture, v_Texcoord + d.zw)) * 2.0;\n s += decodeHDR(clampSample(texture, v_Texcoord )) * 4.0;\n s += decodeHDR(clampSample(texture, v_Texcoord + d.xw)) * 2.0;\n s += decodeHDR(clampSample(texture, v_Texcoord + d.zy));\n s += decodeHDR(clampSample(texture, v_Texcoord + d.wy)) * 2.0;\n s += decodeHDR(clampSample(texture, v_Texcoord + d.xy));\n gl_FragColor = encodeHDR(s / 16.0);\n#else\n vec4 d = vec4(-1.0, -1.0, +1.0, +1.0) / textureSize.xyxy;\n vec4 s;\n s = decodeHDR(clampSample(texture, v_Texcoord + d.xy));\n s += decodeHDR(clampSample(texture, v_Texcoord + d.zy));\n s += decodeHDR(clampSample(texture, v_Texcoord + d.xw));\n s += decodeHDR(clampSample(texture, v_Texcoord + d.zw));\n gl_FragColor = encodeHDR(s / 4.0);\n#endif\n}\n@end",ys="@export clay.compositor.hdr.composite\n#define TONEMAPPING\nuniform sampler2D texture;\n#ifdef BLOOM_ENABLED\nuniform sampler2D bloom;\n#endif\n#ifdef LENSFLARE_ENABLED\nuniform sampler2D lensflare;\nuniform sampler2D lensdirt;\n#endif\n#ifdef LUM_ENABLED\nuniform sampler2D lum;\n#endif\n#ifdef LUT_ENABLED\nuniform sampler2D lut;\n#endif\n#ifdef COLOR_CORRECTION\nuniform float brightness : 0.0;\nuniform float contrast : 1.0;\nuniform float saturation : 1.0;\n#endif\n#ifdef VIGNETTE\nuniform float vignetteDarkness: 1.0;\nuniform float vignetteOffset: 1.0;\n#endif\nuniform float exposure : 1.0;\nuniform float bloomIntensity : 0.25;\nuniform float lensflareIntensity : 1;\nvarying vec2 v_Texcoord;\n@import clay.util.srgb\nvec3 ACESToneMapping(vec3 color)\n{\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\nfloat eyeAdaption(float fLum)\n{\n return mix(0.2, fLum, 0.5);\n}\n#ifdef LUT_ENABLED\nvec3 lutTransform(vec3 color) {\n float blueColor = color.b * 63.0;\n vec2 quad1;\n quad1.y = floor(floor(blueColor) / 8.0);\n quad1.x = floor(blueColor) - (quad1.y * 8.0);\n vec2 quad2;\n quad2.y = floor(ceil(blueColor) / 8.0);\n quad2.x = ceil(blueColor) - (quad2.y * 8.0);\n vec2 texPos1;\n texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * color.r);\n texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * color.g);\n vec2 texPos2;\n texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * color.r);\n texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * color.g);\n vec4 newColor1 = texture2D(lut, texPos1);\n vec4 newColor2 = texture2D(lut, texPos2);\n vec4 newColor = mix(newColor1, newColor2, fract(blueColor));\n return newColor.rgb;\n}\n#endif\n@import clay.util.rgbm\nvoid main()\n{\n vec4 texel = vec4(0.0);\n vec4 originalTexel = vec4(0.0);\n#ifdef TEXTURE_ENABLED\n texel = decodeHDR(texture2D(texture, v_Texcoord));\n originalTexel = texel;\n#endif\n#ifdef BLOOM_ENABLED\n vec4 bloomTexel = decodeHDR(texture2D(bloom, v_Texcoord));\n texel.rgb += bloomTexel.rgb * bloomIntensity;\n texel.a += bloomTexel.a * bloomIntensity;\n#endif\n#ifdef LENSFLARE_ENABLED\n texel += decodeHDR(texture2D(lensflare, v_Texcoord)) * texture2D(lensdirt, v_Texcoord) * lensflareIntensity;\n#endif\n texel.a = min(texel.a, 1.0);\n#ifdef LUM_ENABLED\n float fLum = texture2D(lum, vec2(0.5, 0.5)).r;\n float adaptedLumDest = 3.0 / (max(0.1, 1.0 + 10.0*eyeAdaption(fLum)));\n float exposureBias = adaptedLumDest * exposure;\n#else\n float exposureBias = exposure;\n#endif\n#ifdef TONEMAPPING\n texel.rgb *= exposureBias;\n texel.rgb = ACESToneMapping(texel.rgb);\n#endif\n texel = linearTosRGB(texel);\n#ifdef LUT_ENABLED\n texel.rgb = lutTransform(clamp(texel.rgb,vec3(0.0),vec3(1.0)));\n#endif\n#ifdef COLOR_CORRECTION\n texel.rgb = clamp(texel.rgb + vec3(brightness), 0.0, 1.0);\n texel.rgb = clamp((texel.rgb - vec3(0.5))*contrast+vec3(0.5), 0.0, 1.0);\n float lum = dot(texel.rgb, vec3(0.2125, 0.7154, 0.0721));\n texel.rgb = mix(vec3(lum), texel.rgb, saturation);\n#endif\n#ifdef VIGNETTE\n vec2 uv = (v_Texcoord - vec2(0.5)) * vec2(vignetteOffset);\n texel.rgb = mix(texel.rgb, vec3(1.0 - vignetteDarkness), dot(uv, uv));\n#endif\n gl_FragColor = encodeHDR(texel);\n#ifdef DEBUG\n #if DEBUG == 1\n gl_FragColor = encodeHDR(decodeHDR(texture2D(texture, v_Texcoord)));\n #elif DEBUG == 2\n gl_FragColor = encodeHDR(decodeHDR(texture2D(bloom, v_Texcoord)) * bloomIntensity);\n #elif DEBUG == 3\n gl_FragColor = encodeHDR(decodeHDR(texture2D(lensflare, v_Texcoord) * lensflareIntensity));\n #endif\n#endif\n if (originalTexel.a <= 0.01 && gl_FragColor.a > 1e-5) {\n gl_FragColor.a = dot(gl_FragColor.rgb, vec3(0.2125, 0.7154, 0.0721));\n }\n#ifdef PREMULTIPLY_ALPHA\n gl_FragColor.rgb *= gl_FragColor.a;\n#endif\n}\n@end",xs="@export clay.compositor.lensflare\n#define SAMPLE_NUMBER 8\nuniform sampler2D texture;\nuniform sampler2D lenscolor;\nuniform vec2 textureSize : [512, 512];\nuniform float dispersal : 0.3;\nuniform float haloWidth : 0.4;\nuniform float distortion : 1.0;\nvarying vec2 v_Texcoord;\n@import clay.util.rgbm\nvec4 textureDistorted(\n in vec2 texcoord,\n in vec2 direction,\n in vec3 distortion\n) {\n return vec4(\n decodeHDR(texture2D(texture, texcoord + direction * distortion.r)).r,\n decodeHDR(texture2D(texture, texcoord + direction * distortion.g)).g,\n decodeHDR(texture2D(texture, texcoord + direction * distortion.b)).b,\n 1.0\n );\n}\nvoid main()\n{\n vec2 texcoord = -v_Texcoord + vec2(1.0); vec2 textureOffset = 1.0 / textureSize;\n vec2 ghostVec = (vec2(0.5) - texcoord) * dispersal;\n vec2 haloVec = normalize(ghostVec) * haloWidth;\n vec3 distortion = vec3(-textureOffset.x * distortion, 0.0, textureOffset.x * distortion);\n vec4 result = vec4(0.0);\n for (int i = 0; i < SAMPLE_NUMBER; i++)\n {\n vec2 offset = fract(texcoord + ghostVec * float(i));\n float weight = length(vec2(0.5) - offset) / length(vec2(0.5));\n weight = pow(1.0 - weight, 10.0);\n result += textureDistorted(offset, normalize(ghostVec), distortion) * weight;\n }\n result *= texture2D(lenscolor, vec2(length(vec2(0.5) - texcoord)) / length(vec2(0.5)));\n float weight = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5));\n weight = pow(1.0 - weight, 10.0);\n vec2 offset = fract(texcoord + haloVec);\n result += textureDistorted(offset, normalize(ghostVec), distortion) * weight;\n gl_FragColor = result;\n}\n@end",bs="@export clay.compositor.blend\n#define SHADER_NAME blend\n#ifdef TEXTURE1_ENABLED\nuniform sampler2D texture1;\nuniform float weight1 : 1.0;\n#endif\n#ifdef TEXTURE2_ENABLED\nuniform sampler2D texture2;\nuniform float weight2 : 1.0;\n#endif\n#ifdef TEXTURE3_ENABLED\nuniform sampler2D texture3;\nuniform float weight3 : 1.0;\n#endif\n#ifdef TEXTURE4_ENABLED\nuniform sampler2D texture4;\nuniform float weight4 : 1.0;\n#endif\n#ifdef TEXTURE5_ENABLED\nuniform sampler2D texture5;\nuniform float weight5 : 1.0;\n#endif\n#ifdef TEXTURE6_ENABLED\nuniform sampler2D texture6;\nuniform float weight6 : 1.0;\n#endif\nvarying vec2 v_Texcoord;\n@import clay.util.rgbm\nvoid main()\n{\n vec4 tex = vec4(0.0);\n#ifdef TEXTURE1_ENABLED\n tex += decodeHDR(texture2D(texture1, v_Texcoord)) * weight1;\n#endif\n#ifdef TEXTURE2_ENABLED\n tex += decodeHDR(texture2D(texture2, v_Texcoord)) * weight2;\n#endif\n#ifdef TEXTURE3_ENABLED\n tex += decodeHDR(texture2D(texture3, v_Texcoord)) * weight3;\n#endif\n#ifdef TEXTURE4_ENABLED\n tex += decodeHDR(texture2D(texture4, v_Texcoord)) * weight4;\n#endif\n#ifdef TEXTURE5_ENABLED\n tex += decodeHDR(texture2D(texture5, v_Texcoord)) * weight5;\n#endif\n#ifdef TEXTURE6_ENABLED\n tex += decodeHDR(texture2D(texture6, v_Texcoord)) * weight6;\n#endif\n gl_FragColor = encodeHDR(tex);\n}\n@end",As="@export clay.compositor.fxaa\nuniform sampler2D texture;\nuniform vec4 viewport : VIEWPORT;\nvarying vec2 v_Texcoord;\n#define FXAA_REDUCE_MIN (1.0/128.0)\n#define FXAA_REDUCE_MUL (1.0/8.0)\n#define FXAA_SPAN_MAX 8.0\n@import clay.util.rgbm\nvoid main()\n{\n vec2 resolution = 1.0 / viewport.zw;\n vec3 rgbNW = decodeHDR( texture2D( texture, ( gl_FragCoord.xy + vec2( -1.0, -1.0 ) ) * resolution ) ).xyz;\n vec3 rgbNE = decodeHDR( texture2D( texture, ( gl_FragCoord.xy + vec2( 1.0, -1.0 ) ) * resolution ) ).xyz;\n vec3 rgbSW = decodeHDR( texture2D( texture, ( gl_FragCoord.xy + vec2( -1.0, 1.0 ) ) * resolution ) ).xyz;\n vec3 rgbSE = decodeHDR( texture2D( texture, ( gl_FragCoord.xy + vec2( 1.0, 1.0 ) ) * resolution ) ).xyz;\n vec4 rgbaM = decodeHDR( texture2D( texture, gl_FragCoord.xy * resolution ) );\n vec3 rgbM = rgbaM.xyz;\n float opacity = rgbaM.w;\n vec3 luma = vec3( 0.299, 0.587, 0.114 );\n float lumaNW = dot( rgbNW, luma );\n float lumaNE = dot( rgbNE, luma );\n float lumaSW = dot( rgbSW, luma );\n float lumaSE = dot( rgbSE, luma );\n float lumaM = dot( rgbM, luma );\n float lumaMin = min( lumaM, min( min( lumaNW, lumaNE ), min( lumaSW, lumaSE ) ) );\n float lumaMax = max( lumaM, max( max( lumaNW, lumaNE) , max( lumaSW, lumaSE ) ) );\n vec2 dir;\n dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\n dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));\n float dirReduce = max( ( lumaNW + lumaNE + lumaSW + lumaSE ) * ( 0.25 * FXAA_REDUCE_MUL ), FXAA_REDUCE_MIN );\n float rcpDirMin = 1.0 / ( min( abs( dir.x ), abs( dir.y ) ) + dirReduce );\n dir = min( vec2( FXAA_SPAN_MAX, FXAA_SPAN_MAX),\n max( vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),\n dir * rcpDirMin)) * resolution;\n vec3 rgbA = decodeHDR( texture2D( texture, gl_FragCoord.xy * resolution + dir * ( 1.0 / 3.0 - 0.5 ) ) ).xyz;\n rgbA += decodeHDR( texture2D( texture, gl_FragCoord.xy * resolution + dir * ( 2.0 / 3.0 - 0.5 ) ) ).xyz;\n rgbA *= 0.5;\n vec3 rgbB = decodeHDR( texture2D( texture, gl_FragCoord.xy * resolution + dir * -0.5 ) ).xyz;\n rgbB += decodeHDR( texture2D( texture, gl_FragCoord.xy * resolution + dir * 0.5 ) ).xyz;\n rgbB *= 0.25;\n rgbB += rgbA * 0.5;\n float lumaB = dot( rgbB, luma );\n if ( ( lumaB < lumaMin ) || ( lumaB > lumaMax ) )\n {\n gl_FragColor = vec4( rgbA, opacity );\n }\n else {\n gl_FragColor = vec4( rgbB, opacity );\n }\n}\n@end";function Ts(e){e["import"](us),e["import"](hs),e["import"](ds),e["import"](fs),e["import"](ps),e["import"](ms),e["import"](gs),e["import"](vs),e["import"](_s),e["import"](ys),e["import"](xs),e["import"](bs),e["import"](As)}Ts(Xe);var ws=/^#source\((.*?)\)/;function Es(e,t){var r=new ns;t=t||{};var n={textures:{},parameters:{}},i=function(i,a){for(var o=0;o0)r+=n*(i%t),i=Math.floor(i/t),n/=t;return r}var Fs=Bs,Us="@export ecgl.ssao.estimate\n\nuniform sampler2D depthTex;\n\nuniform sampler2D normalTex;\n\nuniform sampler2D noiseTex;\n\nuniform vec2 depthTexSize;\n\nuniform vec2 noiseTexSize;\n\nuniform mat4 projection;\n\nuniform mat4 projectionInv;\n\nuniform mat4 viewInverseTranspose;\n\nuniform vec3 kernel[KERNEL_SIZE];\n\nuniform float radius : 1;\n\nuniform float power : 1;\n\nuniform float bias: 1e-2;\n\nuniform float intensity: 1.0;\n\nvarying vec2 v_Texcoord;\n\nfloat ssaoEstimator(in vec3 originPos, in mat3 kernelBasis) {\n float occlusion = 0.0;\n\n for (int i = 0; i < KERNEL_SIZE; i++) {\n vec3 samplePos = kernel[i];\n#ifdef NORMALTEX_ENABLED\n samplePos = kernelBasis * samplePos;\n#endif\n samplePos = samplePos * radius + originPos;\n\n vec4 texCoord = projection * vec4(samplePos, 1.0);\n texCoord.xy /= texCoord.w;\n\n vec4 depthTexel = texture2D(depthTex, texCoord.xy * 0.5 + 0.5);\n\n float sampleDepth = depthTexel.r * 2.0 - 1.0;\n if (projection[3][3] == 0.0) {\n sampleDepth = projection[3][2] / (sampleDepth * projection[2][3] - projection[2][2]);\n }\n else {\n sampleDepth = (sampleDepth - projection[3][2]) / projection[2][2];\n }\n \n float rangeCheck = smoothstep(0.0, 1.0, radius / abs(originPos.z - sampleDepth));\n occlusion += rangeCheck * step(samplePos.z, sampleDepth - bias);\n }\n#ifdef NORMALTEX_ENABLED\n occlusion = 1.0 - occlusion / float(KERNEL_SIZE);\n#else\n occlusion = 1.0 - clamp((occlusion / float(KERNEL_SIZE) - 0.6) * 2.5, 0.0, 1.0);\n#endif\n return pow(occlusion, power);\n}\n\nvoid main()\n{\n\n vec4 depthTexel = texture2D(depthTex, v_Texcoord);\n\n#ifdef NORMALTEX_ENABLED\n vec4 tex = texture2D(normalTex, v_Texcoord);\n if (dot(tex.rgb, tex.rgb) == 0.0) {\n gl_FragColor = vec4(1.0);\n return;\n }\n vec3 N = tex.rgb * 2.0 - 1.0;\n N = (viewInverseTranspose * vec4(N, 0.0)).xyz;\n\n vec2 noiseTexCoord = depthTexSize / vec2(noiseTexSize) * v_Texcoord;\n vec3 rvec = texture2D(noiseTex, noiseTexCoord).rgb * 2.0 - 1.0;\n vec3 T = normalize(rvec - N * dot(rvec, N));\n vec3 BT = normalize(cross(N, T));\n mat3 kernelBasis = mat3(T, BT, N);\n#else\n if (depthTexel.r > 0.99999) {\n gl_FragColor = vec4(1.0);\n return;\n }\n mat3 kernelBasis;\n#endif\n\n float z = depthTexel.r * 2.0 - 1.0;\n\n vec4 projectedPos = vec4(v_Texcoord * 2.0 - 1.0, z, 1.0);\n vec4 p4 = projectionInv * projectedPos;\n\n vec3 position = p4.xyz / p4.w;\n\n float ao = ssaoEstimator(position, kernelBasis);\n ao = clamp(1.0 - (1.0 - ao) * intensity, 0.0, 1.0);\n gl_FragColor = vec4(vec3(ao), 1.0);\n}\n\n@end\n\n\n@export ecgl.ssao.blur\n#define SHADER_NAME SSAO_BLUR\n\nuniform sampler2D ssaoTexture;\n\n#ifdef NORMALTEX_ENABLED\nuniform sampler2D normalTex;\n#endif\n\nvarying vec2 v_Texcoord;\n\nuniform vec2 textureSize;\nuniform float blurSize : 1.0;\n\nuniform int direction: 0.0;\n\n#ifdef DEPTHTEX_ENABLED\nuniform sampler2D depthTex;\nuniform mat4 projection;\nuniform float depthRange : 0.5;\n\nfloat getLinearDepth(vec2 coord)\n{\n float depth = texture2D(depthTex, coord).r * 2.0 - 1.0;\n return projection[3][2] / (depth * projection[2][3] - projection[2][2]);\n}\n#endif\n\nvoid main()\n{\n float kernel[5];\n kernel[0] = 0.122581;\n kernel[1] = 0.233062;\n kernel[2] = 0.288713;\n kernel[3] = 0.233062;\n kernel[4] = 0.122581;\n\n vec2 off = vec2(0.0);\n if (direction == 0) {\n off[0] = blurSize / textureSize.x;\n }\n else {\n off[1] = blurSize / textureSize.y;\n }\n\n vec2 coord = v_Texcoord;\n\n float sum = 0.0;\n float weightAll = 0.0;\n\n#ifdef NORMALTEX_ENABLED\n vec3 centerNormal = texture2D(normalTex, v_Texcoord).rgb * 2.0 - 1.0;\n#endif\n#if defined(DEPTHTEX_ENABLED)\n float centerDepth = getLinearDepth(v_Texcoord);\n#endif\n\n for (int i = 0; i < 5; i++) {\n vec2 coord = clamp(v_Texcoord + vec2(float(i) - 2.0) * off, vec2(0.0), vec2(1.0));\n\n float w = kernel[i];\n#ifdef NORMALTEX_ENABLED\n vec3 normal = texture2D(normalTex, coord).rgb * 2.0 - 1.0;\n w *= clamp(dot(normal, centerNormal), 0.0, 1.0);\n#endif\n#ifdef DEPTHTEX_ENABLED\n float d = getLinearDepth(coord);\n w *= (1.0 - smoothstep(abs(centerDepth - d) / depthRange, 0.0, 1.0));\n#endif\n\n weightAll += w;\n sum += texture2D(ssaoTexture, coord).r * w;\n }\n\n gl_FragColor = vec4(vec3(sum / weightAll), 1.0);\n}\n\n@end\n";function zs(e){for(var t=new Uint8Array(e*e*4),r=0,n=new _t,i=0;i 0.999 ? vec3(1.0, 0.0, 0.0) : vec3(0.0, 1.0, 0.0);\n vec3 tangentX = normalize(cross(N, upVector));\n vec3 tangentZ = cross(N, tangentX);\n return normalize(tangentX * H.x + N * H.y + tangentZ * H.z);\n}\nvec3 importanceSampleNormalGGX(float i, float roughness, vec3 N) {\n float p = fract((i + sampleOffset) / float(TOTAL_SAMPLES));\n vec3 H = texture2D(normalDistribution,vec2(roughness, p)).rgb;\n return transformNormal(H, N);\n}\nfloat G_Smith(float g, float ndv, float ndl) {\n float roughness = 1.0 - g;\n float k = roughness * roughness / 2.0;\n float G1V = ndv / (ndv * (1.0 - k) + k);\n float G1L = ndl / (ndl * (1.0 - k) + k);\n return G1L * G1V;\n}\nvec3 F_Schlick(float ndv, vec3 spec) {\n return spec + (1.0 - spec) * pow(1.0 - ndv, 5.0);\n}\n#endif\n\nfloat fetchDepth(sampler2D depthTexture, vec2 uv)\n{\n vec4 depthTexel = texture2D(depthTexture, uv);\n return depthTexel.r * 2.0 - 1.0;\n}\n\nfloat linearDepth(float depth)\n{\n if (projection[3][3] == 0.0) {\n return projection[3][2] / (depth * projection[2][3] - projection[2][2]);\n }\n else {\n return (depth - projection[3][2]) / projection[2][2];\n }\n}\n\nbool rayIntersectDepth(float rayZNear, float rayZFar, vec2 hitPixel)\n{\n if (rayZFar > rayZNear)\n {\n float t = rayZFar; rayZFar = rayZNear; rayZNear = t;\n }\n float cameraZ = linearDepth(fetchDepth(gBufferTexture2, hitPixel));\n return rayZFar <= cameraZ && rayZNear >= cameraZ - zThicknessThreshold;\n}\n\n\nbool traceScreenSpaceRay(\n vec3 rayOrigin, vec3 rayDir, float jitter,\n out vec2 hitPixel, out vec3 hitPoint, out float iterationCount\n)\n{\n float rayLength = ((rayOrigin.z + rayDir.z * maxRayDistance) > -nearZ)\n ? (-nearZ - rayOrigin.z) / rayDir.z : maxRayDistance;\n\n vec3 rayEnd = rayOrigin + rayDir * rayLength;\n\n vec4 H0 = projection * vec4(rayOrigin, 1.0);\n vec4 H1 = projection * vec4(rayEnd, 1.0);\n\n float k0 = 1.0 / H0.w, k1 = 1.0 / H1.w;\n\n vec3 Q0 = rayOrigin * k0, Q1 = rayEnd * k1;\n\n vec2 P0 = (H0.xy * k0 * 0.5 + 0.5) * viewportSize;\n vec2 P1 = (H1.xy * k1 * 0.5 + 0.5) * viewportSize;\n\n P1 += dot(P1 - P0, P1 - P0) < 0.0001 ? 0.01 : 0.0;\n vec2 delta = P1 - P0;\n\n bool permute = false;\n if (abs(delta.x) < abs(delta.y)) {\n permute = true;\n delta = delta.yx;\n P0 = P0.yx;\n P1 = P1.yx;\n }\n float stepDir = sign(delta.x);\n float invdx = stepDir / delta.x;\n\n vec3 dQ = (Q1 - Q0) * invdx;\n float dk = (k1 - k0) * invdx;\n\n vec2 dP = vec2(stepDir, delta.y * invdx);\n\n float strideScaler = 1.0 - min(1.0, -rayOrigin.z / pixelStrideZCutoff);\n float pixStride = 1.0 + strideScaler * pixelStride;\n\n dP *= pixStride; dQ *= pixStride; dk *= pixStride;\n\n vec4 pqk = vec4(P0, Q0.z, k0);\n vec4 dPQK = vec4(dP, dQ.z, dk);\n\n pqk += dPQK * jitter;\n float rayZFar = (dPQK.z * 0.5 + pqk.z) / (dPQK.w * 0.5 + pqk.w);\n float rayZNear;\n\n bool intersect = false;\n\n vec2 texelSize = 1.0 / viewportSize;\n\n iterationCount = 0.0;\n\n for (int i = 0; i < MAX_ITERATION; i++)\n {\n pqk += dPQK;\n\n rayZNear = rayZFar;\n rayZFar = (dPQK.z * 0.5 + pqk.z) / (dPQK.w * 0.5 + pqk.w);\n\n hitPixel = permute ? pqk.yx : pqk.xy;\n hitPixel *= texelSize;\n\n intersect = rayIntersectDepth(rayZNear, rayZFar, hitPixel);\n\n iterationCount += 1.0;\n\n dPQK *= 1.2;\n\n if (intersect) {\n break;\n }\n }\n\n Q0.xy += dQ.xy * iterationCount;\n Q0.z = pqk.z;\n hitPoint = Q0 / pqk.w;\n\n return intersect;\n}\n\nfloat calculateAlpha(\n float iterationCount, float reflectivity,\n vec2 hitPixel, vec3 hitPoint, float dist, vec3 rayDir\n)\n{\n float alpha = clamp(reflectivity, 0.0, 1.0);\n alpha *= 1.0 - (iterationCount / float(MAX_ITERATION));\n vec2 hitPixelNDC = hitPixel * 2.0 - 1.0;\n float maxDimension = min(1.0, max(abs(hitPixelNDC.x), abs(hitPixelNDC.y)));\n alpha *= 1.0 - max(0.0, maxDimension - screenEdgeFadeStart) / (1.0 - screenEdgeFadeStart);\n\n float _eyeFadeStart = eyeFadeStart;\n float _eyeFadeEnd = eyeFadeEnd;\n if (_eyeFadeStart > _eyeFadeEnd) {\n float tmp = _eyeFadeEnd;\n _eyeFadeEnd = _eyeFadeStart;\n _eyeFadeStart = tmp;\n }\n\n float eyeDir = clamp(rayDir.z, _eyeFadeStart, _eyeFadeEnd);\n alpha *= 1.0 - (eyeDir - _eyeFadeStart) / (_eyeFadeEnd - _eyeFadeStart);\n\n alpha *= 1.0 - clamp(dist / maxRayDistance, 0.0, 1.0);\n\n return alpha;\n}\n\n@import clay.util.rand\n\n@import clay.util.rgbm\n\nvoid main()\n{\n vec4 normalAndGloss = texture2D(gBufferTexture1, v_Texcoord);\n\n if (dot(normalAndGloss.rgb, vec3(1.0)) == 0.0) {\n discard;\n }\n\n float g = normalAndGloss.a;\n#if !defined(PHYSICALLY_CORRECT)\n if (g <= minGlossiness) {\n discard;\n }\n#endif\n\n float reflectivity = (g - minGlossiness) / (1.0 - minGlossiness);\n\n vec3 N = normalize(normalAndGloss.rgb * 2.0 - 1.0);\n N = normalize((toViewSpace * vec4(N, 0.0)).xyz);\n\n vec4 projectedPos = vec4(v_Texcoord * 2.0 - 1.0, fetchDepth(gBufferTexture2, v_Texcoord), 1.0);\n vec4 pos = projectionInv * projectedPos;\n vec3 rayOrigin = pos.xyz / pos.w;\n vec3 V = -normalize(rayOrigin);\n\n float ndv = clamp(dot(N, V), 0.0, 1.0);\n float iterationCount;\n float jitter = rand(fract(v_Texcoord + jitterOffset));\n\n#ifdef PHYSICALLY_CORRECT\n vec4 color = vec4(vec3(0.0), 1.0);\n vec4 albedoMetalness = texture2D(gBufferTexture3, v_Texcoord);\n vec3 albedo = albedoMetalness.rgb;\n float m = albedoMetalness.a;\n vec3 diffuseColor = albedo * (1.0 - m);\n vec3 spec = mix(vec3(0.04), albedo, m);\n\n float jitter2 = rand(fract(v_Texcoord)) * float(TOTAL_SAMPLES);\n\n for (int i = 0; i < SAMPLE_PER_FRAME; i++) {\n vec3 H = importanceSampleNormalGGX(float(i) + jitter2, 1.0 - g, N);\n vec3 rayDir = normalize(reflect(-V, H));\n#else\n vec3 rayDir = normalize(reflect(-V, N));\n#endif\n vec2 hitPixel;\n vec3 hitPoint;\n\n bool intersect = traceScreenSpaceRay(rayOrigin, rayDir, jitter, hitPixel, hitPoint, iterationCount);\n\n float dist = distance(rayOrigin, hitPoint);\n\n vec3 hitNormal = texture2D(gBufferTexture1, hitPixel).rgb * 2.0 - 1.0;\n hitNormal = normalize((toViewSpace * vec4(hitNormal, 0.0)).xyz);\n#ifdef PHYSICALLY_CORRECT\n float ndl = clamp(dot(N, rayDir), 0.0, 1.0);\n float vdh = clamp(dot(V, H), 0.0, 1.0);\n float ndh = clamp(dot(N, H), 0.0, 1.0);\n vec3 litTexel = vec3(0.0);\n if (dot(hitNormal, rayDir) < 0.0 && intersect) {\n litTexel = texture2D(sourceTexture, hitPixel).rgb;\n litTexel *= pow(clamp(1.0 - dist / 200.0, 0.0, 1.0), 3.0);\n\n }\n else {\n #ifdef SPECULARCUBEMAP_ENABLED\n vec3 rayDirW = normalize(toWorldSpace * vec4(rayDir, 0.0)).rgb;\n litTexel = RGBMDecode(textureCubeLodEXT(specularCubemap, rayDirW, 0.0), 8.12).rgb * specularIntensity;\n#endif\n }\n color.rgb += ndl * litTexel * (\n F_Schlick(ndl, spec) * G_Smith(g, ndv, ndl) * vdh / (ndh * ndv + 0.001)\n );\n }\n color.rgb /= float(SAMPLE_PER_FRAME);\n#else\n #if !defined(SPECULARCUBEMAP_ENABLED)\n if (dot(hitNormal, rayDir) >= 0.0) {\n discard;\n }\n if (!intersect) {\n discard;\n }\n#endif\n float alpha = clamp(calculateAlpha(iterationCount, reflectivity, hitPixel, hitPoint, dist, rayDir), 0.0, 1.0);\n vec4 color = texture2D(sourceTexture, hitPixel);\n color.rgb *= alpha;\n\n#ifdef SPECULARCUBEMAP_ENABLED\n vec3 rayDirW = normalize(toWorldSpace * vec4(rayDir, 0.0)).rgb;\n alpha = alpha * (intersect ? 1.0 : 0.0);\n float bias = (1.0 -g) * 5.0;\n color.rgb += (1.0 - alpha)\n * RGBMDecode(textureCubeLodEXT(specularCubemap, rayDirW, bias), 8.12).rgb\n * specularIntensity;\n#endif\n\n#endif\n\n gl_FragColor = encodeHDR(color);\n}\n@end\n\n@export ecgl.ssr.blur\n\nuniform sampler2D texture;\nuniform sampler2D gBufferTexture1;\nuniform sampler2D gBufferTexture2;\nuniform mat4 projection;\nuniform float depthRange : 0.05;\n\nvarying vec2 v_Texcoord;\n\nuniform vec2 textureSize;\nuniform float blurSize : 1.0;\n\n#ifdef BLEND\n #ifdef SSAOTEX_ENABLED\nuniform sampler2D ssaoTex;\n #endif\nuniform sampler2D sourceTexture;\n#endif\n\nfloat getLinearDepth(vec2 coord)\n{\n float depth = texture2D(gBufferTexture2, coord).r * 2.0 - 1.0;\n return projection[3][2] / (depth * projection[2][3] - projection[2][2]);\n}\n\n@import clay.util.rgbm\n\n\nvoid main()\n{\n @import clay.compositor.kernel.gaussian_9\n\n vec4 centerNTexel = texture2D(gBufferTexture1, v_Texcoord);\n float g = centerNTexel.a;\n float maxBlurSize = clamp(1.0 - g, 0.0, 1.0) * blurSize;\n#ifdef VERTICAL\n vec2 off = vec2(0.0, maxBlurSize / textureSize.y);\n#else\n vec2 off = vec2(maxBlurSize / textureSize.x, 0.0);\n#endif\n\n vec2 coord = v_Texcoord;\n\n vec4 sum = vec4(0.0);\n float weightAll = 0.0;\n\n vec3 cN = centerNTexel.rgb * 2.0 - 1.0;\n float cD = getLinearDepth(v_Texcoord);\n for (int i = 0; i < 9; i++) {\n vec2 coord = clamp((float(i) - 4.0) * off + v_Texcoord, vec2(0.0), vec2(1.0));\n float w = gaussianKernel[i]\n * clamp(dot(cN, texture2D(gBufferTexture1, coord).rgb * 2.0 - 1.0), 0.0, 1.0);\n float d = getLinearDepth(coord);\n w *= (1.0 - smoothstep(abs(cD - d) / depthRange, 0.0, 1.0));\n\n weightAll += w;\n sum += decodeHDR(texture2D(texture, coord)) * w;\n }\n\n#ifdef BLEND\n float aoFactor = 1.0;\n #ifdef SSAOTEX_ENABLED\n aoFactor = texture2D(ssaoTex, v_Texcoord).r;\n #endif\n gl_FragColor = encodeHDR(\n sum / weightAll * aoFactor + decodeHDR(texture2D(sourceTexture, v_Texcoord))\n );\n#else\n gl_FragColor = encodeHDR(sum / weightAll);\n#endif\n}\n\n@end";function Ws(e){e=e||{},this._ssrPass=new vi({fragment:Xe.source("ecgl.ssr.main"),clearColor:[0,0,0,0]}),this._blurPass1=new vi({fragment:Xe.source("ecgl.ssr.blur"),clearColor:[0,0,0,0]}),this._blurPass2=new vi({fragment:Xe.source("ecgl.ssr.blur"),clearColor:[0,0,0,0]}),this._blendPass=new vi({fragment:Xe.source("clay.compositor.blend")}),this._blendPass.material.disableTexturesAll(),this._blendPass.material.enableTexture(["texture1","texture2"]),this._ssrPass.setUniform("gBufferTexture1",e.normalTexture),this._ssrPass.setUniform("gBufferTexture2",e.depthTexture),this._blurPass1.setUniform("gBufferTexture1",e.normalTexture),this._blurPass1.setUniform("gBufferTexture2",e.depthTexture),this._blurPass2.setUniform("gBufferTexture1",e.normalTexture),this._blurPass2.setUniform("gBufferTexture2",e.depthTexture),this._blurPass2.material.define("fragment","VERTICAL"),this._blurPass2.material.define("fragment","BLEND"),this._ssrTexture=new or({type:Kt.HALF_FLOAT}),this._texture2=new or({type:Kt.HALF_FLOAT}),this._texture3=new or({type:Kt.HALF_FLOAT}),this._prevTexture=new or({type:Kt.HALF_FLOAT}),this._currentTexture=new or({type:Kt.HALF_FLOAT}),this._frameBuffer=new pn({depthBuffer:!1}),this._normalDistribution=null,this._totalSamples=256,this._samplePerFrame=4,this._ssrPass.material.define("fragment","SAMPLE_PER_FRAME",this._samplePerFrame),this._ssrPass.material.define("fragment","TOTAL_SAMPLES",this._totalSamples),this._downScale=1}Xe.import(Hs),Ws.prototype.setAmbientCubemap=function(e,t){this._ssrPass.material.set("specularCubemap",e),this._ssrPass.material.set("specularIntensity",t);var r=e&&t;this._ssrPass.material[r?"enableTexture":"disableTexture"]("specularCubemap")},Ws.prototype.update=function(e,t,r,n){var i=e.getWidth(),a=e.getHeight(),o=this._ssrTexture,s=this._texture2,l=this._texture3;o.width=this._prevTexture.width=this._currentTexture.width=i/this._downScale,o.height=this._prevTexture.height=this._currentTexture.height=a/this._downScale,s.width=l.width=i,s.height=l.height=a;var c=this._frameBuffer,u=this._ssrPass,h=this._blurPass1,d=this._blurPass2,f=this._blendPass,p=new Lt,m=new Lt;Lt.transpose(p,t.worldTransform),Lt.transpose(m,t.viewMatrix),u.setUniform("sourceTexture",r),u.setUniform("projection",t.projectionMatrix.array),u.setUniform("projectionInv",t.invProjectionMatrix.array),u.setUniform("toViewSpace",p.array),u.setUniform("toWorldSpace",m.array),u.setUniform("nearZ",t.near);var g=n/this._totalSamples*this._samplePerFrame;if(u.setUniform("jitterOffset",g),u.setUniform("sampleOffset",n*this._samplePerFrame),h.setUniform("textureSize",[o.width,o.height]),d.setUniform("textureSize",[i,a]),d.setUniform("sourceTexture",r),h.setUniform("projection",t.projectionMatrix.array),d.setUniform("projection",t.projectionMatrix.array),c.attach(o),c.bind(e),u.render(e),this._physicallyCorrect&&(c.attach(this._currentTexture),f.setUniform("texture1",this._prevTexture),f.setUniform("texture2",o),f.material.set({weight1:n>=1?.95:0,weight2:n>=1?.05:1}),f.render(e)),c.attach(s),h.setUniform("texture",this._physicallyCorrect?this._currentTexture:o),h.render(e),c.attach(l),d.setUniform("texture",s),d.render(e),c.unbind(e),this._physicallyCorrect){var v=this._prevTexture;this._prevTexture=this._currentTexture,this._currentTexture=v}},Ws.prototype.getTargetTexture=function(){return this._texture3},Ws.prototype.setParameter=function(e,t){"maxIteration"===e?this._ssrPass.material.define("fragment","MAX_ITERATION",t):this._ssrPass.setUniform(e,t)},Ws.prototype.setPhysicallyCorrect=function(e){e?(this._normalDistribution||(this._normalDistribution=Ai.generateNormalDistribution(64,this._totalSamples)),this._ssrPass.material.define("fragment","PHYSICALLY_CORRECT"),this._ssrPass.material.set("normalDistribution",this._normalDistribution),this._ssrPass.material.set("normalDistributionSize",[64,this._totalSamples])):this._ssrPass.material.undefine("fragment","PHYSICALLY_CORRECT"),this._physicallyCorrect=e},Ws.prototype.setSSAOTexture=function(e){var t=this._blurPass2;e?(t.material.enableTexture("ssaoTex"),t.material.set("ssaoTex",e)):t.material.disableTexture("ssaoTex")},Ws.prototype.isFinished=function(e){return!this._physicallyCorrect||e>this._totalSamples/this._samplePerFrame},Ws.prototype.dispose=function(e){this._ssrTexture.dispose(e),this._texture2.dispose(e),this._texture3.dispose(e),this._prevTexture.dispose(e),this._currentTexture.dispose(e),this._frameBuffer.dispose(e)};var Xs=Ws,Ys=[0,0,-.321585265978,-.154972575841,.458126042375,.188473391593,.842080129861,.527766490688,.147304551086,-.659453822776,-.331943915203,-.940619700594,.0479226680259,.54812163202,.701581552186,-.709825561388,-.295436780218,.940589268233,-.901489676764,.237713156085,.973570876096,-.109899459384,-.866792314779,-.451805525005,.330975007087,.800048655954,-.344275183665,.381779221166,-.386139432542,-.437418421534,-.576478634965,-.0148463392551,.385798197415,-.262426961053,-.666302061145,.682427250835,-.628010632582,-.732836215494,.10163141741,-.987658134403,.711995289051,-.320024291314,.0296005138058,.950296523438,.0130612307608,-.351024443122,-.879596633704,-.10478487883,.435712737232,.504254490347,.779203817497,.206477676721,.388264289969,-.896736162545,-.153106280781,-.629203242522,-.245517550697,.657969239148,.126830499058,.26862328493,-.634888119007,-.302301223431,.617074219636,.779817204925],Zs="@export ecgl.normal.vertex\n\n@import ecgl.common.transformUniforms\n\n@import ecgl.common.uv.header\n\n@import ecgl.common.attributes\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\n@import ecgl.common.normalMap.vertexHeader\n\n@import ecgl.common.vertexAnimation.header\n\nvoid main()\n{\n\n @import ecgl.common.vertexAnimation.main\n\n @import ecgl.common.uv.main\n\n v_Normal = normalize((worldInverseTranspose * vec4(normal, 0.0)).xyz);\n v_WorldPosition = (world * vec4(pos, 1.0)).xyz;\n\n @import ecgl.common.normalMap.vertexMain\n\n gl_Position = worldViewProjection * vec4(pos, 1.0);\n\n}\n\n\n@end\n\n\n@export ecgl.normal.fragment\n\n#define ROUGHNESS_CHANEL 0\n\nuniform bool useBumpMap;\nuniform bool useRoughnessMap;\nuniform bool doubleSide;\nuniform float roughness;\n\n@import ecgl.common.uv.fragmentHeader\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\nuniform mat4 viewInverse : VIEWINVERSE;\n\n@import ecgl.common.normalMap.fragmentHeader\n@import ecgl.common.bumpMap.header\n\nuniform sampler2D roughnessMap;\n\nvoid main()\n{\n vec3 N = v_Normal;\n \n bool flipNormal = false;\n if (doubleSide) {\n vec3 eyePos = viewInverse[3].xyz;\n vec3 V = normalize(eyePos - v_WorldPosition);\n\n if (dot(N, V) < 0.0) {\n flipNormal = true;\n }\n }\n\n @import ecgl.common.normalMap.fragmentMain\n\n if (useBumpMap) {\n N = bumpNormal(v_WorldPosition, v_Normal, N);\n }\n\n float g = 1.0 - roughness;\n\n if (useRoughnessMap) {\n float g2 = 1.0 - texture2D(roughnessMap, v_DetailTexcoord)[ROUGHNESS_CHANEL];\n g = clamp(g2 + (g - 0.5) * 2.0, 0.0, 1.0);\n }\n\n if (flipNormal) {\n N = -N;\n }\n\n gl_FragColor.rgb = (N.xyz + 1.0) * 0.5;\n gl_FragColor.a = g;\n}\n@end";function qs(e,t,r,n,i){var a=e.gl;t.setUniform(a,"1i",r,i),a.activeTexture(a.TEXTURE0+i),n.isRenderable()?n.bind(e):n.unbind(e)}function Qs(e,t,r,n,i){var a,o,s,l,c=e.gl;return function(i,u,h){if(!l||l.material!==i.material){var d=i.material,f=i.__program,p=d.get("roughness");null==p&&(p=1);var m=d.get("normalMap")||t,g=d.get("roughnessMap"),v=d.get("bumpMap"),_=d.get("uvRepeat"),y=d.get("uvOffset"),x=d.get("detailUvRepeat"),b=d.get("detailUvOffset"),A=!!v&&d.isTextureEnabled("bumpMap"),T=!!g&&d.isTextureEnabled("roughnessMap"),w=d.isDefined("fragment","DOUBLE_SIDED");v=v||r,g=g||n,h!==u?(u.set("normalMap",m),u.set("bumpMap",v),u.set("roughnessMap",g),u.set("useBumpMap",A),u.set("useRoughnessMap",T),u.set("doubleSide",w),null!=_&&u.set("uvRepeat",_),null!=y&&u.set("uvOffset",y),null!=x&&u.set("detailUvRepeat",x),null!=b&&u.set("detailUvOffset",b),u.set("roughness",p)):(f.setUniform(c,"1f","roughness",p),a!==m&&qs(e,f,"normalMap",m,0),o!==v&&v&&qs(e,f,"bumpMap",v,1),s!==g&&g&&qs(e,f,"roughnessMap",g,2),null!=_&&f.setUniform(c,"2f","uvRepeat",_),null!=y&&f.setUniform(c,"2f","uvOffset",y),null!=x&&f.setUniform(c,"2f","detailUvRepeat",x),null!=b&&f.setUniform(c,"2f","detailUvOffset",b),f.setUniform(c,"1i","useBumpMap",+A),f.setUniform(c,"1i","useRoughnessMap",+T),f.setUniform(c,"1i","doubleSide",+w)),a=m,o=v,s=g,l=i}}}function Ks(e){e=e||{},this._depthTex=new or({format:Kt.DEPTH_COMPONENT,type:Kt.UNSIGNED_INT}),this._normalTex=new or({type:Kt.HALF_FLOAT}),this._framebuffer=new pn,this._framebuffer.attach(this._normalTex),this._framebuffer.attach(this._depthTex,pn.DEPTH_ATTACHMENT),this._normalMaterial=new re({shader:new Xe(Xe.source("ecgl.normal.vertex"),Xe.source("ecgl.normal.fragment"))}),this._normalMaterial.enableTexture(["normalMap","bumpMap","roughnessMap"]),this._defaultNormalMap=ai.createBlank("#000"),this._defaultBumpMap=ai.createBlank("#000"),this._defaultRoughessMap=ai.createBlank("#000"),this._debugPass=new vi({fragment:Xe.source("clay.compositor.output")}),this._debugPass.setUniform("texture",this._normalTex),this._debugPass.material.undefine("fragment","OUTPUT_ALPHA")}Xe.import(Zs),Ks.prototype.getDepthTexture=function(){return this._depthTex},Ks.prototype.getNormalTexture=function(){return this._normalTex},Ks.prototype.update=function(e,t,r){var n=e.getWidth(),i=e.getHeight(),a=this._depthTex,o=this._normalTex,s=this._normalMaterial;a.width=n,a.height=i,o.width=n,o.height=i;var l=t.getRenderList(r).opaque;this._framebuffer.bind(e),e.gl.clearColor(0,0,0,0),e.gl.clear(e.gl.COLOR_BUFFER_BIT|e.gl.DEPTH_BUFFER_BIT),e.gl.disable(e.gl.BLEND),e.renderPass(l,r,{getMaterial:function(){return s},ifRender:function(e){return e.renderNormal},beforeRender:Qs(e,this._defaultNormalMap,this._defaultBumpMap,this._defaultRoughessMap,this._normalMaterial),sort:e.opaqueSortCompare}),this._framebuffer.unbind(e)},Ks.prototype.renderDebug=function(e){this._debugPass.render(e)},Ks.prototype.dispose=function(e){this._depthTex.dispose(e),this._normalTex.dispose(e)};var Js=Ks;function $s(e){e=e||{},this._edgePass=new vi({fragment:Xe.source("ecgl.edge")}),this._edgePass.setUniform("normalTexture",e.normalTexture),this._edgePass.setUniform("depthTexture",e.depthTexture),this._targetTexture=new or({type:Kt.HALF_FLOAT}),this._frameBuffer=new pn,this._frameBuffer.attach(this._targetTexture)}$s.prototype.update=function(e,t,r,n){var i=e.getWidth(),a=e.getHeight(),o=this._targetTexture;o.width=i,o.height=a;var s=this._frameBuffer;s.bind(e),this._edgePass.setUniform("projectionInv",t.invProjectionMatrix.array),this._edgePass.setUniform("textureSize",[i,a]),this._edgePass.setUniform("texture",r),this._edgePass.render(e),s.unbind(e)},$s.prototype.getTargetTexture=function(){return this._targetTexture},$s.prototype.setParameter=function(e,t){this._edgePass.setUniform(e,t)},$s.prototype.dispose=function(e){this._targetTexture.dispose(e),this._frameBuffer.dispose(e)};var el=$s,tl={type:"compositor",nodes:[{name:"source",type:"texture",outputs:{color:{}}},{name:"source_half",shader:"#source(clay.compositor.downsample)",inputs:{texture:"source"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 2)",height:"expr(height * 1.0 / 2)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0, height * 1.0] )"}},{name:"bright",shader:"#source(clay.compositor.bright)",inputs:{texture:"source_half"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 2)",height:"expr(height * 1.0 / 2)",type:"HALF_FLOAT"}}},parameters:{threshold:2,scale:4,textureSize:"expr([width * 1.0 / 2, height / 2])"}},{name:"bright_downsample_4",shader:"#source(clay.compositor.downsample)",inputs:{texture:"bright"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 4)",height:"expr(height * 1.0 / 4)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0 / 2, height / 2] )"}},{name:"bright_downsample_8",shader:"#source(clay.compositor.downsample)",inputs:{texture:"bright_downsample_4"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 8)",height:"expr(height * 1.0 / 8)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0 / 4, height / 4] )"}},{name:"bright_downsample_16",shader:"#source(clay.compositor.downsample)",inputs:{texture:"bright_downsample_8"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 16)",height:"expr(height * 1.0 / 16)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0 / 8, height / 8] )"}},{name:"bright_downsample_32",shader:"#source(clay.compositor.downsample)",inputs:{texture:"bright_downsample_16"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 32)",height:"expr(height * 1.0 / 32)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0 / 16, height / 16] )"}},{name:"bright_upsample_16_blur_h",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_downsample_32"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 16)",height:"expr(height * 1.0 / 16)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:0,textureSize:"expr( [width * 1.0 / 32, height / 32] )"}},{name:"bright_upsample_16_blur_v",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_upsample_16_blur_h"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 16)",height:"expr(height * 1.0 / 16)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:1,textureSize:"expr( [width * 1.0 / 16, height * 1.0 / 16] )"}},{name:"bright_upsample_8_blur_h",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_downsample_16"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 8)",height:"expr(height * 1.0 / 8)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:0,textureSize:"expr( [width * 1.0 / 16, height * 1.0 / 16] )"}},{name:"bright_upsample_8_blur_v",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_upsample_8_blur_h"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 8)",height:"expr(height * 1.0 / 8)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:1,textureSize:"expr( [width * 1.0 / 8, height * 1.0 / 8] )"}},{name:"bright_upsample_8_blend",shader:"#source(clay.compositor.blend)",inputs:{texture1:"bright_upsample_8_blur_v",texture2:"bright_upsample_16_blur_v"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 8)",height:"expr(height * 1.0 / 8)",type:"HALF_FLOAT"}}},parameters:{weight1:.3,weight2:.7}},{name:"bright_upsample_4_blur_h",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_downsample_8"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 4)",height:"expr(height * 1.0 / 4)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:0,textureSize:"expr( [width * 1.0 / 8, height * 1.0 / 8] )"}},{name:"bright_upsample_4_blur_v",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_upsample_4_blur_h"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 4)",height:"expr(height * 1.0 / 4)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:1,textureSize:"expr( [width * 1.0 / 4, height * 1.0 / 4] )"}},{name:"bright_upsample_4_blend",shader:"#source(clay.compositor.blend)",inputs:{texture1:"bright_upsample_4_blur_v",texture2:"bright_upsample_8_blend"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 4)",height:"expr(height * 1.0 / 4)",type:"HALF_FLOAT"}}},parameters:{weight1:.3,weight2:.7}},{name:"bright_upsample_2_blur_h",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_downsample_4"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 2)",height:"expr(height * 1.0 / 2)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:0,textureSize:"expr( [width * 1.0 / 4, height * 1.0 / 4] )"}},{name:"bright_upsample_2_blur_v",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_upsample_2_blur_h"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 2)",height:"expr(height * 1.0 / 2)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:1,textureSize:"expr( [width * 1.0 / 2, height * 1.0 / 2] )"}},{name:"bright_upsample_2_blend",shader:"#source(clay.compositor.blend)",inputs:{texture1:"bright_upsample_2_blur_v",texture2:"bright_upsample_4_blend"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 2)",height:"expr(height * 1.0 / 2)",type:"HALF_FLOAT"}}},parameters:{weight1:.3,weight2:.7}},{name:"bright_upsample_full_blur_h",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:0,textureSize:"expr( [width * 1.0 / 2, height * 1.0 / 2] )"}},{name:"bright_upsample_full_blur_v",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_upsample_full_blur_h"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:1,textureSize:"expr( [width * 1.0, height * 1.0] )"}},{name:"bloom_composite",shader:"#source(clay.compositor.blend)",inputs:{texture1:"bright_upsample_full_blur_v",texture2:"bright_upsample_2_blend"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)",type:"HALF_FLOAT"}}},parameters:{weight1:.3,weight2:.7}},{name:"coc",shader:"#source(ecgl.dof.coc)",outputs:{color:{parameters:{minFilter:"NEAREST",magFilter:"NEAREST",width:"expr(width * 1.0)",height:"expr(height * 1.0)"}}},parameters:{focalDist:50,focalRange:30}},{name:"dof_far_blur",shader:"#source(ecgl.dof.diskBlur)",inputs:{texture:"source",coc:"coc"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0, height * 1.0] )"}},{name:"dof_near_blur",shader:"#source(ecgl.dof.diskBlur)",inputs:{texture:"source",coc:"coc"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0, height * 1.0] )"},defines:{BLUR_NEARFIELD:null}},{name:"dof_coc_blur",shader:"#source(ecgl.dof.diskBlur)",inputs:{texture:"coc"},outputs:{color:{parameters:{minFilter:"NEAREST",magFilter:"NEAREST",width:"expr(width * 1.0)",height:"expr(height * 1.0)"}}},parameters:{textureSize:"expr( [width * 1.0, height * 1.0] )"},defines:{BLUR_COC:null}},{name:"dof_composite",shader:"#source(ecgl.dof.composite)",inputs:{original:"source",blurred:"dof_far_blur",nearfield:"dof_near_blur",coc:"coc",nearcoc:"dof_coc_blur"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)",type:"HALF_FLOAT"}}}},{name:"composite",shader:"#source(clay.compositor.hdr.composite)",inputs:{texture:"source",bloom:"bloom_composite"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)"}}},defines:{}},{name:"FXAA",shader:"#source(clay.compositor.fxaa)",inputs:{texture:"composite"}}]},rl="@export ecgl.dof.coc\n\nuniform sampler2D depth;\n\nuniform float zNear: 0.1;\nuniform float zFar: 2000;\n\nuniform float focalDistance: 3;\nuniform float focalRange: 1;\nuniform float focalLength: 30;\nuniform float fstop: 2.8;\n\nvarying vec2 v_Texcoord;\n\n@import clay.util.encode_float\n\nvoid main()\n{\n float z = texture2D(depth, v_Texcoord).r * 2.0 - 1.0;\n\n float dist = 2.0 * zNear * zFar / (zFar + zNear - z * (zFar - zNear));\n\n float aperture = focalLength / fstop;\n\n float coc;\n\n float uppper = focalDistance + focalRange;\n float lower = focalDistance - focalRange;\n if (dist <= uppper && dist >= lower) {\n coc = 0.5;\n }\n else {\n float focalAdjusted = dist > uppper ? uppper : lower;\n\n coc = abs(aperture * (focalLength * (dist - focalAdjusted)) / (dist * (focalAdjusted - focalLength)));\n coc = clamp(coc, 0.0, 2.0) / 2.00001;\n\n if (dist < lower) {\n coc = -coc;\n }\n coc = coc * 0.5 + 0.5;\n }\n\n gl_FragColor = encodeFloat(coc);\n}\n@end\n\n\n@export ecgl.dof.composite\n\n#define DEBUG 0\n\nuniform sampler2D original;\nuniform sampler2D blurred;\nuniform sampler2D nearfield;\nuniform sampler2D coc;\nuniform sampler2D nearcoc;\nvarying vec2 v_Texcoord;\n\n@import clay.util.rgbm\n@import clay.util.float\n\nvoid main()\n{\n vec4 blurredColor = texture2D(blurred, v_Texcoord);\n vec4 originalColor = texture2D(original, v_Texcoord);\n\n float fCoc = decodeFloat(texture2D(coc, v_Texcoord));\n\n fCoc = abs(fCoc * 2.0 - 1.0);\n\n float weight = smoothstep(0.0, 1.0, fCoc);\n \n#ifdef NEARFIELD_ENABLED\n vec4 nearfieldColor = texture2D(nearfield, v_Texcoord);\n float fNearCoc = decodeFloat(texture2D(nearcoc, v_Texcoord));\n fNearCoc = abs(fNearCoc * 2.0 - 1.0);\n\n gl_FragColor = encodeHDR(\n mix(\n nearfieldColor, mix(originalColor, blurredColor, weight),\n pow(1.0 - fNearCoc, 4.0)\n )\n );\n#else\n gl_FragColor = encodeHDR(mix(originalColor, blurredColor, weight));\n#endif\n\n}\n\n@end\n\n\n\n@export ecgl.dof.diskBlur\n\n#define POISSON_KERNEL_SIZE 16;\n\nuniform sampler2D texture;\nuniform sampler2D coc;\nvarying vec2 v_Texcoord;\n\nuniform float blurRadius : 10.0;\nuniform vec2 textureSize : [512.0, 512.0];\n\nuniform vec2 poissonKernel[POISSON_KERNEL_SIZE];\n\nuniform float percent;\n\nfloat nrand(const in vec2 n) {\n return fract(sin(dot(n.xy ,vec2(12.9898,78.233))) * 43758.5453);\n}\n\n@import clay.util.rgbm\n@import clay.util.float\n\n\nvoid main()\n{\n vec2 offset = blurRadius / textureSize;\n\n float rnd = 6.28318 * nrand(v_Texcoord + 0.07 * percent );\n float cosa = cos(rnd);\n float sina = sin(rnd);\n vec4 basis = vec4(cosa, -sina, sina, cosa);\n\n#if !defined(BLUR_NEARFIELD) && !defined(BLUR_COC)\n offset *= abs(decodeFloat(texture2D(coc, v_Texcoord)) * 2.0 - 1.0);\n#endif\n\n#ifdef BLUR_COC\n float cocSum = 0.0;\n#else\n vec4 color = vec4(0.0);\n#endif\n\n\n float weightSum = 0.0;\n\n for (int i = 0; i < POISSON_KERNEL_SIZE; i++) {\n vec2 ofs = poissonKernel[i];\n\n ofs = vec2(dot(ofs, basis.xy), dot(ofs, basis.zw));\n\n vec2 uv = v_Texcoord + ofs * offset;\n vec4 texel = texture2D(texture, uv);\n\n float w = 1.0;\n#ifdef BLUR_COC\n float fCoc = decodeFloat(texel) * 2.0 - 1.0;\n cocSum += clamp(fCoc, -1.0, 0.0) * w;\n#else\n texel = texel;\n #if !defined(BLUR_NEARFIELD)\n float fCoc = decodeFloat(texture2D(coc, uv)) * 2.0 - 1.0;\n w *= abs(fCoc);\n #endif\n texel.rgb *= texel.a;\n color += texel * w;\n#endif\n\n weightSum += w;\n }\n\n#ifdef BLUR_COC\n gl_FragColor = encodeFloat(clamp(cocSum / weightSum, -1.0, 0.0) * 0.5 + 0.5);\n#else\n color /= weightSum;\n color.rgb /= (color.a + 0.0001);\n gl_FragColor = color;\n#endif\n}\n\n@end",nl="@export ecgl.edge\n\nuniform sampler2D texture;\n\nuniform sampler2D normalTexture;\nuniform sampler2D depthTexture;\n\nuniform mat4 projectionInv;\n\nuniform vec2 textureSize;\n\nuniform vec4 edgeColor: [0,0,0,0.8];\n\nvarying vec2 v_Texcoord;\n\nvec3 packColor(vec2 coord) {\n float z = texture2D(depthTexture, coord).r * 2.0 - 1.0;\n vec4 p = vec4(v_Texcoord * 2.0 - 1.0, z, 1.0);\n vec4 p4 = projectionInv * p;\n\n return vec3(\n texture2D(normalTexture, coord).rg,\n -p4.z / p4.w / 5.0\n );\n}\n\nvoid main() {\n vec2 cc = v_Texcoord;\n vec3 center = packColor(cc);\n\n float size = clamp(1.0 - (center.z - 10.0) / 100.0, 0.0, 1.0) * 0.5;\n float dx = size / textureSize.x;\n float dy = size / textureSize.y;\n\n vec2 coord;\n vec3 topLeft = packColor(cc+vec2(-dx, -dy));\n vec3 top = packColor(cc+vec2(0.0, -dy));\n vec3 topRight = packColor(cc+vec2(dx, -dy));\n vec3 left = packColor(cc+vec2(-dx, 0.0));\n vec3 right = packColor(cc+vec2(dx, 0.0));\n vec3 bottomLeft = packColor(cc+vec2(-dx, dy));\n vec3 bottom = packColor(cc+vec2(0.0, dy));\n vec3 bottomRight = packColor(cc+vec2(dx, dy));\n\n vec3 v = -topLeft-2.0*top-topRight+bottomLeft+2.0*bottom+bottomRight;\n vec3 h = -bottomLeft-2.0*left-topLeft+bottomRight+2.0*right+topRight;\n\n float edge = sqrt(dot(h, h) + dot(v, v));\n\n edge = smoothstep(0.8, 1.0, edge);\n\n gl_FragColor = mix(texture2D(texture, v_Texcoord), vec4(edgeColor.rgb, 1.0), edgeColor.a * edge);\n}\n@end";function il(e,t){return{color:{parameters:{width:e,height:t}}}}Xe["import"](hs),Xe["import"](fs),Xe["import"](ms),Xe["import"](gs),Xe["import"](vs),Xe["import"](_s),Xe["import"](ys),Xe["import"](bs),Xe["import"](As),Xe["import"](rl),Xe["import"](nl);var al=["composite","FXAA"];function ol(){this._width,this._height,this._dpr,this._sourceTexture=new or({type:Kt.HALF_FLOAT}),this._depthTexture=new or({format:Kt.DEPTH_COMPONENT,type:Kt.UNSIGNED_INT}),this._framebuffer=new pn,this._framebuffer.attach(this._sourceTexture),this._framebuffer.attach(this._depthTexture,pn.DEPTH_ATTACHMENT),this._normalPass=new Js,this._compositor=Is(tl);var e=this._compositor.getNodeByName("source");e.texture=this._sourceTexture;var t=this._compositor.getNodeByName("coc");this._sourceNode=e,this._cocNode=t,this._compositeNode=this._compositor.getNodeByName("composite"),this._fxaaNode=this._compositor.getNodeByName("FXAA"),this._dofBlurNodes=["dof_far_blur","dof_near_blur","dof_coc_blur"].map((function(e){return this._compositor.getNodeByName(e)}),this),this._dofBlurKernel=0,this._dofBlurKernelSize=new Float32Array(0),this._finalNodesChain=al.map((function(e){return this._compositor.getNodeByName(e)}),this);var r={normalTexture:this._normalPass.getNormalTexture(),depthTexture:this._normalPass.getDepthTexture()};this._ssaoPass=new ks(r),this._ssrPass=new Xs(r),this._edgePass=new el(r)}ol.prototype.resize=function(e,t,r){r=r||1;e*=r,t*=r;var n=this._sourceTexture,i=this._depthTexture;n.width=e,n.height=t,i.width=e,i.height=t;var a={getWidth:function(){return e},getHeight:function(){return t},getDevicePixelRatio:function(){return r}};function o(e,t){if("function"===typeof e[t]){var r=e[t].__original||e[t];e[t]=function(e){return r.call(this,a)},e[t].__original=r}}this._compositor.nodes.forEach((function(e){for(var t in e.outputs){var r=e.outputs[t].parameters;r&&(o(r,"width"),o(r,"height"))}for(var n in e.parameters)o(e.parameters,n)})),this._width=e,this._height=t,this._dpr=r},ol.prototype.getWidth=function(){return this._width},ol.prototype.getHeight=function(){return this._height},ol.prototype._ifRenderNormalPass=function(){return this._enableSSAO||this._enableEdge||this._enableSSR},ol.prototype._getPrevNode=function(e){var t=al.indexOf(e.name)-1,r=this._finalNodesChain[t];while(r&&!this._compositor.getNodeByName(r.name))t-=1,r=this._finalNodesChain[t];return r},ol.prototype._getNextNode=function(e){var t=al.indexOf(e.name)+1,r=this._finalNodesChain[t];while(r&&!this._compositor.getNodeByName(r.name))t+=1,r=this._finalNodesChain[t];return r},ol.prototype._addChainNode=function(e){var t=this._getPrevNode(e),r=this._getNextNode(e);t&&(e.inputs.texture=t.name,r?(e.outputs=il(this.getWidth.bind(this),this.getHeight.bind(this)),r.inputs.texture=e.name):e.outputs=null,this._compositor.addNode(e))},ol.prototype._removeChainNode=function(e){var t=this._getPrevNode(e),r=this._getNextNode(e);t&&(r?(t.outputs=il(this.getWidth.bind(this),this.getHeight.bind(this)),r.inputs.texture=t.name):t.outputs=null,this._compositor.removeNode(e))},ol.prototype.updateNormal=function(e,t,r,n){this._ifRenderNormalPass()&&this._normalPass.update(e,t,r)},ol.prototype.updateSSAO=function(e,t,r,n){this._ssaoPass.update(e,r,n)},ol.prototype.enableSSAO=function(){this._enableSSAO=!0},ol.prototype.disableSSAO=function(){this._enableSSAO=!1},ol.prototype.enableSSR=function(){this._enableSSR=!0},ol.prototype.disableSSR=function(){this._enableSSR=!1},ol.prototype.getSSAOTexture=function(){return this._ssaoPass.getTargetTexture()},ol.prototype.getSourceFrameBuffer=function(){return this._framebuffer},ol.prototype.getSourceTexture=function(){return this._sourceTexture},ol.prototype.disableFXAA=function(){this._removeChainNode(this._fxaaNode)},ol.prototype.enableFXAA=function(){this._addChainNode(this._fxaaNode)},ol.prototype.enableBloom=function(){this._compositeNode.inputs.bloom="bloom_composite",this._compositor.dirty()},ol.prototype.disableBloom=function(){this._compositeNode.inputs.bloom=null,this._compositor.dirty()},ol.prototype.enableDOF=function(){this._compositeNode.inputs.texture="dof_composite",this._compositor.dirty()},ol.prototype.disableDOF=function(){this._compositeNode.inputs.texture="source",this._compositor.dirty()},ol.prototype.enableColorCorrection=function(){this._compositeNode.define("COLOR_CORRECTION"),this._enableColorCorrection=!0},ol.prototype.disableColorCorrection=function(){this._compositeNode.undefine("COLOR_CORRECTION"),this._enableColorCorrection=!1},ol.prototype.enableEdge=function(){this._enableEdge=!0},ol.prototype.disableEdge=function(){this._enableEdge=!1},ol.prototype.setBloomIntensity=function(e){this._compositeNode.setParameter("bloomIntensity",e)},ol.prototype.setSSAOParameter=function(e,t){switch(e){case"quality":var r={low:6,medium:12,high:32,ultra:62}[t]||12;this._ssaoPass.setParameter("kernelSize",r);break;case"radius":this._ssaoPass.setParameter(e,t),this._ssaoPass.setParameter("bias",t/200);break;case"intensity":this._ssaoPass.setParameter(e,t);break;default:0}},ol.prototype.setDOFParameter=function(e,t){switch(e){case"focalDistance":case"focalRange":case"fstop":this._cocNode.setParameter(e,t);break;case"blurRadius":for(var r=0;r=this._haltonSequence.length},render:function(e,t,r){var n=this._blendPass;0===this._frame?(n.setUniform("weight1",0),n.setUniform("weight2",1)):(n.setUniform("weight1",.9),n.setUniform("weight2",.1)),n.setUniform("texture1",this._prevFrameTex),n.setUniform("texture2",t||this._sourceTex),this._blendFb.attach(this._outputTex),this._blendFb.bind(e),n.render(e),this._blendFb.unbind(e),r||(this._outputPass.setUniform("texture",this._outputTex),this._outputPass.render(e));var i=this._prevFrameTex;this._prevFrameTex=this._outputTex,this._outputTex=i,this._frame++},dispose:function(e){this._sourceFb.dispose(e),this._blendFb.dispose(e),this._prevFrameTex.dispose(e),this._outputTex.dispose(e),this._sourceTex.dispose(e),this._outputPass.dispose(e),this._blendPass.dispose(e)}};var cl=ll;function ul(e){e=e||"perspective",this.layer=null,this.scene=new Yr,this.rootNode=this.scene,this.viewport={x:0,y:0,width:0,height:0},this.setProjection(e),this._compositor=new sl,this._temporalSS=new cl,this._shadowMapPass=new Ko;for(var t=[],r=0,n=0;n<30;n++){for(var i=[],a=0;a<6;a++)i.push(4*Fs(r,2)-2),i.push(4*Fs(r,3)-2),r++;t.push(i)}this._pcfKernels=t,this.scene.on("beforerender",(function(e,t,r){this.needsTemporalSS()&&this._temporalSS.jitterProjection(e,r)}),this)}ul.prototype.setProjection=function(e){var t=this.camera;t&&t.update(),"perspective"===e?this.camera instanceof tn||(this.camera=new tn,t&&this.camera.setLocalTransform(t.localTransform)):this.camera instanceof hi||(this.camera=new hi,t&&this.camera.setLocalTransform(t.localTransform)),this.camera.near=.1,this.camera.far=2e3},ul.prototype.setViewport=function(e,t,r,n,i){this.camera instanceof tn&&(this.camera.aspect=r/n),i=i||1,this.viewport.x=e,this.viewport.y=t,this.viewport.width=r,this.viewport.height=n,this.viewport.devicePixelRatio=i,this._compositor.resize(r*i,n*i),this._temporalSS.resize(r*i,n*i)},ul.prototype.containPoint=function(e,t){var r=this.viewport,n=this.layer.renderer.getHeight();return t=n-t,e>=r.x&&t>=r.y&&e<=r.x+r.width&&t<=r.y+r.height};var hl=new ue;ul.prototype.castRay=function(e,t,r){var n=this.layer.renderer,i=n.viewport;return n.viewport=this.viewport,n.screenToNDC(e,t,hl),this.camera.castRay(hl,r),n.viewport=i,r},ul.prototype.prepareRender=function(){this.scene.update(),this.camera.update(),this.scene.updateLights();var e=this.scene.updateRenderList(this.camera);this._needsSortProgressively=!1;for(var t=0;t30},ul.prototype._doRender=function(e,t,r){var n=this.scene,i=this.camera;r=r||0,this._updateTransparent(e,n,i,r),t||(this._shadowMapPass.kernelPCF=this._pcfKernels[0],this._shadowMapPass.render(e,n,i,!0)),this._updateShadowPCFKernel(r);var a=e.clearColor;if(e.gl.clearColor(a[0],a[1],a[2],a[3]),this._enablePostEffect&&(this.needsTemporalSS()&&this._temporalSS.jitterProjection(e,i),this._compositor.updateNormal(e,n,i,this._temporalSS.getFrame())),this._updateSSAO(e,n,i,this._temporalSS.getFrame()),this._enablePostEffect){var o=this._compositor.getSourceFrameBuffer();o.bind(e),e.gl.clear(e.gl.DEPTH_BUFFER_BIT|e.gl.COLOR_BUFFER_BIT),e.render(n,i,!0,!0),o.unbind(e),this.needsTemporalSS()&&t?(this._compositor.composite(e,n,i,this._temporalSS.getSourceFrameBuffer(),this._temporalSS.getFrame()),e.setViewport(this.viewport),this._temporalSS.render(e)):(e.setViewport(this.viewport),this._compositor.composite(e,n,i,null,0))}else if(this.needsTemporalSS()&&t){o=this._temporalSS.getSourceFrameBuffer();o.bind(e),e.saveClear(),e.clearBit=e.gl.DEPTH_BUFFER_BIT|e.gl.COLOR_BUFFER_BIT,e.render(n,i,!0,!0),e.restoreClear(),o.unbind(e),e.setViewport(this.viewport),this._temporalSS.render(e)}else e.setViewport(this.viewport),e.render(n,i,!0,!0)},ul.prototype._updateTransparent=function(e,t,r,n){for(var i=new _t,a=new Lt,o=r.getWorldPosition(),s=t.getRenderList(r).transparent,l=0;lthis.camera.far||e80*r){n=a=e[0],i=o=e[1];for(var p=r;pa&&(a=s),l>o&&(o=l);c=Math.max(a-n,o-i)}return Ul(d,f,r,n,i,c),f}function Bl(e,t,r,n,i){var a,o;if(i===cc(e,t,r,n)>0)for(a=t;a=t;a-=n)o=oc(a,e[a],e[a+1],o);return o&&ec(o,o.next)&&(sc(o),o=o.next),o}function Fl(e,t){if(!e)return e;t||(t=e);var r,n=e;do{if(r=!1,n.steiner||!ec(n,n.next)&&0!==$l(n.prev,n,n.next))n=n.next;else{if(sc(n),n=t=n.prev,n===n.next)return null;r=!0}}while(r||n!==t);return t}function Ul(e,t,r,n,i,a,o){if(e){!o&&a&&Yl(e,n,i,a);var s,l,c=e;while(e.prev!==e.next)if(s=e.prev,l=e.next,a?jl(e,n,i,a):zl(e))t.push(s.i/r),t.push(e.i/r),t.push(l.i/r),sc(e),e=l.next,c=l.next;else if(e=l,e===c){o?1===o?(e=Vl(e,t,r),Ul(e,t,r,n,i,a,2)):2===o&&Gl(e,t,r,n,i,a):Ul(Fl(e),t,r,n,i,a,1);break}}}function zl(e){var t=e.prev,r=e,n=e.next;if($l(t,r,n)>=0)return!1;var i=e.next.next;while(i!==e.prev){if(Kl(t.x,t.y,r.x,r.y,n.x,n.y,i.x,i.y)&&$l(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function jl(e,t,r,n){var i=e.prev,a=e,o=e.next;if($l(i,a,o)>=0)return!1;var s=i.xa.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,u=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,h=ql(s,l,t,r,n),d=ql(c,u,t,r,n),f=e.nextZ;while(f&&f.z<=d){if(f!==e.prev&&f!==e.next&&Kl(i.x,i.y,a.x,a.y,o.x,o.y,f.x,f.y)&&$l(f.prev,f,f.next)>=0)return!1;f=f.nextZ}f=e.prevZ;while(f&&f.z>=h){if(f!==e.prev&&f!==e.next&&Kl(i.x,i.y,a.x,a.y,o.x,o.y,f.x,f.y)&&$l(f.prev,f,f.next)>=0)return!1;f=f.prevZ}return!0}function Vl(e,t,r){var n=e;do{var i=n.prev,a=n.next.next;!ec(i,a)&&tc(i,n,n.next,a)&&nc(i,a)&&nc(a,i)&&(t.push(i.i/r),t.push(n.i/r),t.push(a.i/r),sc(n),sc(n.next),n=e=a),n=n.next}while(n!==e);return n}function Gl(e,t,r,n,i,a){var o=e;do{var s=o.next.next;while(s!==o.prev){if(o.i!==s.i&&Jl(o,s)){var l=ac(o,s);return o=Fl(o,o.next),l=Fl(l,l.next),Ul(o,t,r,n,i,a),void Ul(l,t,r,n,i,a)}s=s.next}o=o.next}while(o!==e)}function kl(e,t,r,n){var i,a,o,s,l,c=[];for(i=0,a=t.length;i=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=u&&i!==n.x&&Kl(ar.x)&&nc(n,e)&&(r=n,d=l)),n=n.next;return r}function Yl(e,t,r,n){var i=e;do{null===i.z&&(i.z=ql(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,Zl(i)}function Zl(e){var t,r,n,i,a,o,s,l,c=1;do{r=e,e=null,a=null,o=0;while(r){for(o++,n=r,s=0,t=0;t0||l>0&&n)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1);return e}function ql(e,t,r,n,i){return e=32767*(e-r)/i,t=32767*(t-n)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function Ql(e){var t=e,r=e;do{t.x=0&&(e-o)*(n-s)-(r-o)*(t-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function Jl(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!rc(e,t)&&nc(e,t)&&nc(t,e)&&ic(e,t)}function $l(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function ec(e,t){return e.x===t.x&&e.y===t.y}function tc(e,t,r,n){return!!(ec(e,t)&&ec(r,n)||ec(e,n)&&ec(r,t))||$l(e,t,r)>0!==$l(e,t,n)>0&&$l(r,n,e)>0!==$l(r,n,t)>0}function rc(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&tc(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function nc(e,t){return $l(e.prev,e,e.next)<0?$l(e,t,e.next)>=0&&$l(e,e.prev,t)>=0:$l(e,t,e.prev)<0||$l(e,e.next,t)<0}function ic(e,t){var r=e,n=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{r.y>a!==r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==e);return n}function ac(e,t){var r=new lc(e.i,e.x,e.y),n=new lc(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function oc(e,t,r,n){var i=new lc(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function sc(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function lc(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function cc(e,t,r,n){for(var i=0,a=t,o=r-n;al&&s.push({pivot:Math.floor((c+l)/2),left:l,right:c});l=a[o].pivot+1,c=a[o].right;c>l&&s.push({pivot:Math.floor((c+l)/2),left:l,right:c})}a=this._parts=s}else for(o=0;o=2e4},doSortTriangles:function(e,t){var r=this.indices;if(0===t){var n=this.attributes.position;e=e.array;this._triangleZList&&this._triangleZList.length===this.triangleCount||(this._triangleZList=new Float32Array(this.triangleCount),this._sortedTriangleIndices=new Uint32Array(this.triangleCount),this._indicesTmp=new r.constructor(r.length),this._triangleZListTmp=new Float32Array(this.triangleCount));for(var i,a=0,o=0;o0,r={},n=0;n65535?new Uint32Array(3*o):new Uint16Array(3*o),d.material.shader!==t&&d.material.attachShader(t,!0),Ea.setMaterialFromModel(t.__shading,d.material,e,r),s>0&&(this._linesMesh.geometry.resetOffset(),this._linesMesh.geometry.setVertexCount(s),this._linesMesh.geometry.setTriangleCount(l)),this._dataIndexOfVertex=new Uint32Array(a),this._vertexRangeOfDataIndex=new Uint32Array(2*(i-n))},_updateRegionMesh:function(e,t,r,n){for(var i=e.getData(),a=0,o=0,s=!1,l=this._polygonMesh,c=this._linesMesh,u=r;u0;A&&(b*=t.getDevicePixelRatio(),this._updateLinesGeometry(c.geometry,e,u,_,b,e.coordinateSystem.transform)),c.invisible=!A,c.material.set({color:g})}l=this._polygonMesh;l.material.transparent=s,l.material.depthMask=!s,l.geometry.updateBoundingBox(),l.frontFace=this.extrudeY?Ea.Mesh.CCW:Ea.Mesh.CW,l.material.get("normalMap")&&l.geometry.generateTangents(),l.seriesIndex=e.seriesIndex,l.on("mousemove",this._onmousemove,this),l.on("mouseout",this._onmouseout,this)},_updateDebugWireframe:function(e){var t=e.getModel("debug.wireframe");if(t.get("show")){var r=Ea.parseColor(t.get("lineStyle.color")||"rgba(0,0,0,0.5)"),n=Pi.firstNotNull(t.get("lineStyle.width"),1),i=this._polygonMesh;i.geometry.generateBarycentric(),i.material.define("both","WIREFRAME_TRIANGLE"),i.material.set("wireframeLineColor",r),i.material.set("wireframeLineWidth",n)}},_onmousemove:function(e){var t=this._dataIndexOfVertex[e.triangle[0]];null==t&&(t=-1),t!==this._lastHoverDataIndex&&(this.downplay(this._lastHoverDataIndex),this.highlight(t),this._labelsBuilder.updateLabels([t])),this._lastHoverDataIndex=t,this._polygonMesh.dataIndex=t},_onmouseout:function(e){e.target&&(this.downplay(this._lastHoverDataIndex),this._lastHoverDataIndex=-1,this._polygonMesh.dataIndex=-1),this._labelsBuilder.updateLabels([])},_updateGroundPlane:function(e,t,r){var n=e.getModel("groundPlane",e);if(this._groundMesh.invisible=!n.get("show",!0),!this._groundMesh.invisible){var i=e.get("shading"),a=this._groundMaterials[i];a||(a=this._groundMaterials.lambert),Ea.setMaterialFromModel(i,a,n,r),a.get("normalMap")&&this._groundMesh.geometry.generateTangents(),this._groundMesh.material=a,this._groundMesh.material.set("color",Ea.parseColor(n.get("color"))),this._groundMesh.scale.set(t.size[0],t.size[2],1)}},_triangulation:function(e,t,r){this._triangulationResults=[];for(var n=[1/0,1/0,1/0],i=[-1/0,-1/0,-1/0],a=e.coordinateSystem,o=t;o1?n:0,L[V][g]=C.points[k+2],l.set(i+V,L[V]),s?(I[0]=(C.points[k]*v[0]-_[0])/x,I[1]=(C.points[k+2]*v[g]-_[g])/x):(I[0]=(G?B:B+j)/x,I[1]=(L[V][m]*v[m]-_[m])/x),u.set(i+V,I)}Mc.sub(N,L[1],L[0]),Mc.sub(R,L[3],L[0]),Mc.cross(P,N,R),Mc.normalize(P,P);for(V=0;V<4;V++)c.set(i+V,P),f&&h.set(i+V,o);for(V=0;V<6;V++)p[3*a+V]=D[V]+i;i+=4,a+=2,B+=j}}return t.dirty(),{vertexOffset:i,triangleOffset:a}},_getRegionLinesInfo:function(e,t,r){var n=0,i=0,a=t.getRegionModel(e),o=a.getModel("itemStyle"),s=o.get("borderWidth");if(s>0){var l=t.getRegionPolygonCoords(e);l.forEach((function(e){var t=e.exterior,a=e.interiors;n+=r.getPolylineVertexCount(t),i+=r.getPolylineTriangleCount(t);for(var o=0;othis._endIndex)){t-=this._startIndex;for(var n=this._vertexRangeOfDataIndex[2*t];n0},_displacementChanged:!0,_displacementScale:0,updateDisplacementHash:function(){var e=this.getDisplacementTexture(),t=this.getDisplacemenScale();this._displacementChanged=this._displacementTexture!==e||this._displacementScale!==t,this._displacementTexture=e,this._displacementScale=t},isDisplacementChanged:function(){return this._displacementChanged}});a["w"].merge(Yc.prototype,Va),a["w"].merge(Yc.prototype,Ga),a["w"].merge(Yc.prototype,ka),a["w"].merge(Yc.prototype,Dl);var Zc=Yc,qc=Math.PI,Qc=Math.sin,Kc=Math.cos,Jc=Math.tan,$c=Math.asin,eu=Math.atan2,tu=qc/180,ru=864e5,nu=2440588,iu=2451545;function au(e){return e.valueOf()/ru-.5+nu}function ou(e){return au(e)-iu}var su=23.4397*tu;function lu(e,t){return eu(Qc(e)*Kc(su)-Jc(t)*Qc(su),Kc(e))}function cu(e,t){return $c(Qc(t)*Kc(su)+Kc(t)*Qc(su)*Qc(e))}function uu(e,t,r){return eu(Qc(e),Kc(e)*Qc(t)-Jc(r)*Kc(t))}function hu(e,t,r){return $c(Qc(t)*Qc(r)+Kc(t)*Kc(r)*Kc(e))}function du(e,t){return tu*(280.16+360.9856235*e)-t}function fu(e){return tu*(357.5291+.98560028*e)}function pu(e){var t=tu*(1.9148*Qc(e)+.02*Qc(2*e)+3e-4*Qc(3*e)),r=102.9372*tu;return e+t+r+qc}function mu(e){var t=fu(e),r=pu(t);return{dec:cu(r,0),ra:lu(r,0)}}var gu={getPosition:function(e,t,r){var n=tu*-r,i=tu*t,a=ou(e),o=mu(a),s=du(a,n)-o.ra;return{azimuth:uu(s,i,o.dec),altitude:hu(s,i,o.dec)}}},vu=gu,_u="@export ecgl.atmosphere.vertex\nattribute vec3 position: POSITION;\nattribute vec3 normal : NORMAL;\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nuniform mat4 normalMatrix : WORLDINVERSETRANSPOSE;\n\nvarying vec3 v_Normal;\n\nvoid main() {\n v_Normal = normalize((normalMatrix * vec4(normal, 0.0)).xyz);\n gl_Position = worldViewProjection * vec4(position, 1.0);\n}\n@end\n\n\n@export ecgl.atmosphere.fragment\nuniform mat4 viewTranspose: VIEWTRANSPOSE;\nuniform float glowPower;\nuniform vec3 glowColor;\n\nvarying vec3 v_Normal;\n\nvoid main() {\n float intensity = pow(1.0 - dot(v_Normal, (viewTranspose * vec4(0.0, 0.0, 1.0, 0.0)).xyz), glowPower);\n gl_FragColor = vec4(glowColor, intensity * intensity);\n}\n@end";Ea.Shader["import"](la),Ea.Shader["import"](_u);var yu=a["d"].extend({type:"globe",__ecgl__:!0,_displacementScale:0,init:function(e,t){this.groupGL=new Ea.Node,this._sphereGeometry=new Ea.SphereGeometry({widthSegments:200,heightSegments:100,dynamic:!0}),this._overlayGeometry=new Ea.SphereGeometry({widthSegments:80,heightSegments:40}),this._planeGeometry=new Ea.PlaneGeometry,this._earthMesh=new Ea.Mesh({renderNormal:!0}),this._atmosphereMesh=new Ea.Mesh,this._atmosphereGeometry=new Ea.SphereGeometry({widthSegments:80,heightSegments:40}),this._atmosphereMaterial=new Ea.Material({shader:new Ea.Shader(Ea.Shader.source("ecgl.atmosphere.vertex"),Ea.Shader.source("ecgl.atmosphere.fragment")),transparent:!0}),this._atmosphereMesh.geometry=this._atmosphereGeometry,this._atmosphereMesh.material=this._atmosphereMaterial,this._atmosphereMesh.frontFace=Ea.Mesh.CW,this._lightRoot=new Ea.Node,this._sceneHelper=new co,this._sceneHelper.initLight(this._lightRoot),this.groupGL.add(this._atmosphereMesh),this.groupGL.add(this._earthMesh),this._control=new Ka({zr:t.getZr()}),this._control.init(),this._layerMeshes={}},render:function(e,t,r){var n=e.coordinateSystem,i=e.get("shading");n.viewGL.add(this._lightRoot),e.get("show")?n.viewGL.add(this.groupGL):n.viewGL.remove(this.groupGL),this._sceneHelper.setScene(n.viewGL.scene),n.viewGL.setPostEffect(e.getModel("postEffect"),r),n.viewGL.setTemporalSuperSampling(e.getModel("temporalSuperSampling"));var a=this._earthMesh;a.geometry=this._sphereGeometry;var o="ecgl."+i;a.material&&a.material.shader.name===o||(a.material=Ea.createMaterial(o)),Ea.setMaterialFromModel(i,a.material,e,r),["roughnessMap","metalnessMap","detailMap","normalMap"].forEach((function(e){var t=a.material.get(e);t&&(t.flipY=!1)})),a.material.set("color",Ea.parseColor(e.get("baseColor")));var s=.99*n.radius;if(a.scale.set(s,s,s),e.get("atmosphere.show")){a.material.define("both","ATMOSPHERE_ENABLED"),this._atmosphereMesh.invisible=!1,this._atmosphereMaterial.setUniforms({glowPower:e.get("atmosphere.glowPower")||6,glowColor:e.get("atmosphere.color")||"#ffffff"}),a.material.setUniforms({glowPower:e.get("atmosphere.innerGlowPower")||2,glowColor:e.get("atmosphere.color")||"#ffffff"});var l=e.get("atmosphere.offset")||5;this._atmosphereMesh.scale.set(s+l,s+l,s+l)}else a.material.undefine("both","ATMOSPHERE_ENABLED"),this._atmosphereMesh.invisible=!0;var c=a.material.setTextureImage("diffuseMap",e.get("baseTexture"),r,{flipY:!1,anisotropic:8});c&&c.surface&&c.surface.attachToMesh(a);var u=a.material.setTextureImage("bumpMap",e.get("heightTexture"),r,{flipY:!1,anisotropic:8});u&&u.surface&&u.surface.attachToMesh(a),a.material[e.get("postEffect.enable")?"define":"undefine"]("fragment","SRGB_DECODE"),this._updateLight(e,r),this._displaceVertices(e,r),this._updateViewControl(e,r),this._updateLayers(e,r)},afterRender:function(e,t,r,n){var i=n.renderer;this._sceneHelper.updateAmbientCubemap(i,e,r),this._sceneHelper.updateSkybox(i,e,r)},_updateLayers:function(e,t){var r=e.coordinateSystem,n=e.get("layers"),i=r.radius,o=[],s=[],l=[],c=[];a["w"].each(n,(function(e){var n=new a["f"](e),u=n.get("type"),h=Ea.loadTexture(n.get("texture"),t,{flipY:!1,anisotropic:8});if(h.surface&&h.surface.attachToMesh(this._earthMesh),"blend"===u){var d=n.get("blendTo"),f=Pi.firstNotNull(n.get("intensity"),1);"emission"===d?(l.push(h),c.push(f)):(o.push(h),s.push(f))}else{var p=n.get("id"),m=this._layerMeshes[p];m||(m=this._layerMeshes[p]=new Ea.Mesh({geometry:this._overlayGeometry,castShadow:!1,ignorePicking:!0}));var g=n.get("shading");"lambert"===g?(m.material=m.__lambertMaterial||new Ea.Material({autoUpdateTextureStatus:!1,shader:Ea.createShader("ecgl.lambert"),transparent:!0,depthMask:!1}),m.__lambertMaterial=m.material):(m.material=m.__colorMaterial||new Ea.Material({autoUpdateTextureStatus:!1,shader:Ea.createShader("ecgl.color"),transparent:!0,depthMask:!1}),m.__colorMaterial=m.material),m.material.enableTexture("diffuseMap");var v=n.get("distance"),_=i+(null==v?r.radius/100:v);m.scale.set(_,_,_),i=_;var y=this._blankTexture||(this._blankTexture=Ea.createBlankTexture("rgba(255, 255, 255, 0)"));m.material.set("diffuseMap",y),Ea.loadTexture(n.get("texture"),t,{flipY:!1,anisotropic:8},(function(e){e.surface&&e.surface.attachToMesh(m),m.material.set("diffuseMap",e),t.getZr().refresh()})),n.get("show")?this.groupGL.add(m):this.groupGL.remove(m)}}),this);var u=this._earthMesh.material;u.define("fragment","LAYER_DIFFUSEMAP_COUNT",o.length),u.define("fragment","LAYER_EMISSIVEMAP_COUNT",l.length),u.set("layerDiffuseMap",o),u.set("layerDiffuseIntensity",s),u.set("layerEmissiveMap",l),u.set("layerEmissionIntensity",c);var h=e.getModel("debug.wireframe");if(h.get("show")){u.define("both","WIREFRAME_TRIANGLE");var d=Ea.parseColor(h.get("lineStyle.color")||"rgba(0,0,0,0.5)"),f=Pi.firstNotNull(h.get("lineStyle.width"),1);u.set("wireframeLineWidth",f),u.set("wireframeLineColor",d)}else u.undefine("both","WIREFRAME_TRIANGLE")},_updateViewControl:function(e,t){var r=e.coordinateSystem,n=e.getModel("viewControl"),i=(r.viewGL.camera,this);function a(){return{type:"globeChangeCamera",alpha:o.getAlpha(),beta:o.getBeta(),distance:o.getDistance()-r.radius,center:o.getCenter(),from:i.uid,globeId:e.id}}var o=this._control;o.setViewGL(r.viewGL);var s,l,c=n.get("targetCoord");null!=c&&(l=c[0]+90,s=c[1]),o.setFromViewControlModel(n,{baseDistance:r.radius,alpha:s,beta:l}),o.off("update"),o.on("update",(function(){t.dispatchAction(a())}))},_displaceVertices:function(e,t){var r=e.get("displacementQuality"),n=e.get("debug.wireframe.show"),i=e.coordinateSystem;if(e.isDisplacementChanged()||r!==this._displacementQuality||n!==this._showDebugWireframe){this._displacementQuality=r,this._showDebugWireframe=n;var a=this._sphereGeometry,o={low:100,medium:200,high:400,ultra:800}[r]||200,s=o/2;(a.widthSegments!==o||n)&&(a.widthSegments=o,a.heightSegments=s,a.build()),this._doDisplaceVertices(a,i),n&&a.generateBarycentric()}},_doDisplaceVertices:function(e,t){var r=e.attributes.position.value,n=e.attributes.texcoord0.value,i=e.__originalPosition;i&&i.length===r.length||(i=new Float32Array(r.length),i.set(r),e.__originalPosition=i);for(var a=t.displacementWidth,o=t.displacementHeight,s=t.displacementData,l=0;l50&&(o=1e3);var s=[];Fu.perspective(s,zu,this.width/this.height,1,o),this.viewGL.camera.projectionMatrix.setArray(s),this.viewGL.camera.decomposeProjectionMatrix();s=Fu.identity([]);var l=this.dataToPoint(this.center);Fu.scale(s,s,[1,-1,1]),Fu.translate(s,s,[0,0,-e]),Fu.rotateX(s,s,t),Fu.rotateZ(s,s,-this.bearing/180*Math.PI),Fu.translate(s,s,[-l[0]*this.getScale()*Vu,-l[1]*this.getScale()*Vu,0]),this.viewGL.camera.viewMatrix.array=s;var c=[];Fu.invert(c,s),this.viewGL.camera.worldTransform.array=c,this.viewGL.camera.decomposeWorldTransform();var u,h=Uu*this.getScale();if(this.altitudeExtent&&!isNaN(this.boxHeight)){var d=this.altitudeExtent[1]-this.altitudeExtent[0];u=this.boxHeight/d*this.getScale()/Math.pow(2,this._initialZoom-this.zoomOffset)}else u=h/(2*Math.PI*6378e3*Math.abs(Math.cos(this.center[1]*(Math.PI/180))))*this.altitudeScale*Vu;this.viewGL.rootNode.scale.set(this.getScale()*Vu,this.getScale()*Vu,u)}},getScale:function(){return Math.pow(2,this.zoom-this.zoomOffset)},projectOnTile:function(e,t){return this.projectOnTileWithScale(e,this.getScale()*Uu,t)},projectOnTileWithScale:function(e,t,r){var n=e[0],i=e[1],a=n*ju/180,o=i*ju/180,s=t*(a+ju)/(2*ju),l=t*(ju-Math.log(Math.tan(ju/4+.5*o)))/(2*ju);return r=r||[],r[0]=s,r[1]=l,r},unprojectFromTile:function(e,t){return this.unprojectOnTileWithScale(e,this.getScale()*Uu,t)},unprojectOnTileWithScale:function(e,t,r){var n=e[0],i=e[1],a=n/t*(2*ju)-ju,o=2*(Math.atan(Math.exp(ju-i/t*(2*ju)))-ju/4);return r=r||[],r[0]=180*a/ju,r[1]=180*o/ju,r},dataToPoint:function(e,t){return t=this.projectOnTileWithScale(e,Uu,t),t[0]-=this._origin[0],t[1]-=this._origin[1],t[2]=isNaN(e[2])?0:e[2],isNaN(e[2])||(t[2]=e[2],this.altitudeExtent&&(t[2]-=this.altitudeExtent[0])),t}};var ku=Gu;function Hu(){ku.apply(this,arguments)}Hu.prototype=new ku,Hu.prototype.constructor=Hu,Hu.prototype.type="mapbox3D";var Wu=Hu,Xu=function(e,t,r){function n(e,t){var r=t.getWidth(),n=t.getHeight(),i=t.getDevicePixelRatio();this.viewGL.setViewport(0,0,r,n,i),this.width=r,this.height=n,this.altitudeScale=e.get("altitudeScale"),this.boxHeight=e.get("boxHeight")}function i(e,t){if("auto"!==this.model.get("boxHeight")){var r=[1/0,-1/0];e.eachSeries((function(e){if(e.coordinateSystem===this){var t=e.getData(),n=e.coordDimToDataDim("alt")[0];if(n){var i=t.getDataExtent(n,!0);r[0]=Math.min(r[0],i[0]),r[1]=Math.max(r[1],i[1])}}}),this),r&&isFinite(r[1]-r[0])&&(this.altitudeExtent=r)}}return{dimensions:t.prototype.dimensions,create:function(a,o){var s=[];return a.eachComponent(e,(function(e){var r=e.__viewGL;r||(r=e.__viewGL=new dl,r.setRootNode(new Ea.Node));var a=new t;a.viewGL=e.__viewGL,a.resize=n,a.resize(e,o),s.push(a),e.coordinateSystem=a,a.model=e,a.update=i})),a.eachSeries((function(t){if(t.get("coordinateSystem")===e){var r=t.getReferringComponents(e).models[0];if(r||(r=a.getComponent(e)),!r)throw new Error(e+' "'+Pi.firstNotNull(t.get(e+"Index"),t.get(e+"Id"),0)+'" not found');t.coordinateSystem=r.coordinateSystem}})),r&&r(s,a,o),s}}},Yu=Xu("mapbox3D",Wu,(function(e){e.forEach((function(e){e.setCameraOption(e.model.getMapboxCameraOption())}))})),Zu=Yu;function qu(e){e.registerComponentModel(Lu),e.registerComponentView(Bu),e.registerCoordinateSystem("mapbox3D",Zu),e.registerAction({type:"mapbox3DChangeCamera",event:"mapbox3dcamerachanged",update:"mapbox3D:updateCamera"},(function(e,t){t.eachComponent({mainType:"mapbox3D",query:e},(function(t){t.setMapboxCameraOption(e)}))}))}Object(a["v"])(qu);var Qu=["zoom","center","pitch","bearing"],Ku=a["c"].extend({type:"maptalks3D",layoutMode:"box",coordinateSystem:null,defaultOption:{zlevel:-10,urlTemplate:"http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png",attribution:'© OpenStreetMap contributors, © CARTO',center:[0,0],zoom:0,pitch:0,bearing:0,light:{main:{alpha:20,beta:30}},altitudeScale:1,boxHeight:"auto"},getMaptalksCameraOption:function(){var e=this;return Qu.reduce((function(t,r){return t[r]=e.get(r),t}),{})},setMaptalksCameraOption:function(e){null!=e&&Qu.forEach((function(t){null!=e[t]&&(this.option[t]=e[t])}),this)},getMaptalks:function(){return this._maptalks},setMaptalks:function(e){this._maptalks=e}});a["w"].merge(Ku.prototype,Ga),a["w"].merge(Ku.prototype,ka);var Ju=Ku;function $u(e,t,r,n){if(this.id=e,this.zr=t,this.dom=document.createElement("div"),this.dom.style.cssText="position:absolute;left:0;right:0;top:0;bottom:0;",!maptalks)throw new Error("Maptalks library must be included. See https://maptalks.org");this._maptalks=new maptalks.Map(this.dom,{center:r,zoom:n,doubleClickZoom:!1,fog:!1}),this._initEvents()}$u.prototype.setUnpainted=function(){},$u.prototype.resize=function(){this._maptalks.checkSize()},$u.prototype.getMaptalks=function(){return this._maptalks},$u.prototype.clear=function(){},$u.prototype.refresh=function(){this._maptalks.checkSize()};var eh=["mousedown","mouseup","click","dblclick","mousemove","mousewheel","DOMMouseScroll","touchstart","touchend","touchmove","touchcancel"];$u.prototype._initEvents=function(){var e=this.dom;this._handlers=this._handlers||{contextmenu:function(e){return e.preventDefault(),!1}},eh.forEach((function(t){this._handlers[t]=function(r){var n={};for(var i in r)n[i]=r[i];n.bubbles=!1;var a=new r.constructor(r.type,n);"mousewheel"===t||"DOMMouseScroll"===t?e.dispatchEvent(a):e.firstElementChild.dispatchEvent(a)},this.zr.dom.addEventListener(t,this._handlers[t])}),this),this.zr.dom.addEventListener("contextmenu",this._handlers.contextmenu)},$u.prototype.dispose=function(){eh.forEach((function(e){this.zr.dom.removeEventListener(e,this._handlers[e])}),this),this._maptalks.remove()};var th=$u;Ea.Shader.import(Iu);var rh=a["d"].extend({type:"maptalks3D",__ecgl__:!0,init:function(e,t){this._groundMesh=new Ea.Mesh({geometry:new Ea.PlaneGeometry,material:new Ea.Material({shader:new Ea.Shader({vertex:Ea.Shader.source("ecgl.displayShadow.vertex"),fragment:Ea.Shader.source("ecgl.displayShadow.fragment")}),depthMask:!1}),renderOrder:-100,culling:!1,castShadow:!1,$ignorePicking:!0,renderNormal:!0})},_initMaptalksLayer:function(e,t){var r=t.getZr();this._zrLayer=new th("maptalks3D",r,e.get("center"),e.get("zoom")),r.painter.insertLayer(-1e3,this._zrLayer),this._lightRoot=new Ea.Node,this._sceneHelper=new co(this._lightRoot),this._sceneHelper.initLight(this._lightRoot);var n=this._zrLayer.getMaptalks(),i=this._dispatchInteractAction.bind(this,t,n);["zoomend","zooming","zoomstart","dragrotating","pitch","pitchend","movestart","moving","moveend","resize","touchstart","touchmove","touchend","animating"].forEach((function(e){n.on(e,i)}))},render:function(e,t,r){this._zrLayer||this._initMaptalksLayer(e,r);var n=this._zrLayer.getMaptalks(),i=e.get("urlTemplate"),a=n.getBaseLayer();i!==this._oldUrlTemplate&&(a?a.setOptions({urlTemplate:i,attribution:e.get("attribution")}):(a=new maptalks.TileLayer("maptalks-echarts-gl-baselayer",{urlTemplate:i,subdomains:["a","b","c"],attribution:e.get("attribution")}),n.setBaseLayer(a))),this._oldUrlTemplate=i,n.setCenter(e.get("center")),n.setZoom(e.get("zoom"),{animation:!1}),n.setPitch(e.get("pitch")),n.setBearing(e.get("bearing")),e.setMaptalks(n);var o=e.coordinateSystem;o.viewGL.scene.add(this._lightRoot),o.viewGL.add(this._groundMesh),this._updateGroundMesh(),this._sceneHelper.setScene(o.viewGL.scene),this._sceneHelper.updateLight(e),o.viewGL.setPostEffect(e.getModel("postEffect"),r),o.viewGL.setTemporalSuperSampling(e.getModel("temporalSuperSampling")),this._maptalks3DModel=e},afterRender:function(e,t,r,n){var i=n.renderer;this._sceneHelper.updateAmbientCubemap(i,e,r),this._sceneHelper.updateSkybox(i,e,r),e.coordinateSystem.viewGL.scene.traverse((function(e){e.material&&(e.material.define("fragment","NORMAL_UP_AXIS",2),e.material.define("fragment","NORMAL_FRONT_AXIS",1))}))},updateCamera:function(e,t,r,n){e.coordinateSystem.setCameraOption(n),this._updateGroundMesh(),r.getZr().refresh()},_dispatchInteractAction:function(e,t,r){e.dispatchAction({type:"maptalks3DChangeCamera",pitch:t.getPitch(),zoom:ih(t.getResolution())+1,center:t.getCenter().toArray(),bearing:t.getBearing(),maptalks3DId:this._maptalks3DModel&&this._maptalks3DModel.id})},_updateGroundMesh:function(){if(this._maptalks3DModel){var e=this._maptalks3DModel.coordinateSystem,t=e.dataToPoint(e.center);this._groundMesh.position.set(t[0],t[1],-.001);var r=new Ea.Plane(new Ea.Vector3(0,0,1),0),n=e.viewGL.camera.castRay(new Ea.Vector2(-1,-1)),i=e.viewGL.camera.castRay(new Ea.Vector2(1,1)),a=n.intersectPlane(r),o=i.intersectPlane(r),s=a.dist(o)/e.viewGL.rootNode.scale.x;this._groundMesh.scale.set(s,s,1)}},dispose:function(e,t){this._zrLayer&&this._zrLayer.dispose(),t.getZr().painter.delLayer(-1e3)}});const nh=12756274*Math.PI/(256*Math.pow(2,20));function ih(e){return 19-Math.log(e/nh)/Math.LN2}function ah(){ku.apply(this,arguments),this.maxPitch=85,this.zoomOffset=1}ah.prototype=new ku,ah.prototype.constructor=ah,ah.prototype.type="maptalks3D";var oh=ah,sh=Xu("maptalks3D",oh,(function(e){e.forEach((function(e){e.setCameraOption(e.model.getMaptalksCameraOption())}))})),lh=sh;function ch(e){e.registerComponentModel(Ju),e.registerComponentView(rh),e.registerCoordinateSystem("maptalks3D",lh),e.registerAction({type:"maptalks3DChangeCamera",event:"maptalks3dcamerachanged",update:"maptalks3D:updateCamera"},(function(e,t){t.eachComponent({mainType:"maptalks3D",query:e},(function(t){t.setMaptalksCameraOption(e)}))}))}Object(a["v"])(ch);var uh=eo.vec3,hh=a["m"].dataStack.isDimensionStacked;function dh(e){var t=e[0],r=e[1];return!(t>0&&r>0||t<0&&r<0)}function fh(e,t){var r=e.getData(),n=e.get("barSize");if(null==n){var i,o,s=t.size,l=t.getAxis("x"),c=t.getAxis("y");i="category"===l.type?.7*l.getBandWidth():.6*Math.round(s[0]/Math.sqrt(r.count())),o="category"===c.type?.7*c.getBandWidth():.6*Math.round(s[1]/Math.sqrt(r.count())),n=[i,o]}else a["w"].isArray(n)||(n=[n,n]);var u=t.getAxis("z").scale.getExtent(),h=dh(u),d=["x","y","z"].map((function(t){return e.coordDimToDataDim(t)[0]})),f=hh(r,d[2]),p=f?r.getCalculationInfo("stackResultDimension"):d[2];r.each(d,(function(e,i,a,o){var s=r.get(p,o),l=f?s-a:h?0:u[0],c=t.dataToPoint([e,i,l]),d=t.dataToPoint([e,i,s]),m=uh.dist(c,d),g=[0,d[1]":"")+o.join(n?"
":", ")}var i=e.getData(),o=e.getRawValue(t),s=a["w"].isArray(o)?n(o):a["i"].encodeHTML(a["i"].addCommas(o)),l=i.getName(t),c=Ac(i,t);a["w"].isObject(c)&&c.colorStops&&(c=(c.colorStops[0]||{}).color),c=c||"transparent";var u=a["i"].getTooltipMarker(c),h=e.name;return"\0-"===h&&(h=""),h=h?a["i"].encodeHTML(h)+(r?": ":"
"):"",r?u+h+s:h+u+(l?a["i"].encodeHTML(l)+": "+s:s)},Ch=function(e,t,r){r=r||e.getSource();var n=t||a["j"](e.get("coordinateSystem"))||["x","y","z"],i=a["m"].createDimensions(r,{dimensionsDefine:r.dimensionsDefine||e.get("dimensions"),encodeDefine:r.encodeDefine||e.get("encode"),coordDimensions:n.map((function(t){var r=e.getReferringComponents(t+"Axis3D").models[0];return{type:r&&"category"===r.get("type")?"ordinal":"float",name:t}}))});"cartesian3D"===e.get("coordinateSystem")&&i.forEach((function(t){if(n.indexOf(t.coordDim)>=0){var r=e.getReferringComponents(t.coordDim+"Axis3D").models[0];r&&"category"===r.get("type")&&(t.ordinalMeta=r.getOrdinalMeta())}}));var o=a["m"].dataStack.enableDataStack(e,i,{byIndex:!0,stackedCoordDimension:"z"}),s=new a["e"](i,e);return s.setCalculationInfo(o),s.initData(r),s},Mh=a["g"].extend({type:"series.bar3D",dependencies:["globe"],visualStyleAccessPathvisu:"itemStyle",getInitialData:function(e,t){return Ch(this)},getFormattedLabel:function(e,t,r,n){var i=wh.getFormattedLabel(this,e,t,r,n);return null==i&&(i=this.getData().get("z",e)),i},formatTooltip:function(e){return Sh(this,e)},defaultOption:{coordinateSystem:"cartesian3D",globeIndex:0,grid3DIndex:0,zlevel:-10,bevelSize:0,bevelSmoothness:2,onGridPlane:"xy",shading:"color",minHeight:0,itemStyle:{opacity:1},label:{show:!1,distance:2,textStyle:{fontSize:14,color:"#000",backgroundColor:"rgba(255,255,255,0.7)",padding:3,borderRadius:3}},emphasis:{label:{show:!0}},animationDurationUpdate:500}});a["w"].merge(Mh.prototype,Dl);var Oh=Mh,Dh=eo.vec3,Lh=eo.mat3,Nh=yr.extend((function(){return{attributes:{position:new yr.Attribute("position","float",3,"POSITION"),normal:new yr.Attribute("normal","float",3,"NORMAL"),color:new yr.Attribute("color","float",4,"COLOR"),prevPosition:new yr.Attribute("prevPosition","float",3),prevNormal:new yr.Attribute("prevNormal","float",3)},dynamic:!0,enableNormal:!1,bevelSize:1,bevelSegments:0,_dataIndices:null,_vertexOffset:0,_triangleOffset:0}}),{resetOffset:function(){this._vertexOffset=0,this._triangleOffset=0},setBarCount:function(e){var t=this.enableNormal,r=this.getBarVertexCount()*e,n=this.getBarTriangleCount()*e;this.vertexCount!==r&&(this.attributes.position.init(r),t?this.attributes.normal.init(r):this.attributes.normal.value=null,this.attributes.color.init(r)),this.triangleCount!==n&&(this.indices=r>65535?new Uint32Array(3*n):new Uint16Array(3*n),this._dataIndices=new Uint32Array(r))},getBarVertexCount:function(){var e=this.bevelSize>0?this.bevelSegments:0;return e>0?this._getBevelBarVertexCount(e):this.enableNormal?24:8},getBarTriangleCount:function(){var e=this.bevelSize>0?this.bevelSegments:0;return e>0?this._getBevelBarTriangleCount(e):12},_getBevelBarVertexCount:function(e){return 4*(e+1)*(e+1)*2},_getBevelBarTriangleCount:function(e){var t=4*e+3,r=2*e+1;return(t+1)*r*2+4},setColor:function(e,t){for(var r=this.getBarVertexCount(),n=r*e,i=r*(e+1),a=n;a0&&this.bevelSegments>0)this._addBevelBar(e,h,m,g,this.bevelSize,this.bevelSegments,v);else{Dh.copy(i,h),Dh.normalize(i,i),Dh.cross(a,m,i),Dh.normalize(a,a),Dh.cross(n,i,a),Dh.normalize(a,a),Dh.negate(o,n),Dh.negate(s,i),Dh.negate(l,a),t(c[0],e,n,g[0]/2),t(c[0],c[0],a,g[2]/2),t(c[1],e,n,g[0]/2),t(c[1],c[1],l,g[2]/2),t(c[2],e,o,g[0]/2),t(c[2],c[2],l,g[2]/2),t(c[3],e,o,g[0]/2),t(c[3],c[3],a,g[2]/2),t(r,e,i,g[1]),t(c[4],r,n,g[0]/2),t(c[4],c[4],a,g[2]/2),t(c[5],r,n,g[0]/2),t(c[5],c[5],l,g[2]/2),t(c[6],r,o,g[0]/2),t(c[6],c[6],l,g[2]/2),t(c[7],r,o,g[0]/2),t(c[7],c[7],a,g[2]/2);var x=this.attributes;if(this.enableNormal){u[0]=n,u[1]=o,u[2]=i,u[3]=s,u[4]=a,u[5]=l;for(var b=this._vertexOffset,A=0;A0&&(f++,u[3]<.99&&(p=!0))}})),o.geometry.setBarCount(f);var m=r.getLayout("orient"),g=this._barIndexOfData=new Int32Array(r.count());f=0;r.each((function(e){if(r.hasValue(e)){var t=r.getItemLayout(e),n=t[0],i=t[1],o=t[2],s=4*e;u[0]=h[s++],u[1]=h[s++],u[2]=h[s++],u[3]=h[s++],u[3]>0&&(a._barMesh.geometry.addBar(n,i,m,o,u,e),g[e]=f++)}else g[e]=-1})),o.geometry.dirty(),o.geometry.updateBoundingBox();var v=o.material;v.transparent=p,v.depthMask=!p,o.geometry.sortTriangles=p,this._initHandler(e,t)},_initHandler:function(e,t){var r=e.getData(),n=this._barMesh,i="cartesian3D"===e.coordinateSystem.type;n.seriesIndex=e.seriesIndex;var a=-1;n.off("mousemove"),n.off("mouseout"),n.on("mousemove",(function(e){var o=n.geometry.getDataIndexOfVertex(e.triangle[0]);o!==a&&(this._downplay(a),this._highlight(o),this._labelsBuilder.updateLabels([o]),i&&t.dispatchAction({type:"grid3DShowAxisPointer",value:[r.get("x",o),r.get("y",o),r.get("z",o,!0)]})),a=o,n.dataIndex=o}),this),n.on("mouseout",(function(e){this._downplay(a),this._labelsBuilder.updateLabels(),a=-1,n.dataIndex=-1,i&&t.dispatchAction({type:"grid3DHideAxisPointer"})}),this)},_highlight:function(e){var t=this._data;if(t){var r=this._barIndexOfData[e];if(!(r<0)){var n=t.getItemModel(e),i=n.getModel("emphasis.itemStyle"),o=i.get("color"),s=i.get("opacity");if(null==o){var l=Ac(t,e);o=a["h"].lift(l,-.4)}null==s&&(s=Tc(t,e));var c=Ea.parseColor(o);c[3]*=s,this._barMesh.geometry.setColor(r,c),this._api.getZr().refresh()}}},_downplay:function(e){var t=this._data;if(t){var r=this._barIndexOfData[e];if(!(r<0)){var n=Ac(t,e),i=Tc(t,e),a=Ea.parseColor(n);a[3]*=i,this._barMesh.geometry.setColor(r,a),this._api.getZr().refresh()}}},highlight:function(e,t,r,n){this._toggleStatus("highlight",e,t,r,n)},downplay:function(e,t,r,n){this._toggleStatus("downplay",e,t,r,n)},_toggleStatus:function(e,t,r,n,i){var o=t.getData(),s=Pi.queryDataIndex(o,i),l=this;null!=s?a["w"].each(wh.normalizeToArray(s),(function(t){"highlight"===e?this._highlight(t):this._downplay(t)}),this):o.each((function(t){"highlight"===e?l._highlight(t):l._downplay(t)}))},remove:function(){this.groupGL.removeAll()},dispose:function(){this._labelsBuilder.dispose(),this.groupGL.removeAll()}});function Bh(e){e.registerChartView(Ih),e.registerSeriesModel(Oh),Ah(e),e.registerProcessor((function(e,t){e.eachSeriesByType("bar3d",(function(e){var t=e.getData();t.filterSelf((function(e){return t.hasValue(e)}))}))}))}Object(a["v"])(Bh);var Fh=a["g"].extend({type:"series.line3D",dependencies:["grid3D"],visualStyleAccessPath:"lineStyle",visualDrawType:"stroke",getInitialData:function(e,t){return Ch(this)},formatTooltip:function(e){return Sh(this,e)},defaultOption:{coordinateSystem:"cartesian3D",zlevel:-10,grid3DIndex:0,lineStyle:{width:2},animationDurationUpdate:500}}),Uh=Fh,zh=r("9680"),jh=eo.vec3;Ea.Shader.import(Oo);var Vh=a["b"].extend({type:"line3D",__ecgl__:!0,init:function(e,t){this.groupGL=new Ea.Node,this._api=t},render:function(e,t,r){var n=this._prevLine3DMesh;this._prevLine3DMesh=this._line3DMesh,this._line3DMesh=n,this._line3DMesh||(this._line3DMesh=new Ea.Mesh({geometry:new io({useNativeLine:!1,sortTriangles:!0}),material:new Ea.Material({shader:Ea.createShader("ecgl.meshLines3D")}),renderOrder:10}),this._line3DMesh.geometry.pick=this._pick.bind(this)),this.groupGL.remove(this._prevLine3DMesh),this.groupGL.add(this._line3DMesh);var i=e.coordinateSystem;if(i&&i.viewGL){i.viewGL.add(this.groupGL);var a=i.viewGL.isLinearSpace()?"define":"undefine";this._line3DMesh.material[a]("fragment","SRGB_DECODE")}this._doRender(e,r),this._data=e.getData(),this._camera=i.viewGL.camera,this.updateCamera(),this._updateAnimation(e)},updateCamera:function(){this._updateNDCPosition()},_doRender:function(e,t){var r=e.getData(),n=this._line3DMesh;n.geometry.resetOffset();var i=r.getLayout("points"),a=[],o=new Float32Array(i.length/3*4),s=0,l=!1;r.each((function(e){var t=Ac(r,e),n=Tc(r,e);null==n&&(n=1),Ea.parseColor(t,a),a[3]*=n,o[s++]=a[0],o[s++]=a[1],o[s++]=a[2],o[s++]=a[3],a[3]<.99&&(l=!0)})),n.geometry.setVertexCount(n.geometry.getPolylineVertexCount(i)),n.geometry.setTriangleCount(n.geometry.getPolylineTriangleCount(i)),n.geometry.addPolyline(i,o,Pi.firstNotNull(e.get("lineStyle.width"),1)),n.geometry.dirty(),n.geometry.updateBoundingBox();var c=n.material;c.transparent=l,c.depthMask=!l;var u=e.getModel("debug.wireframe");u.get("show")?(n.geometry.createAttribute("barycentric","float",3),n.geometry.generateBarycentric(),n.material.set("both","WIREFRAME_TRIANGLE"),n.material.set("wireframeLineColor",Ea.parseColor(u.get("lineStyle.color")||"rgba(0,0,0,0.5)")),n.material.set("wireframeLineWidth",Pi.firstNotNull(u.get("lineStyle.width"),1))):n.material.set("both","WIREFRAME_TRIANGLE"),this._points=i,this._initHandler(e,t)},_updateAnimation:function(e){Ea.updateVertexAnimation([["prevPosition","position"],["prevPositionPrev","positionPrev"],["prevPositionNext","positionNext"]],this._prevLine3DMesh,this._line3DMesh,e)},_initHandler:function(e,t){var r=e.getData(),n=e.coordinateSystem,i=this._line3DMesh,a=-1;i.seriesIndex=e.seriesIndex,i.off("mousemove"),i.off("mouseout"),i.on("mousemove",(function(e){var o=n.pointToData(e.point.array),s=r.indicesOfNearest("x",o[0])[0];s!==a&&(t.dispatchAction({type:"grid3DShowAxisPointer",value:[r.get("x",s),r.get("y",s),r.get("z",s)]}),i.dataIndex=s),a=s}),this),i.on("mouseout",(function(e){a=-1,i.dataIndex=-1,t.dispatchAction({type:"grid3DHideAxisPointer"})}),this)},_updateNDCPosition:function(){var e=new Lt,t=this._camera;Lt.multiply(e,t.projectionMatrix,t.viewMatrix);var r=this._positionNDC,n=this._points,i=n.length/3;r&&r.length/2===i||(r=this._positionNDC=new Float32Array(2*i));for(var a=[],o=0;o=0){var b=3*c,A=new _t(this._points[b],this._points[b+1],this._points[b+2]);a.push({dataIndex:c,point:A,pointWorld:A.clone(),target:this._line3DMesh,distance:this._camera.getWorldPosition().dist(A)})}},remove:function(){this.groupGL.removeAll()},dispose:function(){this.groupGL.removeAll()}});function Gh(e){e.registerChartView(Vh),e.registerSeriesModel(Uh),e.registerLayout((function(e,t){e.eachSeriesByType("line3D",(function(e){var t=e.getData(),r=e.coordinateSystem;if(r){if("cartesian3D"!==r.type)return void 0;var n=new Float32Array(3*t.count()),i=[],a=[],o=r.dimensions,s=o.map((function(t){return e.coordDimToDataDim(t)[0]}));r&&t.each(s,(function(e,t,o,s){i[0]=e,i[1]=t,i[2]=o,r.dataToPoint(i,a),n[3*s]=a[0],n[3*s+1]=a[1],n[3*s+2]=a[2]})),t.setLayout("points",n)}}))}))}Object(a["v"])(Gh);var kh=a["g"].extend({type:"series.scatter3D",dependencies:["globe","grid3D","geo3D"],visualStyleAccessPath:"itemStyle",hasSymbolVisual:!0,getInitialData:function(e,t){return Ch(this)},getFormattedLabel:function(e,t,r,n){var i=wh.getFormattedLabel(this,e,t,r,n);if(null==i){var a=this.getData(),o=a.dimensions[a.dimensions.length-1];i=a.get(o,e)}return i},formatTooltip:function(e){return Sh(this,e)},defaultOption:{coordinateSystem:"cartesian3D",zlevel:-10,progressive:1e5,progressiveThreshold:1e5,grid3DIndex:0,globeIndex:0,symbol:"circle",symbolSize:10,blendMode:"source-over",label:{show:!1,position:"right",distance:5,textStyle:{fontSize:14,color:"#000",backgroundColor:"rgba(255,255,255,0.7)",padding:3,borderRadius:3}},itemStyle:{opacity:.8},emphasis:{label:{show:!0}},animationDurationUpdate:500}});function Hh(e,t,r){t=t||document.createElement("canvas");t.width=e,t.height=e;var n=t.getContext("2d");return r&&r(n),t}function Wh(e,t,r,n){a["w"].isArray(t)||(t=[t,t]);var i=Yh.getMarginByStyle(r,n),o=t[0]+i.left+i.right,s=t[1]+i.top+i.bottom,l=a["m"].createSymbol(e,0,0,t[0],t[1]),c=Math.max(o,s);l.x=i.left,l.y=i.top,o>s?l.y+=(c-s)/2:l.x+=(c-o)/2;var u=l.getBoundingRect();return l.x-=u.x,l.y-=u.y,l.setStyle(r),l.update(),l.__size=c,l}function Xh(e,t,r){var n=t.width,i=t.height,a=e.canvas.width,o=e.canvas.height,s=n/a,l=i/o;function c(e){return e<128?1:-1}function u(e,a){var o=1/0;e=Math.floor(e*s),a=Math.floor(a*l);for(var u=a*n+e,h=t.data[4*u],d=c(h),f=Math.max(a-r,0);f=2e4},doSortVertices:function(e,t){var r=this.indices,n=qh.create();if(!r){r=this.indices=this.vertexCount>65535?new Uint32Array(this.vertexCount):new Uint16Array(this.vertexCount);for(var i=0;i.05);else for(i=0;i<3;i++)this._progressiveQuickSort(3*t+i);this.dirtyIndices()},_simpleSort:function(e){var t=this._zList,r=this.indices;function n(e,r){return t[r]-t[e]}e?Array.prototype.sort.call(r,n):pc.sort(r,n,0,r.length-1)},_progressiveQuickSort:function(e){var t=this._zList,r=this.indices;this._quickSort=this._quickSort||new pc,this._quickSort.step(r,(function(e,r){return t[r]-t[e]}),e)}},Kh="@export ecgl.sdfSprite.vertex\n\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nuniform float elapsedTime : 0;\n\nattribute vec3 position : POSITION;\n\n#ifdef VERTEX_SIZE\nattribute float size;\n#else\nuniform float u_Size;\n#endif\n\n#ifdef VERTEX_COLOR\nattribute vec4 a_FillColor: COLOR;\nvarying vec4 v_Color;\n#endif\n\n#ifdef VERTEX_ANIMATION\nattribute vec3 prevPosition;\nattribute float prevSize;\nuniform float percent : 1.0;\n#endif\n\n\n#ifdef POSITIONTEXTURE_ENABLED\nuniform sampler2D positionTexture;\n#endif\n\nvarying float v_Size;\n\nvoid main()\n{\n\n#ifdef POSITIONTEXTURE_ENABLED\n gl_Position = worldViewProjection * vec4(texture2D(positionTexture, position.xy).xy, -10.0, 1.0);\n#else\n\n #ifdef VERTEX_ANIMATION\n vec3 pos = mix(prevPosition, position, percent);\n #else\n vec3 pos = position;\n #endif\n gl_Position = worldViewProjection * vec4(pos, 1.0);\n#endif\n\n#ifdef VERTEX_SIZE\n#ifdef VERTEX_ANIMATION\n v_Size = mix(prevSize, size, percent);\n#else\n v_Size = size;\n#endif\n#else\n v_Size = u_Size;\n#endif\n\n#ifdef VERTEX_COLOR\n v_Color = a_FillColor;\n #endif\n\n gl_PointSize = v_Size;\n}\n\n@end\n\n@export ecgl.sdfSprite.fragment\n\nuniform vec4 color: [1, 1, 1, 1];\nuniform vec4 strokeColor: [1, 1, 1, 1];\nuniform float smoothing: 0.07;\n\nuniform float lineWidth: 0.0;\n\n#ifdef VERTEX_COLOR\nvarying vec4 v_Color;\n#endif\n\nvarying float v_Size;\n\nuniform sampler2D sprite;\n\n@import clay.util.srgb\n\nvoid main()\n{\n gl_FragColor = color;\n\n vec4 _strokeColor = strokeColor;\n\n#ifdef VERTEX_COLOR\n gl_FragColor *= v_Color;\n #endif\n\n#ifdef SPRITE_ENABLED\n float d = texture2D(sprite, gl_PointCoord).r;\n gl_FragColor.a *= smoothstep(0.5 - smoothing, 0.5 + smoothing, d);\n\n if (lineWidth > 0.0) {\n float sLineWidth = lineWidth / 2.0;\n\n float outlineMaxValue0 = 0.5 + sLineWidth;\n float outlineMaxValue1 = 0.5 + sLineWidth + smoothing;\n float outlineMinValue0 = 0.5 - sLineWidth - smoothing;\n float outlineMinValue1 = 0.5 - sLineWidth;\n\n if (d <= outlineMaxValue1 && d >= outlineMinValue0) {\n float a = _strokeColor.a;\n if (d <= outlineMinValue1) {\n a = a * smoothstep(outlineMinValue0, outlineMinValue1, d);\n }\n else {\n a = a * smoothstep(outlineMaxValue1, outlineMaxValue0, d);\n }\n gl_FragColor.rgb = mix(gl_FragColor.rgb * gl_FragColor.a, _strokeColor.rgb, a);\n gl_FragColor.a = gl_FragColor.a * (1.0 - a) + a;\n }\n }\n#endif\n\n#ifdef SRGB_DECODE\n gl_FragColor = sRGBToLinear(gl_FragColor);\n#endif\n}\n@end",Jh=eo.vec4;Ea.Shader.import(Kh);var $h=Ea.Mesh.extend((function(){var e=new Ea.Geometry({dynamic:!0,attributes:{color:new Ea.Geometry.Attribute("color","float",4,"COLOR"),position:new Ea.Geometry.Attribute("position","float",3,"POSITION"),size:new Ea.Geometry.Attribute("size","float",1),prevPosition:new Ea.Geometry.Attribute("prevPosition","float",3),prevSize:new Ea.Geometry.Attribute("prevSize","float",1)}});Object.assign(e,Qh);var t=new Ea.Material({shader:Ea.createShader("ecgl.sdfSprite"),transparent:!0,depthMask:!1});t.enableTexture("sprite"),t.define("both","VERTEX_COLOR"),t.define("both","VERTEX_SIZE");var r=new Ea.Texture2D({image:document.createElement("canvas"),flipY:!1});return t.set("sprite",r),e.pick=this._pick.bind(this),{geometry:e,material:t,mode:Ea.Mesh.POINTS,sizeScale:1}}),{_pick:function(e,t,r,n,i,a){var o=this._positionNDC;if(o)for(var s=r.viewport,l=2/s.width,c=2/s.height,u=this.geometry.vertexCount-1;u>=0;u--){var h;h=this.geometry.indices?this.geometry.indices[u]:u;var d=o[2*h],f=o[2*h+1],p=this.geometry.attributes.size.get(h)/this.sizeScale,m=p/2;if(e>d-m*l&&ef-m*c&&t2?(p=this._updateSymbolSprite(e,d,u,h),s.enableTexture("sprite")):s.disableTexture("sprite"),c.position.init(i-n);var m=[];if(f){s.undefine("VERTEX_SIZE"),s.undefine("VERTEX_COLOR");var g=xc(o),v=bc(o);Ea.parseColor(g,m),m[3]*=v,s.set({color:m,u_Size:u.maxSize*this._sizeScale})}else s.set({color:[1,1,1,1]}),s.define("VERTEX_SIZE"),s.define("VERTEX_COLOR"),c.size.init(i-n),c.color.init(i-n),this._originalOpacity=new Float32Array(i-n);for(var _=o.getLayout("points"),y=c.position.value,x=0;x1?(i[0]=r.maxSize,i[1]=r.maxSize/r.aspect):(i[1]=r.maxSize,i[0]=r.maxSize*r.aspect),i[0]=i[0]||1,i[1]=i[1]||1,this._symbolType===r.type&&nd(this._symbolSize,i)&&this._lineWidth===t.lineWidth||(Zh.createSymbolSprite(r.type,i,{fill:"#fff",lineWidth:t.lineWidth,stroke:"transparent",shadowColor:"transparent",minMargin:Math.min(i[0]/2,10)},this._spriteImageCanvas),Zh.createSDFFromCanvas(this._spriteImageCanvas,Math.min(this._spriteImageCanvas.width,32),td,this._mesh.material.get("sprite").image),this._symbolType=r.type,this._symbolSize=i,this._lineWidth=t.lineWidth),this._spriteImageCanvas.width/r.maxSize*n},_updateMaterial:function(e,t){var r="lighter"===e.get("blendMode")?Ea.additiveBlend:null,n=this._mesh.material;n.blend=r,n.set("lineWidth",t.lineWidth/td);var i=Ea.parseColor(t.stroke);n.set("strokeColor",i),n.transparent=!0,n.depthMask=!1,n.depthTest=!this.is2D,n.sortVertices=!this.is2D},_updateLabelBuilder:function(e,t,r){var n=e.getData(),i=this._mesh.geometry,a=i.attributes.position.value,o=(t=this._startDataIndex,this._mesh.sizeScale);this._labelsBuilder.updateData(n,t,r),this._labelsBuilder.getLabelPosition=function(e,r,n){var i=3*(e-t);return[a[i],a[i+1],a[i+2]]},this._labelsBuilder.getLabelDistance=function(e,r,n){var a=i.attributes.size.get(e-t)/o;return a/2+n},this._labelsBuilder.updateLabels()},_updateAnimation:function(e){Ea.updateVertexAnimation([["prevPosition","position"],["prevSize","size"]],this._prevMesh,this._mesh,e)},_updateHandler:function(e,t,r){var n,i=e.getData(),a=this._mesh,o=this,s=-1,l=e.coordinateSystem&&"cartesian3D"===e.coordinateSystem.type;l&&(n=e.coordinateSystem.model),a.seriesIndex=e.seriesIndex,a.off("mousemove"),a.off("mouseout"),a.on("mousemove",(function(t){var c=t.vertexIndex+o._startDataIndex;c!==s&&(this.highlightOnMouseover&&(this.downplay(i,s),this.highlight(i,c),this._labelsBuilder.updateLabels([c])),l&&r.dispatchAction({type:"grid3DShowAxisPointer",value:[i.get(e.coordDimToDataDim("x")[0],c),i.get(e.coordDimToDataDim("y")[0],c),i.get(e.coordDimToDataDim("z")[0],c)],grid3DIndex:n.componentIndex})),a.dataIndex=c,s=c}),this),a.on("mouseout",(function(e){var t=e.vertexIndex+o._startDataIndex;this.highlightOnMouseover&&(this.downplay(i,t),this._labelsBuilder.updateLabels()),s=-1,a.dataIndex=-1,l&&r.dispatchAction({type:"grid3DHideAxisPointer",grid3DIndex:n.componentIndex})}),this)},updateLayout:function(e,t,r){var n=e.getData();if(this._mesh){var i=this._mesh.geometry.attributes.position.value,a=n.getLayout("points");if(this.is2D)for(var o=0;othis._endDataIndex||tthis._endDataIndex||t0?1:-1}Ea.Shader.import(Od);var Nd=Ea.Mesh.extend((function(){var e=new Ea.Material({shader:new Ea.Shader(Ea.Shader.source("ecgl.trail2.vertex"),Ea.Shader.source("ecgl.trail2.fragment")),transparent:!0,depthMask:!1}),t=new io({dynamic:!0});return t.createAttribute("dist","float",1),t.createAttribute("distAll","float",1),t.createAttribute("start","float",1),{geometry:t,material:e,culling:!1,$ignorePicking:!0}}),{updateData:function(e,t,r){var n=e.hostModel,i=this.geometry,a=n.getModel("effect"),o=a.get("trailWidth")*t.getDevicePixelRatio(),s=a.get("trailLength"),l=n.get("effect.constantSpeed"),c=1e3*n.get("effect.period"),u=null!=l;u?this.material.set("speed",l/1e3):this.material.set("period",c),this.material[u?"define":"undefine"]("vertex","CONSTANT_SPEED");var h=n.get("polyline");i.trailLength=s,this.material.set("trailLength",s),i.resetOffset(),["position","positionPrev","positionNext"].forEach((function(e){i.attributes[e].value=r.attributes[e].value}));var d=["dist","distAll","start","offset","color"];d.forEach((function(e){i.attributes[e].init(i.vertexCount)})),i.indices=r.indices;var f=[],p=a.get("trailColor"),m=a.get("trailOpacity"),g=null!=p,v=null!=m;this.updateWorldTransform();var _=this.worldTransform.x.len(),y=this.worldTransform.y.len(),x=this.worldTransform.z.len(),b=0,A=0;e.each((function(t){var n=e.getItemLayout(t),a=v?m:Tc(e,t),s=Ac(e,t);null==a&&(a=1),f=Ea.parseColor(g?p:s,f),f[3]*=a;for(var l=h?r.getPolylineVertexCount(n):r.getCubicCurveVertexCount(n[0],n[1],n[2],n[3]),d=0,T=[],w=[],E=b;Eb&&(d+=Dd.dist(T,w)),i.attributes.dist.set(E,d),Dd.copy(w,T);A=Math.max(A,d);var S=Math.random()*(u?d:c);for(E=b;E0;this._updateSurfaceMesh(this._surfaceMesh,e,u,f);var p=this._surfaceMesh.material;f?(p.define("WIREFRAME_QUAD"),p.set("wireframeLineWidth",d),p.set("wireframeLineColor",Ea.parseColor(h.get("lineStyle.color")))):p.undefine("WIREFRAME_QUAD"),this._initHandler(e,r),this._updateAnimation(e)},_updateAnimation:function(e){Ea.updateVertexAnimation([["prevPosition","position"],["prevNormal","normal"]],this._prevSurfaceMesh,this._surfaceMesh,e)},_createSurfaceMesh:function(){var e=new Ea.Mesh({geometry:new Ea.Geometry({dynamic:!0,sortTriangles:!0}),shadowDepthMaterial:new Ea.Material({shader:new Ea.Shader(Ea.Shader.source("ecgl.sm.depth.vertex"),Ea.Shader.source("ecgl.sm.depth.fragment"))}),culling:!1,renderOrder:10,renderNormal:!0});return e.geometry.createAttribute("barycentric","float",4),e.geometry.createAttribute("prevPosition","float",3),e.geometry.createAttribute("prevNormal","float",3),Object.assign(e.geometry,yc),e},_initHandler:function(e,t){var r=e.getData(),n=this._surfaceMesh,i=e.coordinateSystem;function a(e,t){for(var r=1/0,i=-1,a=[],o=0;o=0){var l=[];n.geometry.attributes.position.get(s,l);for(var c=i.pointToData(l),u=1/0,h=-1,d=[],f=0;f65535?Uint32Array:Uint16Array)((p-1)*(m-1)*6),A=function(e,t,r){r[1]=e*m+t,r[0]=e*m+t+1,r[3]=(e+1)*m+t+1,r[2]=(e+1)*m+t},T=!1;if(l){var w=[],E=[],S=0;v?u.init(i.vertexCount):u.value=null;for(var C=[[],[],[]],M=[],O=[],D=kd.create(),L=function(e,t,r){var n=3*t;return r[0]=e[n],r[1]=e[n+1],r[2]=e[n+2],r},N=new Float32Array(o.length),R=new Float32Array(o.length/3*4),P=0;P0){if(Math.floor(s/u)===s/u)return[u,s/u];u--}return u=Math.floor(Math.sqrt(s)),[u,u]},dispose:function(){this.groupGL.removeAll()},remove:function(){this.groupGL.removeAll()}});function Xd(e){e.registerChartView(Wd),e.registerSeriesModel(Gd),e.registerLayout((function(e,t){e.eachSeriesByType("surface",(function(e){var t=e.coordinateSystem;t&&t.type;var r=e.getData(),n=new Float32Array(3*r.count()),i=[NaN,NaN,NaN];if(t&&"cartesian3D"===t.type){var a=t.dimensions,o=a.map((function(t){return e.coordDimToDataDim(t)[0]}));r.each(o,(function(e,a,o,s){var l;l=r.hasValue(s)?t.dataToPoint([e,a,o]):i,n[3*s]=l[0],n[3*s+1]=l[1],n[3*s+2]=l[2]}))}r.setLayout("points",n)}))}))}function Yd(e,t){for(var r=[],n=0;n "+p)),h++)}var m=a["m"].createDimensions(e,{coordDimensions:["value"]});l=new a["e"](m,r),l.initData(e);var g=new a["e"](["value"],r);return g.initData(u,c),i&&i(l,g),lf({mainData:l,struct:o,structAttr:"graph",datas:{node:l,edge:g},datasAttr:{node:"data",edge:"edgeData"}}),o.update(),o},uf=a["g"].extend({type:"series.graphGL",visualStyleAccessPath:"itemStyle",hasSymbolVisual:!0,init:function(e){uf.superApply(this,"init",arguments),this.legendDataProvider=function(){return this._categoriesData},this._updateCategoriesData()},mergeOption:function(e){uf.superApply(this,"mergeOption",arguments),this._updateCategoriesData()},getFormattedLabel:function(e,t,r,n){var i=wh.getFormattedLabel(this,e,t,r,n);if(null==i){var a=this.getData(),o=a.dimensions[a.dimensions.length-1];i=a.get(o,e)}return i},getInitialData:function(e,t){var r=e.edges||e.links||[],n=e.data||e.nodes||[],i=this;if(n&&r)return cf(n,r,this,!0,a).data;function a(e,r){e.wrapMethod("getItemModel",(function(e){const t=i._categoriesModels,r=e.getShallow("category"),n=t[r];return n&&(n.parentModel=e.parentModel,e.parentModel=n),e}));const n=t.getModel([]).getModel;function a(e,t){const r=n.call(this,e,t);return r.resolveParentPath=o,r}function o(e){if(e&&("label"===e[0]||"label"===e[1])){const t=e.slice();return"label"===e[0]?t[0]="edgeLabel":"label"===e[1]&&(t[1]="edgeLabel"),t}return e}r.wrapMethod("getItemModel",(function(e){return e.resolveParentPath=o,e.getModel=a,e}))}},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},getCategoriesData:function(){return this._categoriesData},formatTooltip:function(e,t,r){if("edge"===r){var n=this.getData(),i=this.getDataParams(e,r),o=n.graph.getEdgeByIndex(e),s=n.getName(o.node1.dataIndex),l=n.getName(o.node2.dataIndex),c=[];return null!=s&&c.push(s),null!=l&&c.push(l),c=a["i"].encodeHTML(c.join(" > ")),i.value&&(c+=" : "+a["i"].encodeHTML(i.value)),c}return uf.superApply(this,"formatTooltip",arguments)},_updateCategoriesData:function(){var e=(this.option.categories||[]).map((function(e){return null!=e.value?e:Object.assign({value:0},e)})),t=new a["e"](["value"],this);t.initData(e),this._categoriesData=t,this._categoriesModels=t.mapArray((function(e){return t.getItemModel(e,!0)}))},setView:function(e){null!=e.zoom&&(this.option.zoom=e.zoom),null!=e.offset&&(this.option.offset=e.offset)},setNodePosition:function(e){for(var t=0;t65535?this.indices instanceof Uint16Array&&(this.indices=new Uint32Array(this.indices)):this.indices instanceof Uint32Array&&(this.indices=new Uint16Array(this.indices)))},setTriangleCount:function(e){this.triangleCount!==e&&(this.indices=0===e?null:this.vertexCount>65535?new Uint32Array(3*e):new Uint16Array(3*e))},_getCubicCurveApproxStep:function(e,t,r,n){var i=df.dist(e,t)+df.dist(r,t)+df.dist(n,r),a=1/(i+1)*this.segmentScale;return a},getCubicCurveVertexCount:function(e,t,r,n){var i=this._getCubicCurveApproxStep(e,t,r,n),a=Math.ceil(1/i);return this.useNativeLine?2*a:2*a+2},getCubicCurveTriangleCount:function(e,t,r,n){var i=this._getCubicCurveApproxStep(e,t,r,n),a=Math.ceil(1/i);return this.useNativeLine?0:2*a},getLineVertexCount:function(){return this.getPolylineVertexCount(ff)},getLineTriangleCount:function(){return this.getPolylineTriangleCount(ff)},getPolylineVertexCount:function(e){var t;if("number"===typeof e)t=e;else{var r="number"!==typeof e[0];t=r?e.length:e.length/2}return this.useNativeLine?2*(t-1):2*(t-1)+2},getPolylineTriangleCount:function(e){var t;if("number"===typeof e)t=e;else{var r="number"!==typeof e[0];t=r?e.length:e.length/2}return this.useNativeLine?0:2*(t-1)},addCubicCurve:function(e,t,r,n,i,a){null==a&&(a=1);var o=e[0],s=e[1],l=t[0],c=t[1],u=r[0],h=r[1],d=n[0],f=n[1],p=this._getCubicCurveApproxStep(e,t,r,n),m=p*p,g=m*p,v=3*p,_=3*m,y=6*m,x=6*g,b=o-2*l+u,A=s-2*c+h,T=3*(l-u)-o+d,w=3*(c-h)-s+f,E=o,S=s,C=(l-o)*v+b*_+T*g,M=(c-s)*v+A*_+w*g,O=b*y+T*x,D=A*y+w*x,L=T*x,N=w*x,R=0,P=0,I=Math.ceil(1/p),B=new Float32Array(3*(I+1)),F=(B=[],0);for(P=0;P1&&(E=C>0?Math.min(E,d):Math.max(E,d),S=M>0?Math.min(S,f):Math.max(S,f));this.addPolyline(B,i,a)},addLine:function(e,t,r,n){this.addPolyline([e,t],r,n)},addPolyline:function(){var e=df.create(),t=df.create(),r=df.create(),n=df.create(),i=[],a=[],o=[];return function(s,l,c,u,h){if(s.length){var d="number"!==typeof s[0];if(null==h&&(h=d?s.length:s.length/2),!(h<2)){null==u&&(u=0),null==c&&(c=1),this._itemVertexOffsets.push(this._vertexOffset);for(var f,p=d?"number"!==typeof l[0]:l.length/4===h,m=this.attributes.position,g=this.attributes.color,v=this.attributes.offset,_=this.attributes.normal,y=this.indices,x=this._vertexOffset,b=0;b1&&(m.copy(x,x-1),g.copy(x,x-1),x++);else{var w;if(b0){df.sub(e,i,o),df.sub(t,a,i),df.normalize(e,e),df.normalize(t,t),df.add(n,e,t),df.normalize(n,n);var E=c/2*Math.min(1/df.dot(e,n),2);r[0]=-n[1],r[1]=n[0],w=E}else df.sub(e,a,i),df.normalize(e,e),r[0]=-e[1],r[1]=e[0],w=c/2}else df.sub(e,i,o),df.normalize(e,e),r[0]=-e[1],r[1]=e[0],w=c/2;_.set(x,r),_.set(x+1,r),v.set(x,w),v.set(x+1,-w),df.copy(o,i),m.set(x,i),m.set(x+1,i),g.set(x,f),g.set(x+1,f),x+=2}if(this.useNativeLine)g.set(x,f),m.set(x,i),x++;else if(b>0){var S=3*this._faceOffset;y=this.indices;y[S]=x-4,y[S+1]=x-3,y[S+2]=x-2,y[S+3]=x-3,y[S+4]=x-1,y[S+5]=x-2,this._faceOffset+=2}}this._vertexOffset=x}}}}(),setItemColor:function(e,t){for(var r=this._itemVertexOffsets[e],n=e 0.0) {\n float factor = 0.0;\n if (preventOverlap) {\n float d = sqrt(d2);\n d = d - n0.w - n1.w;\n if (d > 0.0) {\n factor = scaling * n0.z * n1.z / (d * d);\n }\n else if (d < 0.0) {\n factor = scaling * 100.0 * n0.z * n1.z;\n }\n }\n else {\n factor = scaling * n0.z * n1.z / d2;\n }\n force += dir * factor;\n }\n }\n\n vec2 dir = gravityCenter - n0.xy;\n float d = 1.0;\n if (!strongGravityMode) {\n d = length(dir);\n }\n\n force += dir * n0.z * gravity / (d + 1.0);\n\n gl_FragColor = vec4(force, 0.0, 1.0);\n}\n@end\n\n@export ecgl.forceAtlas2.updateEdgeAttraction.vertex\n\nattribute vec2 node1;\nattribute vec2 node2;\nattribute float weight;\n\nuniform sampler2D positionTex;\nuniform float edgeWeightInfluence;\nuniform bool preventOverlap;\nuniform bool linLogMode;\n\nuniform vec2 windowSize: WINDOW_SIZE;\n\nvarying vec2 v_Force;\n\nvoid main() {\n\n vec4 n0 = texture2D(positionTex, node1);\n vec4 n1 = texture2D(positionTex, node2);\n\n vec2 dir = n1.xy - n0.xy;\n float d = length(dir);\n float w;\n if (edgeWeightInfluence == 0.0) {\n w = 1.0;\n }\n else if (edgeWeightInfluence == 1.0) {\n w = weight;\n }\n else {\n w = pow(weight, edgeWeightInfluence);\n }\n vec2 offset = vec2(1.0 / windowSize.x, 1.0 / windowSize.y);\n vec2 scale = vec2((windowSize.x - 1.0) / windowSize.x, (windowSize.y - 1.0) / windowSize.y);\n vec2 pos = node1 * scale * 2.0 - 1.0;\n gl_Position = vec4(pos + offset, 0.0, 1.0);\n gl_PointSize = 1.0;\n\n float factor;\n if (preventOverlap) {\n d = d - n1.w - n0.w;\n }\n if (d <= 0.0) {\n v_Force = vec2(0.0);\n return;\n }\n\n if (linLogMode) {\n factor = w * log(d) / d;\n }\n else {\n factor = w;\n }\n v_Force = dir * factor;\n}\n@end\n\n@export ecgl.forceAtlas2.updateEdgeAttraction.fragment\n\nvarying vec2 v_Force;\n\nvoid main() {\n gl_FragColor = vec4(v_Force, 0.0, 0.0);\n}\n@end\n\n@export ecgl.forceAtlas2.calcWeightedSum.vertex\n\nattribute vec2 node;\n\nvarying vec2 v_NodeUv;\n\nvoid main() {\n\n v_NodeUv = node;\n gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n gl_PointSize = 1.0;\n}\n@end\n\n@export ecgl.forceAtlas2.calcWeightedSum.fragment\n\nvarying vec2 v_NodeUv;\n\nuniform sampler2D positionTex;\nuniform sampler2D forceTex;\nuniform sampler2D forcePrevTex;\n\nvoid main() {\n vec2 force = texture2D(forceTex, v_NodeUv).rg;\n vec2 forcePrev = texture2D(forcePrevTex, v_NodeUv).rg;\n\n float mass = texture2D(positionTex, v_NodeUv).z;\n float swing = length(force - forcePrev) * mass;\n float traction = length(force + forcePrev) * 0.5 * mass;\n\n gl_FragColor = vec4(swing, traction, 0.0, 0.0);\n}\n@end\n\n@export ecgl.forceAtlas2.calcGlobalSpeed\n\nuniform sampler2D globalSpeedPrevTex;\nuniform sampler2D weightedSumTex;\nuniform float jitterTolerence;\n\nvoid main() {\n vec2 weightedSum = texture2D(weightedSumTex, vec2(0.5)).xy;\n float prevGlobalSpeed = texture2D(globalSpeedPrevTex, vec2(0.5)).x;\n float globalSpeed = jitterTolerence * jitterTolerence\n * weightedSum.y / weightedSum.x;\n if (prevGlobalSpeed > 0.0) {\n globalSpeed = min(globalSpeed / prevGlobalSpeed, 1.5) * prevGlobalSpeed;\n }\n gl_FragColor = vec4(globalSpeed, 0.0, 0.0, 1.0);\n}\n@end\n\n@export ecgl.forceAtlas2.updatePosition\n\nuniform sampler2D forceTex;\nuniform sampler2D forcePrevTex;\nuniform sampler2D positionTex;\nuniform sampler2D globalSpeedTex;\n\nvarying vec2 v_Texcoord;\n\nvoid main() {\n vec2 force = texture2D(forceTex, v_Texcoord).xy;\n vec2 forcePrev = texture2D(forcePrevTex, v_Texcoord).xy;\n vec4 node = texture2D(positionTex, v_Texcoord);\n\n float globalSpeed = texture2D(globalSpeedTex, vec2(0.5)).r;\n float swing = length(force - forcePrev);\n float speed = 0.1 * globalSpeed / (0.1 + globalSpeed * sqrt(swing));\n\n float df = length(force);\n if (df > 0.0) {\n speed = min(df * speed, 10.0) / df;\n\n gl_FragColor = vec4(node.xy + speed * force, node.zw);\n }\n else {\n gl_FragColor = node;\n }\n}\n@end\n\n@export ecgl.forceAtlas2.edges.vertex\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\n\nattribute vec2 node;\nattribute vec4 a_Color : COLOR;\nvarying vec4 v_Color;\n\nuniform sampler2D positionTex;\n\nvoid main()\n{\n gl_Position = worldViewProjection * vec4(\n texture2D(positionTex, node).xy, -10.0, 1.0\n );\n v_Color = a_Color;\n}\n@end\n\n@export ecgl.forceAtlas2.edges.fragment\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\nvarying vec4 v_Color;\nvoid main() {\n gl_FragColor = color * v_Color;\n}\n@end";Ea.Shader.import(gf);var vf={repulsionByDegree:!0,linLogMode:!1,strongGravityMode:!1,gravity:1,scaling:1,edgeWeightInfluence:1,jitterTolerence:.1,preventOverlap:!1,dissuadeHubs:!1,gravityCenter:null};function _f(e){var t={type:Ea.Texture.FLOAT,minFilter:Ea.Texture.NEAREST,magFilter:Ea.Texture.NEAREST};this._positionSourceTex=new Ea.Texture2D(t),this._positionSourceTex.flipY=!1,this._positionTex=new Ea.Texture2D(t),this._positionPrevTex=new Ea.Texture2D(t),this._forceTex=new Ea.Texture2D(t),this._forcePrevTex=new Ea.Texture2D(t),this._weightedSumTex=new Ea.Texture2D(t),this._weightedSumTex.width=this._weightedSumTex.height=1,this._globalSpeedTex=new Ea.Texture2D(t),this._globalSpeedPrevTex=new Ea.Texture2D(t),this._globalSpeedTex.width=this._globalSpeedTex.height=1,this._globalSpeedPrevTex.width=this._globalSpeedPrevTex.height=1,this._nodeRepulsionPass=new vi({fragment:Ea.Shader.source("ecgl.forceAtlas2.updateNodeRepulsion")}),this._positionPass=new vi({fragment:Ea.Shader.source("ecgl.forceAtlas2.updatePosition")}),this._globalSpeedPass=new vi({fragment:Ea.Shader.source("ecgl.forceAtlas2.calcGlobalSpeed")}),this._copyPass=new vi({fragment:Ea.Shader.source("clay.compositor.output")});var r=function(e){e.blendEquation(e.FUNC_ADD),e.blendFunc(e.ONE,e.ONE)};this._edgeForceMesh=new Ea.Mesh({geometry:new Ea.Geometry({attributes:{node1:new Ea.Geometry.Attribute("node1","float",2),node2:new Ea.Geometry.Attribute("node2","float",2),weight:new Ea.Geometry.Attribute("weight","float",1)},dynamic:!0,mainAttribute:"node1"}),material:new Ea.Material({transparent:!0,shader:Ea.createShader("ecgl.forceAtlas2.updateEdgeAttraction"),blend:r,depthMask:!1,depthText:!1}),mode:Ea.Mesh.POINTS}),this._weightedSumMesh=new Ea.Mesh({geometry:new Ea.Geometry({attributes:{node:new Ea.Geometry.Attribute("node","float",2)},dynamic:!0,mainAttribute:"node"}),material:new Ea.Material({transparent:!0,shader:Ea.createShader("ecgl.forceAtlas2.calcWeightedSum"),blend:r,depthMask:!1,depthText:!1}),mode:Ea.Mesh.POINTS}),this._framebuffer=new pn({depthBuffer:!1}),this._dummyCamera=new Ea.OrthographicCamera({left:-1,right:1,top:1,bottom:-1,near:0,far:100}),this._globalSpeed=0}_f.prototype.updateOption=function(e){for(var t in vf)this[t]=vf[t];var r=this._nodes.length;if(this.jitterTolerence=r>5e4?10:r>5e3?1:.1,this.scaling=r>100?2:10,e)for(var t in vf)null!=e[t]&&(this[t]=e[t]);if(this.repulsionByDegree)for(var n=this._positionSourceTex.pixels,i=0;ie},_f.prototype._swapTexture=function(){var e=this._positionPrevTex;this._positionPrevTex=this._positionTex,this._positionTex=e;e=this._forcePrevTex;this._forcePrevTex=this._forceTex,this._forceTex=e;e=this._globalSpeedPrevTex;this._globalSpeedPrevTex=this._globalSpeedTex,this._globalSpeedTex=e},_f.prototype._initFromSource=function(e){this._framebuffer.attach(this._positionPrevTex),this._framebuffer.bind(e),this._copyPass.setUniform("texture",this._positionSourceTex),this._copyPass.render(e),e.gl.clearColor(0,0,0,0),this._framebuffer.attach(this._forcePrevTex),e.gl.clear(e.gl.COLOR_BUFFER_BIT),this._framebuffer.attach(this._globalSpeedPrevTex),e.gl.clear(e.gl.COLOR_BUFFER_BIT),this._framebuffer.unbind(e)},_f.prototype._resize=function(e,t){["_positionSourceTex","_positionTex","_positionPrevTex","_forceTex","_forcePrevTex"].forEach((function(r){this[r].width=e,this[r].height=t,this[r].dirty()}),this)},_f.prototype.dispose=function(e){this._framebuffer.dispose(e),this._copyPass.dispose(e),this._nodeRepulsionPass.dispose(e),this._positionPass.dispose(e),this._globalSpeedPass.dispose(e),this._edgeForceMesh.geometry.dispose(e),this._weightedSumMesh.geometry.dispose(e),this._positionSourceTex.dispose(e),this._positionTex.dispose(e),this._positionPrevTex.dispose(e),this._forceTex.dispose(e),this._forcePrevTex.dispose(e),this._weightedSumTex.dispose(e),this._globalSpeedTex.dispose(e),this._globalSpeedPrevTex.dispose(e)};var yf=_f;function xf(){var e={create:function(){return new Float32Array(2)},dist:function(e,t){var r=t[0]-e[0],n=t[1]-e[1];return Math.sqrt(r*r+n*n)},len:function(e){var t=e[0],r=e[1];return Math.sqrt(t*t+r*r)},scaleAndAdd:function(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e},scale:function(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e},add:function(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e},sub:function(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e},normalize:function(e,t){var r=t[0],n=t[1],i=r*r+n*n;return i>0&&(i=1/Math.sqrt(i),e[0]=t[0]*i,e[1]=t[1]*i),e},negate:function(e,t){return e[0]=-t[0],e[1]=-t[1],e},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e},set:function(e,t,r){return e[0]=t,e[1]=r,e}};function t(){this.subRegions=[],this.nSubRegions=0,this.node=null,this.mass=0,this.centerOfMass=null,this.bbox=new Float32Array(4),this.size=0}var r=t.prototype;function n(){this.position=new Float32Array(2),this.force=e.create(),this.forcePrev=e.create(),this.mass=1,this.inDegree=0,this.outDegree=0}function i(e,t){this.source=e,this.target=t,this.weight=1}function a(){this.autoSettings=!0,this.barnesHutOptimize=!0,this.barnesHutTheta=1.5,this.repulsionByDegree=!0,this.linLogMode=!1,this.strongGravityMode=!1,this.gravity=1,this.scaling=1,this.edgeWeightInfluence=1,this.jitterTolerence=.1,this.preventOverlap=!1,this.dissuadeHubs=!1,this.rootRegion=new t,this.rootRegion.centerOfMass=e.create(),this.nodes=[],this.edges=[],this.bbox=new Float32Array(4),this.gravityCenter=null,this._massArr=null,this._swingingArr=null,this._sizeArr=null,this._globalSpeed=0}r.beforeUpdate=function(){for(var e=0;e=e&&this.bbox[1]<=t&&this.bbox[3]>=t},r.setBBox=function(e,t,r,n){this.bbox[0]=e,this.bbox[1]=t,this.bbox[2]=r,this.bbox[3]=n,this.size=(r-e+n-t)/2},r._newSubRegion=function(){var e=this.subRegions[this.nSubRegions];return e||(e=new t,this.subRegions[this.nSubRegions]=e),this.nSubRegions++,e},r._addNodeToSubRegion=function(e){var t=this.findSubRegion(e.position[0],e.position[1]),r=this.bbox;if(!t){var n=(r[0]+r[2])/2,i=(r[1]+r[3])/2,a=(r[2]-r[0])/2,o=(r[3]-r[1])/2,s=e.position[0]>=n?1:0,l=e.position[1]>=i?1:0;t=this._newSubRegion();t.setBBox(s*a+r[0],l*o+r[1],(s+1)*a+r[0],(l+1)*o+r[1])}t.addNode(e)},r._updateCenterOfMass=function(e){null==this.centerOfMass&&(this.centerOfMass=new Float32Array(2));var t=this.centerOfMass[0]*this.mass,r=this.centerOfMass[1]*this.mass;t+=e.position[0]*e.mass,r+=e.position[1]*e.mass,this.mass+=e.mass,this.centerOfMass[0]=t/this.mass,this.centerOfMass[1]=r/this.mass};var o=a.prototype;o.initNodes=function(e,t,r){var i=t.length;this.nodes.length=0;for(var a="undefined"!=typeof r,o=0;o0&&(this.strongGravityMode?this.applyNodeStrongGravity(i):this.applyNodeGravity(i))}for(r=0;r0&&(d=Math.min(d/this._globalSpeed,1.5)*this._globalSpeed),this._globalSpeed=d;for(r=0;r0&&(f=Math.min(p*f,10)/p,e.scaleAndAdd(n.position,n.position,n.force,f))}},o.applyRegionToNodeRepulsion=function(){var t=e.create();return function(r,n){if(r.node)this.applyNodeToNodeRepulsion(r.node,n,!0);else{e.sub(t,n.position,r.centerOfMass);var i=t[0]*t[0]+t[1]*t[1];if(i>this.barnesHutTheta*r.size*r.size){var a=this.scaling*n.mass*r.mass/i;e.scaleAndAdd(n.force,n.force,t,a)}else for(var o=0;o0)o=this.scaling*r.mass*n.mass/(s*s);else{if(!(s<0))return;o=100*this.scaling*r.mass*n.mass}}else o=this.scaling*r.mass*n.mass/a;e.scaleAndAdd(r.force,r.force,t,o),e.scaleAndAdd(n.force,n.force,t,-o)}}}}(),o.applyEdgeAttraction=function(){var t=e.create();return function(r){var n=r.source,i=r.target;e.sub(t,n.position,i.position);var a,o,s=e.len(t);a=0===this.edgeWeightInfluence?1:1===this.edgeWeightInfluence?r.weight:Math.pow(r.weight,this.edgeWeightInfluence),this.preventOverlap&&(s=s-n.size-i.size,s<=0)||(o=this.linLogMode?-a*Math.log(s+1)/(s+1):-a,e.scaleAndAdd(n.force,n.force,t,o),e.scaleAndAdd(i.force,i.force,t,-o))}}(),o.applyNodeGravity=function(){var t=e.create();return function(r){e.sub(t,this.gravityCenter,r.position);var n=e.len(t);e.scaleAndAdd(r.force,r.force,t,this.gravity*r.mass/(n+1))}}(),o.applyNodeStrongGravity=function(){var t=e.create();return function(r){e.sub(t,this.gravityCenter,r.position),e.scaleAndAdd(r.force,r.force,t,this.gravity*r.mass)}}(),o.updateBBox=function(){for(var e=1/0,t=1/0,r=-1/0,n=-1/0,i=0;i5e4?10:a>5e3?1:.1,t.scaling=a>100?2:10,t.barnesHutOptimize=a>1e3,e)for(var r in Tf)null!=e[r]&&(t[r]=e[r]);if(!t.gravityCenter){for(var o=[1/0,1/0],s=[-1/0,-1/0],l=0;le},wf.prototype.getNodePosition=function(e,t){if(t||(t=new Float32Array(2*this._nodes.length)),this._positionArr)for(var r=0;r0?1.1:.9,a=Math.max(Math.min(this._zoom*i,this.maxZoom),this.minZoom);i=a/this._zoom;var o=this._convertPos(r,n),s=(o.x-this._dx)*(i-1),l=(o.y-this._dy)*(i-1);this._dx-=s,this._dy-=l,this._zoom=a,this._needsUpdate=!0}}},dispose:function(){var e=this.zr;e.off("mousedown",this._mouseDownHandler),e.off("mousemove",this._mouseMoveHandler),e.off("mouseup",this._mouseUpHandler),e.off("mousewheel",this._mouseWheelHandler),e.off("globalout",this._mouseUpHandler),e.animation.off("frame",this._update)}}),Cf=Sf,Mf="@export ecgl.lines2D.vertex\n\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\n\nattribute vec2 position: POSITION;\nattribute vec4 a_Color : COLOR;\nvarying vec4 v_Color;\n\n#ifdef POSITIONTEXTURE_ENABLED\nuniform sampler2D positionTexture;\n#endif\n\nvoid main()\n{\n gl_Position = worldViewProjection * vec4(position, -10.0, 1.0);\n\n v_Color = a_Color;\n}\n\n@end\n\n@export ecgl.lines2D.fragment\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\n\nvarying vec4 v_Color;\n\nvoid main()\n{\n gl_FragColor = color * v_Color;\n}\n@end\n\n\n@export ecgl.meshLines2D.vertex\n\nattribute vec2 position: POSITION;\nattribute vec2 normal;\nattribute float offset;\nattribute vec4 a_Color : COLOR;\n\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nuniform vec4 viewport : VIEWPORT;\n\nvarying vec4 v_Color;\nvarying float v_Miter;\n\nvoid main()\n{\n vec4 p2 = worldViewProjection * vec4(position + normal, -10.0, 1.0);\n gl_Position = worldViewProjection * vec4(position, -10.0, 1.0);\n\n p2.xy /= p2.w;\n gl_Position.xy /= gl_Position.w;\n\n vec2 N = normalize(p2.xy - gl_Position.xy);\n gl_Position.xy += N * offset / viewport.zw * 2.0;\n\n gl_Position.xy *= gl_Position.w;\n\n v_Color = a_Color;\n}\n@end\n\n\n@export ecgl.meshLines2D.fragment\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\n\nvarying vec4 v_Color;\nvarying float v_Miter;\n\nvoid main()\n{\n gl_FragColor = color * v_Color;\n}\n\n@end",Of=eo.vec2;Ea.Shader.import(Mf);var Df=1,Lf=a["b"].extend({type:"graphGL",__ecgl__:!0,init:function(e,t){this.groupGL=new Ea.Node,this.viewGL=new dl("orthographic"),this.viewGL.camera.left=this.viewGL.camera.right=0,this.viewGL.add(this.groupGL),this._pointsBuilder=new ad(!0,t),this._forceEdgesMesh=new Ea.Mesh({material:new Ea.Material({shader:Ea.createShader("ecgl.forceAtlas2.edges"),transparent:!0,depthMask:!1,depthTest:!1}),$ignorePicking:!0,geometry:new Ea.Geometry({attributes:{node:new Ea.Geometry.Attribute("node","float",2),color:new Ea.Geometry.Attribute("color","float",4,"COLOR")},dynamic:!0,mainAttribute:"node"}),renderOrder:-1,mode:Ea.Mesh.LINES}),this._edgesMesh=new Ea.Mesh({material:new Ea.Material({shader:Ea.createShader("ecgl.meshLines2D"),transparent:!0,depthMask:!1,depthTest:!1}),$ignorePicking:!0,geometry:new mf({useNativeLine:!1,dynamic:!0}),renderOrder:-1,culling:!1}),this._layoutId=0,this._control=new Cf({zr:t.getZr(),viewGL:this.viewGL}),this._control.setTarget(this.groupGL),this._control.init(),this._clickHandler=this._clickHandler.bind(this)},render:function(e,t,r){this.groupGL.add(this._pointsBuilder.rootNode),this._model=e,this._api=r,this._initLayout(e,t,r),this._pointsBuilder.update(e,t,r),this._forceLayoutInstance instanceof yf||this.groupGL.remove(this._forceEdgesMesh),this._updateCamera(e,r),this._control.off("update"),this._control.on("update",(function(){r.dispatchAction({type:"graphGLRoam",seriesId:e.id,zoom:this._control.getZoom(),offset:this._control.getOffset()}),this._pointsBuilder.updateView(this.viewGL.camera)}),this),this._control.setZoom(Pi.firstNotNull(e.get("zoom"),1)),this._control.setOffset(e.get("offset")||[0,0]);var n=this._pointsBuilder.getPointsMesh();if(n.off("mousemove",this._mousemoveHandler),n.off("mouseout",this._mouseOutHandler,this),r.getZr().off("click",this._clickHandler),this._pointsBuilder.highlightOnMouseover=!0,e.get("focusNodeAdjacency")){var i=e.get("focusNodeAdjacencyOn");"click"===i?r.getZr().on("click",this._clickHandler):"mouseover"===i&&(n.on("mousemove",this._mousemoveHandler,this),n.on("mouseout",this._mouseOutHandler,this),this._pointsBuilder.highlightOnMouseover=!1)}this._lastMouseOverDataIndex=-1},_clickHandler:function(e){if(!this._layouting){var t=this._pointsBuilder.getPointsMesh().dataIndex;t>=0?this._api.dispatchAction({type:"graphGLFocusNodeAdjacency",seriesId:this._model.id,dataIndex:t}):this._api.dispatchAction({type:"graphGLUnfocusNodeAdjacency",seriesId:this._model.id})}},_mousemoveHandler:function(e){if(!this._layouting){var t=this._pointsBuilder.getPointsMesh().dataIndex;t>=0?t!==this._lastMouseOverDataIndex&&this._api.dispatchAction({type:"graphGLFocusNodeAdjacency",seriesId:this._model.id,dataIndex:t}):this._mouseOutHandler(e),this._lastMouseOverDataIndex=t}},_mouseOutHandler:function(e){this._layouting||(this._api.dispatchAction({type:"graphGLUnfocusNodeAdjacency",seriesId:this._model.id}),this._lastMouseOverDataIndex=-1)},_updateForceEdgesGeometry:function(e,t){var r=this._forceEdgesMesh.geometry,n=t.getEdgeData(),i=0,a=this._forceLayoutInstance,o=2*n.count();r.attributes.node.init(o),r.attributes.color.init(o),n.each((function(t){var o=e[t];r.attributes.node.set(i,a.getNodeUV(o.node1)),r.attributes.node.set(i+1,a.getNodeUV(o.node2));var s=Ac(n,o.dataIndex),l=Ea.parseColor(s);l[3]*=Pi.firstNotNull(Tc(n,o.dataIndex),1),r.attributes.color.set(i,l),r.attributes.color.set(i+1,l),i+=2})),r.dirty()},_updateMeshLinesGeometry:function(){var e=this._model.getEdgeData(),t=this._edgesMesh.geometry,r=(e=this._model.getEdgeData(),this._model.getData().getLayout("points"));t.resetOffset(),t.setVertexCount(e.count()*t.getLineVertexCount()),t.setTriangleCount(e.count()*t.getLineTriangleCount());var n=[],i=[],a=["lineStyle","width"];this._originalEdgeColors=new Float32Array(4*e.count()),this._edgeIndicesMap=new Float32Array(e.count()),e.each((function(o){var s=e.graph.getEdgeByIndex(o),l=2*s.node1.dataIndex,c=2*s.node2.dataIndex;n[0]=r[l],n[1]=r[l+1],i[0]=r[c],i[1]=r[c+1];var u=Ac(e,s.dataIndex),h=Ea.parseColor(u);h[3]*=Pi.firstNotNull(Tc(e,s.dataIndex),1);var d=e.getItemModel(s.dataIndex),f=Pi.firstNotNull(d.get(a),1)*this._api.getDevicePixelRatio();t.addLine(n,i,h,f);for(var p=0;p<4;p++)this._originalEdgeColors[4*s.dataIndex+p]=h[p];this._edgeIndicesMap[s.dataIndex]=o}),this),t.dirty()},_updateForceNodesGeometry:function(e){for(var t=this._pointsBuilder.getPointsMesh(),r=[],n=0;n=f&&(l._syncNodePosition(e),d=0),r.getZr().refresh(),Object(Sa["a"])((function(){p(t)}))}))};Object(Sa["a"])((function(){l._forceLayoutInstanceToDispose&&(l._forceLayoutInstanceToDispose.dispose(i.layer.renderer),l._forceLayoutInstanceToDispose=null),p(c)})),this._layouting=!0}}},stopLayout:function(e,t,r,n){n&&null!=n.from&&n.from!==this.uid||(this._layoutId=0,this.groupGL.remove(this._forceEdgesMesh),this.groupGL.add(this._edgesMesh),this._forceLayoutInstance&&this.viewGL.layer&&(n&&n.beforeLayout||(this._syncNodePosition(e),this._updateAfterLayout(e,t,r)),this._api.getZr().refresh(),this._layouting=!1))},_syncNodePosition:function(e){var t=this._forceLayoutInstance.getNodePosition(this.viewGL.layer.renderer);e.getData().setLayout("points",t),e.setNodePosition(t)},_updateAfterLayout:function(e,t,r){this._updateMeshLinesGeometry(),this._pointsBuilder.removePositionTexture(),this._pointsBuilder.updateLayout(e,t,r),this._pointsBuilder.updateView(this.viewGL.camera),this._pointsBuilder.updateLabels(),this._pointsBuilder.showLabels()},focusNodeAdjacency:function(e,t,r,n){var i=this._model.getData();this._downplayAll();var a=n.dataIndex,o=i.graph,s=[],l=o.getNodeByIndex(a);s.push(l),l.edges.forEach((function(e){e.dataIndex<0||(e.node1!==l&&s.push(e.node1),e.node2!==l&&s.push(e.node2))}),this),this._pointsBuilder.fadeOutAll(.05),this._fadeOutEdgesAll(.05),s.forEach((function(e){this._pointsBuilder.highlight(i,e.dataIndex)}),this),this._pointsBuilder.updateLabels(s.map((function(e){return e.dataIndex})));var c=[];l.edges.forEach((function(e){e.dataIndex>=0&&(this._highlightEdge(e.dataIndex),c.push(e))}),this),this._focusNodes=s,this._focusEdges=c},unfocusNodeAdjacency:function(e,t,r,n){this._downplayAll(),this._pointsBuilder.fadeInAll(),this._fadeInEdgesAll(),this._pointsBuilder.updateLabels()},_highlightEdge:function(e){var t=this._model.getEdgeData().getItemModel(e),r=Ea.parseColor(t.get("emphasis.lineStyle.color")||t.get("lineStyle.color")),n=Pi.firstNotNull(t.get("emphasis.lineStyle.opacity"),t.get("lineStyle.opacity"),1);r[3]*=n,this._edgesMesh.geometry.setItemColor(this._edgeIndicesMap[e],r)},_downplayAll:function(){this._focusNodes&&this._focusNodes.forEach((function(e){this._pointsBuilder.downplay(this._model.getData(),e.dataIndex)}),this),this._focusEdges&&this._focusEdges.forEach((function(e){this._downplayEdge(e.dataIndex)}),this)},_downplayEdge:function(e){var t=this._getColor(e,[]);this._edgesMesh.geometry.setItemColor(this._edgeIndicesMap[e],t)},_setEdgeFade:function(){var e=[];return function(t,r){this._getColor(t,e),e[3]*=r,this._edgesMesh.geometry.setItemColor(this._edgeIndicesMap[t],e)}}(),_getColor:function(e,t){for(var r=0;r<4;r++)t[r]=this._originalEdgeColors[4*e+r];return t},_fadeOutEdgesAll:function(e){var t=this._model.getData().graph;t.eachEdge((function(t){this._setEdgeFade(t.dataIndex,e)}),this)},_fadeInEdgesAll:function(){this._fadeOutEdgesAll(1)},_updateCamera:function(e,t){this.viewGL.setViewport(0,0,t.getWidth(),t.getHeight(),t.getDevicePixelRatio());for(var r=this.viewGL.camera,n=e.getData(),i=n.getLayout("points"),a=Of.create(1/0,1/0),o=Of.create(-1/0,-1/0),s=[],l=0;lr.left&&ur.top)){var h=Math.max(o[0]-a[0],10),d=h/t.getWidth()*t.getHeight();h*=1.4,d*=1.4,a[0]-=.2*h,r.left=a[0],r.top=c-d/2,r.bottom=c+d/2,r.right=h+a[0],r.near=0,r.far=100}},dispose:function(){var e=this.viewGL.layer.renderer;this._forceLayoutInstance&&this._forceLayoutInstance.dispose(e),this.groupGL.removeAll(),this._layoutId=-1,this._pointsBuilder.dispose()},remove:function(){this.groupGL.removeAll(),this._control.dispose()}});function Nf(e){return e instanceof Array||(e=[e,e]),e}function Rf(e){function t(){}e.registerChartView(Lf),e.registerSeriesModel(hf),e.registerVisual((function(e){const t={};e.eachSeriesByType("graphGL",(function(e){var r=e.getCategoriesData(),n=e.getData(),i={};r.each((function(n){var a=r.getName(n);i["ec-"+a]=n;var o=r.getItemModel(n),s=o.getModel("itemStyle").getItemStyle();s.fill||(s.fill=e.getColorFromPalette(a,t)),r.setItemVisual(n,"style",s);var l=["symbol","symbolSize","symbolKeepAspect"];for(let e=0;e65535?new Uint32Array(3*n):new Uint16Array(3*n))},addLine:function(e){var t=this._vertexOffset;this.attributes.position.set(t,[e[0],e[1],1]),this.attributes.position.set(t+1,[e[0],e[1],-1]),this.attributes.position.set(t+2,[e[0],e[1],2]),this.attributes.position.set(t+3,[e[0],e[1],-2]),this.setTriangleIndices(this._faceOffset++,[t,t+1,t+2]),this.setTriangleIndices(this._faceOffset++,[t+1,t+2,t+3]),this._vertexOffset+=4}}),Bf=If,Ff="@export ecgl.vfParticle.particle.fragment\n\nuniform sampler2D particleTexture;\nuniform sampler2D spawnTexture;\nuniform sampler2D velocityTexture;\n\nuniform float deltaTime;\nuniform float elapsedTime;\n\nuniform float speedScaling : 1.0;\n\nuniform vec2 textureSize;\nuniform vec4 region : [0, 0, 1, 1];\nuniform float firstFrameTime;\n\nvarying vec2 v_Texcoord;\n\n\nvoid main()\n{\n vec4 p = texture2D(particleTexture, v_Texcoord);\n bool spawn = false;\n if (p.w <= 0.0) {\n p = texture2D(spawnTexture, fract(v_Texcoord + elapsedTime / 10.0));\n p.w -= firstFrameTime;\n spawn = true;\n }\n vec2 v = texture2D(velocityTexture, fract(p.xy * region.zw + region.xy)).xy;\n v = (v - 0.5) * 2.0;\n p.z = length(v);\n p.xy += v * deltaTime / 10.0 * speedScaling;\n p.w -= deltaTime;\n\n if (spawn || p.xy != fract(p.xy)) {\n p.z = 0.0;\n }\n p.xy = fract(p.xy);\n\n gl_FragColor = p;\n}\n@end\n\n@export ecgl.vfParticle.renderPoints.vertex\n\n#define PI 3.1415926\n\nattribute vec2 texcoord : TEXCOORD_0;\n\nuniform sampler2D particleTexture;\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\n\nuniform float size : 1.0;\n\nvarying float v_Mag;\nvarying vec2 v_Uv;\n\nvoid main()\n{\n vec4 p = texture2D(particleTexture, texcoord);\n\n if (p.w > 0.0 && p.z > 1e-5) {\n gl_Position = worldViewProjection * vec4(p.xy * 2.0 - 1.0, 0.0, 1.0);\n }\n else {\n gl_Position = vec4(100000.0, 100000.0, 100000.0, 1.0);\n }\n\n v_Mag = p.z;\n v_Uv = p.xy;\n\n gl_PointSize = size;\n}\n\n@end\n\n@export ecgl.vfParticle.renderPoints.fragment\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\nuniform sampler2D gradientTexture;\nuniform sampler2D colorTexture;\nuniform sampler2D spriteTexture;\n\nvarying float v_Mag;\nvarying vec2 v_Uv;\n\nvoid main()\n{\n gl_FragColor = color;\n#ifdef SPRITETEXTURE_ENABLED\n gl_FragColor *= texture2D(spriteTexture, gl_PointCoord);\n if (color.a == 0.0) {\n discard;\n }\n#endif\n#ifdef GRADIENTTEXTURE_ENABLED\n gl_FragColor *= texture2D(gradientTexture, vec2(v_Mag, 0.5));\n#endif\n#ifdef COLORTEXTURE_ENABLED\n gl_FragColor *= texture2D(colorTexture, v_Uv);\n#endif\n}\n\n@end\n\n@export ecgl.vfParticle.renderLines.vertex\n\n#define PI 3.1415926\n\nattribute vec3 position : POSITION;\n\nuniform sampler2D particleTexture;\nuniform sampler2D prevParticleTexture;\n\nuniform float size : 1.0;\nuniform vec4 vp: VIEWPORT;\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\n\nvarying float v_Mag;\nvarying vec2 v_Uv;\n\n@import clay.util.rand\n\nvoid main()\n{\n vec4 p = texture2D(particleTexture, position.xy);\n vec4 p2 = texture2D(prevParticleTexture, position.xy);\n\n p.xy = p.xy * 2.0 - 1.0;\n p2.xy = p2.xy * 2.0 - 1.0;\n\n if (p.w > 0.0 && p.z > 1e-5) {\n vec2 dir = normalize(p.xy - p2.xy);\n vec2 norm = vec2(dir.y / vp.z, -dir.x / vp.w) * sign(position.z) * size;\n if (abs(position.z) == 2.0) {\n gl_Position = vec4(p.xy + norm, 0.0, 1.0);\n v_Uv = p.xy;\n v_Mag = p.z;\n }\n else {\n gl_Position = vec4(p2.xy + norm, 0.0, 1.0);\n v_Mag = p2.z;\n v_Uv = p2.xy;\n }\n gl_Position = worldViewProjection * gl_Position;\n }\n else {\n gl_Position = vec4(100000.0, 100000.0, 100000.0, 1.0);\n }\n}\n\n@end\n\n@export ecgl.vfParticle.renderLines.fragment\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\nuniform sampler2D gradientTexture;\nuniform sampler2D colorTexture;\n\nvarying float v_Mag;\nvarying vec2 v_Uv;\n\nvoid main()\n{\n gl_FragColor = color;\n #ifdef GRADIENTTEXTURE_ENABLED\n gl_FragColor *= texture2D(gradientTexture, vec2(v_Mag, 0.5));\n#endif\n#ifdef COLORTEXTURE_ENABLED\n gl_FragColor *= texture2D(colorTexture, v_Uv);\n#endif\n}\n\n@end\n";function Uf(e){var t=document.createElement("canvas");t.width=t.height=e;var r=t.getContext("2d");return r.fillStyle="#fff",r.arc(e/2,e/2,e/2,0,2*Math.PI),r.fill(),t}Xe["import"](Ff);var zf=function(){this.motionBlurFactor=.99,this.vectorFieldTexture=new or({type:Kt.FLOAT,flipY:!1}),this.particleLife=[5,20],this._particleType="point",this._particleSize=1,this.particleColor=[1,1,1,1],this.particleSpeedScaling=1,this._thisFrameTexture=null,this._particlePass=null,this._spawnTexture=null,this._particleTexture0=null,this._particleTexture1=null,this._particlePointsMesh=null,this._surfaceFrameBuffer=null,this._elapsedTime=0,this._scene=null,this._camera=null,this._lastFrameTexture=null,this._supersampling=1,this._downsampleTextures=[],this._width=512,this._height=512,this.init()};zf.prototype={constructor:zf,init:function(){var e={type:Kt.FLOAT,minFilter:Kt.NEAREST,magFilter:Kt.NEAREST,useMipmap:!1};this._spawnTexture=new or(e),this._particleTexture0=new or(e),this._particleTexture1=new or(e),this._frameBuffer=new pn({depthBuffer:!1}),this._particlePass=new vi({fragment:Xe.source("ecgl.vfParticle.particle.fragment")}),this._particlePass.setUniform("velocityTexture",this.vectorFieldTexture),this._particlePass.setUniform("spawnTexture",this._spawnTexture),this._downsamplePass=new vi({fragment:Xe.source("clay.compositor.downsample")});var t=new $t({renderOrder:10,material:new re({shader:new Xe(Xe.source("ecgl.vfParticle.renderPoints.vertex"),Xe.source("ecgl.vfParticle.renderPoints.fragment"))}),mode:$t.POINTS,geometry:new yr({dynamic:!0,mainAttribute:"texcoord0"})}),r=new $t({renderOrder:10,material:new re({shader:new Xe(Xe.source("ecgl.vfParticle.renderLines.vertex"),Xe.source("ecgl.vfParticle.renderLines.fragment"))}),geometry:new Bf,culling:!1}),n=new $t({material:new re({shader:new Xe(Xe.source("ecgl.color.vertex"),Xe.source("ecgl.color.fragment"))}),geometry:new yn});n.material.enableTexture("diffuseMap"),this._particlePointsMesh=t,this._particleLinesMesh=r,this._lastFrameFullQuadMesh=n,this._camera=new hi,this._thisFrameTexture=new or,this._lastFrameTexture=new or},setParticleDensity:function(e,t){for(var r=e*t,n=new Float32Array(4*r),i=0,a=this.particleLife,o=0;o0?e[e.length-1]:this._lastFrameTexture},setRegion:function(e){this._particlePass.setUniform("region",e)},resize:function(e,t){this._lastFrameTexture.width=e*this._supersampling,this._lastFrameTexture.height=t*this._supersampling,this._thisFrameTexture.width=e*this._supersampling,this._thisFrameTexture.height=t*this._supersampling,this._width=e,this._height=t},setParticleSize:function(e){var t=this._getParticleMesh();if(e<=2)return t.material.disableTexture("spriteTexture"),void(t.material.transparent=!1);this._spriteTexture||(this._spriteTexture=new or),this._spriteTexture.image&&this._spriteTexture.image.width===e||(this._spriteTexture.image=Uf(e),this._spriteTexture.dirty()),t.material.transparent=!0,t.material.enableTexture("spriteTexture"),t.material.set("spriteTexture",this._spriteTexture),this._particleSize=e},setGradientTexture:function(e){var t=this._getParticleMesh().material;t[e?"enableTexture":"disableTexture"]("gradientTexture"),t.setUniform("gradientTexture",e)},setColorTextureImage:function(e,t){var r=this._getParticleMesh().material;r.setTextureImage("colorTexture",e,t,{flipY:!0})},setParticleType:function(e){this._particleType=e},clearFrame:function(e){var t=this._frameBuffer;t.attach(this._lastFrameTexture),t.bind(e),e.gl.clear(e.gl.DEPTH_BUFFER_BIT|e.gl.COLOR_BUFFER_BIT),t.unbind(e)},setSupersampling:function(e){this._supersampling=e,this.resize(this._width,this._height)},_updateDownsampleTextures:function(e,t){for(var r=this._downsampleTextures,n=Math.max(Math.floor(Math.log(this._supersampling/t.getDevicePixelRatio())/Math.log(2)),0),i=2,a=this._width*this._supersampling,o=this._height*this._supersampling,s=0;s=359;s&&(i[0]>0&&(i[0]=0),a[0]1?(t.material.shader!==this._meshLinesShader&&t.material.attachShader(this._meshLinesShader),t.mode=Ea.Mesh.TRIANGLES):(t.material.shader!==this._nativeLinesShader&&t.material.attachShader(this._nativeLinesShader),t.mode=Ea.Mesh.LINES),r=r||0,n=n||i.count(),s.resetOffset();var u=0,h=0,d=[],f=[],p=[],m=[],g=[],v=.3,_=.7;function y(){f[0]=d[0]*_+m[0]*v-(d[1]-m[1])*a,f[1]=d[1]*_+m[1]*v-(m[0]-d[0])*a,p[0]=d[0]*v+m[0]*_-(d[1]-m[1])*a,p[1]=d[1]*v+m[1]*_-(m[0]-d[0])*a}if(o||0!==a)for(var x=r;xt.data,e=>{Object(n["nextTick"])(()=>{r(e)})},{immediate:!0,deep:!0});const r=e=>{let t=e.map(e=>{let t={value:e.value,name:e.label};return e.color&&(t.itemStyle={color:new i["a"].LinearGradient(0,0,0,1,[{offset:0,color:e.color[0]},{offset:1,color:e.color[1]}])}),t});a(t)},a=e=>{var r=i["b"](document.getElementById(t.echartsId));const n={backgroundColor:"transparent",tooltip:{trigger:"item",formatter:"{a}
{b}: {c} ({d}%)",backgroundColor:"rgba(0,0,0,0.7)",borderColor:"#0C2E5A",textStyle:{color:"#fff"}},legend:{top:"middle",right:"5%",orient:"vertical",itemGap:20,textStyle:{color:t.color,fontSize:14},itemWidth:15,itemHeight:15,icon:"roundRect",formatter:function(e){const t=n.series[0].data,r=t.find(t=>t.label===e);return r?`${e} ${r.value} ${(r.value/50*100).toFixed(0)}%`:e}},series:[{name:"情报反馈统计",type:"pie",radius:["40%","75%"],center:["30%","50%"],startAngle:90,zlevel:10,itemStyle:{},selectedMode:"single",selectedOffset:30,animation:!0,animationType:"scale",animationEasing:"elasticOut",label:{show:!1},labelLine:{show:!1},data:e,zlevel:10,emphasis:{scale:!0,scaleSize:10,itemStyle:{shadowBlur:30,shadowColor:"rgba(0,0,0,0.6)"}}}]};n&&r.setOption(n),window.addEventListener("resize",()=>{r.resize()})};return(t,r)=>(Object(n["openBlock"])(),Object(n["createElementBlock"])("div",{style:{height:"100%",width:"100%"},id:e.echartsId},null,8,Zf))}},Qf=(r("5cfa"),r("6b0d")),Kf=r.n(Qf);const Jf=Kf()(qf,[["__scopeId","data-v-75b106ee"]]);t["a"]=Jf},ea5d:function(e,t,r){"use strict";var n=r("7a23");const i={style:{width:"100%",height:"100%"}},a=Object(n["createTextVNode"])(" "),o={class:"header-icon"};var s={__name:"DarkTable",props:{tableConfiger:{type:Object,default:()=>{}},tableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},controlsWidth:{type:Number,default:180},tableHeight:{type:Number},isScroll:{type:Number,default:!1},customClass:{type:String},setClass:{type:String},setRowClass:{type:Boolean},treePros:{type:Object,default:{children:"children",hasChildren:"hasChildren"}},fixed:{type:String,default:"right"},tabelModel:{type:String,default:"table"}},emits:["chooseData","rowdbClickHland","rowcontextmenuHland"],setup(e,{emit:t}){const r=e,s=Object(n["ref"])(),l=Object(n["ref"])();let c=Object(n["reactive"])({showSelectType:null,showIndex:!0,rowKey:"id",border:!0,defaultExpandAll:!1,loading:!1,align:"center",haveControls:!0,controls:"操作",stripe:!1,lazy:!0,portUrl:"",defaultSelectKeys:[],radioChoose:"",rowHeight:"41",rowClassProp:"",rowClassLinght:""});const u=Object(n["ref"])("");Object(n["watchEffect"])(()=>{c={...c,...r.tableConfiger},g()}),Object(n["onMounted"])(()=>{g(),b()});const h=({row:e,rowIndex:t})=>r.setRowClass?e.setRowClass||"":e[c.rowClassProp]==c.rowClassLinght?"table_light_row":t%2==0?"":"table_blue_row",d=e=>{t("chooseData",e)},f=e=>{l.value=e,t("chooseData",e)},p=e=>{"radio"===c.showSelectType&&(u.value=e[c.rowKey],t("chooseData",e))},m=(e,t,r)=>{setTimeout(()=>{r([{id:31,date:"2016-05-01",name:"wangxiaohu",address:"No. 189, Grove St, Los Angeles"},{id:32,date:"2016-05-01",name:"wangxiaohu",address:"No. 189, Grove St, Los Angeles"}])},1e3)};function g(){Object(n["nextTick"])(()=>{var e,t;(null===(e=c.defaultSelectKeys)||void 0===e?void 0:e.length)>0&&"checkBox"===c.showSelectType?r.tableData.forEach(e=>{c.defaultSelectKeys.findIndex(t=>t===e[c.rowKey])>-1&&s.value&&s.value.toggleRowSelection(e,!0)}):c.defaultSelectKeys&&(null===(t=c.defaultSelectKeys)||void 0===t?void 0:t.length)>0&&"radio"===c.showSelectType&&(u.value=c.defaultSelectKeys[0])})}const v=e=>{t("rowdbClickHland",e)},_=(e,r,n)=>{n.preventDefault(),t("rowcontextmenuHland",{row:e,e:n})},y=Object(n["ref"])(null),x=()=>{clearInterval(y.value),y.value=null},b=()=>{x();const e=s.value.layout.table.refs,t=e.bodyWrapper.firstElementChild.firstElementChild;r.isScroll&&(y.value=setInterval(()=>{t.scrollTop+=1,t.clientHeight+t.scrollTop==t.scrollHeight&&(t.scrollTop=0)},100))},A=()=>{t("changePage",r.tabelModel)};return Object(n["onUnmounted"])(()=>{x()}),(t,r)=>{const l=Object(n["resolveComponent"])("el-table-column"),g=Object(n["resolveComponent"])("el-radio"),y=Object(n["resolveComponent"])("el-table"),T=Object(n["resolveDirective"])("loading"),w=Object(n["resolveDirective"])("el-table-infinite-scroll");return Object(n["openBlock"])(),Object(n["createElementBlock"])("div",i,[Object(n["withDirectives"])((Object(n["openBlock"])(),Object(n["createBlock"])(y,{ref_key:"multipleTableRef",ref:s,data:e.tableData,class:Object(n["normalizeClass"])(e.customClass),"cell-class-name":e.setClass,"row-class-name":h,onSelectionChange:d,onCurrentChange:f,onRowClick:p,onRowDblclick:v,"reserve-selection":!0,onRowContextmenu:_,onMouseover:x,onMouseleave:b,"row-key":Object(n["unref"])(c).rowKey,border:Object(n["unref"])(c).border,"default-expand-all":Object(n["unref"])(c).defaultExpandAll,stripe:Object(n["unref"])(c).stripe,height:e.tableHeight,lazy:Object(n["unref"])(c).lazy,load:m,"tree-props":e.treePros,style:{width:"100%","font-size":"16px"},"header-cell-class-name":()=>"myTableHeadBgColorDark","highlight-current-row":"radio"===Object(n["unref"])(c).showSelectType,"row-style":{height:"auto"===Object(n["unref"])(c).rowHeight?Object(n["unref"])(c).rowHeight:Object(n["unref"])(c).rowHeight+"px"}},{default:Object(n["withCtx"])(()=>{var i,s;return["checkBox"===Object(n["unref"])(c).showSelectType?(Object(n["openBlock"])(),Object(n["createBlock"])(l,{key:0,type:"selection",width:"55","reserve-selection":!0})):"radio"===Object(n["unref"])(c).showSelectType?(Object(n["openBlock"])(),Object(n["createBlock"])(l,{key:1,width:"55"},{default:Object(n["withCtx"])(({row:e})=>[Object(n["createVNode"])(g,{class:"radio",modelValue:u.value,"onUpdate:modelValue":r[0]||(r[0]=e=>u.value=e),label:e[Object(n["unref"])(c).rowKey]},{default:Object(n["withCtx"])(()=>[a]),_:2},1032,["modelValue","label"])]),_:1})):Object(n["createCommentVNode"])("",!0),Object(n["unref"])(c).showIndex?(Object(n["openBlock"])(),Object(n["createBlock"])(l,{key:2,type:"index",label:"序号",width:"60",align:null===(i=Object(n["unref"])(c))||void 0===i?void 0:i.align},null,8,["align"])):Object(n["createCommentVNode"])("",!0),(Object(n["openBlock"])(!0),Object(n["createElementBlock"])(n["Fragment"],null,Object(n["renderList"])(e.tableColumn,(e,r)=>{var i;return Object(n["openBlock"])(),Object(n["createBlock"])(l,{align:null===(i=Object(n["unref"])(c))||void 0===i?void 0:i.align,prop:e.prop,key:r,label:e.label,width:e.width,"show-overflow-tooltip":e.showOverflowTooltip||!1,sortable:e.sortable||!1},Object(n["createSlots"])({_:2},[e.showSoltHeader?{name:"header",fn:Object(n["withCtx"])(r=>[Object(n["createElementVNode"])("span",o,[Object(n["renderSlot"])(t.$slots,e.prop+"head",Object(n["normalizeProps"])(Object(n["guardReactiveProps"])(r)))])])}:void 0,e.showSolt?{name:"default",fn:Object(n["withCtx"])(r=>[Object(n["renderSlot"])(t.$slots,e.prop,Object(n["normalizeProps"])(Object(n["guardReactiveProps"])(r)))])}:{name:"default",fn:Object(n["withCtx"])(({row:t})=>[Object(n["createTextVNode"])(Object(n["toDisplayString"])(t[e.prop]),1)])}]),1032,["align","prop","label","width","show-overflow-tooltip","sortable"])}),128)),Object(n["unref"])(c).haveControls?(Object(n["openBlock"])(),Object(n["createBlock"])(l,{key:3,fixed:e.fixed,label:Object(n["unref"])(c).controls,width:e.controlsWidth,align:null===(s=Object(n["unref"])(c))||void 0===s?void 0:s.align},{default:Object(n["withCtx"])(e=>[Object(n["renderSlot"])(t.$slots,"controls",Object(n["normalizeProps"])(Object(n["guardReactiveProps"])(e)))]),_:3},8,["fixed","label","width","align"])):Object(n["createCommentVNode"])("",!0)]}),_:3},8,["data","class","cell-class-name","row-key","border","default-expand-all","stripe","height","lazy","tree-props","header-cell-class-name","highlight-current-row","row-style"])),[[T,e.tableConfiger.loading],[w,A]])])}}},l=(r("6bc6"),r("3426"),r("6b0d")),c=r.n(l);const u=c()(s,[["__scopeId","data-v-7add551c"]]);t["a"]=u},eab7:function(e,t){e.exports="data:image/png;base64,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"},eba8:function(e,t,r){},ee19:function(e,t,r){},f814:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAARCAYAAADUryzEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIESURBVHgBdVO7bhNBFD13bCUFBf4DDB1VTAEtyxck+YLESgWN4wKJLssXAB+AXCBqOxXl2j+Ak4CERBR5Q3g0KHaU2OtHPDdnV0oyu+tcaezdueeee+aeWcGiUC1hjjUIHhgD2Dn2UcAeRMIs1KTeIi3LhQYYo2ssVjDFsZ1hwOfn3AvMUBsxZmFT/NcN6etXnKuHu6Kvm3Kq3RibTpyoJ3+1h3+37MWeeuY3O/7RJn7p5g02xsTYE7fRT270HGlHWpMjdiJJvJLnQ92+yRMrh0m+BByQ/Ts7OSEHJPzhEHa1lOy58U191m0bGWMDI3xIJSdQPHYm/kQGOkY6xmizbtUgQgXPZM/NaYRjBM4ZA62wUT9F8FTarC0XyTxANuaoUkVgvmibWgZ2Ck+XsJ7DUVVRRuyYTZCS3re0gFr8KopdHeXKQVX3DVlCfHLkftYauzftJTqqeJSsGXYJDpjbcXAVzmBf0KA9FiVsiY+PdKSAVUqqoiq5o0lDm2LRsVvynnWxcx3BO1q0zDFNsC5L/Dd4gZf5O59Eg9iIphKLZTTxSh4a1GnRhL9zJqa05q7iOKiKDrU45ABDqsT1x1SXdkIypKVvs/fcCZ+3MoLHGdXxmjbGx8oAymTf4fI4hxazIedzZgQrVrAmBqEW2dm/VSkLO70h0YxqClw2QYW4R0I/P9grnTIL+PUvEVgAAAAASUVORK5CYII="},fb68:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAE+SURBVHgBjZE9TsNAEIXfOKagQIQTYG5gbpCUdOYEQEsT0VAhLoAE4gRwg4gThBvEtDRJBXROAcYJkh9v11akKM7PSGOPPfPtm5kF1tkvO1ZwYDNmmHEEso1NFmbsYEJa5Rm+GWMbsw+O5HQefLG3kPxkFDZSI0bIEbmQzluYzHPvjO0H/WbQlbVqZQeW6GBI899T3OvVtkZwqCUUyCyQIGFO1T08Sl/xugz22bY9DBAgJuaqVGxWYaYDjsIlKBRUCGLVJqpqq+E3jXCFExvbAjQTBMQVURfuoOtm8n9ObYx5F0/+Uns6NnHt1TM4NlWmq+JJ0xrCIMeD1h1r+BdJHMoPRKXcXQ15sMxxLpVjXluKO+5rkwkDQZerIQ9ajlRqZ+UNI8WJNvaI2/WQs4BTXLBAYn9aT4ExSjxjC/sHk/yPqiXEiUoAAAAASUVORK5CYII="},fc72:function(e,t,r){},ff09:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANOSURBVHgBzZe9TxRBGMafmZs9oSBgiYVECqOSoPEKPxLRRBMaiYWGwkCHVFqp/AfEQjEx0Ih22ki04WwwkCAixsJENAGkwKAJVHxVkoPbcd5Z9u52b2bvw4+7J9ns7ezO7O9m5n2fdxluy1742sVbPGLfVFtCXSWQ1TpSSKIWcaRxWV3X/e0+vBogsiAVhgDDIq8GCDxgk0xfVBgCfbKOVQME9WGBqDEPeAYSZ9X5MMoRw2d1jKgx1mwQ9B4RCSHRqc4X8SeSOKEPhgl1NWKCoMeEFYJmwgLRdshFVyKtzhJN+6Vu+7LKMLvC8XqOYXQ+ZgKisaYxwIbDECp2UwK29XVxCSw4Fr10+NquBpn6zjA0E8PWL+9efS3QcSyNF90SyxtptD9xsLwZGoDhvAlCTUeS4ZbcZ9xkEo9zx2htlBi7saP+OdA/LhQIh0kEO9K1o88EM7vKwzDXwxC4x9a4daeHBieI5BxXg8etEKTlDYZTg3GMzsV0n6YGGX4kD4IiilvDLUdjPTv4sQ70vhQoVvTs7ArTS5mnEIRqSXDYY16r46irZ6TzuWN84cLdFLpPpo33+icE2ppdvaeiILxmM0QWpMXVS5G38fZEkH7khEX9ppZYENQAkQWxZ0wcb3T13ihXSRXK55pzQA0QhUxPi6LFD9FytLWN4IxZUr2wekcJOtiAwD6gyLEtJSx+I6wG5mQHpWRlE93vVlmWjty2I/fj+nd9DfJzSQiCIlfA5qJ7UfdOZVCKnKH3MSOI/0KbKNt+XWGREKqljhshvJtazz7F8kOwSNFskB8FvMdien4ZYHLeTIof60npR9ufOihVDTUSm9s5M/KQMZPfcEQVNXvqfeWg9YAyvKu7KFUBCJLF9HghCBJtPjIwSm4fb6ZM/pGR70u2bGuCoNwirKYnMKmW54LfRPXG6UFH+85CX0pnTUp0wTLAzZQIU0vGSPkJi+kJq+ndkW9yQfyZoSihKOpoSet/TQnPv0cA7eNOlDtPmCBUS0LAZnpejUkd86q05DzXR0nySsUPNtMTRgg/t3hF77Q6X9F1Z3laVP1noiCyIFElv1djDtg2WaHPhGL78GK/O/4lhP1L7z9DmL/0KgBBfXg1QCBgehWEoObfwBnbwmRFX5sAAAAASUVORK5CYII="},ffe1:function(e,t,r){}}]);