arbiquotient

This commit is contained in:
Zeno Rogue
2025-10-06 21:13:03 +02:00
parent fa84cd2f40
commit 2fb92ecc2d
4 changed files with 429 additions and 5 deletions
+14 -4
View File
@@ -633,6 +633,8 @@ EX void select_quotient() {
pushScreen(product::show_config);
else if(mtwisted)
hybrid::configure_period();
else if(arb::in())
pushScreen(arbiquotient::show_dialog);
else {
vector<eGeometry> choices;
for(int i=0; i<isize(ginf); i++) if(same_tiling(eGeometry(i))) choices.push_back(eGeometry(i));
@@ -818,7 +820,12 @@ EX geometry_data compute_geometry_data() {
case gMacbeath:
gd.euler = -12;
break;
case gArbitrary:
gd.worldsize = isize(currentmap->allcells());
gd.euler = UNKNOWN;
break;
default:
gd.worldsize = isize(currentmap->allcells());
println(hlog, "warning: Euler characteristics unknown, worldsize = ", gd.worldsize);
@@ -851,6 +858,8 @@ EX geometry_data compute_geometry_data() {
if(gd.euler < 0 && !closed_manifold)
gd.worldsize = -gd.worldsize;
if(arb::in()) gd.worldsize = isize(currentmap->allcells());
auto& spf = gd.spf;
spf = its(ts);
if(0) ;
@@ -952,6 +961,7 @@ EX geometry_data compute_geometry_data() {
if(WDIM == 3) gd.euler = 0;
gd.demigenus = 2 - gd.euler;
if(gd.euler == UNKNOWN) gd.demigenus = UNKNOWN;
return gd;
}
@@ -1179,12 +1189,12 @@ EX void showEuclideanMenu() {
add_size_action();
if(closed_manifold) {
dialog::addSelItem(XLAT("Euler characteristics"), its(gd.euler), 0);
dialog::addSelItem(XLAT("Euler characteristics"), gd.euler == UNKNOWN ? "?" : its(gd.euler), 0);
if(WDIM == 3) ;
else if(nonorientable)
dialog::addSelItem(XLAT("demigenus"), its(gd.demigenus), 0);
dialog::addSelItem(XLAT("demigenus"), gd.demigenus == UNKNOWN ? "?" : its(gd.demigenus), 0);
else
dialog::addSelItem(XLAT("genus"), its(gd.demigenus/2), 0);
dialog::addSelItem(XLAT("genus"), gd.demigenus == UNKNOWN ? "?" : its(gd.demigenus/2), 0);
}
else dialog::addBreak(200);