mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-27 14:37:16 +00:00
improved geometry2 and displaydir functions for syntetic
This commit is contained in:
parent
dcee5d6d58
commit
5c90e6bcec
@ -355,8 +355,8 @@ hyperpoint get_corner_position(cell *c, int cid, ld cf) {
|
||||
return mid_at_actual(vertices[cid], 3/cf);
|
||||
}
|
||||
if(syntetic) {
|
||||
int id = synt::id_of(c->master);
|
||||
return spin(M_PI / c->type * (2*cid+0)) * xpush(synt::circumradius[id/2] * 3 / cf) * C0;
|
||||
auto& t = synt::get_triangle(c->master, cid);
|
||||
return spin(-t.first) * xpush(t.second * 3 / cf) * C0;
|
||||
}
|
||||
if(nonbitrunc) {
|
||||
return ddspin(c,cid,S6) * xpush0(hcrossf * 3 / cf);
|
||||
@ -415,9 +415,10 @@ hyperpoint nearcorner(cell *c, int i) {
|
||||
return mid_at(C0, nc, .94);
|
||||
}
|
||||
if(syntetic) {
|
||||
auto& t = synt::get_triangle(c->master, i);
|
||||
int id = synt::id_of(c->master);
|
||||
auto& t1 = synt::triangles[id][i];
|
||||
return spin(-t1.first) * xpush(t1.second) * C0;
|
||||
int id1 = synt::get_adj(synt::get_adj(c->master, i), 2).first;
|
||||
return spin(-t.first - M_PI / c->type) * xpush(synt::inradius[id/2] + synt::inradius[id1/2]) * C0;
|
||||
}
|
||||
if(binarytiling) {
|
||||
ld yx = log(2) / 2;
|
||||
|
@ -235,7 +235,12 @@ void drawLightning(const transmatrix& V) {
|
||||
}
|
||||
|
||||
int displaydir(cell *c, int d) {
|
||||
if(irr::on) {
|
||||
if(syntetic) {
|
||||
auto& t1 = synt::get_triangle(c->master, d);
|
||||
auto p = spin(-t1.first + M_PI / c->type) * xpush(t1.second) * C0;
|
||||
return -int(atan2(p[1], p[0]) * S84 / 2 / M_PI + .5);
|
||||
}
|
||||
else if(irr::on) {
|
||||
auto id = irr::cellindex[c];
|
||||
auto& vs = irr::cells[id];
|
||||
if(d < 0 || d >= c->type) return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user