Index: plugins/rt_topo/crbs_route.c =================================================================== --- plugins/rt_topo/crbs_route.c (revision 1384) +++ plugins/rt_topo/crbs_route.c (revision 1385) @@ -645,7 +645,7 @@ memset(&crbs, 0, sizeof(crbs_t)); crbs.disable_concave = 1; - crbs.enable_mid_virt = 0; + crbs.enable_mid_virt = rt_topo_cfg.mid_virt; crbs_init(&crbs, ctx); rt_topo_crbs_cdt_init(ctx, &crbs); Index: plugins/rt_topo/rt_topo.c =================================================================== --- plugins/rt_topo/rt_topo.c (revision 1384) +++ plugins/rt_topo/rt_topo.c (revision 1385) @@ -43,6 +43,7 @@ RTRND_CONF_COORD("via_dia", 1.2, 0.01, 10, "via copper ring outer diameter", &rt_topo_cfg.via_dia) RTRND_CONF_COORD("via_clr", 0.20, 0.01, 10, "clearance around via copper", &rt_topo_cfg.via_clr) RTRND_CONF_DOUBLE("beta", 50, 0, 100, "via vs. wire length preference; high value = short wires, low value = less vias", &rt_topo_cfg.beta) + RTRND_CONF_BOOLEAN("mid_virt", 0, "split long triangulation edges in half by inserting 0 sized virtual points; makes more routes possible but also makes tracks longer with unnecessary curves and detours", &rt_topo_cfg.beta) /* RTRND_CONF_BOOLEAN("octilinear", 0, "draw 90 and 45 degree lines", &rt_topo_cfg.octilin)*/ RTRND_CONF_TERMINATE }; Index: plugins/rt_topo/rt_topo.h =================================================================== --- plugins/rt_topo/rt_topo.h (revision 1384) +++ plugins/rt_topo/rt_topo.h (revision 1385) @@ -17,7 +17,7 @@ typedef struct { /* configured */ double wire_thick, wire_clr, via_dia, via_clr, beta; - int octilin, algo; + int octilin, algo, mid_virt; /* calculated */ double alpha, alpha2;