From 9e599f84bc02ef2db63b6eb1cadfa33f56dddd66 Mon Sep 17 00:00:00 2001 From: Rami Santina Date: Sat, 21 May 2011 15:35:37 +0300 Subject: Fix: vertex in loop test; using crossing method Changed algo for in/out test of vertex wrt arbitrary polygon to crossing test since angle based is shown prune to precision errors --- src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java | 9 --------- 1 file changed, 9 deletions(-) (limited to 'src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java') diff --git a/src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java b/src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java index d1245f4b8..6a2f47c79 100644 --- a/src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java +++ b/src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java @@ -56,11 +56,6 @@ public class GraphOutline { return outline; } - /*public void setOutline(Outline outline) { - this.outline = outline; - }*/ - - public ArrayList getGraphPoint() { return controlpoints; } @@ -69,10 +64,6 @@ public class GraphOutline { return outline.getVertices(); } - /*public void setControlpoints(ArrayList> controlpoints) { - this.controlpoints = controlpoints; - }*/ - public void addVertex(GraphVertex v) { controlpoints.add(v); outline.addVertex(v.getPoint()); -- cgit v1.2.3 From 5ea211cde39be9669d1f2f289abbba460398f82e Mon Sep 17 00:00:00 2001 From: Rami Santina Date: Sat, 21 May 2011 17:49:08 +0300 Subject: Remove implicit for loops reduces temp objects --- src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java | 3 ++- src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java | 6 ++++-- .../classes/com/jogamp/graph/curve/tess/CDTriangulator2D.java | 1 - src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java | 4 ++-- src/jogl/classes/jogamp/graph/curve/tess/GraphVertex.java | 9 ++++++--- src/jogl/classes/jogamp/graph/curve/tess/Loop.java | 10 ++++------ src/jogl/classes/jogamp/graph/curve/text/GlyphShape.java | 1 + 7 files changed, 19 insertions(+), 15 deletions(-) (limited to 'src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java') diff --git a/src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java b/src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java index 7f8e386a1..5b94d6bda 100755 --- a/src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java +++ b/src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java @@ -394,7 +394,8 @@ public class OutlineShape implements Comparable { int maxVertexId = 0; for(int i=0; i vertices = outlines.get(i).getVertices(); - for(Vertex vert:vertices){ + for(int pos=0; pos triangles = outlineShape.triangulate(); region.addTriangles(triangles); ArrayList vertices = outlineShape.getVertices(); - for(Vertex vert:vertices){ + for(int pos=0; pos < vertices.size(); pos++){ + Vertex vert = vertices.get(pos); vert.setId(numVertices++); } region.addVertices(vertices); 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 9de295616..fce2e1bae 100644 --- a/src/jogl/classes/com/jogamp/graph/curve/tess/CDTriangulator2D.java +++ b/src/jogl/classes/com/jogamp/graph/curve/tess/CDTriangulator2D.java @@ -83,7 +83,6 @@ public class CDTriangulator2D { // FIXME: multiple in/out and CW/CCW tests (as follows) ?? if(!loops.isEmpty()) { - // FIXME: #1 in/out test loop = getContainerLoop(polyline); } diff --git a/src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java b/src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java index 6a2f47c79..c8251af15 100644 --- a/src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java +++ b/src/jogl/classes/jogamp/graph/curve/tess/GraphOutline.java @@ -47,8 +47,8 @@ public class GraphOutline { public GraphOutline(Outline ol){ this.outline = ol; ArrayList vertices = this.outline.getVertices(); - for(Vertex v:vertices){ - this.controlpoints.add(new GraphVertex(v)); + for(int i = 0; i< vertices.size(); i++){ + this.controlpoints.add(new GraphVertex(vertices.get(i))); } } diff --git a/src/jogl/classes/jogamp/graph/curve/tess/GraphVertex.java b/src/jogl/classes/jogamp/graph/curve/tess/GraphVertex.java index 5efe57c28..52d02baa5 100644 --- a/src/jogl/classes/jogamp/graph/curve/tess/GraphVertex.java +++ b/src/jogl/classes/jogamp/graph/curve/tess/GraphVertex.java @@ -86,7 +86,8 @@ public class GraphVertex { } } public HEdge findNextEdge(GraphVertex nextVert){ - for(HEdge e:edges){ + for(int i=0; i CCW ? + //FIXME: handle case when vertices come inverted - Rami + // skips inversion CW -> CCW final boolean invert = hasWinding != reqWinding && reqWinding == VectorUtil.Winding.CW; - 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 ; @@ -201,7 +198,8 @@ public class Loop { for(int i=0; i< initVertices.size()-1; i++){ GraphVertex v = initVertices.get(i); GraphVertex nextV = initVertices.get(i+1); - for(GraphVertex cand:vertices){ + for(int pos=0; pos