Revision: 73886
          http://sourceforge.net/p/brlcad/code/73886
Author:   starseeker
Date:     2019-09-10 20:55:58 +0000 (Tue, 10 Sep 2019)
Log Message:
-----------
(untested) we'll want to retain edge status information from closest_edge 
processing for later reuse

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

Modified: brlcad/trunk/src/libbrep/cdt_edge.cpp
===================================================================
--- brlcad/trunk/src/libbrep/cdt_edge.cpp       2019-09-10 20:44:39 UTC (rev 
73885)
+++ brlcad/trunk/src/libbrep/cdt_edge.cpp       2019-09-10 20:55:58 UTC (rev 
73886)
@@ -1648,13 +1648,21 @@
 
            ws.clear();
 
+           split_cnt++;
+
            if (split_check) {
                ws = current_trims;
                for (w_it = ws.begin(); w_it != ws.end(); w_it++) {
-                   (*w_it)->split_status = 0;
+                   // We don't want to zero this status information if this is
+                   // our last iteration before bailing and we've still got
+                   // unresolved inputs - we will want to know about any edges
+                   // that are still overlapping with non-neighbors when doing
+                   // surface points.
+                   if (split_cnt < 10) {
+                       (*w_it)->split_status = 0;
+                   }
                }
            }
-           split_cnt++;
 
            // Once we're done with this round of splitting, update the 
e2polysegs sets
            std::map<int, std::vector<cdt_mesh::bedge_seg_t *>>::iterator m_it;
@@ -1711,7 +1719,7 @@
                rtree_bbox_2d(s_cdt, next);
                next = next->next;
                if (ecnt > cpoly->poly.size()) {
-                   std::cerr << "\nrefine_close_edges: ERROR! encountered 
infinite loop\n";
+                   std::cerr << "\nfinalize_2d_rtrees: ERROR! encountered 
infinite loop\n";
                    return;
                }
            }
@@ -1774,7 +1782,7 @@
                cpolyedge_ndists(next);
                next = next->next;
                if (ecnt > cpoly->poly.size()) {
-                   std::cerr << "\nrefine_close_edges: ERROR! encountered 
infinite loop\n";
+                   std::cerr << "\ncpolyedge_nearest_dists: ERROR! encountered 
infinite loop\n";
                    return;
                }
            }

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