computeShadowRatio.js 1.2 KB

1
  1. define(["./Cartographic-67e73ef9","./Cartesian4-ad128b5d","./when-92c6cf3c","./Math-92c3b5f7","./createTaskProcessorWorker","./Check-52a7d806"],(function(e,r,t,a,n,o){"use strict";var i=new r.e(1,1/255,1/65025,1/160581375),s=new r.e,f=1024;function u(t,n,o,u,c,d,h){var v=t.longitude,g=t.latitude,l=t.height;if(v=a.e.toDegrees(v),g=a.e.toDegrees(g),v<n[0]||v>n[2]||g<n[1]||g>n[3])return-1;for(var p=!1,b=0,k=.1*u,m=0;m<=o;m+=u){if(Math.abs(c+m-l)<k){p=!0;break}b++}if(!p)return-1;if(d.length<0)return-1;p=!1;for(var w=0;w<d.length;w+=2){var D=e.t.fromDegrees(v,g,l),x=e.t.fromDegrees(d[w+0],d[w+1],l);if(e.t.distance(D,x)<k){p=!0;break}}if(!p)return-1;var C=n[2]-n[0],y=(l=n[3]-n[1],n[0]-.025*C),M=n[1]-.025*l;C+=.05*C,l+=.05*l;var I=parseInt((v-y)/C*f),P=parseInt((g-M)/l*f);I=I<1?1:I,P=P<1?1:P;var z=h[b],A=0;for(w=-1;w<2;w++)for(var B=-1;B<2;B++){var R=4*(f*(P+B)+(I+w));s.x=z[R],s.y=z[R+1],s.z=z[R+2],s.w=z[R+3],r.e.divideByScalar(s,255,s),A=Math.max(A,r.e.dot(s,i))}return A=A>.999?1:A}return n((function(r,t){for(var a=r.points,n=r.enuPoints,o=r.bounds,i=r.extend,s=r.spacing,f=r.bottom,c=r.pixelsArray,d=[],h=0,v=a.length;h<v;h++){var g=a[h],l=u(e.t$1.fromCartesian(g),o,i,s,f,n,c);d.push({position:e.t.clone(g),shadowRatio:l})}return{resultData:d}}))}));