UNPKG

ol

Version:

OpenLayers mapping library

106 lines (101 loc) 2.61 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>} [ends] Ends. * @return {Array<number>} Ends. */ export function deflateCoordinatesArray( flatCoordinates, offset, coordinatess, stride, ends, ) { ends = ends ? 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>>} [endss] Endss. * @return {Array<Array<number>>} Endss. */ export function deflateMultiCoordinatesArray( flatCoordinates, offset, coordinatesss, stride, endss, ) { endss = endss ? endss : []; let i = 0; for (let j = 0, jj = coordinatesss.length; j < jj; ++j) { const ends = deflateCoordinatesArray( flatCoordinates, offset, coordinatesss[j], stride, endss[i], ); if (ends.length === 0) { ends[0] = offset; } endss[i++] = ends; offset = ends[ends.length - 1]; } endss.length = i; return endss; }