mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-02-22 14:00:13 +00:00
new linepattern for ultra, and also better edge drawer
This commit is contained in:
parent
4217c7ccc7
commit
9c4a1d6d4e
@ -843,10 +843,28 @@ void celldrawer::draw_grid() {
|
||||
dynamicval<color_t> g(poly_outline, gridcolor(c, c->move(t)));
|
||||
if(fat_edges && reg3::in()) {
|
||||
for(int i=0; i<S7; i++) if(c < c->move(i)) {
|
||||
for(int j=0; j<cgi.face-1; j++) {
|
||||
gridline(V, cgi.cellshape[i*cgi.face+j], cgi.cellshape[i*cgi.face+j+1], gridcolor(c, c->move(t)), prec);
|
||||
for(int j=0; j<cgi.face; j++) {
|
||||
int jj = j == cgi.face-1 ? 0 : j+1;
|
||||
int jjj = jj == cgi.face-1 ? 0 : jj+1;
|
||||
hyperpoint a = cgi.cellshape[i*cgi.face+j];
|
||||
hyperpoint b = cgi.cellshape[i*cgi.face+jj];
|
||||
if(cgflags & qIDEAL) {
|
||||
ld mm = cgi.ultra_mirror_part;
|
||||
if((cgflags & qULTRA) && !reg3::ultra_mirror_in())
|
||||
mm = lerp(1-cgi.ultra_material_part, cgi.ultra_material_part, .99);
|
||||
tie(a, b) = make_pair(normalize(lerp(a, b, mm)), normalize(lerp(b, a, mm)));
|
||||
}
|
||||
gridline(V, a, b, gridcolor(c, c->move(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 {
|
||||
|
13
pattern2.cpp
13
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() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user