"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|Array>} 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;