mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-09-27 13:48:15 +00:00
embeddings:: fixed set_radar_transform to correctly rotate if eyelevel not 0, and also when euclid_embed_rotate is used
This commit is contained in:
parent
6be7951187
commit
5e0d05f10b
@ -983,12 +983,13 @@ void embedding_method::set_radar_transform() {
|
|||||||
auto a = inverse(U) * C0;
|
auto a = inverse(U) * C0;
|
||||||
auto l = actual_to_intermediate(a);
|
auto l = actual_to_intermediate(a);
|
||||||
l = intermediate_to_logical * l;
|
l = intermediate_to_logical * l;
|
||||||
|
auto l0 = l;
|
||||||
l[2] = 0;
|
l[2] = 0;
|
||||||
l = logical_to_intermediate * l;
|
l = logical_to_intermediate * l;
|
||||||
rt = inverse(intermediate_to_actual_translation(l)) * inverse(U);
|
rt = inverse(intermediate_to_actual_translation(l)) * inverse(U);
|
||||||
transmatrix T = View * intermediate_to_actual_translation(l);
|
transmatrix T = View * intermediate_to_actual_translation(logical_to_intermediate * l0);
|
||||||
if(gproduct) T = NLP * T;
|
if(gproduct) T = NLP * T;
|
||||||
T = intermediate_to_logical * T * logical_to_intermediate;
|
T = cspin(1, 0, geom3::euclid_embed_rotate * degree) * intermediate_to_logical_scaled * T * logical_scaled_to_intermediate;
|
||||||
rtp = cspin(0, 1, atan2(T[0][1], T[0][0]));
|
rtp = cspin(0, 1, atan2(T[0][1], T[0][0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user