diff --git a/floorshapes.cpp b/floorshapes.cpp index 46c34c7d..b5115334 100644 --- a/floorshapes.cpp +++ b/floorshapes.cpp @@ -206,7 +206,9 @@ void horopoint(ld y, ld x, cell &fc, int c) { } void horoline(ld y, ld x1, ld x2) { - for(int a=0; a<=16; a++) + if(DIM == 3) + horopoint(y, x1), horopoint(y, x2); + else for(int a=0; a<=16; a++) horopoint(y, x1 + (x2-x1) * a / 16.); } @@ -271,43 +273,6 @@ void bshape_regular(floorshape &fsh, int id, int sides, int shift, ld size) { hpcpush(xspinpush0(-M_PI/sides, size)); chasmifyPoly(dlow_table[k], dhi_table[k], k); } - - for(int k=0; kflags |= POLY_TRIANGLES; - } } #if CAP_IRR @@ -443,35 +408,12 @@ void generate_floorshapes_for(int id, cell *c, int siid, int sidir) { hpcpush(iddspin(c, cid) * cornerlist[(cid+1)%cor]); chasmifyPoly(dlow_table[k], dhi_table[k], k); } - - for(int k=0; k cors; + for(int i=0; itype; i++) cors.push_back(get_corner_position(c, i, 3)); + cors.push_back(cors[0]); + for(int t=0; ttype; t++) + for(int y=0; yflags |= POLY_TRIANGLES; + } + } + + for(auto pfsh: all_escher_floorshapes) { + auto& fsh = *pfsh; + + for(int l=0; l