corrade-nucleus-nucleons

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 35  →  ?path2? @ 36
/compass/005_compass/compass/node_modules/gm/lib/drawing.js
@@ -0,0 +1,160 @@
 
/**
* Module dependencies.
*/
 
var escape = require('./utils').escape;
 
/**
* Extend proto.
*/
 
module.exports = function (proto) {
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-fill
proto.fill = function fill (color) {
return this.out("-fill", color || "none");
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-stroke
proto.stroke = function stroke (color, width) {
if (width) {
this.strokeWidth(width);
}
 
return this.out("-stroke", color || "none");
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-strokewidth
proto.strokeWidth = function strokeWidth (width) {
return this.out("-strokewidth", width);
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-font
proto.font = function font (font, size) {
if (size) {
this.fontSize(size);
}
 
return this.out("-font", font);
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html
proto.fontSize = function fontSize (size) {
return this.out("-pointsize", size);
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-draw
proto.draw = function draw (args) {
return this.out("-draw", [].slice.call(arguments).join(" "));
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-draw
proto.drawPoint = function drawPoint (x, y) {
return this.draw("point", x +","+ y);
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-draw
proto.drawLine = function drawLine (x0, y0, x1, y1) {
return this.draw("line", x0+","+y0, x1+","+y1);
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-draw
proto.drawRectangle = function drawRectangle (x0, y0, x1, y1, wc, hc) {
var shape = "rectangle"
, lastarg;
 
if ("undefined" !== typeof wc) {
shape = "roundRectangle";
 
if ("undefined" === typeof hc) {
hc = wc;
}
 
lastarg = wc+","+hc;
}
 
return this.draw(shape, x0+","+y0, x1+","+y1, lastarg);
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-draw
proto.drawArc = function drawArc (x0, y0, x1, y1, a0, a1) {
return this.draw("arc", x0+","+y0, x1+","+y1, a0+","+a1);
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-draw
proto.drawEllipse = function drawEllipse (x0, y0, rx, ry, a0, a1) {
if (a0 == undefined) a0 = 0;
if (a1 == undefined) a1 = 360;
return this.draw("ellipse", x0+","+y0, rx+","+ry, a0+","+a1);
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-draw
proto.drawCircle = function drawCircle (x0, y0, x1, y1) {
return this.draw("circle", x0+","+y0, x1+","+y1);
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-draw
proto.drawPolyline = function drawPolyline () {
return this.draw("polyline", formatPoints(arguments));
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-draw
proto.drawPolygon = function drawPolygon () {
return this.draw("polygon", formatPoints(arguments));
}
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-draw
proto.drawBezier = function drawBezier () {
return this.draw("bezier", formatPoints(arguments));
}
 
proto._gravities = [
"northwest"
, "north"
, "northeast"
, "west"
, "center"
, "east"
, "southwest"
, "south"
, "southeast"];
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-draw
proto.drawText = function drawText (x0, y0, text, gravity) {
var gravity = String(gravity || "").toLowerCase()
, arg = ["text " + x0 + "," + y0 + " " + escape(text)];
 
if (~this._gravities.indexOf(gravity)) {
arg.unshift("gravity", gravity);
}
 
return this.draw.apply(this, arg);
}
 
proto._drawProps = ["color", "matte"];
 
// http://www.graphicsmagick.org/GraphicsMagick.html#details-draw
proto.setDraw = function setDraw (prop, x, y, method) {
prop = String(prop || "").toLowerCase();
 
if (!~this._drawProps.indexOf(prop)) {
return this;
}
 
return this.draw(prop, x+","+y, method);
}
 
}
 
function formatPoints (points) {
var len = points.length
, result = []
, i = 0;
 
for (; i < len; ++i) {
result.push(points[i].join(","));
}
 
return result;
}