diff options
author | Joar Wandborg <git@wandborg.com> | 2012-01-28 18:47:01 +0100 |
---|---|---|
committer | Joar Wandborg <git@wandborg.com> | 2012-01-28 18:47:01 +0100 |
commit | 3d0d3bc97270095fae5f9a2508068631c46a5e61 (patch) | |
tree | 76778fcacaae35fc5662f276dab512a07bcee186 /extlib/leaflet/src/geometry/Point.js | |
parent | d7bec8577ea1b4d83df097f586324445fed1ef50 (diff) | |
parent | 9542a2ba076b7e00e79d7adb1a4e90a095427645 (diff) | |
download | mediagoblin-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.js | 66 |
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 |