diff --git a/floorshapes.cpp b/floorshapes.cpp index d3f4c54e..6f1bf115 100644 --- a/floorshapes.cpp +++ b/floorshapes.cpp @@ -321,9 +321,8 @@ void geometry_information::bshape_regular(floorshape &fsh, int id, int sides, ld hyperpoint h0 = bt::get_corner_horo_coordinates(c, i) * size; hyperpoint h1 = bt::get_corner_horo_coordinates(c, i+1) * size; hyperpoint hd = (h1 - h0) / STEP; - transmatrix T = geom3::hyp_in_solnih() ? Id : iddspin_side(c, i); for(int j=0; j<=STEP; j++) - hpcpush(T * bt::get_horopoint(h0 + hd * j)); + hpcpush(iddspin_side(c, i) * bt::get_horopoint(h0 + hd * j)); chasmifyPoly(dlow_table[k], dhi_table[k], k); } } diff --git a/geometry2.cpp b/geometry2.cpp index 310b44b7..42f599c5 100644 --- a/geometry2.cpp +++ b/geometry2.cpp @@ -467,6 +467,8 @@ EX transmatrix iddspin(cell *c, int d, ld bonus IS(0)) { return currentmap->spin EX ld cellgfxdist(cell *c, int d) { return currentmap->spacedist(c, d); } EX transmatrix ddspin_side(cell *c, int d, ld bonus IS(0)) { + if(geom3::euc_in_noniso() || geom3::hyp_in_solnih()) + return spin(bonus); if(kite::in()) { if(embedded_plane) return spin(bonus); hyperpoint h1 = get_corner_position(c, gmod(d, c->type), 3); @@ -478,6 +480,8 @@ EX transmatrix ddspin_side(cell *c, int d, ld bonus IS(0)) { } EX transmatrix iddspin_side(cell *c, int d, ld bonus IS(0)) { + if(geom3::euc_in_noniso() || geom3::hyp_in_solnih()) + return spin(bonus); if(kite::in()) { if(embedded_plane) return spin(bonus); hyperpoint h1 = get_corner_position(c, gmod(d, c->type), 3);