mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-23 13:07:16 +00:00
removed rotmatrix as it did exactly the same as cspin
This commit is contained in:
parent
9588dfcc50
commit
2cf6abb273
@ -32,10 +32,10 @@ transmatrix getOrientation() {
|
||||
lasttick = curtick;
|
||||
Uint8 *keystate = SDL_GetKeyState(NULL);
|
||||
if(keystate[SDLK_LCTRL]) {
|
||||
if(keystate['s']) Orient = Orient * rotmatrix(t, 2, 1);
|
||||
if(keystate['w']) Orient = Orient * rotmatrix(t, 1, 2);
|
||||
if(keystate['a']) Orient = Orient * rotmatrix(t, 2, 0);
|
||||
if(keystate['d']) Orient = Orient * rotmatrix(t, 0, 2);
|
||||
if(keystate['s']) Orient = Orient * cspin(2, 1, t);
|
||||
if(keystate['w']) Orient = Orient * cspin(1, 2, t);
|
||||
if(keystate['a']) Orient = Orient * cspin(2, 0, t);
|
||||
if(keystate['d']) Orient = Orient * cspin(0, 2, t);
|
||||
}
|
||||
return Orient;
|
||||
}
|
||||
|
@ -726,15 +726,6 @@ bool operator == (hyperpoint h1, hyperpoint h2) {
|
||||
|
||||
// rotation matrix in R^3
|
||||
|
||||
EX transmatrix rotmatrix(double rotation, int c0, int c1) {
|
||||
transmatrix t = Id;
|
||||
t[c0][c0] = cos(rotation);
|
||||
t[c1][c1] = cos(rotation);
|
||||
t[c0][c1] = sin(rotation);
|
||||
t[c1][c0] = -sin(rotation);
|
||||
return t;
|
||||
}
|
||||
|
||||
EX hyperpoint mid3(hyperpoint h1, hyperpoint h2, hyperpoint h3) {
|
||||
return mid(h1+h2+h3, h1+h2+h3);
|
||||
}
|
||||
|
@ -175,9 +175,9 @@ transmatrix getOrientation() {
|
||||
beta = EM_ASM_DOUBLE({ return rotation_beta; });
|
||||
gamma = EM_ASM_DOUBLE({ return rotation_gamma; });
|
||||
return
|
||||
rotmatrix(alpha * degree, 0, 1) *
|
||||
rotmatrix(beta * degree, 1, 2) *
|
||||
rotmatrix(gamma * degree, 0, 2);
|
||||
cspin(0, 1, alpha * degree) *
|
||||
cspin(1, 2, beta * degree) *
|
||||
cspin(0, 2, gamma * degree);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -256,7 +256,7 @@ void make_twopoint(ld& x, ld& y) {
|
||||
|
||||
hyperpoint mobius(hyperpoint h, ld angle, ld scale = 1) {
|
||||
h = perspective_to_space(h * scale, 1, gcSphere);
|
||||
h = rotmatrix(angle * degree, 1, 2) * h;
|
||||
h = cspin(1, 2, angle * degree) * h;
|
||||
return space_to_perspective(h, 1) / scale;
|
||||
}
|
||||
|
||||
|
40
rug.cpp
40
rug.cpp
@ -1554,7 +1554,7 @@ bool handlekeys(int sym, int uni) {
|
||||
crystal::switch_z_coordinate();
|
||||
else
|
||||
#endif
|
||||
apply_rotation(rotmatrix(M_PI, 0, 2));
|
||||
apply_rotation(cspin(0, 2, M_PI));
|
||||
return true;
|
||||
}
|
||||
else if(NUMBERKEY == '3') {
|
||||
@ -1563,7 +1563,7 @@ bool handlekeys(int sym, int uni) {
|
||||
crystal::flip_z();
|
||||
else
|
||||
#endif
|
||||
apply_rotation(rotmatrix(M_PI/2, 0, 2));
|
||||
apply_rotation(cspin(0, 2, M_PI/2));
|
||||
return true;
|
||||
}
|
||||
#if CAP_CRYSTAL
|
||||
@ -1581,12 +1581,12 @@ bool handlekeys(int sym, int uni) {
|
||||
move_forward(-.1);
|
||||
return true;
|
||||
}
|
||||
else if(sym == SDLK_HOME) { apply_rotation(rotmatrix(.1, 0, 1)); return true; }
|
||||
else if(sym == SDLK_END) { apply_rotation(rotmatrix(.1, 1, 0)); return true; }
|
||||
else if(sym == SDLK_DOWN) { apply_rotation(rotmatrix(.1, 2, 1)); return true; }
|
||||
else if(sym == SDLK_UP) { apply_rotation(rotmatrix(.1, 1, 2)); return true; }
|
||||
else if(sym == SDLK_LEFT) { apply_rotation(rotmatrix(.1, 2, 0)); return true; }
|
||||
else if(sym == SDLK_RIGHT) { apply_rotation(rotmatrix(.1, 0, 2)); return true; }
|
||||
else if(sym == SDLK_HOME) { apply_rotation(cspin(0, 1, .1)); return true; }
|
||||
else if(sym == SDLK_END) { apply_rotation(cspin(1, 0, .1)); return true; }
|
||||
else if(sym == SDLK_DOWN) { apply_rotation(cspin(2, 1, .1)); return true; }
|
||||
else if(sym == SDLK_UP) { apply_rotation(cspin(1, 2, .1)); return true; }
|
||||
else if(sym == SDLK_LEFT) { apply_rotation(cspin(2, 0, .1)); return true; }
|
||||
else if(sym == SDLK_RIGHT) { apply_rotation(cspin(0, 2, .1)); return true; }
|
||||
#endif
|
||||
else return false;
|
||||
}
|
||||
@ -1659,13 +1659,13 @@ void actDraw() {
|
||||
if(finger_center)
|
||||
perform_finger();
|
||||
else {
|
||||
if(keystate[SDLK_HOME]) qm++, t = t * rotmatrix(alpha, 0, 1), protractor += alpha;
|
||||
if(keystate[SDLK_END]) qm++, t = t * rotmatrix(alpha, 1, 0), protractor -= alpha;
|
||||
if(keystate[SDLK_HOME]) qm++, t = t * cspin(0, 1, alpha), protractor += alpha;
|
||||
if(keystate[SDLK_END]) qm++, t = t * cspin(1, 0, alpha), protractor -= alpha;
|
||||
if(!keystate[SDLK_LSHIFT]) {
|
||||
if(keystate[SDLK_DOWN]) qm++, t = t * rotmatrix(alpha, 2, 1), protractor += alpha;
|
||||
if(keystate[SDLK_UP]) qm++, t = t * rotmatrix(alpha, 1, 2), protractor -= alpha;
|
||||
if(keystate[SDLK_LEFT]) qm++, t = t * rotmatrix(alpha, 2, 0), protractor += alpha;
|
||||
if(keystate[SDLK_RIGHT]) qm++, t = t * rotmatrix(alpha, 0, 2), protractor -= alpha;
|
||||
if(keystate[SDLK_DOWN]) qm++, t = t * cspin(2, 1, alpha), protractor += alpha;
|
||||
if(keystate[SDLK_UP]) qm++, t = t * cspin(1, 2, alpha), protractor -= alpha;
|
||||
if(keystate[SDLK_LEFT]) qm++, t = t * cspin(2, 0, alpha), protractor += alpha;
|
||||
if(keystate[SDLK_RIGHT]) qm++, t = t * cspin(0, 2, alpha), protractor -= alpha;
|
||||
}
|
||||
if(keystate[SDLK_PAGEDOWN]) push -= alpha;
|
||||
if(keystate[SDLK_PAGEUP]) push += alpha;
|
||||
@ -1698,13 +1698,13 @@ void actDraw() {
|
||||
if(keystate[SDLK_HOME] && !in_crystal()) qm++, t = inverse(currentrot);
|
||||
if(keystate[SDLK_END]) {
|
||||
qm++;
|
||||
if(in_crystal()) t = t * rotmatrix(alpha, 0, 1);
|
||||
else t = currentrot * rotmatrix(alpha, 0, 1) * inverse(currentrot);
|
||||
if(in_crystal()) t = t * cspin(0, 1, alpha);
|
||||
else t = currentrot * cspin(0, 1, alpha) * inverse(currentrot);
|
||||
}
|
||||
if(keystate[SDLK_DOWN]) qm++, t = t * rotmatrix(alpha, 1, 2);
|
||||
if(keystate[SDLK_UP]) qm++, t = t * rotmatrix(alpha, 2, 1);
|
||||
if(keystate[SDLK_LEFT]) qm++, t = t * rotmatrix(alpha, 0, 2);
|
||||
if(keystate[SDLK_RIGHT]) qm++, t = t * rotmatrix(alpha, 2, 0);
|
||||
if(keystate[SDLK_DOWN]) qm++, t = t * cspin(1, 2, alpha);
|
||||
if(keystate[SDLK_UP]) qm++, t = t * cspin(2, 1, alpha);
|
||||
if(keystate[SDLK_LEFT]) qm++, t = t * cspin(0, 2, alpha);
|
||||
if(keystate[SDLK_RIGHT]) qm++, t = t * cspin(2, 0, alpha);
|
||||
if(keystate[SDLK_PAGEUP]) model_distance /= exp(alpha * ruggospeed);
|
||||
if(keystate[SDLK_PAGEDOWN]) model_distance *= exp(alpha * ruggospeed);
|
||||
}
|
||||
|
@ -669,12 +669,12 @@ EX void apply() {
|
||||
#if CAP_RUG
|
||||
if(rug::rugged) {
|
||||
if(rug_rotation1) {
|
||||
rug::apply_rotation(rotmatrix(rug_angle * degree, 1, 2));
|
||||
rug::apply_rotation(rotmatrix(rug_rotation1 * 2 * M_PI * t / period, 0, 2));
|
||||
rug::apply_rotation(rotmatrix(-rug_angle * degree, 1, 2));
|
||||
rug::apply_rotation(cspin(1, 2, rug_angle * degree));
|
||||
rug::apply_rotation(cspin(0, 2, rug_rotation1 * 2 * M_PI * t / period));
|
||||
rug::apply_rotation(cspin(1, 2, -rug_angle * degree));
|
||||
}
|
||||
if(rug_rotation2) {
|
||||
rug::apply_rotation(rug::currentrot * rotmatrix(rug_rotation2 * 2 * M_PI * t / period, 0, 1) * inverse(rug::currentrot));
|
||||
rug::apply_rotation(rug::currentrot * cspin(0, 1, rug_rotation2 * 2 * M_PI * t / period) * inverse(rug::currentrot));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -1141,9 +1141,9 @@ void perspective() {
|
||||
void rug() {
|
||||
dynamicval<bool> b(rug::rugged, true);
|
||||
rug::physics();
|
||||
rug::apply_rotation(rotmatrix(ticks / 3000., 1, 2));
|
||||
rug::apply_rotation(cspin(1, 2, ticks / 3000.));
|
||||
gamescreen(2);
|
||||
rug::apply_rotation(rotmatrix(-ticks / 3000., 1, 2));
|
||||
rug::apply_rotation(cspin(1, 2, -ticks / 3000.));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user