From d3d1d689fa94fc1ce18e46718ccef89b2b696b0a Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Fri, 27 Dec 2019 23:34:41 +0100 Subject: [PATCH] arb:: pattern Sublines --- arbitrile.cpp | 19 +++++++++++++++++++ pattern2.cpp | 10 +++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/arbitrile.cpp b/arbitrile.cpp index 595be4c3..c58dda9b 100644 --- a/arbitrile.cpp +++ b/arbitrile.cpp @@ -23,6 +23,7 @@ struct shape { vector> connections; int size() const { return isize(vertices); } void build_from_angles_edges(); + vector > sublines; }; struct arbi_tiling { @@ -210,6 +211,24 @@ void load(const string& fname) { c.shapes[ai].connections[as] = make_tuple(bi, bs, m); c.shapes[bi].connections[bs] = make_tuple(ai, as, m); } + else if(ep.eat("subline(")) { + int ai = ep.iparse(); verify_index(ai, c.shapes); ep.force_eat(","); + int as = ep.iparse(); verify_index(as, c.shapes[ai]); ep.force_eat(","); + int bs = ep.iparse(); verify_index(bs, c.shapes[ai]); ep.force_eat(")"); + c.shapes[ai].sublines.emplace_back(as, bs); + } + else if(ep.eat("sublines(")) { + int d = ep.rparse(); ep.force_eat(")"); + for(auto& sh: c.shapes) { + for(int i=0; imaster); + auto& sh = arb::current.shapes[i]; + for(auto p: sh.sublines) + gridlinef(V, sh.vertices[p.first], sh.vertices[p.second], col, 2 + vid.linequality); + ) + ); #if HDR extern linepattern patTriTree, patTriRings, patTriOther; @@ -2698,7 +2706,7 @@ EX namespace linepatterns { &patVine, &patPalacelike, &patPalace, &patPower, &patHorocycles, &patTriRings, &patTriTree, &patTriOther, &patGoldbergTree, &patIrregularMaster, &patGoldbergSep, &patHeawood, &patArcm, - &patCircles, &patRadii, &patMeridians, &patParallels + &patCircles, &patRadii, &patMeridians, &patParallels, &patSublines }; EX void clearAll() {