Make ol.extent.buffer return an extent instead of mutating

This commit is contained in:
Tom Payne
2014-01-08 23:07:10 +01:00
parent bcf38b1b21
commit 784f3500f2
3 changed files with 21 additions and 10 deletions

View File

@@ -51,15 +51,27 @@ ol.extent.boundingExtentXYs_ = function(xs, ys, opt_extent) {
/**
* Increase an extent by the provided value.
* @param {ol.Extent} extent The extent to buffer.
* Return extent increased by the provided value.
* @param {ol.Extent} extent Extent.
* @param {number} value The amount by wich the extent should be buffered.
* @param {ol.Extent=} opt_extent Extent.
* @return {ol.Extent} Extent.
*/
ol.extent.buffer = function(extent, value) {
extent[0] -= value;
extent[1] -= value;
extent[2] += value;
extent[3] += value;
ol.extent.buffer = function(extent, value, opt_extent) {
if (goog.isDef(opt_extent)) {
opt_extent[0] = extent[0] - value;
opt_extent[1] = extent[1] - value;
opt_extent[2] = extent[2] + value;
opt_extent[3] = extent[3] + value;
return opt_extent;
} else {
return [
extent[0] - value,
extent[1] - value,
extent[2] + value,
extent[3] + value
];
}
};

View File

@@ -114,7 +114,7 @@ ol.TileUrlFunction.createFromParamsFunction =
tmpSize[0] = tileSize[0] + (2 * gutter);
tmpSize[1] = tileSize[1] + (2 * gutter);
var extent = tileGrid.getTileCoordExtent(tileCoord, tmpExtent);
ol.extent.buffer(extent, tileResolution * gutter);
ol.extent.buffer(extent, tileResolution * gutter, extent);
return paramsFunction.call(this, baseUrl, params,
extent, tmpSize, projection);
}

View File

@@ -7,8 +7,7 @@ describe('ol.extent', function() {
it('buffers an extent by some value', function() {
var extent = [-10, -20, 10, 20];
ol.extent.buffer(extent, 15);
expect(extent).to.eql([-25, -35, 25, 35]);
expect(ol.extent.buffer(extent, 15)).to.eql([-25, -35, 25, 35]);
});
});