{"id":1137,"date":"2026-06-18T16:49:35","date_gmt":"2026-06-18T23:49:35","guid":{"rendered":"https:\/\/fx-td.com\/houdiniandchill\/?p=1137"},"modified":"2026-06-18T16:58:04","modified_gmt":"2026-06-18T23:58:04","slug":"archived-post-by-remipierre-2","status":"publish","type":"post","link":"http:\/\/fx-td.com\/houdiniandchill\/2026\/06\/18\/archived-post-by-remipierre-2\/","title":{"rendered":"Archived post by remipierre"},"content":{"rendered":"<div class=\"postie-post\">\n<p class=\"\">By the way, I will go back to the **quadrangulate **discussion we had a while, my geometry comes triangulated as it comes from a game engine and doesn&#8217;t keep quads.<br \/>\nIn the end, I replaced the dissolve node by a wrangle in the node and it runs way faster, I basically recreate polygons myself. I will put it there if someone needs it<br \/>\nIt might not work with all cases, works in mine, though<\/p>\n<p class=\"\">&#8220;` int ordered_poly[]; int shared_pts[]; int vtx_tmp[];<br \/>\n\/\/ Get the edge group from the first input int pts[] = expandedgegroup(0, &#8220;long_edge&#8221;);<br \/>\n\/\/ Loop through the point pairs making up the edges for (int i = 0; i &lt; len(pts); i += 2) {     \/\/ Get positions of the two points for the current edge     int first_hedge = pointedge(0, pts[i], pts[i+1]);     int first_prim = hedge_prim(0, first_hedge);     int second_hedge = hedge_nextequiv(0, first_hedge);     int second_prim = hedge_prim(0, second_hedge);          int vtx1[] = primpoints(0, first_prim);     int vtx2[] = primpoints(0, second_prim);          shared_pts = array(pts[i], pts[i+1]);          \/\/ get unique points     int p_shared_a = shared_pts[0];     int p_shared_b = shared_pts[1];     vtx_tmp = vtx1;     removevalue(vtx_tmp, shared_pts[0]);     removevalue(vtx_tmp, shared_pts[1]);     int p_unique_0 = vtx_tmp[0];     vtx_tmp = vtx2;     removevalue(vtx_tmp, shared_pts[0]);     removevalue(vtx_tmp, shared_pts[1]);     int p_unique_1 = vtx_tmp[0];          \/\/ Find winding     int idx_a = find(vtx1, p_shared_a);     int idx_b = find(vtx1, p_shared_b);     if((idx_a + 1) % 3 == idx_b){         ordered_poly = array(p_unique_0, p_shared_a, p_unique_1, p_shared_b);     } else {         ordered_poly = array(p_unique_0, p_shared_b, p_unique_1, p_shared_a);     }          \/\/ put prims to delete in a group     setprimgroup(0, &quot;__to_del&quot;, first_prim, 1);     setprimgroup(0, &quot;__to_del&quot;, second_prim, 1);          \/\/ Create polygon     int new_poly = addprim(0, &quot;poly&quot;);     foreach(int p; ordered_poly){         addvertex(0, new_poly, p);     } } &#8220;`<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>By the way, I will go back to the **quadrangulate **discussion we had a while, my geometry comes triangulated as it comes from a game engine and doesn&#8217;t keep quads. In the end, I replaced the dissolve node by a wrangle in the node and it runs way faster, I basically recreate polygons myself. I &hellip; <a href=\"http:\/\/fx-td.com\/houdiniandchill\/2026\/06\/18\/archived-post-by-remipierre-2\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Archived post by remipierre<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts\/1137"}],"collection":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/comments?post=1137"}],"version-history":[{"count":0,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts\/1137\/revisions"}],"wp:attachment":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/media?parent=1137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/categories?post=1137"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/tags?post=1137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}