mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-07-07 11:52:51 +00:00
3d:: 3D geometries selectable from Geometry Experiments
This commit is contained in:
parent
3780343367
commit
3cf1236a0a
24
geom-exp.cpp
24
geom-exp.cpp
@ -371,7 +371,7 @@ void ge_land_selection() {
|
|||||||
vector<eGeometry> tilinglist = {
|
vector<eGeometry> tilinglist = {
|
||||||
gTinySphere, gSmallSphere, gSphere, gEuclid, gNormal, gOctagon,
|
gTinySphere, gSmallSphere, gSphere, gEuclid, gNormal, gOctagon,
|
||||||
gOctahedron, gEuclidSquare, g45, g46, g47,
|
gOctahedron, gEuclidSquare, g45, g46, g47,
|
||||||
gArchimedean, gBinaryTiling, gBinary3, gCubeTiling
|
gArchimedean, gBinaryTiling
|
||||||
};
|
};
|
||||||
|
|
||||||
vector<eGeometry> quotientlist = {
|
vector<eGeometry> quotientlist = {
|
||||||
@ -382,6 +382,10 @@ vector<eGeometry> quotientlist = {
|
|||||||
gMacbeath, gBring, gSchmutzM2, gSchmutzM3, gCrystal
|
gMacbeath, gBring, gSchmutzM2, gSchmutzM3, gCrystal
|
||||||
};
|
};
|
||||||
|
|
||||||
|
vector<eGeometry> list3d = {
|
||||||
|
gBinary3, gCubeTiling, gCell120, gECell120
|
||||||
|
};
|
||||||
|
|
||||||
void ge_select_tiling(const vector<eGeometry>& lst) {
|
void ge_select_tiling(const vector<eGeometry>& lst) {
|
||||||
cmode = sm::SIDE | sm::MAYDARK;
|
cmode = sm::SIDE | sm::MAYDARK;
|
||||||
gamescreen(0);
|
gamescreen(0);
|
||||||
@ -582,6 +586,9 @@ void showEuclideanMenu() {
|
|||||||
|
|
||||||
dialog::add_action([] { pushScreen([] { ge_select_tiling(quotientlist); }); });
|
dialog::add_action([] { pushScreen([] { ge_select_tiling(quotientlist); }); });
|
||||||
|
|
||||||
|
dialog::addSelItem(XLAT("dimension"), its(DIM), 'd');
|
||||||
|
dialog::add_action([] { pushScreen([] { ge_select_tiling(list3d); }); });
|
||||||
|
|
||||||
#if CAP_IRR
|
#if CAP_IRR
|
||||||
if(hyperbolic && IRREGULAR) {
|
if(hyperbolic && IRREGULAR) {
|
||||||
nom = isize(irr::cells);
|
nom = isize(irr::cells);
|
||||||
@ -605,10 +612,11 @@ void showEuclideanMenu() {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
else if(DIM == 3) dialog::addBreak(100);
|
||||||
else {
|
else {
|
||||||
dialog::addSelItem(XLAT("variations"), gp::operation_name(), 'v');
|
dialog::addSelItem(XLAT("variations"), gp::operation_name(), 'v');
|
||||||
dialog::add_action([] {
|
dialog::add_action([] {
|
||||||
if(euclid6) ;
|
if(0) ;
|
||||||
#if CAP_ARCM
|
#if CAP_ARCM
|
||||||
else if(archimedean) arcm::next_variation();
|
else if(archimedean) arcm::next_variation();
|
||||||
#endif
|
#endif
|
||||||
@ -677,11 +685,11 @@ void showEuclideanMenu() {
|
|||||||
|
|
||||||
dialog::addTitle(XLAT("info about: %1", fgname), 0xFFFFFF, 150);
|
dialog::addTitle(XLAT("info about: %1", fgname), 0xFFFFFF, 150);
|
||||||
|
|
||||||
dialog::addSelItem(XLAT("faces per vertex"), spf, 0);
|
if(DIM == 2) dialog::addSelItem(XLAT("faces per vertex"), spf, 0);
|
||||||
|
|
||||||
dialog::addSelItem(XLAT("size of the world"),
|
dialog::addSelItem(XLAT("size of the world"),
|
||||||
#if CAP_BT
|
#if CAP_BT
|
||||||
binarytiling ? fts4(8 * M_PI * sqrt(2) * log(2) / vid.binary_width) + " exp(∞)" :
|
binarytiling ? fts4(8 * M_PI * sqrt(2) * log(2) / pow(vid.binary_width, DIM-1)) + " exp(∞)" :
|
||||||
#endif
|
#endif
|
||||||
#if CAP_ARCM
|
#if CAP_ARCM
|
||||||
archimedean ? arcm::current.world_size() :
|
archimedean ? arcm::current.world_size() :
|
||||||
@ -690,20 +698,24 @@ void showEuclideanMenu() {
|
|||||||
#if CAP_CRYSTAL
|
#if CAP_CRYSTAL
|
||||||
geometry == gCrystal ? "∞^" + its(ts/2) :
|
geometry == gCrystal ? "∞^" + its(ts/2) :
|
||||||
#endif
|
#endif
|
||||||
|
DIM == 3 && sphere ? its(isize(currentmap->allcells())) :
|
||||||
|
DIM == 3 && euclid ? "∞" :
|
||||||
worldsize < 0 ? (nom%denom ? its(nom)+"/"+its(denom) : its(-worldsize)) + " exp(∞)":
|
worldsize < 0 ? (nom%denom ? its(nom)+"/"+its(denom) : its(-worldsize)) + " exp(∞)":
|
||||||
(euwrap && !fulltorus) ? "∞" :
|
(euwrap && !fulltorus) ? "∞" :
|
||||||
worldsize == 0 ? "∞²" :
|
worldsize == 0 ? "∞²" :
|
||||||
its(worldsize),
|
its(worldsize),
|
||||||
'3');
|
'3');
|
||||||
|
|
||||||
dialog::add_action([] {
|
if(DIM == 2) dialog::add_action([] {
|
||||||
if(!viewdists) { enable_viewdists(); pushScreen(viewdist_configure_dialog); }
|
if(!viewdists) { enable_viewdists(); pushScreen(viewdist_configure_dialog); }
|
||||||
else if(viewdists) viewdists = false;
|
else if(viewdists) viewdists = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
if(bounded) {
|
if(bounded) {
|
||||||
|
if(DIM == 3) euler = 0;
|
||||||
dialog::addSelItem(XLAT("Euler characteristics"), its(euler), 0);
|
dialog::addSelItem(XLAT("Euler characteristics"), its(euler), 0);
|
||||||
if(nonorientable)
|
if(DIM == 3) ;
|
||||||
|
else if(nonorientable)
|
||||||
dialog::addSelItem(XLAT("demigenus"), its(2-euler), 0);
|
dialog::addSelItem(XLAT("demigenus"), its(2-euler), 0);
|
||||||
else
|
else
|
||||||
dialog::addSelItem(XLAT("genus"), its((2-euler)/2), 0);
|
dialog::addSelItem(XLAT("genus"), its((2-euler)/2), 0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user