From a390354e9a02816f9598eacbf2bb49c28176211f Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 6 Mar 2013 11:26:58 -0500 Subject: move point stuff into point.js --- public/js/point.js | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 public/js/point.js (limited to 'public/js/point.js') diff --git a/public/js/point.js b/public/js/point.js new file mode 100644 index 0000000..525392b --- /dev/null +++ b/public/js/point.js @@ -0,0 +1,60 @@ +function Point(e, offset) { + if (typeof e == "number" && typeof offset == "number") { + this.x = e; + this.y = offset; + } + else if (! e) { + this.x = 0; + this.y = 0; + } + else if ('x' in e && 'y' in e) { + this.x = e.x; + this.y = e.y; + } + else if ('pageX' in e && 'pageX' in e) { + this.x = e.pageX; + this.y = e.pageY; + } + if (typeof offset == "object") { + this.subtract({ + x: offset.left, + y: offset.top + }); + } +} +Point.prototype.add = function(p) { + this.x += p.x; + this.y += p.y; + return this; +} +Point.prototype.subtract = function(p) { + this.x -= p.x; + this.y -= p.y; + return this; +} +Point.prototype.quantize = function(x, y) { + this.x = Math.floor( this.x / x ) * x; + this.y = Math.floor( this.y / y ) * y; + return this; +} +Point.prototype.scale = function(x, y) { + this.x *= x; + this.y *= y; + return this; +} +Point.prototype.floor = function(){ + this.x = Math.floor(this.x); + this.y = Math.floor(this.y); + return this; +} +Point.prototype.ceil = function(){ + this.x = Math.ceil(this.x); + this.y = Math.ceil(this.y); + return this; +} +Point.prototype.round = function(){ + this.x = Math.round(this.x); + this.y = Math.round(this.y); + return this; +} + -- cgit v1.2.3-70-g09d2