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