From 4e33b2f333dd7e47b0bf6806fb5ef221817ec5f3 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sat, 18 Apr 2026 23:49:45 +0200 Subject: [PATCH] arcm:: patTree is now able to display underlying trees for arcm --- pattern2.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pattern2.cpp b/pattern2.cpp index 0af950c3..3acc086c 100644 --- a/pattern2.cpp +++ b/pattern2.cpp @@ -2722,7 +2722,7 @@ EX namespace linepatterns { EX ld tree_starter = 0.25; - EX linepattern patTree = linepattern("underlying tree", 0x00d0d000, [] { return bt::in() || (trees_known() && mod_allowed()); }, + EX linepattern patTree = linepattern("underlying tree", 0x00d0d000, [] { return arcm::in() || bt::in() || (trees_known() && mod_allowed()); }, ALLCELLS( if(is_master(c)) { int dir = updir(c->master); @@ -2731,6 +2731,20 @@ EX namespace linepatterns { hyperpoint start = normalize(C0 + tree_starter * (end - C0)); gridlinef(V, start, V, end, col, 2 + vid.linequality); } + if(arcm::in() && PURE) for(int i=0; imaster->type; i++) { + auto h2 = c->master->move(i); + bool used = false; + for(int j=0; jtype; j++) if(h2->move(j) && arcm::id_of(h2->move(j)) < 2*arcm::current.N && h2->move(j) < c->master) { + used = true; + } + if(used) continue; + int dir = updir(h2); + if(dir == -1) continue; + transmatrix T = currentmap->master_relative(c, true) * currentmap->adj(c->master, i); + hyperpoint end = T * currentmap->adj(h2, dir) * C0; + hyperpoint start = normalize(T * C0 + tree_starter * (end - T * C0)); + gridlinef(V, start, V, end, col, 2 + vid.linequality); + } ) ); linepattern patAltTree("circle/horocycle tree", 0xd000d000, horo_only,