From c5ba5b0456a711d157e317f220e9c739226e7f50 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 10 Jan 2012 01:54:37 +0100 Subject: Installed leaflet in extlib --- extlib/leaflet/src/geometry/Point.js | 66 ++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 extlib/leaflet/src/geometry/Point.js (limited to 'extlib/leaflet/src/geometry/Point.js') diff --git a/extlib/leaflet/src/geometry/Point.js b/extlib/leaflet/src/geometry/Point.js new file mode 100644 index 00000000..d031ffe1 --- /dev/null +++ b/extlib/leaflet/src/geometry/Point.js @@ -0,0 +1,66 @@ +/* + * L.Point represents a point with x and y coordinates. + */ + +L.Point = function(/*Number*/ x, /*Number*/ y, /*Boolean*/ round) { + this.x = (round ? Math.round(x) : x); + this.y = (round ? Math.round(y) : y); +}; + +L.Point.prototype = { + add: function(point) { + return this.clone()._add(point); + }, + + _add: function(point) { + this.x += point.x; + this.y += point.y; + return this; + }, + + subtract: function(point) { + return this.clone()._subtract(point); + }, + + // destructive subtract (faster) + _subtract: function(point) { + this.x -= point.x; + this.y -= point.y; + return this; + }, + + divideBy: function(num, round) { + return new L.Point(this.x/num, this.y/num, round); + }, + + multiplyBy: function(num) { + return new L.Point(this.x * num, this.y * num); + }, + + distanceTo: function(point) { + var x = point.x - this.x, + y = point.y - this.y; + return Math.sqrt(x*x + y*y); + }, + + round: function() { + return this.clone()._round(); + }, + + // destructive round + _round: function() { + this.x = Math.round(this.x); + this.y = Math.round(this.y); + return this; + }, + + clone: function() { + return new L.Point(this.x, this.y); + }, + + toString: function() { + return 'Point(' + + L.Util.formatNum(this.x) + ', ' + + L.Util.formatNum(this.y) + ')'; + } +}; \ No newline at end of file -- cgit v1.2.3