1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-10-23 18:07:41 +00:00

product:: wallradar and TPP

This commit is contained in:
Zeno Rogue
2019-08-20 18:02:03 +02:00
parent 47823ef0fb
commit 597140e28d
4 changed files with 24 additions and 10 deletions

View File

@@ -821,8 +821,12 @@ EX namespace nisot {
{ dynamicval<eGeometry> g(geometry, gSphere); hr::fixmatrix(gtl); }
T = push * gtl;
}
EX transmatrix parallel_transport(const transmatrix Position, const transmatrix T) {
EX transmatrix parallel_transport(const transmatrix Position, const transmatrix LPe, const transmatrix T) {
if(prod) {
hyperpoint h = product::direct_exp(inverse(LPe) * product::inverse_exp(tC0(T)));
return Position * rgpushxto0(h);
}
auto P = Position;
nisot::fixmatrix(P);
if(!geodesic_movement) return inverse(eupush(Position * inverse(T) * inverse(Position) * C0)) * Position;
@@ -840,7 +844,7 @@ EX namespace nisot {
const transmatrix V1 = inverse(IV);
return V1 * eupush(IV * T * V1 * C0);
}
return inverse(parallel_transport(inverse(V), inverse(T)));
return inverse(parallel_transport(inverse(V), Id, inverse(T)));
}
EX transmatrix spin_towards(const transmatrix Position, const hyperpoint goal) {