Skip to content

Commit

Permalink
matching
Browse files Browse the repository at this point in the history
  • Loading branch information
JimmyBoivie authored and JimmyBoivie committed Dec 5, 2015
1 parent 689bddb commit d56c045
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 18 deletions.
4 changes: 2 additions & 2 deletions main/DrawHalfEdge.pde
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@ public class DrawHalfEdge {
System.out.println(vertex);
if(edges != null) {
for(HalfEdge edge: edges) {
System.out.println(edge);
//System.out.println(edge);
drawConnection(edge.gettwin(), vertex);
}
}
}

public void drawConnection(HalfEdge edge, Vertex v1) {
System.out.println("drawing connection");
//System.out.println("drawing connection");
Vertex v2 = edge.getOrigin();
drawpoint(v2);
drawline(v1, v2);
Expand Down
7 changes: 6 additions & 1 deletion main/HalfEdge.pde
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ public class HalfEdge {
v1.setIncidentEdge(this);
} else {
twin.setnext(try1[1]);
try1[1].setprevious(twin);
previous = try1[0];
try1[0].setnext(this);
}

HalfEdge[] try2 = v2.getEdgesToUpdate(v1);
Expand All @@ -41,9 +43,12 @@ public class HalfEdge {
v2.setIncidentEdge(twin);
} else {
twin.setprevious(try2[0]);
try2[0].setnext(twin);
next = try2[1];
try2[1].setprevious(this);
}
System.out.println(this);
if ((try1 == null) || ( try2 == null)) { System.out.println("HEY BOTH NULL"); }
//System.out.println(this);
// Set Nexts

// Set Prevs
Expand Down
44 changes: 32 additions & 12 deletions main/Vertex.pde
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,13 @@ public class Vertex {
if (halfedge == null) { return null; }
ArrayList<HalfEdge> leaving = getAllLeavingEdges();
HalfEdge[] prevNext = new HalfEdge[2];
System.out.println("TEST\n");
if (leaving.size() == 1) {
prevNext[1] = leaving.get(0);
prevNext[0] = prevNext[1].gettwin();
return prevNext;
}
System.out.println("TEST2\n");
Vertex v1 = this;
Vertex v4 = v;
Vertex v2;
Expand All @@ -54,21 +56,33 @@ public class Vertex {
for (int i = 0; i < leaving.size(); i++) {
temp[i] = 0;
}
System.out.println("TEST3\n");
for (int i = 0; i < leaving.size(); i++) {
v2 = leaving.get(i).getOrigin();
v3 = leaving.get((i+1)%leaving.size()).getOrigin();
v2 = leaving.get(i).gettwin().getOrigin();
v3 = leaving.get((i+1)%leaving.size()).gettwin().getOrigin();
if (is2closerCCWof4(v1, v2, v3, v4)) {
System.out.println(i);
temp[i]++;
} else {
System.out.println((i+1)%leaving.size());
temp[(i+1)%leaving.size()]++;
}
}
System.out.println("TEST4\n");
for (int i = 0; i < leaving.size(); i++) {
if (temp[i] == 0) {
prevNext[1] = leaving.get(i);
prevNext[0] = prevNext[1].getprevious();
System.out.println("Temp[" + i + "] = " + temp[i]);
if (temp[i] == 2) {
System.out.println(leaving.get(i).gettwin());
System.out.println(leaving.get(i).gettwin().getnext());
//prevNext[1] = leaving.get(i);
//prevNext[0] = prevNext[1].getprevious();
}
}
System.out.println("Test5\n");

System.out.println(prevNext[0]);
System.out.println(prevNext[1]);

return prevNext;
}

Expand All @@ -93,36 +107,42 @@ public class Vertex {
}

public boolean is2closerCCWof4(Vertex v1, Vertex v2, Vertex v3, Vertex v4) {
float tolerance = 0;
float[] ss12 = safeSlope(v2.getY()-v1.getY(), v2.getX()-v1.getX());
float[] ss13 = safeSlope(v3.getY()-v1.getY(), v3.getX()-v1.getX());
float[] ss14 = safeSlope(v4.getY()-v1.getY(), v4.getX()-v1.getX());
System.out.println(v1);
System.out.println(v2);
System.out.println(v3);
System.out.println(v4);
System.out.println(ss12[0] + " " + ss12[1] + " " + ss13[0] + " " + ss13[1] + " " + ss14[0] + " " + ss14[1]);
if (ss14[0] == Float.POSITIVE_INFINITY) {
if (ss14[1] == 1) {
if (ss12[1] > ss13[1]) { return true; }
if (ss13[1] > ss12[1]) { return false; }
if (ss12[0] < ss13[0]) { return true; }
if (ss12[0] - tolerance < ss13[0]) { return true; }
else { return false; }
} else {
if (ss12[1] < ss13[1]) { return true; }
if (ss13[1] < ss12[1]) { return false; }
if (ss12[0] < ss13[0]) { return true; }
if (ss12[0] - tolerance < ss13[0]) { return true; }
else { return false; }
}
}
if (ss12[1] == ss13[1]) {
if (ss12[0] > ss14[0]) {
if ((ss13[0] > ss12[0]) || (ss13[0] < ss14[0])) { return true; }
if (ss12[0] + tolerance > ss14[0]) {
if ((ss13[0] > ss12[0]) || (ss13[0] - tolerance < ss14[0])) { return true; }
else { return false; }
} else {
if ((ss13[0] > ss12[0]) && (ss13[0] < ss14[0])) { return true; }
if ((ss13[0] > ss12[0]) && (ss13[0] - tolerance < ss14[0])) { return true; }
else { return false; }
}
}
if (ss12[1] == ss14[1]) {
if (ss12[0] > ss14[0]) { return true; }
if (ss12[0] + tolerance > ss14[0]) { return true; }
else { return false; }
} else {
if (ss13[0] < ss14[0]) { return true; }
if (ss13[0] - tolerance < ss14[0]) { return true; }
else { return false; }
}

Expand Down
6 changes: 3 additions & 3 deletions main/main.pde
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public void setup() {
VertexList list = new VertexList();
Vertex v = new Vertex(0,0);
Vertex v1 = new Vertex(0,200);
Vertex v2 = new Vertex(100,100);
Vertex v2 = new Vertex(80,100);
Vertex v3 = new Vertex(200,0);
Vertex v4 = new Vertex(-100,-100);
list.addVertex(v);
Expand All @@ -25,8 +25,8 @@ public void setup() {
h1.facePrint();
HalfEdge h4 = new HalfEdge(v,v4);
h1.facePrint();
HalfEdge h5 = new HalfEdge(v1,v2);
h1.facePrint();
//HalfEdge h5 = new HalfEdge(v1,v2);
//h1.facePrint();
draw.drawGraph(list.getVertexList());
}
/*public void draw() {
Expand Down

0 comments on commit d56c045

Please sign in to comment.