34 lines
998 B
JavaScript
Executable File
34 lines
998 B
JavaScript
Executable File
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
var invariant_1 = require("@turf/invariant");
|
|
/**
|
|
* Takes a ring and return true or false whether or not the ring is clockwise or counter-clockwise.
|
|
*
|
|
* @name booleanClockwise
|
|
* @param {Feature<LineString>|LineString|Array<Array<number>>} line to be evaluated
|
|
* @returns {boolean} true/false
|
|
* @example
|
|
* var clockwiseRing = turf.lineString([[0,0],[1,1],[1,0],[0,0]]);
|
|
* var counterClockwiseRing = turf.lineString([[0,0],[1,0],[1,1],[0,0]]);
|
|
*
|
|
* turf.booleanClockwise(clockwiseRing)
|
|
* //=true
|
|
* turf.booleanClockwise(counterClockwiseRing)
|
|
* //=false
|
|
*/
|
|
function booleanClockwise(line) {
|
|
var ring = invariant_1.getCoords(line);
|
|
var sum = 0;
|
|
var i = 1;
|
|
var prev;
|
|
var cur;
|
|
while (i < ring.length) {
|
|
prev = cur || ring[0];
|
|
cur = ring[i];
|
|
sum += (cur[0] - prev[0]) * (cur[1] + prev[1]);
|
|
i++;
|
|
}
|
|
return sum > 0;
|
|
}
|
|
exports.default = booleanClockwise;
|