diff options
| author | Jules Laplace <jules@okfoc.us> | 2013-03-06 11:26:58 -0500 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2013-03-06 11:26:58 -0500 |
| commit | a390354e9a02816f9598eacbf2bb49c28176211f (patch) | |
| tree | 7d0ff5be65d55875c03505a18cb6a8923101e2e9 /public/js/point.js | |
| parent | 9128ec77b581608635174f1ff46e3bfaea8c19d2 (diff) | |
move point stuff into point.js
Diffstat (limited to 'public/js/point.js')
| -rw-r--r-- | public/js/point.js | 60 |
1 files changed, 60 insertions, 0 deletions
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; +} + |
