From 35a6cac37f9486c3500576b3e0a197458285a6d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Mon, 28 Jan 2013 12:25:04 +0100 Subject: [PATCH] Add containsExtent to ol.Extent --- src/ol/extent.js | 18 ++++++++- test/spec/ol/extent.test.js | 77 ++++++++++++++++++++++++------------- 2 files changed, 67 insertions(+), 28 deletions(-) diff --git a/src/ol/extent.js b/src/ol/extent.js index 3d0ab215d6..3606dfc63c 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -46,17 +46,31 @@ ol.Extent.boundingExtent = function(var_args) { /** - * Checks if the given coordinate is contained or on the edge of the extent. + * Checks if the passed coordinate is contained or on the edge + * of the extent. * * @param {ol.Coordinate} coordinate Coordinate. * @return {boolean} Contains. */ -ol.Extent.prototype.contains = function(coordinate) { +ol.Extent.prototype.containsCoordinate = function(coordinate) { return this.minX <= coordinate.x && coordinate.x <= this.maxX && this.minY <= coordinate.y && coordinate.y <= this.maxY; }; +/** + * Checks if the passed extent is contained or on the edge of the + * extent. + * + * @param {ol.Extent} extent Extent. + * @return {boolean} Contains. + */ +ol.Extent.prototype.containsExtent = function(extent) { + return this.minX <= extent.minX && extent.maxX <= this.maxX && + this.minY <= extent.minY && extent.maxY <= this.maxY; +}; + + /** * @return {ol.Coordinate} Bottom left coordinate. */ diff --git a/test/spec/ol/extent.test.js b/test/spec/ol/extent.test.js index 2a2d98e9f3..de00b63e18 100644 --- a/test/spec/ol/extent.test.js +++ b/test/spec/ol/extent.test.js @@ -2,42 +2,67 @@ goog.provide('ol.test.Extent'); describe('ol.Extent', function() { - describe('contains', function() { + describe('containsCoordinate', function() { describe('positive', function() { it('returns true', function() { var extent = new ol.Extent(1, 2, 3, 4); - expect(extent.contains(new ol.Coordinate(1, 2))).toBeTruthy(); - expect(extent.contains(new ol.Coordinate(1, 3))).toBeTruthy(); - expect(extent.contains(new ol.Coordinate(1, 4))).toBeTruthy(); - expect(extent.contains(new ol.Coordinate(2, 2))).toBeTruthy(); - expect(extent.contains(new ol.Coordinate(2, 3))).toBeTruthy(); - expect(extent.contains(new ol.Coordinate(2, 4))).toBeTruthy(); - expect(extent.contains(new ol.Coordinate(3, 2))).toBeTruthy(); - expect(extent.contains(new ol.Coordinate(3, 3))).toBeTruthy(); - expect(extent.contains(new ol.Coordinate(3, 4))).toBeTruthy(); + expect(extent.containsCoordinate( + new ol.Coordinate(1, 2))).toBeTruthy(); + expect(extent.containsCoordinate( + new ol.Coordinate(1, 3))).toBeTruthy(); + expect(extent.containsCoordinate( + new ol.Coordinate(1, 4))).toBeTruthy(); + expect(extent.containsCoordinate( + new ol.Coordinate(2, 2))).toBeTruthy(); + expect(extent.containsCoordinate( + new ol.Coordinate(2, 3))).toBeTruthy(); + expect(extent.containsCoordinate( + new ol.Coordinate(2, 4))).toBeTruthy(); + expect(extent.containsCoordinate( + new ol.Coordinate(3, 2))).toBeTruthy(); + expect(extent.containsCoordinate( + new ol.Coordinate(3, 3))).toBeTruthy(); + expect(extent.containsCoordinate( + new ol.Coordinate(3, 4))).toBeTruthy(); }); }); describe('negative', function() { it('returns false', function() { var extent = new ol.Extent(1, 2, 3, 4); - expect(extent.contains(new ol.Coordinate(0, 1))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(0, 2))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(0, 3))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(0, 4))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(0, 5))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(1, 1))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(1, 5))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(2, 1))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(2, 5))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(3, 1))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(3, 5))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(4, 1))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(4, 2))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(4, 3))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(4, 4))).toBeFalsy(); - expect(extent.contains(new ol.Coordinate(4, 5))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(0, 1))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(0, 2))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(0, 3))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(0, 4))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(0, 5))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(1, 1))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(1, 5))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(2, 1))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(2, 5))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(3, 1))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(3, 5))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(4, 1))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(4, 2))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(4, 3))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(4, 4))).toBeFalsy(); + expect(extent.containsCoordinate( + new ol.Coordinate(4, 5))).toBeFalsy(); }); }); });