123456789101112131415161718192021222324252627282930313233 |
- "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;
|