How to use size method in Playwright Internal

Best JavaScript code snippet using playwright-internal

mep-feature-backlight.js

Source:mep-feature-backlight.js Github

copy

Full Screen

1(function($) {2 $.extend(mejs.MepDefaults, {3 backlightBackground: [0,0,0],4 backlightHorizontalLights: 5,5 backlightVerticalLights: 5,6 backlightSize: 50,7 backlightTimeout: 2008 });9 $.extend(MediaElementPlayer.prototype, {10 buildbacklight : function(player, controls, layers, media) {11 if (!player.isVideo)12 return;13 //http://www.splashnology.com/blog/html5/382.html14 var 15 mediaContainer = player.container.find('.mejs-mediaelement').parent(),16 border = $('<div class="mejs-border"></div>')17 .prependTo(mediaContainer)18 .css('position','absolute')19 .css('top','-10px')20 .css('left','-10px')21 .css('border','solid 10px #010101')22 .width(player.width).height(player.height),23 glowBase = $('<div class="mejs-backlight-glow"></div>')24 .prependTo(mediaContainer)25 .css('position','absolute')26 .css('display','none')27 .css('top',0)28 .css('left',0)29 .width(player.width).height(player.height),30 base = $('<div class="mejs-backlight"></div>')31 .prependTo(mediaContainer)32 .css('position','absolute')33 .css('top',0)34 .css('left',0)35 .width(player.width).height(player.height),36 i,37 copyCanvas = document.createElement('canvas'),38 copyContext = copyCanvas.getContext('2d'),39 pixels,40 keepUpdating = true,41 isActive = true,42 timer = null,43 glowCanvas = document.createElement('canvas'),44 glowContext = glowCanvas.getContext('2d'),45 size = player.options.backlightSize,46 backgroundColor = player.options.backlightBackground,47 gradient,48 width = player.width,49 height = player.height;50 // set sizes51 copyCanvas.width = width;52 copyCanvas.height = height;53 glowCanvas.width = width + size + size;54 glowCanvas.height = height + size + size;55 // draw glow overlay56 // top57 gradient = addGlow(backgroundColor,glowContext.createLinearGradient(size, size, size, 0));58 glowContext.fillStyle = gradient; 59 glowContext.fillRect(size, size, width, -size); 60 // tr61 gradient = addGlow(backgroundColor,glowContext.createRadialGradient(width+size, size, 0, width+size, size, size));62 glowContext.fillStyle = gradient; 63 glowContext.fillRect(width+size, size, size, -size); 64 // right65 gradient = addGlow(backgroundColor,glowContext.createLinearGradient(width+size, size, width+size+size, size));66 glowContext.fillStyle = gradient; 67 glowContext.fillRect(width+size, size, size, height); 68 // br69 gradient = addGlow(backgroundColor,glowContext.createRadialGradient(width+size, height+size, 0, width+size, height+size, size));70 glowContext.fillStyle = gradient; 71 glowContext.fillRect(width+size, height+size, size, size); 72 // bottom73 var gradient = addGlow(backgroundColor,glowContext.createLinearGradient(size, size+height, size, size+height+size));74 glowContext.fillStyle = gradient; 75 glowContext.fillRect(size, size+height, width, size); 76 // bl77 gradient = addGlow(backgroundColor,glowContext.createRadialGradient(size, height+size, 0, size, height+size, size));78 glowContext.fillStyle = gradient; 79 glowContext.fillRect(0, height+size, size, size); 80 // left81 gradient = addGlow(backgroundColor,glowContext.createLinearGradient(size, size, 0, size));82 glowContext.fillStyle = gradient; 83 glowContext.fillRect(size, size, -size, height); 84 // tl85 gradient = addGlow(backgroundColor,glowContext.createRadialGradient(size, size, 0, size, size, size));86 glowContext.fillStyle = gradient; 87 glowContext.fillRect(0, 0, size, size); 88 $(glowCanvas)89 .css('position','absolute')90 .css('top',-size)91 .css('left',-size)92 .appendTo(glowBase);93 // add toggle control94 $('<div class="mejs-backlight-button mejs-backlight-active"><span></span></div>')95 .appendTo(controls)96 .click(function() {97 if (isActive) {98 delete timer;99 timer = null;100 base.hide();101 glowBase.hide();102 $(this)103 .removeClass('mejs-backlight-active')104 .addClass('mejs-backlight-inactive')105 } else {106 updateLights();107 base.show();108 glowBase.show();109 $(this)110 .removeClass('mejs-backlight-inactive')111 .addClass('mejs-backlight-active')112 }113 isActive = !isActive;114 });115 // http://www.splashnology.com/blog/html5/382.html116 function updateLights() {117 // get a copy of video118 copyContext.drawImage(media, 0, 0, media.width, media.height);119 // create the gradient lights120 addLights(base, copyCanvas, copyContext, 121 player.options.backlightVerticalLights, 122 player.options.backlightHorizontalLights, 123 player.options.backlightSize, 124 30);125 if (keepUpdating && isActive) {126 timer = setTimeout(updateLights, player.options.backlightTimeout);127 }128 }129 //setTimeout(updateLights, timeOut);130 media.addEventListener('play',function() {131 if (isActive) {132 keepUpdating = true;133 updateLights();134 glowBase.css('display','');135 }136 }, false);137 media.addEventListener('pause',function() {138 keepUpdating = false;139 }, false);140 media.addEventListener('ended',function() {141 keepUpdating = false;142 }, false);143 }144 });145 function addLights(base, canvas, context, vBlocks, hBlocks, size, depth) {146 base.empty();147 var 148 lightsCanvas = document.createElement('canvas'),149 lightsContext = lightsCanvas.getContext('2d'),150 width = canvas.width,151 height = canvas.height,152 g,153 topLights = getMidColors(canvas, context, hBlocks, depth, 'top'),154 bottomLights = getMidColors(canvas, context, hBlocks, depth, 'bottom'),155 leftLights = getMidColors(canvas, context, vBlocks, depth, 'left'),156 rightLights = getMidColors(canvas, context, vBlocks, depth, 'right'),157 corners = [],158 stopSize = 0;159 lightsCanvas.width = width + size + size;160 lightsCanvas.height = height + size + size;161 lightsContext.globalCompositeOperation = 'xor'; //'darker'; //'lighter';162 // draw four gradients163 // create corners164 corners.push(averageColor(topLights[topLights.length-1], rightLights[0]) );165 corners.push(averageColor(bottomLights[bottomLights.length-1], rightLights[rightLights.length-1]) );166 corners.push(averageColor(bottomLights[0], leftLights[leftLights.length-1]) );167 corners.push(averageColor(topLights[0], leftLights[0]) );168 // top169 stopSize = 1 / topLights.length;170 gradient = context.createLinearGradient(size, size, width+size, size);171 gradient.addColorStop(0, 'rgb(' + adjustColor(corners[3]).join(',') + ')');172 for (var i = 0, il = topLights.length; i < il; i++) {173 gradient.addColorStop(i * stopSize + stopSize/2, 'rgb(' + adjustColor(topLights[i]).join(',') + ')');174 }175 gradient.addColorStop(1.0, 'rgb(' + adjustColor(corners[0]).join(',') + ')');176 lightsContext.fillStyle = gradient;177 lightsContext.fillRect(size, 0, width, size);178 // right179 gradient = context.createLinearGradient(size+width, size, size+width, size+height);180 gradient.addColorStop(0, 'rgb(' + adjustColor(corners[0]).join(',') + ')');181 for (var i = 0, il = rightLights.length; i < il; i++) {182 gradient.addColorStop(i * stopSize + stopSize/2, 'rgb(' + adjustColor(rightLights[i]).join(',') + ')');183 }184 gradient.addColorStop(1.0, 'rgb(' + adjustColor(corners[1]).join(',') + ')');185 lightsContext.fillStyle = gradient;186 lightsContext.fillRect(size+width, size, size+width+size, height);187 // bottom188 gradient = context.createLinearGradient(size, size+height, size+width, size+height);189 gradient.addColorStop(0, 'rgb(' + adjustColor(corners[2]).join(',') + ')');190 for (var i = 0, il = bottomLights.length; i < il; i++) {191 gradient.addColorStop(i * stopSize + stopSize/2, 'rgb(' + adjustColor(bottomLights[i]).join(',') + ')');192 }193 gradient.addColorStop(1.0, 'rgb(' + adjustColor(corners[1]).join(',') + ')');194 lightsContext.fillStyle = gradient;195 lightsContext.fillRect(size, size+height, width, size);196 // left197 gradient = context.createLinearGradient(size, size, size, size+height);198 gradient.addColorStop(0, 'rgb(' + adjustColor(corners[3]).join(',') + ')');199 for (var i = 0, il = leftLights.length; i < il; i++) {200 gradient.addColorStop(i * stopSize + stopSize/2, 'rgb(' + adjustColor(leftLights[i]).join(',') + ')');201 }202 gradient.addColorStop(1.0, 'rgb(' + adjustColor(corners[2]).join(',') + ')');203 lightsContext.fillStyle = gradient;204 lightsContext.fillRect(0, size, size, height);205 // corners206 // top right207 lightsContext.fillStyle = 'rgb(' + adjustColor(corners[0]).join(',') + ')';208 lightsContext.fillRect(width+size, 0, size+width+size, size);209 // bottom right210 lightsContext.fillStyle = 'rgb(' + adjustColor(corners[1]).join(',') + ')';211 lightsContext.fillRect(width+size, size+height, size+width+size, size+height+size);212 // bottom left213 lightsContext.fillStyle = 'rgb(' + adjustColor(corners[2]).join(',') + ')';214 lightsContext.fillRect(0, size+height, size, size+height+size);215 // top left216 lightsContext.fillStyle = 'rgb(' + adjustColor(corners[3]).join(',') + ')';217 lightsContext.fillRect(0, 0, size, size);218 $(lightsCanvas)219 .css('position','absolute')220 .css('top',-size)221 .css('left',-size)222 .appendTo(base);223 }224 function addGlow(color, g) {225 g.addColorStop(0.0, 'rgba(' + color.join(',') + ',0)');226 g.addColorStop(1.0, 'rgba(' + color.join(',') + ',1)');227 return g;228 }229 function getMidColors(canvas, context, blocks, blockDepth, side) {230 var width = canvas.width,231 height = canvas.height,232 blockHeight = (side == 'top' || side == 'bottom') ? blockDepth : Math.ceil(height / blocks), // height of the analyzed block233 blockWidth = (side == 'top' || side == 'bottom') ? Math.ceil(width / blocks) : blockDepth,234 result = [],235 imgdata,236 i;237 if (side == 'top' || side == 'bottom') {238 for (i = 0; i < blocks; i++) {239 try {240 imgdata = context.getImageData(i*blockWidth, (side == 'top') ? 0 : height - blockHeight , blockWidth, blockHeight);241 result.push( 242 calcMidColor(imgdata.data)243 );244 } catch (e) {245 console.log(e);246 }247 }248 } else {249 for (i = 0; i < blocks; i++) {250 try {251 imgdata = context.getImageData( (side == 'right') ? width - blockWidth : 0, i*blockHeight, blockWidth, blockHeight);252 result.push( 253 calcMidColor(imgdata.data)254 );255 } catch (e) {256 console.log(e);257 }258 }259 }260 return result;261 }262 function averageColor(c1,c2) {263 var result = 264 [(c1[0] + c2[0]) / 2, 265 (c1[1] + c2[1]) / 2, 266 (c1[2] + c2[2]) / 2];267 268 return result;269 }270 // average color for a block271 function calcMidColorVertical(data, from, to) {272 var result = [0, 0, 0];273 var totalPixels = (to - from) / 4;274 for (var i = from; i <= to; i += 4) {275 result[0] += data[i];276 result[1] += data[i + 1];277 result[2] += data[i + 2];278 }279 result[0] = Math.round(result[0] / totalPixels);280 result[1] = Math.round(result[1] / totalPixels);281 result[2] = Math.round(result[2] / totalPixels);282 return result;283 }284 // average color for a block285 function calcMidColor(data) {286 var result = [0, 0, 0];287 var totalPixels = data.length;288 for (var i = 0; i < totalPixels; i += 4) {289 result[0] += data[i];290 result[1] += data[i + 1];291 result[2] += data[i + 2];292 }293 result[0] = Math.round(result[0] / totalPixels);294 result[1] = Math.round(result[1] / totalPixels);295 result[2] = Math.round(result[2] / totalPixels);296 return result;297 }298 function adjustColor(color) {299 //if (color[0] <= 2 && color[2] <= 2 && color[3] <= 2)300 // return color;301 color = rgb2hsv(color);302 color[1] = Math.min(100, color[1] * 1.2); //1.4); // saturation303 color[2] = 80; //Math.min(100, color[2] * 2.7); //2.7); // brightness304 return hsv2rgb(color);305 }306 function rgb2hsv(color) {307 var r = color[0] / 255,308 g = color[1] / 255,309 b = color[2] / 255,310 x, val, d1, d2, hue, sat, val;311 x = Math.min(Math.min(r, g), b);312 val = Math.max(Math.max(r, g), b);313 //if (x == val)314 // throw Error('h is undefined');315 d1 = (r == x) ? g-b : ((g == x) ? b-r : r-g);316 d2 = (r == x) ? 3 : ((g == x) ? 5 : 1);317 hue = Math.floor((d2 - d1 / (val - x)) * 60) % 360;318 sat = Math.floor(((val - x) / val) * 100);319 val = Math.floor(val * 100);320 return [hue, sat, val];321 }322 /**323 * Convers HSV color to RGB model324 * @param {Number[]} RGB color325 * @return {Number[]} HSV color326 */327 function hsv2rgb(color) {328 var h = color[0],329 s = color[1],330 v = color[2];331 var r, g, a, b, c, s = s / 100, v = v / 100, h = h / 360;332 if (s > 0) {333 if (h >= 1) h=0;334 h = 6 * h;335 var f = h - Math.floor(h);336 a = Math.round(255 * v * (1 - s));337 b = Math.round(255 * v * (1 - (s * f)));338 c = Math.round(255 * v * (1 - (s * (1 - f))));339 v = Math.round(255 * v);340 switch (Math.floor(h)) {341 case 0: r = v; g = c; b = a; break;342 case 1: r = b; g = v; b = a; break;343 case 2: r = a; g = v; b = c; break;344 case 3: r = a; g = b; b = v; break;345 case 4: r = c; g = a; b = v; break;346 case 5: r = v; g = a; b = b; break;347 }348 return [r || 0, g || 0, b || 0];349 } else {350 v = Math.round(v * 255);351 return [v, v, v];352 }353 }...

Full Screen

Full Screen

MarkSize.js

Source:MarkSize.js Github

copy

Full Screen

1"use strict;"2function MarkSize( main , TargetObj ){3 var Box = new THREE.Box3();4 var objCenter = new THREE.Vector3();5 var objSize = new THREE.Vector3();6 var FuniBox = new THREE.Box3();7 var FuniCenter = new THREE.Vector3();8 var group = new THREE.Group();9 main.scene.add(group);10 //detect the funiture component11 for(var i = main.furnitures.length - 1; i > -1; i -- ){ 12 var object = main.furnitures[i].getFurniture();13 14 if(object.isObject3D){15 group.add(object.clone());16 }17 }18 for(var i = main.Sceneobjects.length - 1; i > -1; i -- ){19 var object = main.Sceneobjects[i];20 group.add(object.clone());21 }22 //set funiture bounding box , box center23 FuniBox.setFromObject( group );24 FuniBox.getCenter( FuniCenter );25 main.scene.remove( group );26 //get object center27 Box.setFromObject(TargetObj);28 Box.getCenter(objCenter);29 Box.getSize(objSize);30 // face to the user31 if( objCenter.z >= FuniCenter.z ){32 //show size number33 loadText( main , 34 objSize.x ,35 new THREE.Vector3(objCenter.x ,36 objCenter.y - objSize.y/2 ,37 objCenter.z + objSize.z/2 + 1), 38 0 );39 //show line40 loadLine( main , 41 new THREE.Vector3(objCenter.x - objSize.x/2 ,42 objCenter.y - objSize.y/2 ,43 objCenter.z + objSize.z/2 + 1) , 44 new THREE.Vector3(objCenter.x + objSize.x/2 ,45 objCenter.y - objSize.y/2 ,46 objCenter.z + objSize.z/2 + 1) );47 loadLine( main , 48 new THREE.Vector3(objCenter.x - objSize.x/2 ,49 objCenter.y - objSize.y/2 ,50 objCenter.z + objSize.z/2 + 0.5) , 51 new THREE.Vector3(objCenter.x - objSize.x/2 ,52 objCenter.y - objSize.y/2 ,53 objCenter.z + objSize.z/2 + 1.5) );54 loadLine( main , 55 new THREE.Vector3(objCenter.x + objSize.x/2 ,56 objCenter.y - objSize.y/2 ,57 objCenter.z + objSize.z/2 + 0.5) , 58 new THREE.Vector3(objCenter.x + objSize.x/2 ,59 objCenter.y - objSize.y/2 ,60 objCenter.z + objSize.z/2 + 1.5) );61 //right to the user62 if ( objCenter.x > FuniCenter.x ){63 //show high64 loadText( main , 65 objSize.y ,66 new THREE.Vector3(objCenter.x + objSize.x/2 +1,67 objCenter.y ,68 objCenter.z + objSize.z/2 +1, ), 69 45 );70 //show line71 loadLine( main , 72 new THREE.Vector3(objCenter.x + objSize.x/2 +1,73 objCenter.y - objSize.y/2 ,74 objCenter.z + objSize.z/2 +1) , 75 new THREE.Vector3(objCenter.x + objSize.x/2 +1,76 objCenter.y + objSize.y/2 ,77 objCenter.z + objSize.z/2 +1) );78 //show line79 loadLine( main , 80 new THREE.Vector3(objCenter.x + objSize.x/2 +0.5,81 objCenter.y - objSize.y/2 ,82 objCenter.z + objSize.z/2 +0.5) , 83 new THREE.Vector3(objCenter.x + objSize.x/2 +1.5,84 objCenter.y - objSize.y/2 ,85 objCenter.z + objSize.z/2 +1.5) );86 //show line87 loadLine( main , 88 new THREE.Vector3(objCenter.x + objSize.x/2 +0.5,89 objCenter.y + objSize.y/2 ,90 objCenter.z + objSize.z/2 +0.5) , 91 new THREE.Vector3(objCenter.x + objSize.x/2 +1.5,92 objCenter.y + objSize.y/2 ,93 objCenter.z + objSize.z/2 +1.5) );94 }95 else{//left to the user96 //show high97 loadText( main , 98 objSize.y ,99 new THREE.Vector3(objCenter.x - objSize.x/2 -1,100 objCenter.y ,101 objCenter.z + objSize.z/2 +1, ), 102 -45 );103 //show line104 loadLine( main , 105 new THREE.Vector3(objCenter.x - objSize.x/2 -1,106 objCenter.y - objSize.y/2 ,107 objCenter.z + objSize.z/2 +1) , 108 new THREE.Vector3(objCenter.x - objSize.x/2 -1,109 objCenter.y + objSize.y/2 ,110 objCenter.z + objSize.z/2 +1) );111 loadLine( main , 112 new THREE.Vector3(objCenter.x - objSize.x/2 -0.5,113 objCenter.y - objSize.y/2 ,114 objCenter.z + objSize.z/2 +0.5) , 115 new THREE.Vector3(objCenter.x - objSize.x/2 -1.5,116 objCenter.y - objSize.y/2 ,117 objCenter.z + objSize.z/2 +1.5) );118 loadLine( main , 119 new THREE.Vector3(objCenter.x - objSize.x/2 -0.5,120 objCenter.y + objSize.y/2 ,121 objCenter.z + objSize.z/2 +0.5) , 122 new THREE.Vector3(objCenter.x - objSize.x/2 -1.5,123 objCenter.y + objSize.y/2 ,124 objCenter.z + objSize.z/2 +1.5) );125 }126 }127 else{// back to the user128 //show size number129 loadText( main , 130 objSize.x ,131 new THREE.Vector3(objCenter.x ,132 objCenter.y - objSize.y/2 ,133 objCenter.z - objSize.z/2 - 1), 134 180 );135 //show line136 loadLine( main , 137 new THREE.Vector3(objCenter.x - objSize.x/2,138 objCenter.y - objSize.y/2 ,139 objCenter.z - objSize.z/2 - 1) , 140 new THREE.Vector3(objCenter.x + objSize.x/2,141 objCenter.y - objSize.y/2 ,142 objCenter.z - objSize.z/2 - 1) );143 loadLine( main , 144 new THREE.Vector3(objCenter.x - objSize.x/2,145 objCenter.y - objSize.y/2 ,146 objCenter.z - objSize.z/2 - 0.5) , 147 new THREE.Vector3(objCenter.x - objSize.x/2,148 objCenter.y - objSize.y/2 ,149 objCenter.z - objSize.z/2 - 1.5) );150 loadLine( main , 151 new THREE.Vector3(objCenter.x + objSize.x/2,152 objCenter.y - objSize.y/2 ,153 objCenter.z - objSize.z/2 - 0.5) , 154 new THREE.Vector3(objCenter.x + objSize.x/2,155 objCenter.y - objSize.y/2 ,156 objCenter.z - objSize.z/2 - 1.5) );157 //right to the user158 if ( objCenter.x > FuniCenter.x ){159 //show high160 loadText( main , 161 objSize.y ,162 new THREE.Vector3(objCenter.x + objSize.x/2 +1,163 objCenter.y ,164 objCenter.z - objSize.z/2 -1 ), 165 135 );166 //show line167 loadLine( main , 168 new THREE.Vector3(objCenter.x + objSize.x/2 +1,169 objCenter.y - objSize.y/2 ,170 objCenter.z - objSize.z/2 -1) , 171 new THREE.Vector3(objCenter.x + objSize.x/2 +1,172 objCenter.y + objSize.y/2 ,173 objCenter.z - objSize.z/2 -1) );174 loadLine( main , 175 new THREE.Vector3(objCenter.x + objSize.x/2 +0.5,176 objCenter.y - objSize.y/2 ,177 objCenter.z - objSize.z/2 -0.5) , 178 new THREE.Vector3(objCenter.x + objSize.x/2 +1.5,179 objCenter.y - objSize.y/2 ,180 objCenter.z - objSize.z/2 -1.5) );181 loadLine( main , 182 new THREE.Vector3(objCenter.x + objSize.x/2 +0.5,183 objCenter.y + objSize.y/2 ,184 objCenter.z - objSize.z/2 -0.5) , 185 new THREE.Vector3(objCenter.x + objSize.x/2 +1.5,186 objCenter.y + objSize.y/2 ,187 objCenter.z - objSize.z/2 -1.5) );188 }189 else{//left to the user190 //show high191 loadText( main , 192 objSize.y ,193 new THREE.Vector3(objCenter.x - objSize.x/2 -1,194 objCenter.y ,195 objCenter.z - objSize.z/2 -1, ), 196 225 );197 //show line198 loadLine( main , 199 new THREE.Vector3(objCenter.x - objSize.x/2 -1,200 objCenter.y - objSize.y/2 ,201 objCenter.z - objSize.z/2 -1) , 202 new THREE.Vector3(objCenter.x - objSize.x/2 -1,203 objCenter.y + objSize.y/2 ,204 objCenter.z - objSize.z/2 -1) );205 loadLine( main , 206 new THREE.Vector3(objCenter.x - objSize.x/2 -0.5,207 objCenter.y - objSize.y/2 ,208 objCenter.z - objSize.z/2 -0.5) , 209 new THREE.Vector3(objCenter.x - objSize.x/2 -1.5,210 objCenter.y - objSize.y/2 ,211 objCenter.z - objSize.z/2 -1.5) );212 loadLine( main , 213 new THREE.Vector3(objCenter.x - objSize.x/2 -0.5,214 objCenter.y + objSize.y/2 ,215 objCenter.z - objSize.z/2 -0.5) , 216 new THREE.Vector3(objCenter.x - objSize.x/2 -1.5,217 objCenter.y + objSize.y/2 ,218 objCenter.z - objSize.z/2 -1.5) );219 }220 }221 //right to the user222 if ( objCenter.x > FuniCenter.x ){223 //show size number224 loadText( main , 225 objSize.z ,226 new THREE.Vector3(objCenter.x + objSize.x/2 +1,227 objCenter.y - objSize.y/2 ,228 objCenter.z ), 229 90 );230 //show line231 loadLine( main , 232 new THREE.Vector3(objCenter.x + objSize.x/2 +1,233 objCenter.y - objSize.y/2 ,234 objCenter.z - objSize.z/2) , 235 new THREE.Vector3(objCenter.x + objSize.x/2 +1,236 objCenter.y - objSize.y/2 ,237 objCenter.z + objSize.z/2) );238 loadLine( main , 239 new THREE.Vector3(objCenter.x + objSize.x/2 +0.5,240 objCenter.y - objSize.y/2 ,241 objCenter.z - objSize.z/2) , 242 new THREE.Vector3(objCenter.x + objSize.x/2 +1.5,243 objCenter.y - objSize.y/2 ,244 objCenter.z - objSize.z/2) );245 loadLine( main , 246 new THREE.Vector3(objCenter.x + objSize.x/2 +0.5,247 objCenter.y - objSize.y/2 ,248 objCenter.z + objSize.z/2) , 249 new THREE.Vector3(objCenter.x + objSize.x/2 +1.5,250 objCenter.y - objSize.y/2 ,251 objCenter.z + objSize.z/2) );252 }253 else{//left to the user254 //show size number255 loadText( main , 256 objSize.z ,257 new THREE.Vector3(objCenter.x - objSize.x/2 -1,258 objCenter.y - objSize.y/2 ,259 objCenter.z ), 260 270 );261 //show line262 loadLine( main , 263 new THREE.Vector3(objCenter.x - objSize.x/2 -1,264 objCenter.y - objSize.y/2 ,265 objCenter.z - objSize.z/2) , 266 new THREE.Vector3(objCenter.x - objSize.x/2 -1,267 objCenter.y - objSize.y/2 ,268 objCenter.z + objSize.z/2) );269 loadLine( main , 270 new THREE.Vector3(objCenter.x - objSize.x/2 -0.5,271 objCenter.y - objSize.y/2 ,272 objCenter.z - objSize.z/2) , 273 new THREE.Vector3(objCenter.x - objSize.x/2 -1.5,274 objCenter.y - objSize.y/2 ,275 objCenter.z - objSize.z/2) );276 loadLine( main , 277 new THREE.Vector3(objCenter.x - objSize.x/2 -0.5,278 objCenter.y - objSize.y/2 ,279 objCenter.z + objSize.z/2) , 280 new THREE.Vector3(objCenter.x - objSize.x/2 -1.5,281 objCenter.y - objSize.y/2 ,282 objCenter.z + objSize.z/2) );283 }284}285function loadText(main , num , position , rotat){286 var text = (Math.round(num*10)/100).toString();287 var loader = new THREE.FontLoader();288 var font = loader.load(289 // resource URL290 'three.js-master/examples/fonts/helvetiker_regular.typeface.json',291 // onLoad callback292 function ( font ) {293 var geometry = new THREE.TextGeometry( text , {294 font: font ,295 size: 0.3,296 height: 0.05,297 curveSegments: 12,298 bevelEnabled: false,299 bevelThickness: 5,300 bevelSize: 4,301 bevelSegments: 1302 } );303 var material = new THREE.MeshBasicMaterial( { color: 0x000000 } );304 var mesh = new THREE.Mesh( geometry, material );305 mesh.position.set( position.x , position.y +0.5 , position.z );306 mesh.rotateOnWorldAxis(new THREE.Vector3(0,1,0) , rotat * Math.PI/180);307 main.scene.add( mesh );308 main.SizeObj.push( mesh );309 }310 );311}312function loadLine( main , point1 , point2){313 var material = new THREE.LineBasicMaterial({314 color: 0x000000,315 linewidth: 10,316 linecap: 'round', //ignored by WebGLRenderer317 linejoin: 'round' //ignored by WebGLRenderer318 });319 var geometry = new THREE.Geometry();320 geometry.vertices.push(321 new THREE.Vector3( point1.x , point1.y , point1.z ),322 new THREE.Vector3( point2.x , point2.y , point2.z )323 );324 var line = new THREE.Line( geometry, material );325 main.scene.add( line );326 main.SizeObj.push(line);327}...

Full Screen

Full Screen

Stage_8.js

Source:Stage_8.js Github

copy

Full Screen

1var data; // bucket for the notification data2//each social media notifications count is listed3//value ranges between 0-20 → circles -->map values?4var instagram, snapchat, messenger, facebook, email, instagramCol, snapchatCol, messengerCol, facebookCol, emailCol;5var whichHour=0; //for iterating through data6// this will make the circles bigger7var sizeMultiplier = 5; 8var time, size;9var daycounter= 1;10function preload (){11 data =loadJSON("Sunday.json");12}13function setup() {14 15 createCanvas (windowWidth, windowHeight);16 background (255);17 18 instagramCol = color (142, 68, 173, 90);19 messengerCol = color (133, 193, 233, 90);20 snapchatCol = color (247, 220, 111, 90);21 facebookCol = color (118, 215, 196, 90);22 emailCol = color (178, 186, 187, 90); 23 frameRate(0.5);24 25 26 //textSize (70);27 //fill (0);28 // textFont ("Futura");29 // text ('Sunday',600,600);30 // textSize (20);31 // text ('Press any key', 150, 380);32 // text ('click anywhere on screen',1100, 380);33 // textSize(40);34 // text ('II',200,350);35 // text ('≥', 1200, 350);36 // var yplay;37 // angleMode (DEGREES);38 }39 40 41 42function draw () {43 for (whichHour=0; whichHour<data.hours.length; whichHour++){44 //if (frameCount > 100 * whichHour) {45 // if (mouseX<200) {46 // yplay = int(random(100,5));}47 // else {yplay=1;}48 //translate (200, 200);49 //rotate(angle);50 //ellipseMode (CENTER);51 52 // Sunday53 fill (instagramCol);54 size = data.hours[whichHour].instagram*sizeMultiplier;55 //ellipse (data[whichHour], whichHour*yplay, whichHour*20, size, size);56 ellipse (random(100, 150), random (150, 500), size, size);57 //angle++;58 59 60 fill (messengerCol);61 size = data.hours[whichHour].messenger*sizeMultiplier; 62 ellipse(random(100, 150), random(150, 500), size, size);63 64 65 fill (snapchatCol);66 size = data.hours[whichHour].snapchat*sizeMultiplier; 67 rect(random(100, 150), random(150, 500), size, size);68 69 fill (facebookCol);70 size = data.hours[whichHour].facebook*sizeMultiplier; 71 square (random(100, 150), random(150, 500), size, size);72 73 fill (emailCol);74 size = data.hours[whichHour].email*sizeMultiplier; 75 ellipse(random(100, 150), random(150, 500), size, size);76 77// Monday78fill (instagramCol);79 size = data.hours[whichHour].instagram*sizeMultiplier;80 //ellipse (data[whichHour], whichHour*yplay, whichHour*20, size, size);81 ellipse (random(270, 320), random (150, 500), size, size);82 //angle++;83 84 85 fill (messengerCol);86 size = data.hours[whichHour].messenger*sizeMultiplier; 87 ellipse(random(270, 320), random(150, 500), size, size);88 89 90 fill (snapchatCol);91 size = data.hours[whichHour].snapchat*sizeMultiplier; 92 rect(random(270, 320), random(150, 500), size, size);93 94 fill (facebookCol);95 size = data.hours[whichHour].facebook*sizeMultiplier; 96 square (random(270, 320), random(150, 500), size, size);97 98 fill (emailCol);99 size = data.hours[whichHour].email*sizeMultiplier; 100 ellipse(random(270, 320), random(150, 500), size, size);101 102 //Tuesday103 fill (instagramCol);104 size = data.hours[whichHour].instagram*sizeMultiplier;105 //ellipse (data[whichHour], whichHour*yplay, whichHour*20, size, size);106 ellipse (random(440, 490), random (150, 500), size, size);107 //angle++;108 109 fill (messengerCol);110 size = data.hours[whichHour].messenger*sizeMultiplier; 111 ellipse(random(440, 490), random(150, 500), size, size);112 113 114 fill (snapchatCol);115 size = data.hours[whichHour].snapchat*sizeMultiplier; 116 rect(random(440, 490), random(150, 500), size, size);117 118 fill (facebookCol);119 size = data.hours[whichHour].facebook*sizeMultiplier; 120 square (random(440, 490), random(150, 500), size, size);121 122 fill (emailCol);123 size = data.hours[whichHour].email*sizeMultiplier; 124 ellipse(random(440, 490), random(150, 500), size, size);125 126 //Wednesday127 fill (instagramCol);128 size = data.hours[whichHour].instagram*sizeMultiplier;129 //ellipse (data[whichHour], whichHour*yplay, whichHour*20, size, size);130 ellipse (random(610, 660), random (150, 500), size, size);131 //angle++;132 133 fill (messengerCol);134 size = data.hours[whichHour].messenger*sizeMultiplier; 135 ellipse(random(610, 660), random(150, 500), size, size);136 137 138 fill (snapchatCol);139 size = data.hours[whichHour].snapchat*sizeMultiplier; 140 rect(random(610, 660), random(150, 500), size, size);141 142 fill (facebookCol);143 size = data.hours[whichHour].facebook*sizeMultiplier; 144 square (random(610, 660), random(150, 500), size, size);145 146 fill (emailCol);147 size = data.hours[whichHour].email*sizeMultiplier; 148 ellipse(random(610, 660), random(150, 500), size, size);149 150 //Thursday151 fill (instagramCol);152 size = data.hours[whichHour].instagram*sizeMultiplier;153 //ellipse (data[whichHour], whichHour*yplay, whichHour*20, size, size);154 ellipse (random(780, 830), random (150, 500), size, size);155 //angle++;156 157 fill (messengerCol);158 size = data.hours[whichHour].messenger*sizeMultiplier; 159 ellipse(random(780, 830), random(150, 500), size, size);160 161 162 fill (snapchatCol);163 size = data.hours[whichHour].snapchat*sizeMultiplier; 164 rect(random(780, 830), random(150, 500), size, size);165 166 fill (facebookCol);167 size = data.hours[whichHour].facebook*sizeMultiplier; 168 square (random(780, 830), random(150, 500), size, size);169 170 fill (emailCol);171 size = data.hours[whichHour].email*sizeMultiplier; 172 ellipse(random(780, 830), random(150, 500), size, size);173 174 //Friday175 fill (instagramCol);176 size = data.hours[whichHour].instagram*sizeMultiplier;177 //ellipse (data[whichHour], whichHour*yplay, whichHour*20, size, size);178 ellipse (random(950, 1000), random (150, 500), size, size);179 //angle++;180 181 fill (messengerCol);182 size = data.hours[whichHour].messenger*sizeMultiplier; 183 ellipse(random(950, 1000), random(150, 500), size, size);184 185 186 fill (snapchatCol);187 size = data.hours[whichHour].snapchat*sizeMultiplier; 188 rect(random(950, 1000), random(150, 500), size, size);189 190 fill (facebookCol);191 size = data.hours[whichHour].facebook*sizeMultiplier; 192 square (random(950, 1000), random(150, 500), size, size);193 194 fill (emailCol);195 size = data.hours[whichHour].email*sizeMultiplier; 196 ellipse(random(950, 1000), random(150, 500), size, size);197 198 //Saturday199 fill (instagramCol);200 size = data.hours[whichHour].instagram*sizeMultiplier;201 //ellipse (data[whichHour], whichHour*yplay, whichHour*20, size, size);202 ellipse (random(1120, 1170), random (150, 500), size, size);203 //angle++;204 205 fill (messengerCol);206 size = data.hours[whichHour].messenger*sizeMultiplier; 207 ellipse(random(1120, 1170), random(150, 500), size, size);208 209 210 fill (snapchatCol);211 size = data.hours[whichHour].snapchat*sizeMultiplier; 212 rect(random(1120, 1170), random(150, 500), size, size);213 214 fill (facebookCol);215 size = data.hours[whichHour].facebook*sizeMultiplier; 216 square (random(1120, 1170), random(150, 500), size, size);217 218 fill (emailCol);219 size = data.hours[whichHour].email*sizeMultiplier; 220 ellipse(random(1120, 1170), random(150, 500), size, size);221 }222}223//this allows you to pause the sketch with just pressing any key on the keyboard. 224function keyPressed (){225 noLoop();226}227function keyReleased (){228 loop();229}230function mousePressed (){231 background (255);232 // fill (0);233 // textSize (70);234 // textFont ("Futura");235 236 // // changing the title days everytime mouse is pressed237 // if (mousePressed) {238 // daycounter = daycounter +1;239 // }240 // if (daycounter > 7) {241 // daycounter = 1;242 // }243 244 // if (daycounter ==2) {245 // text ("Monday", 600, 600);246 // }247 //if (daycounter ==3) {248 // text ("Tuesday", 600,600);249 // }250 251 252 // if (daycounter ==4) {253 // text ("Wednesday", 540,600);254 // } 255 256 // if (daycounter ==5) {257 // text ("Thursday", 600,600);258 // }259 260 // if (daycounter ==6) {261 // text ("Friday", 620,600);262 // }263 264 // if (daycounter ==7) {265 // text ("Saturday", 600,600);266 // }267 268 269 // textSize (20);270 // text ('Press any key', 150, 380);271 // text ('click anywhere on screen',1100, 380);272 // textSize(40);273 // text ('II',200,350);274 // text ('≥', 1200, 350);275 276 ...

Full Screen

Full Screen

Zoomify.js

Source:Zoomify.js Github

copy

Full Screen

1/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for2 * full list of contributors). Published under the 2-clause BSD license.3 * See license.txt in the OpenLayers distribution or repository for the4 * full text of the license. */5/*6 * Development supported by a R&D grant DC08P02OUK006 - Old Maps Online7 * (www.oldmapsonline.org) from Ministry of Culture of the Czech Republic.8 */9/**10 * @requires OpenLayers/Layer/Grid.js11 */12/**13 * Class: OpenLayers.Layer.Zoomify14 *15 * Inherits from:16 * - <OpenLayers.Layer.Grid>17 */18OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, {19 /**20 * Property: size21 * {<OpenLayers.Size>} The Zoomify image size in pixels.22 */23 size: null,24 /**25 * APIProperty: isBaseLayer26 * {Boolean}27 */28 isBaseLayer: true,29 /**30 * Property: standardTileSize31 * {Integer} The size of a standard (non-border) square tile in pixels.32 */33 standardTileSize: 256,34 /** 35 * Property: tileOriginCorner36 * {String} This layer uses top-left as tile origin37 **/38 tileOriginCorner: "tl",39 /**40 * Property: numberOfTiers41 * {Integer} Depth of the Zoomify pyramid, number of tiers (zoom levels)42 * - filled during Zoomify pyramid initialization.43 */44 numberOfTiers: 0,45 /**46 * Property: tileCountUpToTier47 * {Array(Integer)} Number of tiles up to the given tier of pyramid.48 * - filled during Zoomify pyramid initialization.49 */50 tileCountUpToTier: null,51 /**52 * Property: tierSizeInTiles53 * {Array(<OpenLayers.Size>)} Size (in tiles) for each tier of pyramid.54 * - filled during Zoomify pyramid initialization.55 */56 tierSizeInTiles: null,57 /**58 * Property: tierImageSize59 * {Array(<OpenLayers.Size>)} Image size in pixels for each pyramid tier.60 * - filled during Zoomify pyramid initialization.61 */62 tierImageSize: null,63 /**64 * Constructor: OpenLayers.Layer.Zoomify65 *66 * Parameters:67 * name - {String} A name for the layer.68 * url - {String} - Relative or absolute path to the image or more69 * precisly to the TileGroup[X] directories root.70 * Flash plugin use the variable name "zoomifyImagePath" for this.71 * size - {<OpenLayers.Size>} The size (in pixels) of the image.72 * options - {Object} Hashtable of extra options to tag onto the layer73 */74 initialize: function(name, url, size, options) {75 // initilize the Zoomify pyramid for given size76 this.initializeZoomify(size);77 OpenLayers.Layer.Grid.prototype.initialize.apply(this, [78 name, url, size, {}, options79 ]);80 },81 /**82 * Method: initializeZoomify83 * It generates constants for all tiers of the Zoomify pyramid84 *85 * Parameters:86 * size - {<OpenLayers.Size>} The size of the image in pixels87 *88 */89 initializeZoomify: function( size ) {90 var imageSize = size.clone();91 this.size = size.clone();92 var tiles = new OpenLayers.Size(93 Math.ceil( imageSize.w / this.standardTileSize ),94 Math.ceil( imageSize.h / this.standardTileSize )95 );96 this.tierSizeInTiles = [tiles];97 this.tierImageSize = [imageSize];98 while (imageSize.w > this.standardTileSize ||99 imageSize.h > this.standardTileSize ) {100 imageSize = new OpenLayers.Size(101 Math.floor( imageSize.w / 2 ),102 Math.floor( imageSize.h / 2 )103 );104 tiles = new OpenLayers.Size(105 Math.ceil( imageSize.w / this.standardTileSize ),106 Math.ceil( imageSize.h / this.standardTileSize )107 );108 this.tierSizeInTiles.push( tiles );109 this.tierImageSize.push( imageSize );110 }111 this.tierSizeInTiles.reverse();112 this.tierImageSize.reverse();113 this.numberOfTiers = this.tierSizeInTiles.length;114 var resolutions = [1];115 this.tileCountUpToTier = [0];116 for (var i = 1; i < this.numberOfTiers; i++) {117 resolutions.unshift(Math.pow(2, i));118 this.tileCountUpToTier.push(119 this.tierSizeInTiles[i-1].w * this.tierSizeInTiles[i-1].h +120 this.tileCountUpToTier[i-1]121 );122 }123 if (!this.serverResolutions) {124 this.serverResolutions = resolutions;125 }126 },127 /**128 * APIMethod:destroy129 */130 destroy: function() {131 // for now, nothing special to do here.132 OpenLayers.Layer.Grid.prototype.destroy.apply(this, arguments);133 // Remove from memory the Zoomify pyramid - is that enough?134 this.tileCountUpToTier.length = 0;135 this.tierSizeInTiles.length = 0;136 this.tierImageSize.length = 0;137 },138 /**139 * APIMethod: clone140 *141 * Parameters:142 * obj - {Object}143 *144 * Returns:145 * {<OpenLayers.Layer.Zoomify>} An exact clone of this <OpenLayers.Layer.Zoomify>146 */147 clone: function (obj) {148 if (obj == null) {149 obj = new OpenLayers.Layer.Zoomify(this.name,150 this.url,151 this.size,152 this.options);153 }154 //get all additions from superclasses155 obj = OpenLayers.Layer.Grid.prototype.clone.apply(this, [obj]);156 // copy/set any non-init, non-simple values here157 return obj;158 },159 /**160 * Method: getURL161 *162 * Parameters:163 * bounds - {<OpenLayers.Bounds>}164 *165 * Returns:166 * {String} A string with the layer's url and parameters and also the167 * passed-in bounds and appropriate tile size specified as168 * parameters169 */170 getURL: function (bounds) {171 bounds = this.adjustBounds(bounds);172 var res = this.getServerResolution();173 var x = Math.round((bounds.left - this.tileOrigin.lon) / (res * this.tileSize.w));174 var y = Math.round((this.tileOrigin.lat - bounds.top) / (res * this.tileSize.h));175 var z = this.getZoomForResolution( res );176 var tileIndex = x + y * this.tierSizeInTiles[z].w + this.tileCountUpToTier[z];177 var path = "TileGroup" + Math.floor( (tileIndex) / 256 ) +178 "/" + z + "-" + x + "-" + y + ".jpg";179 var url = this.url;180 if (OpenLayers.Util.isArray(url)) {181 url = this.selectUrl(path, url);182 }183 return url + path;184 },185 /**186 * Method: getImageSize187 * getImageSize returns size for a particular tile. If bounds are given as188 * first argument, size is calculated (bottom-right tiles are non square).189 *190 */191 getImageSize: function() {192 if (arguments.length > 0) {193 var bounds = this.adjustBounds(arguments[0]);194 var res = this.getServerResolution();195 var x = Math.round((bounds.left - this.tileOrigin.lon) / (res * this.tileSize.w));196 var y = Math.round((this.tileOrigin.lat - bounds.top) / (res * this.tileSize.h));197 var z = this.getZoomForResolution( res );198 var w = this.standardTileSize;199 var h = this.standardTileSize;200 if (x == this.tierSizeInTiles[z].w -1 ) {201 var w = this.tierImageSize[z].w % this.standardTileSize;202 }203 if (y == this.tierSizeInTiles[z].h -1 ) {204 var h = this.tierImageSize[z].h % this.standardTileSize;205 }206 return (new OpenLayers.Size(w, h));207 } else {208 return this.tileSize;209 }210 },211 /**212 * APIMethod: setMap213 * When the layer is added to a map, then we can fetch our origin214 * (if we don't have one.)215 *216 * Parameters:217 * map - {<OpenLayers.Map>}218 */219 setMap: function(map) {220 OpenLayers.Layer.Grid.prototype.setMap.apply(this, arguments);221 this.tileOrigin = new OpenLayers.LonLat(this.map.maxExtent.left,222 this.map.maxExtent.top);223 },224 CLASS_NAME: "OpenLayers.Layer.Zoomify"...

Full Screen

Full Screen

intersection-tooltip-venn.js

Source:intersection-tooltip-venn.js Github

copy

Full Screen

1/*=========================================================================================2 File Name: intersection-tooltip-venn.js3 Description: D3 intersection tooltip venn diagram4 ----------------------------------------------------------------------------------------5 Item Name: Modern Admin - Clean Bootstrap 4 Dashboard HTML Template6 Version: 3.07 Author: PIXINVENT8 Author URL: http://www.themeforest.net/user/pixinvent9==========================================================================================*/10// Intersection tooltip venn diagram11// ----------------------------------12$(window).on("load", function(){13 var sets = [14 {"sets": [0], "label": "Radiohead", "size": 77348},15 {"sets": [1], "label": "Thom Yorke", "size": 5621},16 {"sets": [2], "label": "John Lennon", "size": 7773},17 {"sets": [3], "label": "Kanye West", "size": 27053},18 {"sets": [4], "label": "Eminem", "size": 19056},19 {"sets": [5], "label": "Elvis Presley", "size": 15839},20 {"sets": [6], "label": "Explosions in the Sky", "size": 10813},21 {"sets": [7], "label": "Bach", "size": 9264},22 {"sets": [8], "label": "Mozart", "size": 3959},23 {"sets": [9], "label": "Philip Glass", "size": 4793},24 {"sets": [10], "label": "St. Germain", "size": 4136},25 {"sets": [11], "label": "Morrissey", "size": 10945},26 {"sets": [12], "label": "Outkast", "size": 8444},27 {"sets": [0, 1], "size": 4832},28 {"sets": [0, 2], "size": 2602},29 {"sets": [0, 3], "size": 6141},30 {"sets": [0, 4], "size": 2723},31 {"sets": [0, 5], "size": 3177},32 {"sets": [0, 6], "size": 5384},33 {"sets": [0, 7], "size": 2252},34 {"sets": [0, 8], "size": 877},35 {"sets": [0, 9], "size": 1663},36 {"sets": [0, 10], "size": 899},37 {"sets": [0, 11], "size": 4557},38 {"sets": [0, 12], "size": 2332},39 {"sets": [1, 2], "size": 162},40 {"sets": [1, 3], "size": 396},41 {"sets": [1, 4], "size": 133},42 {"sets": [1, 5], "size": 135},43 {"sets": [1, 6], "size": 511},44 {"sets": [1, 7], "size": 159},45 {"sets": [1, 8], "size": 47},46 {"sets": [1, 9], "size": 168},47 {"sets": [1, 10], "size": 68},48 {"sets": [1, 11], "size": 336},49 {"sets": [1, 12], "size": 172},50 {"sets": [2, 3], "size": 406},51 {"sets": [2, 4], "size": 350},52 {"sets": [2, 5], "size": 1335},53 {"sets": [2, 6], "size": 145},54 {"sets": [2, 7], "size": 347},55 {"sets": [2, 8], "size": 176},56 {"sets": [2, 9], "size": 119},57 {"sets": [2, 10], "size": 46},58 {"sets": [2, 11], "size": 418},59 {"sets": [2, 12], "size": 146},60 {"sets": [3, 4], "size": 5465},61 {"sets": [3, 5], "size": 849},62 {"sets": [3, 6], "size": 724},63 {"sets": [3, 7], "size": 273},64 {"sets": [3, 8], "size": 143},65 {"sets": [3, 9], "size": 180},66 {"sets": [3, 10], "size": 218},67 {"sets": [3, 11], "size": 599},68 {"sets": [3, 12], "size": 3453},69 {"sets": [4, 5], "size": 977},70 {"sets": [4, 6], "size": 232},71 {"sets": [4, 7], "size": 250},72 {"sets": [4, 8], "size": 166},73 {"sets": [4, 9], "size": 97},74 {"sets": [4, 10], "size": 106},75 {"sets": [4, 11], "size": 225},76 {"sets": [4, 12], "size": 1807},77 {"sets": [5, 6], "size": 196},78 {"sets": [5, 7], "size": 642},79 {"sets": [5, 8], "size": 336},80 {"sets": [5, 9], "size": 165},81 {"sets": [5, 10], "size": 143},82 {"sets": [5, 11], "size": 782},83 {"sets": [5, 12], "size": 332},84 {"sets": [6, 7], "size": 262},85 {"sets": [6, 8], "size": 85},86 {"sets": [6, 9], "size": 284},87 {"sets": [6, 10], "size": 68},88 {"sets": [6, 11], "size": 363},89 {"sets": [6, 12], "size": 218},90 {"sets": [7, 8], "size": 1581},91 {"sets": [7, 9], "size": 716},92 {"sets": [7, 10], "size": 133},93 {"sets": [7, 11], "size": 254},94 {"sets": [7, 12], "size": 132},95 {"sets": [8, 9], "size": 280},96 {"sets": [8, 10], "size": 53},97 {"sets": [8, 11], "size": 117},98 {"sets": [8, 12], "size": 67},99 {"sets": [9, 10], "size": 57},100 {"sets": [9, 11], "size": 184},101 {"sets": [9, 12], "size": 89},102 {"sets": [10, 11], "size": 51},103 {"sets": [10, 12], "size": 115},104 {"sets": [11, 12], "size": 162},105 {"sets": [0, 1, 6], "size": 480},106 {"sets": [0, 1, 9], "size": 152},107 {"sets": [0, 2, 7], "size": 112},108 {"sets": [0, 3, 4], "size": 715},109 {"sets": [0, 3, 12], "size": 822},110 {"sets": [0, 4, 5], "size": 160},111 {"sets": [0, 5, 11], "size": 292},112 {"sets": [0, 6, 12], "size": 122},113 {"sets": [0, 7, 11], "size": 118},114 {"sets": [0, 9, 10], "size" :13},115 {"sets": [2, 7, 8], "size": 72}116 ];117 var chart = venn.VennDiagram()118 .width(400)119 .height(400)120 .fontSize("14px");121 var div = d3.select("#intersection-tooltip-venn");122 div.datum(sets).call(chart);123 var tooltip = d3.select("body").append("div")124 .attr("class", "venntooltip");125 div.selectAll("path")126 .style("stroke-opacity", 0)127 .style("stroke", "#fff")128 .style("stroke-width", 0);129 div.selectAll("text")130 .style("font-weight", "400");131 div.selectAll("g")132 .on("mouseover", function(d, i) {133 // sort all the areas relative to the current item134 venn.sortAreas(div, d);135 // Display a tooltip with the current size136 tooltip.transition().duration(400).style("opacity", .9);137 tooltip.text(d.size + " users");138 // highlight the current path139 var selection = d3.select(this).transition("tooltip").duration(400);140 selection.select("path")141 .style("stroke-width", 3)142 .style("fill-opacity", d.sets.length == 1 ? .4 : .1)143 .style("stroke-opacity", 1);144 })145 .on("mousemove", function() {146 tooltip.style("left", (d3.event.pageX) + "px")147 .style("top", (d3.event.pageY - 28) + "px");148 })149 .on("mouseout", function(d, i) {150 tooltip.transition().duration(400).style("opacity", 0);151 var selection = d3.select(this).transition("tooltip").duration(400);152 selection.select("path")153 .style("stroke-width", 0)154 .style("fill-opacity", d.sets.length == 1 ? .25 : .0)155 .style("stroke-opacity", 0);156 });...

Full Screen

Full Screen

index.js

Source:index.js Github

copy

Full Screen

1import React from 'react';2import SplitPane from 'react-split-pane';3import { isSmallMobileScreen } from 'embed/util/mobile';4import { GlobalActions, NavigationActions } from '../Actions';5import { Container, PaneContainer, RESIZER_WIDTH } from './elements';6export default function SplitView({7 showEditor,8 showPreview,9 isSmallScreen,10 sidebarOpen,11 children,12 showNavigationActions,13 refresh,14 openInNewWindow,15 sandbox,16 toggleLike,17 initialEditorSize = 50, // in percent18 initialPath,19 hideDevTools,20 setEditorSize,21 setDragging: setDraggingProp,22 ...props23}) {24 /* Things this component should do25 1. set inital size based on props26 2. let user move it around27 3. snap to edges28 4. stay snapped on window.resize and sidebar toggle (not implemented)29 5. introduce the resizer element with animation30 */31 const windowWidth = document.body.clientWidth;32 // TODO: pick this from the sidebar or ref instead of hardcoding33 const sidebarWidth = 250;34 const maxSize =35 (sidebarOpen ? windowWidth - sidebarWidth : windowWidth) - RESIZER_WIDTH;36 // #1. set initial size based on props37 let initialSize = null;38 if (showEditor && showPreview)39 initialSize = (initialEditorSize / 100) * maxSize;40 else if (showEditor && !showPreview) initialSize = maxSize;41 else if (showPreview && !showEditor) initialSize = 0;42 const [size, setSize] = React.useState(initialSize);43 React.useEffect(() => {44 setEditorSize(size);45 }, [size, setEditorSize]);46 // #2. We track dragging so that we can add an overlay on top47 // of the iframe which lets us keep focus on the resize toggle48 const [isDragging, setDragging] = React.useState(false);49 // #3. snap to edges, much logic, such wow.50 const handleAutomaticSnapping = newSize => {51 /* snap threshold on desktop is 50px on the left52 and 175px on the right (to keep the open sandbox button on one side)53 On mobile, it's 50% of the screen54 */55 const leftSnapThreshold = isSmallScreen ? maxSize / 2 : 50;56 const rightSnapThreshold = isSmallScreen ? maxSize / 2 : maxSize - 175;57 if (newSize === size) {58 /* if the size is unchanged, we assume it's a click.59 we don't rely on onResizerClick from react-split-pane60 because it requires the resizer to have some size which61 in our case isn't true because we artificially overlap62 the resizer on top of the preview/editor63 on mobile, we want to flip the current state.64 on desktop, we want to set it half if it's snapped to an edge.65 */66 if (isSmallScreen) setSize(size === 0 ? maxSize : 0);67 else if (size === 0 || size === maxSize) setSize(maxSize / 2);68 } else {69 // this means the user was able to drag70 // eslint-disable-next-line no-lonely-if71 if (newSize < leftSnapThreshold) setSize(0);72 else if (newSize > rightSnapThreshold) setSize(maxSize);73 else setSize(Math.min(newSize, maxSize));74 }75 };76 const onDragStarted = () => {77 setDragging(true);78 setDraggingProp(true);79 };80 const onDragFinished = newSize => {81 setDragging(false);82 setDraggingProp(false);83 // react-split-pane doesn't set newSize until84 // the end of the first drag, that breaks the click case85 // so we set it to the size that already is set86 handleAutomaticSnapping(newSize || size);87 setEditorSize(size);88 };89 const openEditor = () => {90 setSize(maxSize);91 };92 const openPreview = () => {93 setSize(0);94 };95 // TODO: #4. Handle edge case of keeping panes snapped96 // on window.resize and sidebar toggle97 /* We need at least 270px of space in the preview to98 fit global actions and navigation actions99 if there isn't enough space, navigation gets100 depririotized101 */102 const outOfSpaceForNavigation = maxSize - size < 270;103 /**104 * For small touch screens we show different buttons. We change for example that the105 * editor can be opened with a button106 */107 const smallTouchScreen = isSmallMobileScreen();108 return (109 <Container110 isDragging={isDragging}111 size={size}112 maxSize={maxSize}113 fullSize={size === maxSize}114 >115 <GlobalActions116 sandbox={sandbox}117 toggleLike={toggleLike}118 previewVisible={size < maxSize}119 isDragging={isDragging}120 offsetBottom={!hideDevTools && size < maxSize}121 openEditor={openEditor}122 openPreview={openPreview}123 smallTouchScreen={smallTouchScreen}124 initialPath={initialPath}125 />126 <SplitPane127 split="vertical"128 onDragStarted={onDragStarted}129 onDragFinished={onDragFinished}130 minSize="0%"131 maxSize={maxSize}132 onMouseEnter={onDragStarted}133 size={size}134 {...props}135 >136 <PaneContainer>{children[0]}</PaneContainer>137 <PaneContainer>138 {showNavigationActions && !outOfSpaceForNavigation ? (139 <NavigationActions140 refresh={refresh}141 openInNewWindow={openInNewWindow}142 isDragging={isDragging}143 offsetBottom={!hideDevTools && size < maxSize}144 />145 ) : null}146 {children[1]}147 </PaneContainer>148 </SplitPane>149 </Container>150 );...

Full Screen

Full Screen

size.test.js

Source:size.test.js Github

copy

Full Screen

1goog.provide('ol.test.size');2describe('ol.size', function() {3 describe('buffer()', function() {4 it('buffers a size', function() {5 var size = [50, 75];6 var bufferedSize = ol.size.buffer(size, 20);7 expect(bufferedSize).to.eql([90, 115]);8 });9 it('reuses an existing array', function() {10 var reuse = [0, 0];11 var size = [50, 50];12 var bufferedSize = ol.size.buffer(size, 20, reuse);13 expect(bufferedSize).to.equal(reuse);14 });15 });16 describe('hasArea()', function() {17 it('determines if a size has a positive area', function() {18 expect(ol.size.hasArea([50, 75])).to.equal(true);19 expect(ol.size.hasArea([0, 75])).to.equal(false);20 expect(ol.size.hasArea([50, 0])).to.equal(false);21 expect(ol.size.hasArea([0, 0])).to.equal(false);22 expect(ol.size.hasArea([-1, 75])).to.equal(false);23 expect(ol.size.hasArea([50, -1])).to.equal(false);24 expect(ol.size.hasArea([-1, -1])).to.equal(false);25 });26 });27 describe('scale()', function() {28 it('scales a size and rounds the result', function() {29 var size = [50, 75];30 var scaledSize = ol.size.scale(size, 1.75);31 expect(scaledSize).to.eql([88, 131]);32 });33 it('reuses an existing array', function() {34 var reuse = [0, 0];35 var size = [50, 50];36 var scaledSize = ol.size.scale(size, 1.75, reuse);37 expect(scaledSize).to.equal(reuse);38 });39 });40 describe('toSize()', function() {41 it('creates a size array from a number', function() {42 var size = ol.size.toSize(512);43 expect(size).to.eql([512, 512]);44 });45 it('reuses an existing array', function() {46 var sizeArray = [0, 0];47 var size = ol.size.toSize(512, sizeArray);48 expect(size).to.equal(sizeArray);49 });50 it('returns a size array unaltered', function() {51 var sizeArray = [512, 256];52 var size = ol.size.toSize(sizeArray);53 expect(size).to.equal(sizeArray);54 size = ol.size.toSize(sizeArray, [0, 0]);55 expect(size).to.equal(sizeArray);56 });57 });58});...

Full Screen

Full Screen

size.js

Source:size.js Github

copy

Full Screen

1goog.provide('ol.Size');2goog.provide('ol.size');3goog.require('goog.asserts');4/**5 * An array of numbers representing a size: `[width, height]`.6 * @typedef {Array.<number>}7 * @api stable8 */9ol.Size;10/**11 * Returns a buffered size.12 * @param {ol.Size} size Size.13 * @param {number} buffer Buffer.14 * @param {ol.Size=} opt_size Optional reusable size array.15 * @return {ol.Size}16 */17ol.size.buffer = function(size, buffer, opt_size) {18 if (opt_size === undefined) {19 opt_size = [0, 0];20 }21 opt_size[0] = size[0] + 2 * buffer;22 opt_size[1] = size[1] + 2 * buffer;23 return opt_size;24};25/**26 * Compares sizes for equality.27 * @param {ol.Size} a Size.28 * @param {ol.Size} b Size.29 * @return {boolean} Equals.30 */31ol.size.equals = function(a, b) {32 return a[0] == b[0] && a[1] == b[1];33};34/**35 * Determines if a size has a positive area.36 * @param {ol.Size} size The size to test.37 * @return {boolean} The size has a positive area.38 */39ol.size.hasArea = function(size) {40 return size[0] > 0 && size[1] > 0;41};42/**43 * Returns a size scaled by a ratio. The result will be an array of integers.44 * @param {ol.Size} size Size.45 * @param {number} ratio Ratio.46 * @param {ol.Size=} opt_size Optional reusable size array.47 * @return {ol.Size}48 */49ol.size.scale = function(size, ratio, opt_size) {50 if (opt_size === undefined) {51 opt_size = [0, 0];52 }53 opt_size[0] = (size[0] * ratio + 0.5) | 0;54 opt_size[1] = (size[1] * ratio + 0.5) | 0;55 return opt_size;56};57/**58 * Returns an `ol.Size` array for the passed in number (meaning: square) or59 * `ol.Size` array.60 * (meaning: non-square),61 * @param {number|ol.Size} size Width and height.62 * @param {ol.Size=} opt_size Optional reusable size array.63 * @return {ol.Size} Size.64 * @api stable65 */66ol.size.toSize = function(size, opt_size) {67 if (goog.isArray(size)) {68 return size;69 } else {70 goog.asserts.assert(goog.isNumber(size));71 if (opt_size === undefined) {72 opt_size = [size, size];73 } else {74 opt_size[0] = size;75 opt_size[1] = size;76 }77 return opt_size;78 }...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 const elementHandle = await page.$('text=Get started');7 const box = await elementHandle.boundingBox();8 console.log(box);9 await browser.close();10})();11const { chromium } = require('playwright');12(async () => {13 const browser = await chromium.launch();14 const context = await browser.newContext();15 const page = await context.newPage();16 const elementHandle = await page.$('text=Get started');17 const box = await elementHandle.boundingBox();18 console.log(box);19 await browser.close();20})();21const { chromium } = require('playwright');22(async () => {23 const browser = await chromium.launch();24 const context = await browser.newContext();25 const page = await context.newPage();26 const elementHandle = await page.$('text=Get started');27 const box = await elementHandle.boundingBox();28 console.log(box);29 await browser.close();30})();31const { chromium } = require('playwright');32(async () => {33 const browser = await chromium.launch();34 const context = await browser.newContext();35 const page = await context.newPage();36 const elementHandle = await page.$('text=Get started');37 const box = await elementHandle.boundingBox();38 console.log(box);39 await browser.close();40})();41const { chromium } = require('playwright');42(async () => {43 const browser = await chromium.launch();44 const context = await browser.newContext();45 const page = await context.newPage();46 const elementHandle = await page.$('text=Get started');47 const box = await elementHandle.boundingBox();48 console.log(box);49 await browser.close();50})();51const { chromium } = require('

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 const dimensions = await page.evaluate(() => {7 return {8 };9 });10 console.log('Dimensions:', dimensions);11 await browser.close();12})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright-chromium');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 const size = await page.evaluate(() => {7 return {8 };9 });10 console.log(size);11 await browser.close();12})();13const { chromium } = require('playwright-chromium');14(async () => {15 const browser = await chromium.launch();16 const context = await browser.newContext();17 const page = await context.newPage();18 const size = await page.evaluate(() => {19 return {20 };21 });22 console.log(size);23 await browser.close();24})();25const { chromium } = require('playwright-chromium');26(async () => {27 const browser = await chromium.launch();28 const context = await browser.newContext();29 const page = await context.newPage();30 const size = await page.evaluate(() => {31 return {32 };33 });34 console.log(size);35 await browser.close();36})();37const { chromium } = require('playwright-chromium');38(async () => {39 const browser = await chromium.launch();40 const context = await browser.newContext();41 const page = await context.newPage();42 const size = await page.evaluate(() => {43 return {44 };45 });46 console.log(size);47 await browser.close();48})();49const { chromium } = require

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 const title = await page.title();7 console.log(title);8 await page.screenshot({ path: 'google.png' });9 await browser.close();10})();11const { chromium } = require('playwright');12(async () => {13 const browser = await chromium.launch();14 const context = await browser.newContext();15 const page = await context.newPage();16 const title = await page.title();17 console.log(title);18 await page.screenshot({ path: 'google.png' });19 await browser.close();20})();21const { chromium } = require('playwright');22(async () => {23 const browser = await chromium.launch();24 const context = await browser.newContext();25 const page = await context.newPage();26 const title = await page.title();27 console.log(title);28 await page.screenshot({ path: 'google.png' });29 await browser.close();30})();31const { chromium } = require('playwright');32(async () => {33 const browser = await chromium.launch();34 const context = await browser.newContext();35 const page = await context.newPage();36 const title = await page.title();37 console.log(title);38 await page.screenshot({ path: 'google.png' });39 await browser.close();40})();41const { chromium } = require('playwright');42(async () => {43 const browser = await chromium.launch();44 const context = await browser.newContext();45 const page = await context.newPage();46 const title = await page.title();47 console.log(title);48 await page.screenshot({ path: 'google.png' });49 await browser.close();50})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 const size = await page.size();6 console.log('Page size: ' + size);7 await browser.close();8})();9 at processTicksAndRejections (internal/process/task_queues.js:93:5)10const { chromium } = require('playwright');11(async () => {12 const browser = await chromium.launch();13 const page = await browser.newPage();14 const size = await page.viewportSize();15 console.log('Page size: ' + size);16 await browser.close();17})();18 at Object.dispatch (C:\Users\user\Documents\Playwright\PlaywrightTest\node_modules\playwright\lib\dispatchers\dispatcher.js:116:27

Full Screen

Using AI Code Generation

copy

Full Screen

1import { chromium } from 'playwright';2(async () => {3const browser = await chromium.launch();4const context = await browser.newContext();5const page = await context.newPage();6await page.screenshot({ path: 'google.png' });7await browser.close();8})();9import { chromium } from 'playwright';10(async () => {11const browser = await chromium.launch();12const context = await browser.newContext();13const page = await context.newPage();14await page.screenshot({ path: 'google.png' });15await browser.close();16})();17import { chromium } from 'playwright';18(async () => {19const browser = await chromium.launch();20const context = await browser.newContext();21const page = await context.newPage();22await page.screenshot({ path: 'google.png' });23await browser.close();24})();25import { chromium } from 'playwright';26(async () => {27const browser = await chromium.launch();28const context = await browser.newContext();29const page = await context.newPage();30await page.screenshot({ path: 'google.png' });31await browser.close();32})();33import { chromium } from 'playwright';34(async () => {35const browser = await chromium.launch();36const context = await browser.newContext();37const page = await context.newPage();38await page.screenshot({ path: 'google.png' });39await browser.close();40})();41import { chromium } from 'playwright';42(async () => {43const browser = await chromium.launch();44const context = await browser.newContext();45const page = await context.newPage();46await page.screenshot({ path: 'google.png' });47await browser.close();48})();49import { chromium } from 'playwright';

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 const elementHandle = await page.$('text=Docs');6 const size = await elementHandle.evaluate(element => {7 return {8 };9 });10 console.log(size);11 await browser.close();12})();13{ width: 40, height: 14 }

Full Screen

Using AI Code Generation

copy

Full Screen

1const { Playwright } = require('playwright');2const { size } = Playwright;3console.log(size);4const { Playwright } = require('playwright');5const { size } = Playwright;6console.log(size);7const { Playwright } = require('playwright');8const { size } = Playwright;9console.log(size);10const { Playwright } = require('playwright');11const { size } = Playwright;12console.log(size);13const { Playwright } = require('playwright');14const { size } = Playwright;15console.log(size);16const { Playwright } = require('playwright');17const { size } = Playwright;18console.log(size);19const { Playwright } = require('playwright');20const { size } = Playwright;21console.log(size);22const { Playwright } = require('playwright');23const { size } = Playwright;24console.log(size);25const { Playwright } = require('playwright');26const { size } = Playwright;27console.log(size);28const { Playwright } = require('playwright');29const { size } = Playwright;30console.log(size);31const { Playwright } = require('playwright');32const { size } = Playwright;33console.log(size);34const { Playwright } = require('playwright');35const { size } = Playwright;36console.log(size);37const { Playwright }

Full Screen

Using AI Code Generation

copy

Full Screen

1const { Internal } = require('playwright');2const internal = new Internal();3const { size } = internal;4console.log(size({ width: 100, height: 100 }));5const { size } = require('playwright');6console.log(size({ width: 100, height: 100 }));7{ width: 100, height: 100 }8{ width: 100, height: 100, scale: 1 }9const { size } = require('./utils/geometry');10class Internal {11 get size() {12 return size;13 }14}15const size = ({ width, height }) => ({ width, height, scale: 1 });16module.exports = {17};18I have created a pull request for this issue. Please have a look at it. [#7179](

Full Screen

Playwright tutorial

LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.

Chapters:

  1. What is Playwright : Playwright is comparatively new but has gained good popularity. Get to know some history of the Playwright with some interesting facts connected with it.
  2. How To Install Playwright : Learn in detail about what basic configuration and dependencies are required for installing Playwright and run a test. Get a step-by-step direction for installing the Playwright automation framework.
  3. Playwright Futuristic Features: Launched in 2020, Playwright gained huge popularity quickly because of some obliging features such as Playwright Test Generator and Inspector, Playwright Reporter, Playwright auto-waiting mechanism and etc. Read up on those features to master Playwright testing.
  4. What is Component Testing: Component testing in Playwright is a unique feature that allows a tester to test a single component of a web application without integrating them with other elements. Learn how to perform Component testing on the Playwright automation framework.
  5. Inputs And Buttons In Playwright: Every website has Input boxes and buttons; learn about testing inputs and buttons with different scenarios and examples.
  6. Functions and Selectors in Playwright: Learn how to launch the Chromium browser with Playwright. Also, gain a better understanding of some important functions like “BrowserContext,” which allows you to run multiple browser sessions, and “newPage” which interacts with a page.
  7. Handling Alerts and Dropdowns in Playwright : Playwright interact with different types of alerts and pop-ups, such as simple, confirmation, and prompt, and different types of dropdowns, such as single selector and multi-selector get your hands-on with handling alerts and dropdown in Playright testing.
  8. Playwright vs Puppeteer: Get to know about the difference between two testing frameworks and how they are different than one another, which browsers they support, and what features they provide.
  9. Run Playwright Tests on LambdaTest: Playwright testing with LambdaTest leverages test performance to the utmost. You can run multiple Playwright tests in Parallel with the LammbdaTest test cloud. Get a step-by-step guide to run your Playwright test on the LambdaTest platform.
  10. Playwright Python Tutorial: Playwright automation framework support all major languages such as Python, JavaScript, TypeScript, .NET and etc. However, there are various advantages to Python end-to-end testing with Playwright because of its versatile utility. Get the hang of Playwright python testing with this chapter.
  11. Playwright End To End Testing Tutorial: Get your hands on with Playwright end-to-end testing and learn to use some exciting features such as TraceViewer, Debugging, Networking, Component testing, Visual testing, and many more.
  12. Playwright Video Tutorial: Watch the video tutorials on Playwright testing from experts and get a consecutive in-depth explanation of Playwright automation testing.

Run Playwright Internal automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful