Skip to content

Commit

Permalink
fix: improve windings for 18 connected
Browse files Browse the repository at this point in the history
Not perfect, but better?
  • Loading branch information
william-silversmith committed Nov 7, 2024
1 parent 66eb50e commit 9b34bf7
Showing 1 changed file with 38 additions and 29 deletions.
67 changes: 38 additions & 29 deletions zmesh/utility.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -546,9 +546,9 @@ void fix_all_different(

if (ordering == 1) {
m3.add_triangle(face_remap[f3], m3i13 , m3i23_1);
m1.add_triangle(face_remap[f1], m1i23_1, m1i13);
m1.add_triangle(face_remap[f1], m1i23_1, m1i13 );
m1.add_triangle(face_remap[f1], m1i23_1, m1i23_0);
m1.add_triangle(face_remap[f1], m1i12, m1i23_0 );
m1.add_triangle(face_remap[f1], m1i12, m1i23_0);
m2.add_triangle(face_remap[f2], m2i23_0, m2i12 );
}
else {
Expand Down Expand Up @@ -590,13 +590,24 @@ void fix_all_different(
m4.add_point(i23_1);
m4i23_1 = m4.last_face();

m3.add_triangle(face_remap[f3], m3corner, m3i23_0);
m3.add_triangle(m3corner, face_remap[f3], m3i13);
m1.add_triangle(face_remap[f1], m1i13, m1corner);
m1.add_triangle(face_remap[f1], m1corner, m1i12);
m2.add_triangle(face_remap[f2], m2corner, m2i23_1);
m2.add_triangle(face_remap[f2], m2corner, m2i12);
m4.add_triangle(m4corner, m4i23_0, m4i23_1);
if (ordering == 1) {
m1.add_triangle(face_remap[f1], m1corner, m1i13);
m1.add_triangle(face_remap[f1], m1i12, m1corner);
m2.add_triangle(face_remap[f2], m2corner, m2i12);
m2.add_triangle(face_remap[f2], m2i23_1, m2corner);
m3.add_triangle(face_remap[f3], m3i23_0, m3corner);
m3.add_triangle(m3corner, face_remap[f3], m3i13);
m4.add_triangle(m4corner, m4i23_1, m4i23_0);
}
else {
m1.add_triangle(face_remap[f1], m1i13, m1corner);
m1.add_triangle(face_remap[f1], m1corner, m1i12);
m2.add_triangle(face_remap[f2], m2i12, m2corner);
m2.add_triangle(face_remap[f2], m2corner, m2i23_1);
m3.add_triangle(face_remap[f3], m3corner, m3i23_0);
m3.add_triangle(m3corner, m3i13, face_remap[f3]);
m4.add_triangle(m4corner, m4i23_0, m4i23_1);
}
}
}

Expand Down Expand Up @@ -709,9 +720,6 @@ void fix_single_outlier_18_connected(
m1.add_point(i23x);
m1i23x = m1.last_face();

m1.add_triangle(face_remap[f1], m1i13x, m1i23x);
m1.add_triangle(face_remap[f1], face_remap[f2], m1i23x);

m4.add_point(i13x);
m4i13x = m4.last_face();

Expand All @@ -724,15 +732,16 @@ void fix_single_outlier_18_connected(
m4.add_point(i23y);
m4i23y = m4.last_face();

m4.add_triangle(m4i13x, m4i13y, m4i23y);
m4.add_triangle(m4i13x, m4i23x, m4i23y);

m3.add_point(i13y);
m3i13y = m3.last_face();

m3.add_point(i23y);
m3i23y = m3.last_face();

m1.add_triangle(face_remap[f1], m1i23x, m1i13x);
m1.add_triangle(face_remap[f1], face_remap[f2], m1i23x);
m4.add_triangle(m4i13x, m4i23y, m4i13y);
m4.add_triangle(m4i13x, m4i23x, m4i23y);
m3.add_triangle(face_remap[f3], m3i13y, m3i23y);
}
else if (i13x.get(xaxis) > corner.get(xaxis) && i23x.get(xaxis) > corner.get(xaxis)) {
Expand All @@ -741,9 +750,6 @@ void fix_single_outlier_18_connected(
m1.add_point(i23y);
m1i23y = m1.last_face();

m1.add_triangle(face_remap[f1], m1i13y, m1i23y);
m1.add_triangle(face_remap[f1], face_remap[f2], m1i23y);

m5.add_point(i13x);
m5i13x = m5.last_face();

Expand All @@ -756,16 +762,19 @@ void fix_single_outlier_18_connected(
m5.add_point(i23y);
m5i23y = m5.last_face();

m5.add_triangle(m5i13y, m5i13x, m5i23y);
m5.add_triangle(m5i23y, m5i13x, m5i23x);

m3.add_point(i13x);
m3i13x = m3.last_face();

m3.add_point(i23x);
m3i23x = m3.last_face();

m1.add_triangle(face_remap[f1], m1i23y, m1i13y);
m1.add_triangle(face_remap[f1], face_remap[f2], m1i23y);

m3.add_triangle(face_remap[f3], m3i13x, m3i23x);

m5.add_triangle(m5i23y, m5i13y, m5i13x);
m5.add_triangle(m5i23y, m5i23x, m5i13x);
}
else {
m1.add_point(i13x);
Expand All @@ -777,10 +786,6 @@ void fix_single_outlier_18_connected(
m1.add_point(i23y);
m1i23y = m1.last_face();

m1.add_triangle(face_remap[f1], m1i13x, face_remap[f2]);
m1.add_triangle(face_remap[f2], m1i13x, m1i23y);
m1.add_triangle(m1i23y, m1i13x, m1corner);

m4.add_point(i13x);
m4i13x = m4.last_face();

Expand All @@ -790,8 +795,6 @@ void fix_single_outlier_18_connected(
m4.add_point(corner);
m4corner = m4.last_face();

m4.add_triangle(m4i13x, m4i13y, m4corner);

m5.add_point(i23y);
m5i23y = m5.last_face();

Expand All @@ -801,8 +804,6 @@ void fix_single_outlier_18_connected(
m5.add_point(i23x);
m5i23x = m5.last_face();

m5.add_triangle(m5i23y, m5corner, m5i23x);

m3.add_point(i13y);
m3i13y = m3.last_face();

Expand All @@ -812,8 +813,16 @@ void fix_single_outlier_18_connected(
m3.add_point(i23x);
m3i23x = m3.last_face();

m1.add_triangle(face_remap[f1], m1i13x, face_remap[f2]);
m1.add_triangle(face_remap[f2], m1i13x, m1i23y);
m1.add_triangle(m1i23y, m1i13x, m1corner);

m3.add_triangle(m3i13y, face_remap[f3], m3corner);
m3.add_triangle(m3corner, face_remap[f3], m3i23x);

m4.add_triangle(m4i13x, m4i13y, m4corner);

m5.add_triangle(m5i23y, m5corner, m5i23x);
}
}

Expand Down

0 comments on commit 9b34bf7

Please sign in to comment.