Revision: 74283
          http://sourceforge.net/p/brlcad/code/74283
Author:   starseeker
Date:     2019-11-01 20:22:39 +0000 (Fri, 01 Nov 2019)
Log Message:
-----------
Only adjusting verts generally on the first pass avoids some errors, but that's 
a bit surprising - it shouldn't matter...  still getting issues on the 3rd pass.

Modified Paths:
--------------
    brlcad/trunk/src/libbrep/cdt_ovlps.cpp

Modified: brlcad/trunk/src/libbrep/cdt_ovlps.cpp
===================================================================
--- brlcad/trunk/src/libbrep/cdt_ovlps.cpp      2019-11-01 20:14:04 UTC (rev 
74282)
+++ brlcad/trunk/src/libbrep/cdt_ovlps.cpp      2019-11-01 20:22:39 UTC (rev 
74283)
@@ -2621,7 +2621,7 @@
     while (face_ov_cnt) {
 
        iterations++;
-       if (iterations > 1) break;
+       if (iterations > 3) break;
 
     // Make omesh containers for all the cdt_meshes in play
     std::set<cdt_mesh::cdt_mesh_t *> afmeshes;
@@ -2645,18 +2645,22 @@
     }
     face_ov_cnt = face_omesh_ovlps(ocheck_pairs);
 
-    // The simplest operation is to find vertices close to each other with
-    // enough freedom of movement (per triangle edge length) that we can shift
-    // the two close neighbors to surface points that are both the respective
-    // closest points to a center point between the two originals.
-    int close_vert_checks = 1;
-    int avcnt = adjust_close_verts(ocheck_pairs);
-    if (avcnt) {
-       std::cout << close_vert_checks << ": Adjusted " << avcnt << " 
vertices\n";
-       check_faces_validity(check_pairs);
-       face_ov_cnt = face_omesh_ovlps(ocheck_pairs);
-       std::cout << "Post vert adjustment " << close_vert_checks << " overlap 
cnt: " << face_ov_cnt << "\n";
-       close_vert_checks++;
+    int close_vert_checks = 0;
+    int avcnt = 0;
+    if (iterations < 2) {
+       // The simplest operation is to find vertices close to each other with
+       // enough freedom of movement (per triangle edge length) that we can 
shift
+       // the two close neighbors to surface points that are both the 
respective
+       // closest points to a center point between the two originals.
+       close_vert_checks = 1;
+       avcnt = adjust_close_verts(ocheck_pairs);
+       if (avcnt) {
+           std::cout << close_vert_checks << ": Adjusted " << avcnt << " 
vertices\n";
+           check_faces_validity(check_pairs);
+           face_ov_cnt = face_omesh_ovlps(ocheck_pairs);
+           std::cout << "Post vert adjustment " << close_vert_checks << " 
overlap cnt: " << face_ov_cnt << "\n";
+           close_vert_checks++;
+       }
     }
 
        std::set<overt_t *> nverts;

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to