Revision: 74251
          http://sourceforge.net/p/brlcad/code/74251
Author:   starseeker
Date:     2019-10-28 13:31:47 +0000 (Mon, 28 Oct 2019)
Log Message:
-----------
Need the polygon point mapping for the second triangle as well.

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-26 21:59:18 UTC (rev 
74250)
+++ brlcad/trunk/src/libbrep/cdt_ovlps.cpp      2019-10-28 13:31:47 UTC (rev 
74251)
@@ -1040,7 +1040,10 @@
        std::map<cdt_mesh::uedge_t, 
std::set<std::pair<ON_3dPoint,ON_3dVector>>> &edge_sets
 )
 {
-    //struct ON_Brep_CDT_State *s_cdt = (struct ON_Brep_CDT_State 
*)omesh->fmesh->p_cdt;
+    struct ON_Brep_CDT_State *s_cdt = (struct ON_Brep_CDT_State 
*)omesh->fmesh->p_cdt;
+
+    std::cout << "Processing " << s_cdt->name << " face " << 
omesh->fmesh->f_id << ":\n";
+
     std::map<cdt_mesh::uedge_t, 
std::set<std::pair<ON_3dPoint,ON_3dVector>>>::iterator es_it;
     for (es_it = edge_sets.begin(); es_it != edge_sets.end(); es_it++) {
        std::map<cdt_mesh::uedge_t, 
std::set<std::pair<ON_3dPoint,ON_3dVector>>> updated_esets;
@@ -1120,22 +1123,32 @@
        polygon->add_edge(e1);
        polygon->add_edge(e2);
        polygon->add_edge(e3);
+
+       bu_file_delete("tri_replace_pair.plot3");
+       polygon->polygon_plot_in_plane("tri_replace_pair.plot3");
+
        std::set<cdt_mesh::uedge_t> new_edges;
        std::set<cdt_mesh::uedge_t> shared_edges;
        tri = omesh->fmesh->tris_vect[*(rtris.begin())];
        rtris.erase(rtris.begin());
-       std::set<cdt_mesh::uedge_t> nuedges = omesh->fmesh->uedges(tri);
-       std::set<cdt_mesh::uedge_t>::iterator n_it;
-       for (n_it = nuedges.begin(); n_it != nuedges.end(); n_it++) {
-           cdt_mesh::uedge_t nue = *n_it;
-           if (nue != ue) {
-               new_edges.insert(nue);
+
+       for (int i = 0; i < 3; i++) {
+           int v1 = i;
+           int v2 = (i < 2) ? i + 1 : 0;
+           cdt_mesh::uedge_t ue1(tri.v[v1], tri.v[v2]);
+           cdt_mesh::uedge_t nue1(t_pts_map[tri.v[v1]], t_pts_map[tri.v[v2]]);
+           if (ue1 != ue) {
+               new_edges.insert(nue1);
            } else {
-               shared_edges.insert(nue);
+               shared_edges.insert(nue1);
            }
        }
+       
        polygon->replace_edges(new_edges, shared_edges);
 
+       bu_file_delete("tri_replace_pair.plot3");
+       polygon->polygon_plot_in_plane("tri_replace_pair.plot3");
+
        std::set<std::pair<ON_3dPoint,ON_3dVector>>::iterator ep_it;
        for (ep_it = epnts.begin(); ep_it != epnts.end(); ep_it++) {
            ON_3dPoint p = ep_it->first;

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