Rename defaultSort to numberSafeCompareFunction on ol.array

This commit is contained in:
Bart van den Eijnden
2015-12-16 13:40:05 +01:00
parent 88255fd776
commit 25e0053a13
10 changed files with 14 additions and 15 deletions

View File

@@ -38,13 +38,13 @@ ol.array.binaryFindNearest = function(arr, target) {
/** /**
* Default compare for array sort, will make sure number sort works okay. * Compare function for array sort that is safe for numbers.
* @param {*} a The first object to be compared. * @param {*} a The first object to be compared.
* @param {*} b The second object to be compared. * @param {*} b The second object to be compared.
* @return {number} A negative number, zero, or a positive number as the first * @return {number} A negative number, zero, or a positive number as the first
* argument is less than, equal to, or greater than the second. * argument is less than, equal to, or greater than the second.
*/ */
ol.array.defaultCompare = function(a, b) { ol.array.numberSafeCompareFunction = function(a, b) {
return a > b ? 1 : a < b ? -1 : 0; return a > b ? 1 : a < b ? -1 : 0;
}; };

View File

@@ -41,7 +41,7 @@ ol.geom.flat.interiorpoint.linearRings = function(flatCoordinates, offset,
// inside the linear ring. // inside the linear ring.
var pointX = NaN; var pointX = NaN;
var maxSegmentLength = -Infinity; var maxSegmentLength = -Infinity;
intersections.sort(ol.array.defaultCompare); intersections.sort(ol.array.numberSafeCompareFunction);
x1 = intersections[0]; x1 = intersections[0];
for (i = 1, ii = intersections.length; i < ii; ++i) { for (i = 1, ii = intersections.length; i < ii; ++i) {
x2 = intersections[i]; x2 = intersections[i];

View File

@@ -722,7 +722,7 @@ ol.render.canvas.Immediate.prototype.drawText = goog.abstractMethod;
ol.render.canvas.Immediate.prototype.flush = function() { ol.render.canvas.Immediate.prototype.flush = function() {
/** @type {Array.<number>} */ /** @type {Array.<number>} */
var zs = Object.keys(this.callbacksByZIndex_).map(Number); var zs = Object.keys(this.callbacksByZIndex_).map(Number);
zs.sort(ol.array.defaultCompare); zs.sort(ol.array.numberSafeCompareFunction);
var i, ii, callbacks, j, jj; var i, ii, callbacks, j, jj;
for (i = 0, ii = zs.length; i < ii; ++i) { for (i = 0, ii = zs.length; i < ii; ++i) {
callbacks = this.callbacksByZIndex_[zs[i].toString()]; callbacks = this.callbacksByZIndex_[zs[i].toString()];

View File

@@ -2001,7 +2001,7 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(
/** @type {Array.<number>} */ /** @type {Array.<number>} */
var zs = Object.keys(this.replaysByZIndex_).map(Number); var zs = Object.keys(this.replaysByZIndex_).map(Number);
zs.sort(ol.array.defaultCompare); zs.sort(ol.array.numberSafeCompareFunction);
// setup clipping so that the parts of over-simplified geometries are not // setup clipping so that the parts of over-simplified geometries are not
// visible outside the current extent when panning // visible outside the current extent when panning

View File

@@ -80,7 +80,7 @@ goog.inherits(ol.render.webgl.Immediate, ol.render.VectorContext);
ol.render.webgl.Immediate.prototype.flush = function() { ol.render.webgl.Immediate.prototype.flush = function() {
/** @type {Array.<number>} */ /** @type {Array.<number>} */
var zs = Object.keys(this.callbacksByZIndex_).map(Number); var zs = Object.keys(this.callbacksByZIndex_).map(Number);
zs.sort(ol.array.defaultCompare); zs.sort(ol.array.numberSafeCompareFunction);
var i, ii, callbacks, j, jj; var i, ii, callbacks, j, jj;
for (i = 0, ii = zs.length; i < ii; ++i) { for (i = 0, ii = zs.length; i < ii; ++i) {
callbacks = this.callbacksByZIndex_[zs[i].toString()]; callbacks = this.callbacksByZIndex_[zs[i].toString()];

View File

@@ -365,7 +365,7 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame =
/** @type {Array.<number>} */ /** @type {Array.<number>} */
var zs = Object.keys(tilesToDrawByZ).map(Number); var zs = Object.keys(tilesToDrawByZ).map(Number);
zs.sort(ol.array.defaultCompare); zs.sort(ol.array.numberSafeCompareFunction);
var opaque = tileSource.getOpaque(); var opaque = tileSource.getOpaque();
var origin = ol.extent.getTopLeft(tileGrid.getTileCoordExtent( var origin = ol.extent.getTopLeft(tileGrid.getTileCoordExtent(
[z, canvasTileRange.minX, canvasTileRange.maxY], [z, canvasTileRange.minX, canvasTileRange.maxY],

View File

@@ -406,7 +406,7 @@ ol.renderer.canvas.VectorTileLayer.prototype.prepareFrame =
/** @type {Array.<number>} */ /** @type {Array.<number>} */
var zs = Object.keys(tilesToDrawByZ).map(Number); var zs = Object.keys(tilesToDrawByZ).map(Number);
zs.sort(ol.array.defaultCompare); zs.sort(ol.array.numberSafeCompareFunction);
var replayables = []; var replayables = [];
var i, ii, currentZ, tileCoordKey, tilesToDraw; var i, ii, currentZ, tileCoordKey, tilesToDraw;
for (i = 0, ii = zs.length; i < ii; ++i) { for (i = 0, ii = zs.length; i < ii; ++i) {

View File

@@ -178,7 +178,7 @@ ol.renderer.dom.TileLayer.prototype.prepareFrame =
/** @type {Array.<number>} */ /** @type {Array.<number>} */
var zs = Object.keys(tilesToDrawByZ).map(Number); var zs = Object.keys(tilesToDrawByZ).map(Number);
zs.sort(ol.array.defaultCompare); zs.sort(ol.array.numberSafeCompareFunction);
/** @type {Object.<number, boolean>} */ /** @type {Object.<number, boolean>} */
var newTileLayerZKeys = {}; var newTileLayerZKeys = {};
@@ -204,7 +204,7 @@ ol.renderer.dom.TileLayer.prototype.prepareFrame =
/** @type {Array.<number>} */ /** @type {Array.<number>} */
var tileLayerZKeys = Object.keys(this.tileLayerZs_).map(Number); var tileLayerZKeys = Object.keys(this.tileLayerZs_).map(Number);
tileLayerZKeys.sort(ol.array.defaultCompare); tileLayerZKeys.sort(ol.array.numberSafeCompareFunction);
var i, ii, j, origin, resolution; var i, ii, j, origin, resolution;
var transform = goog.vec.Mat4.createNumber(); var transform = goog.vec.Mat4.createNumber();

View File

@@ -297,7 +297,7 @@ ol.renderer.webgl.TileLayer.prototype.prepareFrame =
/** @type {Array.<number>} */ /** @type {Array.<number>} */
var zs = Object.keys(tilesToDrawByZ).map(Number); var zs = Object.keys(tilesToDrawByZ).map(Number);
zs.sort(ol.array.defaultCompare); zs.sort(ol.array.numberSafeCompareFunction);
var u_tileOffset = goog.vec.Vec4.createFloat32(); var u_tileOffset = goog.vec.Vec4.createFloat32();
var i, ii, sx, sy, tileKey, tilesToDraw, tx, ty; var i, ii, sx, sy, tileKey, tilesToDraw, tx, ty;
for (i = 0, ii = zs.length; i < ii; ++i) { for (i = 0, ii = zs.length; i < ii; ++i) {

View File

@@ -2,13 +2,12 @@ goog.provide('ol.test.array');
describe('ol.array', function() { describe('ol.array', function() {
describe('defaultCompare', function() { describe('numberSafeCompareFunction', function() {
it('sorts as expected', function() { it('sorts as expected', function() {
var arr = [40, 200, 3000]; var arr = [40, 200, 3000];
var expected = [40, 200, 3000];
// default sort would yield [200, 3000, 40] // default sort would yield [200, 3000, 40]
arr.sort(ol.array.defaultCompare); arr.sort(ol.array.numberSafeCompareFunction);
expect(arr).to.eql(expected); expect(arr).to.eql(arr);
}); });
}); });