Factor out ol.geom.flat.reverse

This commit is contained in:
Tom Payne
2014-03-12 13:08:11 +01:00
parent 3541a01aab
commit 65dcc38fad
5 changed files with 155 additions and 146 deletions

View File

@@ -1,6 +1,7 @@
goog.provide('ol.geom.flat.orient');
goog.require('ol.geom.flat');
goog.require('ol.geom.flat.reverse');
/**
@@ -89,7 +90,7 @@ ol.geom.flat.orient.orientLinearRings =
flatCoordinates, offset, end, stride);
var reverse = i === 0 ? !isClockwise : isClockwise;
if (reverse) {
ol.geom.flat.reverseCoordinates(flatCoordinates, offset, end, stride);
ol.geom.flat.reverse.coordinates(flatCoordinates, offset, end, stride);
}
offset = end;
}

View File

@@ -0,0 +1,22 @@
goog.provide('ol.geom.flat.reverse');
/**
* @param {Array.<number>} flatCoordinates Flat coordinates.
* @param {number} offset Offset.
* @param {number} end End.
* @param {number} stride Stride.
*/
ol.geom.flat.reverse.coordinates =
function(flatCoordinates, offset, end, stride) {
while (offset < end - stride) {
var i;
for (i = 0; i < stride; ++i) {
var tmp = flatCoordinates[offset + i];
flatCoordinates[offset + i] = flatCoordinates[end - stride + i];
flatCoordinates[end - stride + i] = tmp;
}
offset += stride;
end -= stride;
}
};

View File

@@ -28,27 +28,6 @@ ol.geom.flat.linearRingssGetFlatCenters =
};
/**
* @param {Array.<number>} flatCoordinates Flat coordinates.
* @param {number} offset Offset.
* @param {number} end End.
* @param {number} stride Stride.
*/
ol.geom.flat.reverseCoordinates =
function(flatCoordinates, offset, end, stride) {
while (offset < end - stride) {
var i;
for (i = 0; i < stride; ++i) {
var tmp = flatCoordinates[offset + i];
flatCoordinates[offset + i] = flatCoordinates[end - stride + i];
flatCoordinates[end - stride + i] = tmp;
}
offset += stride;
end -= stride;
}
};
/**
* Returns the square of the closest distance between the point (x, y) and the
* line segment (x1, y1) to (x2, y2).