diff --git a/celldrawer.cpp b/celldrawer.cpp index f24b3104..ef48a0a3 100644 --- a/celldrawer.cpp +++ b/celldrawer.cpp @@ -1528,7 +1528,7 @@ void celldrawer::draw_features_and_walls_3d() { for(int a=0; atype; a++) { bool b = true; if(c->move(a) && (among(pmodel, mdPerspective, mdGeodesic) || gmatrix0.count(c->move(a)))) - b = !isWall3(c->move(a), dummy); + b = (patterns::innerwalls && (tC0(V)[2] < tC0(V * currentmap->adj(c, a))[2])) || !isWall3(c->move(a), dummy); if(b) { if(pmodel == mdPerspective && !sphere && !quotient && !penrose && !nonisotropic && !hybri && !experimental && !nih) { if(a < 4 && among(geometry, gHoroTris, gBinary3) && celldistAlt(c) >= celldistAlt(centerover)) continue; diff --git a/pattern2.cpp b/pattern2.cpp index 6770f242..45eb772c 100644 --- a/pattern2.cpp +++ b/pattern2.cpp @@ -1494,6 +1494,7 @@ EX namespace patterns { EX bool displaycodes; EX char whichShape = 0; EX char whichCanvas = 0; + EX bool innerwalls; int sevenval(cell *c) { if(!euclid) return 0; @@ -1789,6 +1790,7 @@ EX namespace patterns { dialog::addBreak(100); + dialog::addBoolItem_action(XLAT("display the inner walls"), innerwalls, '5'); dialog::addBoolItem(XLAT("display only hexagons"), (whichShape == '6'), '6'); dialog::addBoolItem(XLAT("display only heptagons"), (whichShape == '7'), '7'); dialog::addBoolItem(XLAT("display the triheptagonal grid"), (whichShape == '8'), '8'); @@ -2857,7 +2859,14 @@ int read_pattern_args() { patterns::whichCanvas = 'f'; shift(); patterns::color_formula = args(); } - + else if(argis("-innerwall")) { + PHASEFROM(2); + patterns::innerwalls = true; + } + else if(argis("-noinnerwall")) { + PHASEFROM(2); + patterns::innerwalls = false; + } else if(argis("-d:line")) launch_dialog(linepatterns::showMenu);