diff --git a/Clipper/pom.xml b/Clipper/pom.xml new file mode 100644 index 0000000..0571dd7 --- /dev/null +++ b/Clipper/pom.xml @@ -0,0 +1,25 @@ + + 4.0.0 + Clipper + Clipper + 6.2.1 + + + ISO-8859-1 + + + + src + + + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + + + + + \ No newline at end of file diff --git a/Clipper/src/de/lighti/clipper/ClipperOffset.java b/Clipper/src/de/lighti/clipper/ClipperOffset.java index 4b333d4..a6d9ce7 100644 --- a/Clipper/src/de/lighti/clipper/ClipperOffset.java +++ b/Clipper/src/de/lighti/clipper/ClipperOffset.java @@ -389,7 +389,7 @@ public void execute( PolyTree solution, double delta ) { //remove the outer PolyNode rectangle ... if (solution.getChildCount() == 1 && solution.getChilds().get( 0 ).getChildCount() > 0) { final PolyNode outerNode = solution.getChilds().get( 0 ); - solution.getChilds().set( 0, outerNode.getChilds().get( 0 ) ); + solution.childs.set( 0, outerNode.getChilds().get( 0 ) ); solution.getChilds().get( 0 ).setParent( solution ); for (int i = 1; i < outerNode.getChildCount(); i++) { solution.addChild( outerNode.getChilds().get( i ) ); diff --git a/Clipper/src/de/lighti/clipper/DefaultClipper.java b/Clipper/src/de/lighti/clipper/DefaultClipper.java index dfd4190..06c3f16 100644 --- a/Clipper/src/de/lighti/clipper/DefaultClipper.java +++ b/Clipper/src/de/lighti/clipper/DefaultClipper.java @@ -562,16 +562,17 @@ public DefaultClipper( int InitOptions ) //constructor activeEdges = null; sortedEdges = null; intersectList = new ArrayList(); - intersectNodeComparer = ( node1, node2 ) -> { - final long i = node2.getPt().getY() - node1.getPt().getY(); - if (i > 0) { - return 1; - } - else if (i < 0) { - return -1; - } - else { - return 0; + intersectNodeComparer = new Comparator() { + @Override + public int compare(IntersectNode node1, IntersectNode node2) { + final long i = node2.getPt().getY() - node1.getPt().getY(); + if (i > 0) { + return 1; + } else if (i < 0) { + return -1; + } else { + return 0; + } } }; @@ -908,6 +909,9 @@ private void buildResult2( PolyTree polytree ) { //add each output polygon/contour to polytree ... for (int i = 0; i < polyOuts.size(); i++) { final OutRec outRec = polyOuts.get( i ); + if (outRec.getPoints() == null) { + continue; + } final int cnt = outRec.getPoints().getPointCount(); if (outRec.isOpen && cnt < 2 || !outRec.isOpen && cnt < 3) { continue; diff --git a/Clipper/src/de/lighti/clipper/PolyNode.java b/Clipper/src/de/lighti/clipper/PolyNode.java index fd5f9c4..9eaf25f 100644 --- a/Clipper/src/de/lighti/clipper/PolyNode.java +++ b/Clipper/src/de/lighti/clipper/PolyNode.java @@ -8,7 +8,7 @@ import de.lighti.clipper.Clipper.JoinType; import de.lighti.clipper.Point.LongPoint; -class PolyNode { +public class PolyNode { enum NodeType { ANY, OPEN, CLOSED } diff --git a/Clipper/src/de/lighti/clipper/PolyTree.java b/Clipper/src/de/lighti/clipper/PolyTree.java index f785cc0..b0c191b 100644 --- a/Clipper/src/de/lighti/clipper/PolyTree.java +++ b/Clipper/src/de/lighti/clipper/PolyTree.java @@ -3,7 +3,7 @@ import java.util.ArrayList; import java.util.List; -class PolyTree extends PolyNode { +public class PolyTree extends PolyNode { private final List allPolys = new ArrayList(); public void Clear() {