package.geom.flat.deflate.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ol Show documentation
Show all versions of ol Show documentation
OpenLayers mapping library
The newest version!
/**
* @module ol/geom/flat/deflate
*/
/**
* @param {Array} 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} flatCoordinates Flat coordinates.
* @param {number} offset Offset.
* @param {Array} 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} flatCoordinates Flat coordinates.
* @param {number} offset Offset.
* @param {Array>} coordinatess Coordinatess.
* @param {number} stride Stride.
* @param {Array} [ends] Ends.
* @return {Array} 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} flatCoordinates Flat coordinates.
* @param {number} offset Offset.
* @param {Array>>} coordinatesss Coordinatesss.
* @param {number} stride Stride.
* @param {Array>} [endss] Endss.
* @return {Array>} 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;
}