Revision: 74261
          http://sourceforge.net/p/brlcad/code/74261
Author:   starseeker
Date:     2019-10-29 21:07:42 +0000 (Tue, 29 Oct 2019)
Log Message:
-----------
Right general idea, but some errors are being introduced.

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-29 20:04:12 UTC (rev 
74260)
+++ brlcad/trunk/src/libbrep/cdt_ovlps.cpp      2019-10-29 21:07:42 UTC (rev 
74261)
@@ -2230,17 +2230,22 @@
            omeshes.insert(omesh2);
        }
     }
-
-    std::cout << "TODO check nverts:" << nverts.size() << "\n";
-
     std::cout << "Need to split triangles in " << omeshes.size() << " 
meshes\n";
 
     std::set<omesh_t *>::iterator o_it;
     for (o_it = omeshes.begin(); o_it != omeshes.end(); o_it++) {
        omesh_t *omesh = *o_it;
-
+       
        std::map<cdt_mesh::uedge_t, std::vector<revt_pt_t>> edge_sets;
 
+       std::set<overt_t *>::iterator nv_it;
+       for (nv_it = nverts.begin(); nv_it != nverts.end(); nv_it++) {
+           overt_t *v = *nv_it;
+           if (v->omesh != omesh) {
+               omesh->refine_pnt_add(v);
+           }
+       }
+
        std::map<long, overt_t*> roverts = omesh->refinement_overts;
        std::map<long, overt_t*>::iterator i_t;
        for (i_t = roverts.begin(); i_t != roverts.end(); i_t++) {
@@ -2250,8 +2255,13 @@
            ON_3dPoint spnt;
            ON_3dVector sn;
            double dist = ov->bb.Diagonal().Length() * 10;
-           closest_surf_pnt(spnt, sn, *omesh->fmesh, &ovpnt, 2*dist);
 
+           if (!closest_surf_pnt(spnt, sn, *omesh->fmesh, &ovpnt, 200*dist)) {
+               std::cout << "closest point failed\n";
+               omesh->refine_pnt_remove(ov);
+               continue;
+           }
+
 #if 0
            ON_3dPoint 
problem(3.40645986967497638,8.36595332610066045,23.99999898083232353);
            if (problem.DistanceTo(spnt) < 0.01) {
@@ -2325,6 +2335,12 @@
                }
            }
 
+           if (closest_uedge.v[0] == -1) {
+               std::cout << "problem\n";
+               omesh->refine_pnt_remove(ov);
+               continue;
+           }
+
            revt_pt_t rpt;
            rpt.spnt = spnt;
            rpt.sn = sn;

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