UNPKG

closure-builder

Version:

Simple Closure, Soy and JavaScript Build system

106 lines (87 loc) 2.59 kB
<!DOCTYPE HTML> <html> <!-- Copyright 2007 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <head> <title>The SVG tiger drawn with goog.graphics</title> <script type="text/javascript" src="../../base.js"></script> <script type="text/javascript"> goog.require('goog.dom'); goog.require('goog.graphics'); </script> <script src="tigerdata.js"></script> <script type="text/javascript"> function drawTiger() { var graphics = goog.graphics.createGraphics(600, 600); var fills = {}; var strokes = {}; var segmentFunctions = { 'z': goog.graphics.Path.prototype.close, 'M': goog.graphics.Path.prototype.moveTo, 'L': goog.graphics.Path.prototype.lineTo, 'C': goog.graphics.Path.prototype.curveTo }; function createPath(stroke, fill, paths) { var fillObject; if (fill == null) { fillObject = null; } else if (fill in fills) { fillObject = fills[fill]; } else { fillObject = new goog.graphics.SolidFill(fill); fills[fill] = fillObject; } var strokeObject; if (stroke == null) { strokeObject = null; } else { var strokeKey; if (typeof stroke == 'string') { strokeKey = stroke; } else { strokeKey = stroke.c + stroke.w; } if (strokeKey in strokes) { strokeObject = strokes[strokeKey]; } else if (typeof stroke == 'string') { strokeObject = null; } else { strokeObject = new goog.graphics.Stroke(stroke.w, stroke.c); } } strokes[strokeKey] = strokeObject; var pathObject = graphics.createPath(); for (var i = 0, path; path = paths[i]; i++) { segmentFunctions[path.t].apply(pathObject, path.p); } graphics.drawPath(pathObject, strokeObject, fillObject); } var d0 = new Date; for (var i = 0; i < tigerData.length; i++) { var d = tigerData[i]; createPath(d.s, d.f, d.p); } graphics.render(goog.dom.getElement('tiger-container')); var d1 = new Date; goog.dom.setTextContent(goog.dom.getElement('out'), 'Creating took: ' + (d1 - d0)); window.setTimeout(function() { var d2 = new Date; goog.dom.setTextContent(goog.dom.getElement('out-2'), 'Drawing took: ' + (d2 - d1)); }, 1); } </script> </head> <body> <div id="tiger-container" style='border:1px solid black;width:600px;height:600px'></div> <div id="out"></div> <div id="out-2"></div> <script> drawTiger(); </script> </body> </html>