From 9c4a1d6d4e715e71aedf5c3ecf845fc4685b8ea0 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Thu, 28 May 2020 01:50:31 +0200 Subject: [PATCH] new linepattern for ultra, and also better edge drawer --- celldrawer.cpp | 24 +++++++++++++++++++++--- pattern2.cpp | 13 ++++++++++++- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/celldrawer.cpp b/celldrawer.cpp index 441484fa..2a492ed4 100644 --- a/celldrawer.cpp +++ b/celldrawer.cpp @@ -843,10 +843,28 @@ void celldrawer::draw_grid() { dynamicval g(poly_outline, gridcolor(c, c->move(t))); if(fat_edges && reg3::in()) { for(int i=0; imove(i)) { - for(int j=0; jmove(t)), prec); + for(int j=0; jmove(t)), prec); + + if(reg3::ultra_mirror_in()) { + hyperpoint a = cgi.cellshape[i*cgi.face+j]; + hyperpoint b = cgi.cellshape[i*cgi.face+jj]; + hyperpoint d = cgi.cellshape[i*cgi.face+jjj]; + auto& mm = cgi.ultra_mirror_part; + tie(a, d) = make_pair(normalize(lerp(a, b, mm)), normalize(lerp(d, b, mm))); + gridline(V, a, d, stdgridcolor, prec); + } } - gridline(V, cgi.cellshape[i*cgi.face], cgi.cellshape[(i+1)*cgi.face-1], gridcolor(c, c->move(t)), prec); } } else { diff --git a/pattern2.cpp b/pattern2.cpp index 691791b0..90c4475a 100644 --- a/pattern2.cpp +++ b/pattern2.cpp @@ -2815,6 +2815,17 @@ EX namespace linepatterns { gridlinef(V, sh.vertices[p.first], sh.vertices[p.second], col, 2 + vid.linequality); ) ); + + linepattern patUltra("ultra-connection", 0xFFFF8000, [] { return cgflags & qULTRA; }, + ALLCELLS( + ignore(c); + color_t col2 = col; + if(col2 == 0xFF) + col2 = darkena(c->landparam, 0, 0xFF); + for(auto U: cgi.ultra_mirrors) + gridlinef(V, C0, V, mid(C0, U*C0), col2, 2 + vid.linequality); + ) + ); #if HDR extern linepattern patTriTree, patTriRings, patTriOther; @@ -2827,7 +2838,7 @@ EX namespace linepatterns { &patVine, &patPalacelike, &patPalace, &patPower, &patHorocycles, &patTriRings, &patTriTree, &patTriOther, &patGoldbergTree, &patIrregularMaster, &patGoldbergSep, &patHeawood, &patArcm, - &patCircles, &patRadii, &patMeridians, &patParallels, &patSublines + &patCircles, &patRadii, &patMeridians, &patParallels, &patSublines, &patUltra }; EX void clearAll() {