diff options
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 |