Revision: 74222
          http://sourceforge.net/p/brlcad/code/74222
Author:   starseeker
Date:     2019-10-23 16:08:46 +0000 (Wed, 23 Oct 2019)
Log Message:
-----------
Might do better to focus on long edges for splitting...

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-10-23 15:56:10 UTC (rev 
74221)
+++ brlcad/trunk/src/libbrep/cdt_ovlps.cpp      2019-10-23 16:08:46 UTC (rev 
74222)
@@ -2306,6 +2306,8 @@
                std::cout << "PROBLEM - intersecting triangles but no vertex 
points are refinement candidates!\n";
                // Strategy here - queue up all the unordered edges on both 
triangles in their
                // respective omeshes for midpoint splitting.
+               //
+               // TODO - may want to do just the longest edge, rather than all 
three...
                {
                    // Mesh 1, triangle 1
                    std::set<cdt_mesh::uedge_t> uedges = 
omesh1->fmesh->uedges(t1);
@@ -2824,12 +2826,14 @@
     // 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 << "1: Adjusted " << avcnt << " vertices\n";
+       std::cout << close_vert_checks << ": Adjusted " << avcnt << " 
vertices\n";
        check_faces_validity(check_pairs, 1);
        face_ov_cnt = face_omesh_ovlps(ocheck_pairs);
-       std::cout << "Post vert adjustment 1 overlap cnt: " << face_ov_cnt << 
"\n";
+       std::cout << "Post vert adjustment " << close_vert_checks << " overlap 
cnt: " << face_ov_cnt << "\n";
+       close_vert_checks++;
     }
 
     // Next up are Brep boundary edges, which have to be handled at a brep
@@ -2849,10 +2853,11 @@
        // If we split edges, do the close vert check again
        avcnt = adjust_close_verts(ocheck_pairs);
        if (avcnt) {
-           std::cout << "2: Adjusted " << avcnt << " vertices\n";
+           std::cout << close_vert_checks << ": Adjusted " << avcnt << " 
vertices\n";
            check_faces_validity(check_pairs, 1);
            face_ov_cnt = face_omesh_ovlps(ocheck_pairs);
-           std::cout << "Post vert adjustment 2 overlap cnt: " << face_ov_cnt 
<< "\n";
+           std::cout << "Post vert adjustment " << close_vert_checks << " 
overlap cnt: " << face_ov_cnt << "\n";
+           close_vert_checks++;
        }
     }
 
@@ -2863,6 +2868,16 @@
        face_ov_cnt = face_omesh_ovlps(ocheck_pairs);
     }
 
+    avcnt = adjust_close_verts(ocheck_pairs);
+    if (avcnt) {
+       std::cout << close_vert_checks << ": Adjusted " << avcnt << " 
vertices\n";
+       check_faces_validity(check_pairs, 1);
+       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++;
+    }
+
+
     // Calculate omesh refinement point closest surf points
     //
     // If any surf closest points are close to existing verts, adjust instead 
of splitting

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