From 7382791dff08feef8c59a642dafb50811be7cfcd Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sat, 18 Aug 2018 17:52:43 +0200 Subject: [PATCH] separate shadows for Escher floorshapes --- floorshapes.cpp | 53 +++++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/floorshapes.cpp b/floorshapes.cpp index 03e053f4..f01a9264 100644 --- a/floorshapes.cpp +++ b/floorshapes.cpp @@ -399,6 +399,7 @@ void generate_floorshapes_for(int id, cell *c, int siid, int sidir) { auto& fsh = *pfsh; sizeto(fsh.b, id); + sizeto(fsh.shadow, id); if(!gp::on && !irr::on && !binarytiling && !syntetic) { generate_matrices_scale(fsh.scale, fsh.noftype); @@ -410,6 +411,15 @@ void generate_floorshapes_for(int id, cell *c, int siid, int sidir) { if(id == 0) bshape2(fsh.b[0], fsh.prio, fsh.shapeid0, hex_matrices); if(id == 1) bshape2(fsh.b[1], fsh.prio, fsh.shapeid1, hept_matrices); } + generate_matrices_scale(fsh.scale * SHADMUL, fsh.noftype); + if(nonbitrunc && geosupport_graveyard() < 2 && fsh.shapeid2) { + if(id == 0) bshape2(fsh.shadow[0], fsh.prio, fsh.shapeid2, hept_matrices); + if(id == 1) bshape2(fsh.shadow[1], fsh.prio, fsh.shapeid2, hept_matrices); + } + else { + if(id == 0) bshape2(fsh.shadow[0], fsh.prio, fsh.shapeid0, hex_matrices); + if(id == 1) bshape2(fsh.shadow[1], fsh.prio, fsh.shapeid1, hept_matrices); + } } else { @@ -421,32 +431,33 @@ void generate_floorshapes_for(int id, cell *c, int siid, int sidir) { m.n.sym = cor; - int i = 0; - int v = sidir+siid; - for(int d=0; d