76 lines
2.1 KiB
JavaScript
76 lines
2.1 KiB
JavaScript
//>>built
|
|
define("dojox/gfx/gradient",["dojo/_base/lang","./matrix","dojo/_base/Color"],function(_1,m,_2){
|
|
var _3=_1.getObject("dojox.gfx.gradient",true);
|
|
var C=_2;
|
|
_3.rescale=function(_4,_5,to){
|
|
var _6=_4.length,_7=(to<_5),_8;
|
|
if(_7){
|
|
var _9=_5;
|
|
_5=to;
|
|
to=_9;
|
|
}
|
|
if(!_6){
|
|
return [];
|
|
}
|
|
if(to<=_4[0].offset){
|
|
_8=[{offset:0,color:_4[0].color},{offset:1,color:_4[0].color}];
|
|
}else{
|
|
if(_5>=_4[_6-1].offset){
|
|
_8=[{offset:0,color:_4[_6-1].color},{offset:1,color:_4[_6-1].color}];
|
|
}else{
|
|
var _a=to-_5,_b,_c,i;
|
|
_8=[];
|
|
if(_5<0){
|
|
_8.push({offset:0,color:new C(_4[0].color)});
|
|
}
|
|
for(i=0;i<_6;++i){
|
|
_b=_4[i];
|
|
if(_b.offset>=_5){
|
|
break;
|
|
}
|
|
}
|
|
if(i){
|
|
_c=_4[i-1];
|
|
_8.push({offset:0,color:_2.blendColors(new C(_c.color),new C(_b.color),(_5-_c.offset)/(_b.offset-_c.offset))});
|
|
}else{
|
|
_8.push({offset:0,color:new C(_b.color)});
|
|
}
|
|
for(;i<_6;++i){
|
|
_b=_4[i];
|
|
if(_b.offset>=to){
|
|
break;
|
|
}
|
|
_8.push({offset:(_b.offset-_5)/_a,color:new C(_b.color)});
|
|
}
|
|
if(i<_6){
|
|
_c=_4[i-1];
|
|
_8.push({offset:1,color:_2.blendColors(new C(_c.color),new C(_b.color),(to-_c.offset)/(_b.offset-_c.offset))});
|
|
}else{
|
|
_8.push({offset:1,color:new C(_4[_6-1].color)});
|
|
}
|
|
}
|
|
}
|
|
if(_7){
|
|
_8.reverse();
|
|
for(i=0,_6=_8.length;i<_6;++i){
|
|
_b=_8[i];
|
|
_b.offset=1-_b.offset;
|
|
}
|
|
}
|
|
return _8;
|
|
};
|
|
function _d(x,y,_e,_f,_10,_11){
|
|
var r=m.multiplyPoint(_e,x,y),p=m.multiplyPoint(_f,r);
|
|
return {r:r,p:p,o:m.multiplyPoint(_10,p).x/_11};
|
|
};
|
|
function _12(a,b){
|
|
return a.o-b.o;
|
|
};
|
|
_3.project=function(_13,_14,tl,rb,ttl,trb){
|
|
_13=_13||m.identity;
|
|
var f1=m.multiplyPoint(_13,_14.x1,_14.y1),f2=m.multiplyPoint(_13,_14.x2,_14.y2),_15=Math.atan2(f2.y-f1.y,f2.x-f1.x),_16=m.project(f2.x-f1.x,f2.y-f1.y),pf1=m.multiplyPoint(_16,f1),pf2=m.multiplyPoint(_16,f2),_17=new m.Matrix2D([m.rotate(-_15),{dx:-pf1.x,dy:-pf1.y}]),_18=m.multiplyPoint(_17,pf2).x,_19=[_d(tl.x,tl.y,_13,_16,_17,_18),_d(rb.x,rb.y,_13,_16,_17,_18),_d(tl.x,rb.y,_13,_16,_17,_18),_d(rb.x,tl.y,_13,_16,_17,_18)].sort(_12),_1a=_19[0].o,to=_19[3].o,_1b=_3.rescale(_14.colors,_1a,to),_1c=Math.atan2(_19[3].r.y-_19[0].r.y,_19[3].r.x-_19[0].r.x);
|
|
return {type:"linear",x1:_19[0].p.x,y1:_19[0].p.y,x2:_19[3].p.x,y2:_19[3].p.y,colors:_1b,angle:_15};
|
|
};
|
|
return _3;
|
|
});
|