mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-05-09 18:54:07 +00:00
embeddings:: fixed vertical_vector
This commit is contained in:
parent
5e0d05f10b
commit
6950e0e1ba
25
hypgraph.cpp
25
hypgraph.cpp
@ -1896,30 +1896,17 @@ EX bool keep_vertical() {
|
|||||||
|
|
||||||
EX hyperpoint vertical_vector() {
|
EX hyperpoint vertical_vector() {
|
||||||
auto& ds = downseek;
|
auto& ds = downseek;
|
||||||
if(msphere && !sphere && !gproduct && vid.fixed_yz) {
|
if(embedded_plane && vid.fixed_yz) {
|
||||||
hyperpoint h = get_view_orientation() * C0;
|
|
||||||
if(vid.wall_height > 0) h = -h;
|
|
||||||
return h;
|
|
||||||
}
|
|
||||||
if(meuclid && hyperbolic && vid.fixed_yz) {
|
|
||||||
hyperpoint h = iso_inverse(View) * C0;
|
|
||||||
return View * (orthogonal_move(h, vid.wall_height) - h);
|
|
||||||
}
|
|
||||||
if(gproduct && vid.fixed_yz) {
|
|
||||||
return get_view_orientation() * lztangent(embedded_plane ? vid.wall_height : 1);
|
|
||||||
}
|
|
||||||
if(cgi.emb->is_same_in_same())
|
|
||||||
return get_view_orientation() * lztangent(vid.wall_height);
|
|
||||||
if(cgi.emb->is_euc_in_sl2() || cgi.emb->is_euc_in_sph()) {
|
|
||||||
transmatrix Rot = View * cgi.emb->map_relative_push(inverse(View) * C0);
|
transmatrix Rot = View * cgi.emb->map_relative_push(inverse(View) * C0);
|
||||||
|
if(gproduct) Rot = NLP * Rot;
|
||||||
return Rot * lztangent(vid.wall_height);
|
return Rot * lztangent(vid.wall_height);
|
||||||
}
|
}
|
||||||
if(embedded_plane && vid.fixed_yz && nonisotropic) {
|
if(gproduct && vid.fixed_yz) {
|
||||||
return NLP * lztangent(vid.wall_height);
|
return get_view_orientation() * lztangent(1);
|
||||||
}
|
}
|
||||||
else if(ds.qty && gproduct)
|
if(ds.qty && gproduct)
|
||||||
return get_view_orientation() * product::inverse_exp(ds.point);
|
return get_view_orientation() * product::inverse_exp(ds.point);
|
||||||
else if(ds.qty)
|
if(ds.qty)
|
||||||
return ds.point;
|
return ds.point;
|
||||||
return C0;
|
return C0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user