scr_to_ori functions applied in shifted bands

This commit is contained in:
Zeno Rogue 2023-08-14 11:25:09 +02:00
parent b98ac1c487
commit d9d92bfd84
2 changed files with 8 additions and 6 deletions

View File

@ -2943,9 +2943,9 @@ EX void change_shift(shiftpoint& h, ld by) {
tie(h[0], h[1]) = make_pair(h[0] * ca - h[1] * sa, h[1] * ca + h[0] * sa);
}
else if((mdinf[pmodel].flags & mf::uses_bandshift) || (sphere && pmodel == mdSpiral)) {
h.h = pconf.mori().get() * h.h;
models::ori_to_scr(h.h);
h.h = xpush(-by) * h.h;
h.h = rot_inverse(pconf.mori().get()) * h.h;
models::scr_to_ori(h.h);
}
}
@ -2960,10 +2960,10 @@ EX void change_shift(shiftmatrix& T, ld by) {
}
}
else if((mdinf[pmodel].flags & mf::uses_bandshift) || (sphere && pmodel == mdSpiral)) {
T.T = pconf.mori().get() * T.T;
models::scr_to_ori(T.T);
T.T = xpush(-by) * T.T;
fixmatrix(T.T);
T.T = rot_inverse(pconf.mori().get()) * T.T;
models::ori_to_scr(T.T);
}
}
@ -3006,7 +3006,7 @@ EX void optimize_shift(shiftmatrix& T) {
}
else if(((mdinf[pmodel].flags & mf::uses_bandshift) && T[LDIM][LDIM] > 30) || (sphere && pmodel == mdSpiral)) {
T.T = pconf.mori().get() * T.T;
models::ori_to_scr(T.T);
hyperpoint H = tC0(T.T);
find_zlev(H);
@ -3019,7 +3019,7 @@ EX void optimize_shift(shiftmatrix& T) {
T.shift += x;
T.T = xpush(-x) * T.T;
fixmatrix(T.T);
T.T = rot_inverse(pconf.mori().get()) * T.T;
models::scr_to_ori(T.T);
}
}

View File

@ -124,9 +124,11 @@ EX namespace models {
/** screen coordinates to orientation logical coordinates */
EX void ori_to_scr(hyperpoint& h) { if(!model_straight) h = pconf.mori().get() * h; }
EX void ori_to_scr(transmatrix& h) { if(!model_straight) h = pconf.mori().get() * h; }
/** orientation logical coordinates to screen coordinates */
EX void scr_to_ori(hyperpoint& h) { if(!model_straight) h = iso_inverse(pconf.mori().get()) * h; }
EX void scr_to_ori(transmatrix& h) { if(!model_straight) h = iso_inverse(pconf.mori().get()) * h; }
#if HDR
template<class A>