aboutsummaryrefslogtreecommitdiffstats
path: root/extlib/leaflet/src/geometry/Point.js
diff options
context:
space:
mode:
authorJoar Wandborg <git@wandborg.com>2012-01-28 18:47:01 +0100
committerJoar Wandborg <git@wandborg.com>2012-01-28 18:47:01 +0100
commit3d0d3bc97270095fae5f9a2508068631c46a5e61 (patch)
tree76778fcacaae35fc5662f276dab512a07bcee186 /extlib/leaflet/src/geometry/Point.js
parentd7bec8577ea1b4d83df097f586324445fed1ef50 (diff)
parent9542a2ba076b7e00e79d7adb1a4e90a095427645 (diff)
downloadmediagoblin-3d0d3bc97270095fae5f9a2508068631c46a5e61.tar.lz
mediagoblin-3d0d3bc97270095fae5f9a2508068631c46a5e61.tar.xz
mediagoblin-3d0d3bc97270095fae5f9a2508068631c46a5e61.zip
Merge remote-tracking branch 'joar/exif-rebase'
Diffstat (limited to 'extlib/leaflet/src/geometry/Point.js')
-rw-r--r--extlib/leaflet/src/geometry/Point.js66
1 files changed, 66 insertions, 0 deletions
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