aboutsummaryrefslogtreecommitdiffstats
path: root/extlib/leaflet/src/geometry/Bounds.js
diff options
context:
space:
mode:
Diffstat (limited to 'extlib/leaflet/src/geometry/Bounds.js')
-rw-r--r--extlib/leaflet/src/geometry/Bounds.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/extlib/leaflet/src/geometry/Bounds.js b/extlib/leaflet/src/geometry/Bounds.js
new file mode 100644
index 00000000..73448ceb
--- /dev/null
+++ b/extlib/leaflet/src/geometry/Bounds.js
@@ -0,0 +1,48 @@
+/*
+ * L.Bounds represents a rectangular area on the screen in pixel coordinates.
+ */
+
+L.Bounds = L.Class.extend({
+ initialize: function(min, max) { //(Point, Point) or Point[]
+ if (!min) return;
+ var points = (min instanceof Array ? min : [min, max]);
+ for (var i = 0, len = points.length; i < len; i++) {
+ this.extend(points[i]);
+ }
+ },
+
+ // extend the bounds to contain the given point
+ extend: function(/*Point*/ point) {
+ if (!this.min && !this.max) {
+ this.min = new L.Point(point.x, point.y);
+ this.max = new L.Point(point.x, point.y);
+ } else {
+ this.min.x = Math.min(point.x, this.min.x);
+ this.max.x = Math.max(point.x, this.max.x);
+ this.min.y = Math.min(point.y, this.min.y);
+ this.max.y = Math.max(point.y, this.max.y);
+ }
+ },
+
+ getCenter: function(round)/*->Point*/ {
+ return new L.Point(
+ (this.min.x + this.max.x) / 2,
+ (this.min.y + this.max.y) / 2, round);
+ },
+
+ contains: function(/*Bounds or Point*/ obj)/*->Boolean*/ {
+ var min, max;
+
+ if (obj instanceof L.Bounds) {
+ min = obj.min;
+ max = obj.max;
+ } else {
+ max = max = obj;
+ }
+
+ return (min.x >= this.min.x) &&
+ (max.x <= this.max.x) &&
+ (min.y >= this.min.y) &&
+ (max.y <= this.max.y);
+ }
+}); \ No newline at end of file