diff --git a/lib/utils/math.js b/lib/utils/math.js index ea12c9e..e4f3572 100644 --- a/lib/utils/math.js +++ b/lib/utils/math.js @@ -1,29 +1,31 @@ define(function () { - return { - distance: function distance(a, b) { - return Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2); - }, + var self = {}; - distancePoint: function distancePoint(a, b) { - return Math.sqrt(distance(a, b)); - }, - - distanceLink: function distanceLink(p, a, b) { - /* http://stackoverflow.com/questions/849211 */ - var l2 = distance(a, b); - if (l2 === 0) { - return distance(p, a); - } - var t = ((p.x - a.x) * (b.x - a.x) + (p.y - a.y) * (b.y - a.y)) / l2; - if (t < 0) { - return distance(p, a); - } else if (t > 1) { - return distance(p, b); - } - return distancePoint(p, { - x: a.x + t * (b.x - a.x), - y: a.y + t * (b.y - a.y) - }); - } + self.distance = function distance(a, b) { + return Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2); }; + + self.distancePoint = function distancePoint(a, b) { + return Math.sqrt(self.distance(a, b)); + }; + + self.distanceLink = function distanceLink(p, a, b) { + /* http://stackoverflow.com/questions/849211 */ + var l2 = self.distance(a, b); + if (l2 === 0) { + return self.distance(p, a); + } + var t = ((p.x - a.x) * (b.x - a.x) + (p.y - a.y) * (b.y - a.y)) / l2; + if (t < 0) { + return self.distance(p, a); + } else if (t > 1) { + return self.distance(p, b); + } + return self.distancePoint(p, { + x: a.x + t * (b.x - a.x), + y: a.y + t * (b.y - a.y) + }); + }; + + return self; });