aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/jogl/classes/com/jogamp/graph/curve/tess/CDTriangulator2D.java4
-rwxr-xr-xsrc/jogl/classes/com/jogamp/graph/math/VectorUtil.java5
-rw-r--r--src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java2
-rw-r--r--src/jogl/classes/jogamp/graph/curve/tess/Loop.java5
4 files changed, 10 insertions, 6 deletions
diff --git a/src/jogl/classes/com/jogamp/graph/curve/tess/CDTriangulator2D.java b/src/jogl/classes/com/jogamp/graph/curve/tess/CDTriangulator2D.java
index 55bdbcd33..e0d7d3236 100644
--- a/src/jogl/classes/com/jogamp/graph/curve/tess/CDTriangulator2D.java
+++ b/src/jogl/classes/com/jogamp/graph/curve/tess/CDTriangulator2D.java
@@ -94,7 +94,7 @@ public class CDTriangulator2D {
else {
GraphOutline outline = new GraphOutline(polyline);
GraphOutline innerPoly = extractBoundaryTriangles(outline, true);
- vertices.addAll(innerPoly.getPoints());
+ vertices.addAll(innerPoly.getVertices());
loop.addConstraintCurve(innerPoly);
}
}
@@ -140,7 +140,7 @@ public class CDTriangulator2D {
return triangles;
}
- private GraphOutline extractBoundaryTriangles(GraphOutline outline, boolean hole){
+ private GraphOutline extractBoundaryTriangles(GraphOutline outline, boolean hole) {
GraphOutline innerOutline = new GraphOutline();
ArrayList<GraphVertex> outVertices = outline.getGraphPoint();
int size = outVertices.size();
diff --git a/src/jogl/classes/com/jogamp/graph/math/VectorUtil.java b/src/jogl/classes/com/jogamp/graph/math/VectorUtil.java
index aae7a8c5c..b91969745 100755
--- a/src/jogl/classes/com/jogamp/graph/math/VectorUtil.java
+++ b/src/jogl/classes/com/jogamp/graph/math/VectorUtil.java
@@ -310,7 +310,7 @@ public class VectorUtil {
/** Computes the area of a list of vertices to check if ccw
* @param vertices
- * @return positve area if ccw else negative area value
+ * @return positive area if ccw else negative area value
*/
public static float area(ArrayList<Vertex> vertices) {
int n = vertices.size();
@@ -323,4 +323,7 @@ public class VectorUtil {
}
return area;
}
+ public static Winding getWinding(ArrayList<Vertex> vertices) {
+ return area(vertices) >= 0 ? Winding.CCW : Winding.CW ;
+ }
}
diff --git a/src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java b/src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java
index a0d1923a9..d1245f4b8 100644
--- a/src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java
+++ b/src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java
@@ -65,7 +65,7 @@ public class GraphOutline {
return controlpoints;
}
- public ArrayList<Vertex> getPoints() {
+ public ArrayList<Vertex> getVertices() {
return outline.getVertices();
}
diff --git a/src/jogl/classes/jogamp/graph/curve/tess/Loop.java b/src/jogl/classes/jogamp/graph/curve/tess/Loop.java
index 230bdad0e..acccea503 100644
--- a/src/jogl/classes/jogamp/graph/curve/tess/Loop.java
+++ b/src/jogl/classes/jogamp/graph/curve/tess/Loop.java
@@ -102,6 +102,7 @@ public class Loop {
if(vertices.size()<3) {
throw new IllegalArgumentException("outline's vertices < 3: " + vertices.size());
}
+ //final VectorUtil.Winding hasWinding = VectorUtil.getWinding(outline.getVertices());
final VectorUtil.Winding hasWinding = VectorUtil.getWinding(
vertices.get(0).getPoint(),
vertices.get(1).getPoint(),
@@ -110,9 +111,9 @@ public class Loop {
// skips inversion CW -> CCW ?
final boolean invert = hasWinding != reqWinding &&
reqWinding == VectorUtil.Winding.CW;
- /*if( hasWinding != reqWinding ) {
+ if( hasWinding != reqWinding ) {
System.err.println("Winding: i "+invert+" "+hasWinding+" -> "+reqWinding);
- }*/
+ }
final int max;
final int edgeType = reqWinding == VectorUtil.Winding.CCW ? HEdge.BOUNDARY : HEdge.HOLE ;