UNPKG

ol

Version:

OpenLayers mapping library

81 lines (72 loc) 2.51 kB
/** * @module ol/geom/flat/deflate */ /** * @param {Array<number>} flatCoordinates Flat coordinates. * @param {number} offset Offset. * @param {import("../../coordinate.js").Coordinate} coordinate Coordinate. * @param {number} stride Stride. * @return {number} offset Offset. */ export function deflateCoordinate(flatCoordinates, offset, coordinate, stride) { for (let i = 0, ii = coordinate.length; i < ii; ++i) { flatCoordinates[offset++] = coordinate[i]; } return offset; } /** * @param {Array<number>} flatCoordinates Flat coordinates. * @param {number} offset Offset. * @param {Array<import("../../coordinate.js").Coordinate>} coordinates Coordinates. * @param {number} stride Stride. * @return {number} offset Offset. */ export function deflateCoordinates(flatCoordinates, offset, coordinates, stride) { for (let i = 0, ii = coordinates.length; i < ii; ++i) { const coordinate = coordinates[i]; for (let j = 0; j < stride; ++j) { flatCoordinates[offset++] = coordinate[j]; } } return offset; } /** * @param {Array<number>} flatCoordinates Flat coordinates. * @param {number} offset Offset. * @param {Array<Array<import("../../coordinate.js").Coordinate>>} coordinatess Coordinatess. * @param {number} stride Stride. * @param {Array<number>=} opt_ends Ends. * @return {Array<number>} Ends. */ export function deflateCoordinatesArray(flatCoordinates, offset, coordinatess, stride, opt_ends) { const ends = opt_ends ? opt_ends : []; let i = 0; for (let j = 0, jj = coordinatess.length; j < jj; ++j) { const end = deflateCoordinates( flatCoordinates, offset, coordinatess[j], stride); ends[i++] = end; offset = end; } ends.length = i; return ends; } /** * @param {Array<number>} flatCoordinates Flat coordinates. * @param {number} offset Offset. * @param {Array<Array<Array<import("../../coordinate.js").Coordinate>>>} coordinatesss Coordinatesss. * @param {number} stride Stride. * @param {Array<Array<number>>=} opt_endss Endss. * @return {Array<Array<number>>} Endss. */ export function deflateMultiCoordinatesArray(flatCoordinates, offset, coordinatesss, stride, opt_endss) { const endss = opt_endss ? opt_endss : []; let i = 0; for (let j = 0, jj = coordinatesss.length; j < jj; ++j) { const ends = deflateCoordinatesArray( flatCoordinates, offset, coordinatesss[j], stride, endss[i]); endss[i++] = ends; offset = ends[ends.length - 1]; } endss.length = i; return endss; }