index.cjs 1008 B

1234567891011121314151617181920212223242526272829
  1. "use strict";Object.defineProperty(exports, "__esModule", {value: true});// index.ts
  2. var _invariant = require('@turf/invariant');
  3. function booleanConcave(polygon) {
  4. const coords = _invariant.getGeom.call(void 0, polygon).coordinates;
  5. if (coords[0].length <= 4) {
  6. return false;
  7. }
  8. let sign = false;
  9. const n = coords[0].length - 1;
  10. for (let i = 0; i < n; i++) {
  11. const dx1 = coords[0][(i + 2) % n][0] - coords[0][(i + 1) % n][0];
  12. const dy1 = coords[0][(i + 2) % n][1] - coords[0][(i + 1) % n][1];
  13. const dx2 = coords[0][i][0] - coords[0][(i + 1) % n][0];
  14. const dy2 = coords[0][i][1] - coords[0][(i + 1) % n][1];
  15. const zcrossproduct = dx1 * dy2 - dy1 * dx2;
  16. if (i === 0) {
  17. sign = zcrossproduct > 0;
  18. } else if (sign !== zcrossproduct > 0) {
  19. return true;
  20. }
  21. }
  22. return false;
  23. }
  24. var turf_boolean_concave_default = booleanConcave;
  25. exports.booleanConcave = booleanConcave; exports.default = turf_boolean_concave_default;
  26. //# sourceMappingURL=index.cjs.map