mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 14:02:59 +00:00 
			
		
		
		
	renamed mdSolPerspective to mdGeodesic
This commit is contained in:
		| @@ -235,7 +235,7 @@ void display_data::set_projection(int ed) { | |||||||
|       shaderside_projection = true, glhr::new_shader_projection = glhr::shader_projection::standardH3, pers3 = true; |       shaderside_projection = true, glhr::new_shader_projection = glhr::shader_projection::standardH3, pers3 = true; | ||||||
|     if(DIM == 3 && (euclid || sol || nil) && apply_models && pmodel == mdPerspective) |     if(DIM == 3 && (euclid || sol || nil) && apply_models && pmodel == mdPerspective) | ||||||
|       shaderside_projection = true, glhr::new_shader_projection = glhr::shader_projection::standardR3, pers3 = true; |       shaderside_projection = true, glhr::new_shader_projection = glhr::shader_projection::standardR3, pers3 = true; | ||||||
|     if(DIM == 3 && apply_models && pmodel == mdSolPerspective) |     if(DIM == 3 && apply_models && pmodel == mdGeodesic) | ||||||
|       shaderside_projection = true, glhr::new_shader_projection = glhr::shader_projection::standardSolv, pers3 = true; |       shaderside_projection = true, glhr::new_shader_projection = glhr::shader_projection::standardSolv, pers3 = true; | ||||||
|     if(DIM == 3 && sphere && apply_models && pmodel == mdPerspective) { |     if(DIM == 3 && sphere && apply_models && pmodel == mdPerspective) { | ||||||
|       shaderside_projection = true; pers3 = true; |       shaderside_projection = true; pers3 = true; | ||||||
|   | |||||||
| @@ -268,7 +268,7 @@ enum eModel { | |||||||
|   // 17..19 |   // 17..19 | ||||||
|   mdRotatedHyperboles, mdSpiral, mdPerspective, |   mdRotatedHyperboles, mdSpiral, mdPerspective, | ||||||
|   // 20..24 |   // 20..24 | ||||||
|   mdEquivolume, mdCentralInversion, mdSimulatedPerspective, mdTwoHybrid, mdSolPerspective, |   mdEquivolume, mdCentralInversion, mdSimulatedPerspective, mdTwoHybrid, mdGeodesic, | ||||||
|   // 25.. |   // 25.. | ||||||
|   mdGUARD, mdUnchanged, mdHyperboloidFlat, mdPolynomial, mdRug, mdFlatten |   mdGUARD, mdUnchanged, mdHyperboloidFlat, mdPolynomial, mdRug, mdFlatten | ||||||
|   }; |   }; | ||||||
|   | |||||||
| @@ -708,7 +708,7 @@ void edit_sightrange() { | |||||||
|     } |     } | ||||||
|   else if(WDIM == 3) { |   else if(WDIM == 3) { | ||||||
|     dialog::editNumber(sightranges[geometry], 0, 2 * M_PI, 0.5, M_PI, XLAT("3D sight range"), |     dialog::editNumber(sightranges[geometry], 0, 2 * M_PI, 0.5, M_PI, XLAT("3D sight range"), | ||||||
|       pmodel == mdSolPerspective ? solhelp() : XLAT( |       pmodel == mdGeodesic ? solhelp() : XLAT( | ||||||
|         "Sight range for 3D geometries is specified in the absolute units. This value also affects the fog effect.\n\n" |         "Sight range for 3D geometries is specified in the absolute units. This value also affects the fog effect.\n\n" | ||||||
|         "In spherical geometries, the sight range of 2? will let you see things behind you as if they were in front of you, " |         "In spherical geometries, the sight range of 2? will let you see things behind you as if they were in front of you, " | ||||||
|         "and the sight range of ? (or more) will let you see things on the antipodal point just as if they were close to you.\n\n" |         "and the sight range of ? (or more) will let you see things on the antipodal point just as if they were close to you.\n\n" | ||||||
| @@ -728,7 +728,7 @@ void edit_sightrange() { | |||||||
|     dialog::bound_up(allowIncreasedSight() ? euclid ? 99 : gp::dist_2() * 5 : 0); |     dialog::bound_up(allowIncreasedSight() ? euclid ? 99 : gp::dist_2() * 5 : 0); | ||||||
|     } |     } | ||||||
|   dialog::extra_options = [] () { |   dialog::extra_options = [] () { | ||||||
|     if(pmodel == mdSolPerspective) { |     if(pmodel == mdGeodesic) { | ||||||
|       dialog::addSelItem(XLAT("fog effect"), fts(sightranges[geometry]), 'R'); |       dialog::addSelItem(XLAT("fog effect"), fts(sightranges[geometry]), 'R'); | ||||||
|       dialog::add_action([] { |       dialog::add_action([] { | ||||||
|         auto xo = dialog::extra_options; |         auto xo = dialog::extra_options; | ||||||
| @@ -798,7 +798,7 @@ void edit_sightrange() { | |||||||
| void menuitem_sightrange(char c) { | void menuitem_sightrange(char c) { | ||||||
|   if(vid.use_smart_range) |   if(vid.use_smart_range) | ||||||
|     dialog::addSelItem(XLAT("minimum visible cell in pixels"), fts(WDIM == 3 ? vid.smart_range_detail_3 : vid.smart_range_detail), c); |     dialog::addSelItem(XLAT("minimum visible cell in pixels"), fts(WDIM == 3 ? vid.smart_range_detail_3 : vid.smart_range_detail), c); | ||||||
|   else if(pmodel == mdSolPerspective) |   else if(pmodel == mdGeodesic) | ||||||
|     dialog::addSelItem(XLAT("3D sight range"), fts(solv::solrange_xy) + "x" + fts(solv::solrange_z), c); |     dialog::addSelItem(XLAT("3D sight range"), fts(solv::solrange_xy) + "x" + fts(solv::solrange_z), c); | ||||||
|   else if(WDIM == 3) |   else if(WDIM == 3) | ||||||
|     dialog::addSelItem(XLAT("3D sight range"), fts(sightranges[geometry]), c); |     dialog::addSelItem(XLAT("3D sight range"), fts(sightranges[geometry]), c); | ||||||
|   | |||||||
| @@ -630,8 +630,8 @@ namespace conformal { | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   bool model_available(eModel pm) { |   bool model_available(eModel pm) { | ||||||
|     if(sol) return among(pm, mdDisk, mdPerspective, mdSolPerspective); |     if(sol) return among(pm, mdDisk, mdPerspective, mdGeodesic); | ||||||
|     if(pm == mdSolPerspective && !sol) return false; |     if(pm == mdGeodesic && !sol) return false; | ||||||
|     if(sphere && (pm == mdHalfplane || pm == mdBall)) |     if(sphere && (pm == mdHalfplane || pm == mdBall)) | ||||||
|       return false; |       return false; | ||||||
|     if(DIM == 2 && pm == mdPerspective) return false; |     if(DIM == 2 && pm == mdPerspective) return false; | ||||||
| @@ -657,7 +657,7 @@ namespace conformal { | |||||||
|     if(sol) { |     if(sol) { | ||||||
|       if(m == mdDisk) return XLAT("simple model: projection"); |       if(m == mdDisk) return XLAT("simple model: projection"); | ||||||
|       if(m == mdPerspective) return XLAT("simple model: perspective"); |       if(m == mdPerspective) return XLAT("simple model: perspective"); | ||||||
|       if(m == mdSolPerspective) return XLAT("native perspective"); |       if(m == mdGeodesic) return XLAT("native perspective"); | ||||||
|       } |       } | ||||||
|     if(m == mdDisk && DIM == 3) return XLAT("perspective in 4D"); |     if(m == mdDisk && DIM == 3) return XLAT("perspective in 4D"); | ||||||
|     if(m == mdHalfplane && DIM == 3 && hyperbolic) return XLAT("half-space"); |     if(m == mdHalfplane && DIM == 3 && hyperbolic) return XLAT("half-space"); | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ int detaillevel = 0; | |||||||
| bool first_cell_to_draw = true; | bool first_cell_to_draw = true; | ||||||
|  |  | ||||||
| bool in_perspective() { | bool in_perspective() { | ||||||
|   return among(pmodel, mdPerspective, mdSolPerspective); |   return among(pmodel, mdPerspective, mdGeodesic); | ||||||
|   } |   } | ||||||
|  |  | ||||||
| bool hide_player() { | bool hide_player() { | ||||||
| @@ -5057,7 +5057,7 @@ void drawcell(cell *c, transmatrix V, int spinv, bool mirrored) { | |||||||
|       } |       } | ||||||
|     noclipped++; |     noclipped++; | ||||||
|     } |     } | ||||||
|   if(pmodel == mdSolPerspective) { |   if(pmodel == mdGeodesic) { | ||||||
|     using namespace hyperpoint_vec; |     using namespace hyperpoint_vec; | ||||||
|     hyperpoint H = tC0(V); |     hyperpoint H = tC0(V); | ||||||
|     if(abs(H[0]) <= 2 && abs(H[1]) <= 2 && abs(H[2]) <= 2) ; |     if(abs(H[0]) <= 2 && abs(H[1]) <= 2 && abs(H[2]) <= 2) ; | ||||||
| @@ -6042,7 +6042,7 @@ void drawcell(cell *c, transmatrix V, int spinv, bool mirrored) { | |||||||
|             firelimit++; |             firelimit++; | ||||||
|             } |             } | ||||||
|           else if(c->wall == waMineOpen) { |           else if(c->wall == waMineOpen) { | ||||||
|             if(pmodel == mdSolPerspective && hdist0(tC0(V)) < 1e-3) { |             if(pmodel == mdGeodesic && hdist0(tC0(V)) < 1e-3) { | ||||||
|               } |               } | ||||||
|             else { |             else { | ||||||
|               int mines = countMinesAround(c); |               int mines = countMinesAround(c); | ||||||
|   | |||||||
| @@ -320,7 +320,7 @@ void applymodel(hyperpoint H, hyperpoint& ret) { | |||||||
|       return; |       return; | ||||||
|       } |       } | ||||||
|  |  | ||||||
|     case mdSolPerspective: { |     case mdGeodesic: { | ||||||
|       auto S = nisot::inverse_exp(H, nisot::iTable); |       auto S = nisot::inverse_exp(H, nisot::iTable); | ||||||
|       if(nisot::local_perspective_used()) S = nisot::local_perspective * S; |       if(nisot::local_perspective_used()) S = nisot::local_perspective * S; | ||||||
|       ld ratio = vid.xres / current_display->tanfov / current_display->radius / 2; |       ld ratio = vid.xres / current_display->tanfov / current_display->radius / 2; | ||||||
| @@ -886,7 +886,7 @@ transmatrix actualV(const heptspin& hs, const transmatrix& V) { | |||||||
| bool point_behind(hyperpoint h) { | bool point_behind(hyperpoint h) { | ||||||
|   if(sphere) return false; |   if(sphere) return false; | ||||||
|   if(!in_perspective()) return false; |   if(!in_perspective()) return false; | ||||||
|   if(pmodel == mdSolPerspective) h = nisot::inverse_exp(h, nisot::iLazy); |   if(pmodel == mdGeodesic) h = nisot::inverse_exp(h, nisot::iLazy); | ||||||
|   if(nisot::local_perspective_used()) h = nisot::local_perspective * h; |   if(nisot::local_perspective_used()) h = nisot::local_perspective * h; | ||||||
|   return h[2] < 0; |   return h[2] < 0; | ||||||
|   } |   } | ||||||
| @@ -911,7 +911,7 @@ bool in_smart_range(const transmatrix& T) { | |||||||
|   hyperpoint h = tC0(T); |   hyperpoint h = tC0(T); | ||||||
|   if(invalid_point(h)) return false; |   if(invalid_point(h)) return false; | ||||||
|   if(nil) return cells_drawn < 2000; |   if(nil) return cells_drawn < 2000; | ||||||
|   if(pmodel == mdSolPerspective) return solv::in_table_range(h); |   if(pmodel == mdGeodesic) return solv::in_table_range(h); | ||||||
|   hyperpoint h1; |   hyperpoint h1; | ||||||
|   applymodel(h, h1); |   applymodel(h, h1); | ||||||
|   if(invalid_point(h1)) return false; |   if(invalid_point(h1)) return false; | ||||||
| @@ -1880,7 +1880,7 @@ bool do_draw(cell *c, const transmatrix& T) { | |||||||
|   PROD( if(product::pmap) return product::in_actual([&] { return do_draw(product::get_at(c, product::plevel), T); }); ) |   PROD( if(product::pmap) return product::in_actual([&] { return do_draw(product::get_at(c, product::plevel), T); }); ) | ||||||
|   if(WDIM == 3) { |   if(WDIM == 3) { | ||||||
|     if(cells_drawn > vid.cells_drawn_limit) return false; |     if(cells_drawn > vid.cells_drawn_limit) return false; | ||||||
|     if(pmodel == mdSolPerspective) { |     if(pmodel == mdGeodesic) { | ||||||
|       if(!nisot::in_table_range(tC0(T))) return false; |       if(!nisot::in_table_range(tC0(T))) return false; | ||||||
|       if(!limited_generation(c)) return false; |       if(!limited_generation(c)) return false; | ||||||
|       } |       } | ||||||
|   | |||||||
| @@ -640,7 +640,7 @@ namespace nisot { | |||||||
|       } |       } | ||||||
|     else if(argis("-solgeo")) { |     else if(argis("-solgeo")) { | ||||||
|       geodesic_movement = true; |       geodesic_movement = true; | ||||||
|       pmodel = mdSolPerspective; |       pmodel = mdGeodesic; | ||||||
|       return 0; |       return 0; | ||||||
|       } |       } | ||||||
|     else if(argis("-solnogeo")) { |     else if(argis("-solnogeo")) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue