diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 0b20b12f93..14fb98b3a6 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -74,6 +74,76 @@ ol.geom.flat.deflateCoordinatesss = }; +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {number} end End. + * @param {number} stride Stride. + * @param {Array.=} opt_coordinates Coordinates. + * @return {Array.} Coordinates. + */ +ol.geom.flat.inflateCoordinates = + function(flatCoordinates, offset, end, stride, opt_coordinates) { + var coordinates = goog.isDef(opt_coordinates) ? opt_coordinates : []; + var i = 0; + var j; + for (j = offset; j < end; j += stride) { + coordinates[i++] = flatCoordinates.slice(j, j + stride); + } + coordinates.length = i; + return coordinates; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.} ends Ends. + * @param {number} stride Stride. + * @param {Array.>=} opt_coordinatess Coordinatess. + * @return {Array.>} Coordinatess. + */ +ol.geom.flat.inflateCoordinatess = + function(flatCoordinates, offset, ends, stride, opt_coordinatess) { + var coordinatess = goog.isDef(opt_coordinatess) ? opt_coordinatess : []; + var i = 0; + var j, jj; + for (j = 0, jj = ends.length; j < jj; ++j) { + var end = ends[j]; + coordinatess[i++] = ol.geom.flat.inflateCoordinates( + flatCoordinates, offset, end, stride, coordinatess[i]); + offset = end; + } + coordinatess.length = i; + return coordinatess; +}; + + +/** + * @param {Array.} flatCoordinates Flat coordinates. + * @param {number} offset Offset. + * @param {Array.>} endss Endss. + * @param {number} stride Stride. + * @param {Array.>>=} opt_coordinatesss + * Coordinatesss. + * @return {Array.>>} Coordinatesss. + */ +ol.geom.flat.inflateCoordinatesss = + function(flatCoordinates, offset, endss, stride, opt_coordinatesss) { + var coordinatesss = goog.isDef(opt_coordinatesss) ? opt_coordinatesss : []; + var i = 0; + var j, jj; + for (j = 0, jj = endss.length; j < jj; ++j) { + var ends = endss[j]; + coordinatesss[i++] = ol.geom.flat.inflateCoordinatess( + flatCoordinates, offset, ends, stride, coordinatesss[i]); + offset = ends[ends.length - 1]; + } + coordinatesss.length = i; + return coordinatesss; +}; + + /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} stride Stride. diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js index 6a0fa44329..7337ea84ca 100644 --- a/src/ol/geom/geometry.js +++ b/src/ol/geom/geometry.js @@ -374,76 +374,6 @@ ol.geom.flatLinearRingssContainsXY = }; -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {number} end End. - * @param {number} stride Stride. - * @param {Array.=} opt_coordinates Coordinates. - * @return {Array.} Coordinates. - */ -ol.geom.inflateCoordinates = - function(flatCoordinates, offset, end, stride, opt_coordinates) { - var coordinates = goog.isDef(opt_coordinates) ? opt_coordinates : []; - var i = 0; - var j; - for (j = offset; j < end; j += stride) { - coordinates[i++] = flatCoordinates.slice(j, j + stride); - } - coordinates.length = i; - return coordinates; -}; - - -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {Array.} ends Ends. - * @param {number} stride Stride. - * @param {Array.>=} opt_coordinatess Coordinatess. - * @return {Array.>} Coordinatess. - */ -ol.geom.inflateCoordinatess = - function(flatCoordinates, offset, ends, stride, opt_coordinatess) { - var coordinatess = goog.isDef(opt_coordinatess) ? opt_coordinatess : []; - var i = 0; - var j, jj; - for (j = 0, jj = ends.length; j < jj; ++j) { - var end = ends[j]; - coordinatess[i++] = ol.geom.inflateCoordinates( - flatCoordinates, offset, end, stride, coordinatess[i]); - offset = end; - } - coordinatess.length = i; - return coordinatess; -}; - - -/** - * @param {Array.} flatCoordinates Flat coordinates. - * @param {number} offset Offset. - * @param {Array.>} endss Endss. - * @param {number} stride Stride. - * @param {Array.>>=} opt_coordinatesss - * Coordinatesss. - * @return {Array.>>} Coordinatesss. - */ -ol.geom.inflateCoordinatesss = - function(flatCoordinates, offset, endss, stride, opt_coordinatesss) { - var coordinatesss = goog.isDef(opt_coordinatesss) ? opt_coordinatesss : []; - var i = 0; - var j, jj; - for (j = 0, jj = endss.length; j < jj; ++j) { - var ends = endss[j]; - coordinatesss[i++] = ol.geom.inflateCoordinatess( - flatCoordinates, offset, ends, stride, coordinatesss[i]); - offset = ends[ends.length - 1]; - } - coordinatesss.length = i; - return coordinatesss; -}; - - /** * @param {Array.} flatCoordinates Flat coordinates. * @param {number} offset Offset. diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 4341e63644..6fde2a37e7 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -22,7 +22,7 @@ goog.inherits(ol.geom.LineString, ol.geom.Geometry); * @return {ol.geom.RawLineString} Coordinates. */ ol.geom.LineString.prototype.getCoordinates = function() { - return ol.geom.inflateCoordinates( + return ol.geom.flat.inflateCoordinates( this.flatCoordinates, 0, this.flatCoordinates.length, this.stride); }; diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 50259cb6ff..4fe59e2688 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -31,7 +31,7 @@ goog.inherits(ol.geom.MultiLineString, ol.geom.Geometry); * @return {ol.geom.RawMultiLineString} Coordinates. */ ol.geom.MultiLineString.prototype.getCoordinates = function() { - return ol.geom.inflateCoordinatess( + return ol.geom.flat.inflateCoordinatess( this.flatCoordinates, 0, this.ends_, this.stride); }; diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index ce1ac23419..019c203c07 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -22,7 +22,7 @@ goog.inherits(ol.geom.MultiPoint, ol.geom.Geometry); * @return {ol.geom.RawMultiPoint} Coordinates. */ ol.geom.MultiPoint.prototype.getCoordinates = function() { - return ol.geom.inflateCoordinates( + return ol.geom.flat.inflateCoordinates( this.flatCoordinates, 0, this.flatCoordinates.length, this.stride); }; diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 406202c97e..c9e5a68f84 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -40,7 +40,7 @@ ol.geom.MultiPolygon.prototype.containsXY = function(x, y) { * @return {ol.geom.RawMultiPolygon} Coordinates. */ ol.geom.MultiPolygon.prototype.getCoordinates = function() { - return ol.geom.inflateCoordinatesss( + return ol.geom.flat.inflateCoordinatesss( this.flatCoordinates, 0, this.endss_, this.stride); }; diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index f4caa11f16..12ca15dcf2 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -40,7 +40,7 @@ ol.geom.Polygon.prototype.containsXY = function(x, y) { * @return {ol.geom.RawPolygon} Coordinates. */ ol.geom.Polygon.prototype.getCoordinates = function() { - return ol.geom.inflateCoordinatess( + return ol.geom.flat.inflateCoordinatess( this.flatCoordinates, 0, this.ends_, this.stride); }; diff --git a/test/spec/ol/geom/geom.test.js b/test/spec/ol/geom/geom.test.js index c34de4331a..987169e380 100644 --- a/test/spec/ol/geom/geom.test.js +++ b/test/spec/ol/geom/geom.test.js @@ -35,20 +35,20 @@ describe('ol.geom', function() { }); - describe('ol.geom.inflateCoordinates', function() { + describe('ol.geom.flat.inflateCoordinates', function() { it('inflates coordinates', function() { - var coordinates = ol.geom.inflateCoordinates([1, 2, 3, 4], 0, 4, 2); + var coordinates = ol.geom.flat.inflateCoordinates([1, 2, 3, 4], 0, 4, 2); expect(coordinates).to.eql([[1, 2], [3, 4]]); }); }); - describe('ol.geom.inflateCoordinatess', function() { + describe('ol.geom.flat.inflateCoordinatess', function() { it('inflates arrays of coordinates', function() { - var coordinatess = ol.geom.inflateCoordinatess([1, 2, 3, 4, 5, 6, 7, 8], - 0, [4, 8], 2); + var coordinatess = ol.geom.flat.inflateCoordinatess( + [1, 2, 3, 4, 5, 6, 7, 8], 0, [4, 8], 2); expect(coordinatess).to.eql([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]); });