From 0fc8dfde151b83a76058cf8901d2dccee4d115f1 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sun, 18 Jul 2021 11:15:31 +0200 Subject: [PATCH] fixed generate_brm in 3D --- geometry2.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/geometry2.cpp b/geometry2.cpp index 36c1006e..b80281e3 100644 --- a/geometry2.cpp +++ b/geometry2.cpp @@ -757,13 +757,26 @@ EX void generate_brm(cell *c1) { q.pop(); ld mindist = HUGE_VAL, maxdist = 0; - for(int i=0; itype; i++) - for(int j=0; jtype; j++) { - ld d = hdist(get_corner_position(c1, i), T * get_corner_position(c2, j)); - if(d < mindist) mindist = d; - if(d > maxdist) maxdist = d; - } + if(WDIM == 2) { + for(int i=0; itype; i++) + for(int j=0; jtype; j++) { + ld d = hdist(get_corner_position(c1, i), T * get_corner_position(c2, j)); + if(d < mindist) mindist = d; + if(d > maxdist) maxdist = d; + } + } + else { + auto& ss1 = currentmap->get_cellshape(c1); + auto& ss2 = currentmap->get_cellshape(c2); + for(auto v: ss1.vertices_only) + for(auto w: ss2.vertices_only) { + ld d = hdist(v, T*w); + if(d < mindist) mindist = d; + if(d > maxdist) maxdist = d; + } + } + auto& cu = cutoff[c2]; if(cu == 0 || cu > maxdist) cu = maxdist;