1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-12-14 10:08:06 +00:00

underlying space view is now available in product space

This commit is contained in:
Zeno Rogue
2019-10-28 17:26:59 +01:00
parent e6a1279544
commit 72b52e178f
3 changed files with 16 additions and 4 deletions

View File

@@ -1639,13 +1639,23 @@ EX namespace rots {
auto g = std::move(gmatrix);
auto g0 = std::move(gmatrix0);
ld alpha = atan2(inverse(nisot::local_perspective) * point3(1, 0, 0));
bool inprod = prod;
transmatrix pView = View;
if(inprod) {
pView = spin(alpha) * View;
ld z = zlevel(tC0(View));
for(int a=0; a<3; a++) pView[a] *= exp(-z);
}
hybrid::in_underlying_map([&] {
cgi.require_shapes();
dynamicval<int> pcc(corner_centering, cornermode ? 1 : 2);
dynamicval<bool> pf(playerfound, true);
dynamicval<cellwalker> m5(centerover, viewctr.at->c7);
dynamicval<transmatrix> m2(View, ypush(0) * qtm(h));
dynamicval<transmatrix> m2(View, inprod ? pView : ypush(0) * qtm(h));
dynamicval<transmatrix> m3(playerV, Id);
dynamicval<transmatrix> m4(actual_view_transform, Id);
dynamicval<eModel> pm(pmodel, mdDisk);