diff --git a/euclid.cpp b/euclid.cpp index 8446b7f4..cdd8cefa 100644 --- a/euclid.cpp +++ b/euclid.cpp @@ -1189,6 +1189,9 @@ EX void generate() { auto& cs = cgi.cellshape; + cgi.loop = 4; + cgi.schmid = 3; + if(S7 == 6) { cgi.adjcheck = 1; cgi.face = 4; @@ -1245,6 +1248,8 @@ EX void generate() { } } } + + reg3::make_vertices_only(); } diff --git a/fieldpattern.cpp b/fieldpattern.cpp index 257f9c83..c3ae3551 100644 --- a/fieldpattern.cpp +++ b/fieldpattern.cpp @@ -1173,6 +1173,7 @@ EX struct fpattern& getcurrfp() { fp.Prime = 11; fp.force_hash = 0x363D8DA4u; fp.solve(); return fp; } + if(!hyperbolic) return fp_invalid; if(WDIM == 3 && !quotient && !hybri && !bt::in()) { static fpattern fp(0); if(fp.Prime) return fp; @@ -1180,7 +1181,6 @@ EX struct fpattern& getcurrfp() { DEBB(DF_FIELD, ("set prime = ", fp.Prime)); return fp; } - if(!hyperbolic) return fp_invalid; if(S7 == 8 && S3 == 3 && !bt::in()) { static fpattern fp(17); return fp; diff --git a/reg3.cpp b/reg3.cpp index 967377c7..d59e02b1 100644 --- a/reg3.cpp +++ b/reg3.cpp @@ -80,6 +80,16 @@ EX namespace reg3 { cgi.ultra_mirrors.push_back(rspintox(v) * xpush(cgi.ultra_mirror_dist*2) * MirrorX * spintox(v)); } + EX void make_vertices_only() { + auto& vertices_only = cgi.vertices_only; + vertices_only.clear(); + for(hyperpoint h: cgi.cellshape) { + bool found = false; + for(hyperpoint h2: vertices_only) if(hdist(h, h2) < 1e-6) found = true; + if(!found) vertices_only.push_back(h); + } + } + EX void generate() { if(fake::in()) { @@ -89,7 +99,6 @@ EX namespace reg3 { int& loop = cgi.loop; int& face = cgi.face; - auto& vertices_only = cgi.vertices_only; auto& spins = cgi.spins; auto& cellshape = cgi.cellshape; auto& adjcheck = cgi.adjcheck; @@ -241,13 +250,7 @@ EX namespace reg3 { for(auto& v: cellshape) v = T * v; } - vertices_only.clear(); - for(hyperpoint h: cellshape) { - bool found = false; - for(hyperpoint h2: vertices_only) if(hdist(h, h2) < 1e-6) found = true; - if(!found) vertices_only.push_back(h); - } - + make_vertices_only(); compute_ultra(); for(int a=0; a