Skip to content

Commit a3a15a4

Browse files
committed
input/output formats
1 parent 8852820 commit a3a15a4

11 files changed

+104
-83
lines changed

dist/greiner-hormann.es5.js

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -473,15 +473,18 @@ Polygon.prototype.clip = function(clip, sourceForwards, clipForwards) {
473473
current = current._corresponding;
474474
} while (!current._visited);
475475

476-
list.push(clipped);
476+
list.push(clipped.getPoints());
477477
}
478478

479479
if (list.length === 0) {
480480
if (sourceInClip) {
481-
list.push(this);
481+
list.push(this.getPoints());
482482
}
483483
if (clipInSource) {
484-
list.push(clip);
484+
list.push(clip.getPoints());
485+
}
486+
if (list.length === 0) {
487+
list = null;
485488
}
486489
}
487490

@@ -494,8 +497,8 @@ Polygon.prototype.clip = function(clip, sourceForwards, clipForwards) {
494497
* @api
495498
* @param {Array.<Array.<Number>>} polygonA
496499
* @param {Array.<Array.<Number>>} polygonB
497-
* @param {Boolean} sourceForwards
498-
* @param {Boolean} clipForwards
500+
* @param {Boolean} sourceForwards
501+
* @param {Boolean} clipForwards
499502
* @return {Array.<Array.<Number>>}
500503
*/
501504
function clip(polygonA, polygonB, eA, eB) {
@@ -508,33 +511,35 @@ function clip(polygonA, polygonB, eA, eB) {
508511
return {
509512
/**
510513
* @api
511-
* @param {Array.<Array.<Number>} polygonA
512-
* @param {Array.<Array.<Number>} polygonB
513-
* @return {Array.<Array.<Number>>|Null}
514+
* @param {Array.<Array.<Number>|Array.<Object>} polygonA
515+
* @param {Array.<Array.<Number>|Array.<Object>} polygonB
516+
* @return {Array.<Array.<Number>>|Array.<Array.<Object>|Null}
514517
*/
515518
union: function(polygonA, polygonB) {
516519
return clip(polygonA, polygonB, false, false);
517520
},
518521

519522
/**
520523
* @api
521-
* @param {Array.<Array.<Number>} polygonA
522-
* @param {Array.<Array.<Number>} polygonB
523-
* @return {Array.<Array.<Number>>|Null}
524+
* @param {Array.<Array.<Number>|Array.<Object>} polygonA
525+
* @param {Array.<Array.<Number>|Array.<Object>} polygonB
526+
* @return {Array.<Array.<Number>>|Array.<Array.<Object>>|Null}
524527
*/
525528
intersection: function(polygonA, polygonB) {
526529
return clip(polygonA, polygonB, true, true);
527530
},
528531

529532
/**
530533
* @api
531-
* @param {Array.<Array.<Number>} polygonA
532-
* @param {Array.<Array.<Number>} polygonB
533-
* @return {Array.<Array.<Number>>|Null}
534+
* @param {Array.<Array.<Number>|Array.<Object>} polygonA
535+
* @param {Array.<Array.<Number>|Array.<Object>} polygonB
536+
* @return {Array.<Array.<Number>>|Array.<Array.<Object>>|Null}
534537
*/
535538
diff: function(polygonA, polygonB) {
536539
return clip(polygonA, polygonB, false, true);
537-
}
540+
},
541+
542+
clip: clip
538543
};
539544

540545
}));

dist/greiner-hormann.es5.min.js

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/greiner-hormann.js

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -478,15 +478,18 @@ Polygon.prototype.clip = function(clip, sourceForwards, clipForwards) {
478478
current = current._corresponding;
479479
} while (!current._visited);
480480

481-
list.push(clipped);
481+
list.push(clipped.getPoints());
482482
}
483483

484484
if (list.length === 0) {
485485
if (sourceInClip) {
486-
list.push(this);
486+
list.push(this.getPoints());
487487
}
488488
if (clipInSource) {
489-
list.push(clip);
489+
list.push(clip.getPoints());
490+
}
491+
if (list.length === 0) {
492+
list = null;
490493
}
491494
}
492495

@@ -499,8 +502,8 @@ Polygon.prototype.clip = function(clip, sourceForwards, clipForwards) {
499502
* @api
500503
* @param {Array.<Array.<Number>>} polygonA
501504
* @param {Array.<Array.<Number>>} polygonB
502-
* @param {Boolean} sourceForwards
503-
* @param {Boolean} clipForwards
505+
* @param {Boolean} sourceForwards
506+
* @param {Boolean} clipForwards
504507
* @return {Array.<Array.<Number>>}
505508
*/
506509
function clip(polygonA, polygonB, eA, eB) {
@@ -513,33 +516,35 @@ function clip(polygonA, polygonB, eA, eB) {
513516
return {
514517
/**
515518
* @api
516-
* @param {Array.<Array.<Number>} polygonA
517-
* @param {Array.<Array.<Number>} polygonB
518-
* @return {Array.<Array.<Number>>|Null}
519+
* @param {Array.<Array.<Number>|Array.<Object>} polygonA
520+
* @param {Array.<Array.<Number>|Array.<Object>} polygonB
521+
* @return {Array.<Array.<Number>>|Array.<Array.<Object>|Null}
519522
*/
520523
union: function(polygonA, polygonB) {
521524
return clip(polygonA, polygonB, false, false);
522525
},
523526

524527
/**
525528
* @api
526-
* @param {Array.<Array.<Number>} polygonA
527-
* @param {Array.<Array.<Number>} polygonB
528-
* @return {Array.<Array.<Number>>|Null}
529+
* @param {Array.<Array.<Number>|Array.<Object>} polygonA
530+
* @param {Array.<Array.<Number>|Array.<Object>} polygonB
531+
* @return {Array.<Array.<Number>>|Array.<Array.<Object>>|Null}
529532
*/
530533
intersection: function(polygonA, polygonB) {
531534
return clip(polygonA, polygonB, true, true);
532535
},
533536

534537
/**
535538
* @api
536-
* @param {Array.<Array.<Number>} polygonA
537-
* @param {Array.<Array.<Number>} polygonB
538-
* @return {Array.<Array.<Number>>|Null}
539+
* @param {Array.<Array.<Number>|Array.<Object>} polygonA
540+
* @param {Array.<Array.<Number>|Array.<Object>} polygonB
541+
* @return {Array.<Array.<Number>>|Array.<Array.<Object>>|Null}
539542
*/
540543
diff: function(polygonA, polygonB) {
541544
return clip(polygonA, polygonB, false, true);
542-
}
545+
},
546+
547+
clip: clip
543548
};
544549

545550
}));

dist/greiner-hormann.leaflet.js

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -478,15 +478,18 @@ Polygon.prototype.clip = function(clip, sourceForwards, clipForwards) {
478478
current = current._corresponding;
479479
} while (!current._visited);
480480

481-
list.push(clipped);
481+
list.push(clipped.getPoints());
482482
}
483483

484484
if (list.length === 0) {
485485
if (sourceInClip) {
486-
list.push(this);
486+
list.push(this.getPoints());
487487
}
488488
if (clipInSource) {
489-
list.push(clip);
489+
list.push(clip.getPoints());
490+
}
491+
if (list.length === 0) {
492+
list = null;
490493
}
491494
}
492495

@@ -518,7 +521,7 @@ function clip(polygonA, polygonB, sourceForwards, clipForwards) {
518521
}
519522

520523
source = new Polygon(source),
521-
clip = new Polygon(clip);
524+
clip = new Polygon(clip);
522525

523526
result = source.clip(clip, sourceForwards, clipForwards);
524527
if (result.length > 0) {
@@ -541,7 +544,7 @@ function clip(polygonA, polygonB, sourceForwards, clipForwards) {
541544
}
542545

543546
function toLatLngs(poly) {
544-
var result = poly.getPoints();
547+
var result = poly;
545548

546549
if (result) {
547550
if (result[0][0] === result[result.length - 1][0] &&
@@ -560,33 +563,35 @@ function toLatLngs(poly) {
560563
return {
561564
/**
562565
* @api
563-
* @param {Array.<Array.<Number>} polygonA
564-
* @param {Array.<Array.<Number>} polygonB
565-
* @return {Array.<Array.<Number>>|Null}
566+
* @param {Array.<Array.<Number>|Array.<Object>} polygonA
567+
* @param {Array.<Array.<Number>|Array.<Object>} polygonB
568+
* @return {Array.<Array.<Number>>|Array.<Array.<Object>|Null}
566569
*/
567570
union: function(polygonA, polygonB) {
568571
return clip(polygonA, polygonB, false, false);
569572
},
570573

571574
/**
572575
* @api
573-
* @param {Array.<Array.<Number>} polygonA
574-
* @param {Array.<Array.<Number>} polygonB
575-
* @return {Array.<Array.<Number>>|Null}
576+
* @param {Array.<Array.<Number>|Array.<Object>} polygonA
577+
* @param {Array.<Array.<Number>|Array.<Object>} polygonB
578+
* @return {Array.<Array.<Number>>|Array.<Array.<Object>>|Null}
576579
*/
577580
intersection: function(polygonA, polygonB) {
578581
return clip(polygonA, polygonB, true, true);
579582
},
580583

581584
/**
582585
* @api
583-
* @param {Array.<Array.<Number>} polygonA
584-
* @param {Array.<Array.<Number>} polygonB
585-
* @return {Array.<Array.<Number>>|Null}
586+
* @param {Array.<Array.<Number>|Array.<Object>} polygonA
587+
* @param {Array.<Array.<Number>|Array.<Object>} polygonB
588+
* @return {Array.<Array.<Number>>|Array.<Array.<Object>>|Null}
586589
*/
587590
diff: function(polygonA, polygonB) {
588591
return clip(polygonA, polygonB, false, true);
589-
}
592+
},
593+
594+
clip: clip
590595
};
591596

592597
}));

0 commit comments

Comments
 (0)