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