1(function ($) { 2 /*jslint undef: false, browser: true, devel: false, eqeqeq: false, bitwise: false, white: false, plusplus: false, regexp: false */ 3 /*global jQuery,setTimeout */ 4 5 $.pixelentity = $.pixelentity || {version: '1.0.0'}; 6 7 $.pixelentity.Geom = { 8 getScaler: function (scaleMode,halign,valign,w,h,tw,th) { 9 10 var info = {}; 11 12 var rw = w/tw; 13 var rh = h/th; 14 var r; 15 16 // get scale ratio 17 if (typeof scaleMode == 'string') { 18 switch (scaleMode) { 19 case "fill": 20 case "fillmax": 21 r = rw > rh ? rw : rh; 22 if (scaleMode == "fill") {r = Math.min(1,r);} 23 break; 24 case "fit": 25 case "fitmax": 26 r = rw < rh ? rw : rh; 27 if (scaleMode == "fit") {r = Math.min(1,r);} 28 break; 29 case "none": 30 r = 1; 31 break; 32 } 33 } else { 34 r = scaleMode; 35 } 36 37 // scale ration 38 info.ratio = r; 39 40 info.diff = {}; 41 info.offset = {}; 42 info.align = {w:halign,h:valign}; 43 44 // now compute offset with requested alignment 45 //with (info) { 46 47 var diff = info.diff; 48 var offset = info.offset; 49 50 diff.w = offset.w = Math.round((w-tw*r)*10000)/10000; 51 diff.h = offset.h = Math.round((h-th*r)*10000)/10000; 52 53 switch (halign) { 54 case "center": 55 offset.w = diff.w / 2; 56 break; 57 case "left": 58 offset.w = 0; 59 break; 60 } 61 62 switch (valign) { 63 case "center": 64 offset.h = diff.h / 2; 65 break; 66 case "top": 67 offset.h = 0; 68 break; 69 } 70 71 //} 72 73 74 // return the scaler object 75 return info; 76 }, 77 78 // split a string in object 79 splitProps : function(comma,numeric) { 80 var token = comma.split(/,/); 81 82 return numeric ? { h:parseFloat(token[0]), w:parseFloat(token[1])} : { h:token[0], w:token[1]}; 83 } 84 }; 85 86}(jQuery));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.