mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-08-03 04:13:55 +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;
|
lasttick = curtick;
|
||||||
Uint8 *keystate = SDL_GetKeyState(NULL);
|
Uint8 *keystate = SDL_GetKeyState(NULL);
|
||||||
if(keystate[SDLK_LCTRL]) {
|
if(keystate[SDLK_LCTRL]) {
|
||||||
if(keystate['s']) Orient = Orient * rotmatrix(t, 2, 1);
|
if(keystate['s']) Orient = Orient * cspin(2, 1, t);
|
||||||
if(keystate['w']) Orient = Orient * rotmatrix(t, 1, 2);
|
if(keystate['w']) Orient = Orient * cspin(1, 2, t);
|
||||||
if(keystate['a']) Orient = Orient * rotmatrix(t, 2, 0);
|
if(keystate['a']) Orient = Orient * cspin(2, 0, t);
|
||||||
if(keystate['d']) Orient = Orient * rotmatrix(t, 0, 2);
|
if(keystate['d']) Orient = Orient * cspin(0, 2, t);
|
||||||
}
|
}
|
||||||
return Orient;
|
return Orient;
|
||||||
}
|
}
|
||||||
|
@ -726,15 +726,6 @@ bool operator == (hyperpoint h1, hyperpoint h2) {
|
|||||||
|
|
||||||
// rotation matrix in R^3
|
// 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) {
|
EX hyperpoint mid3(hyperpoint h1, hyperpoint h2, hyperpoint h3) {
|
||||||
return mid(h1+h2+h3, h1+h2+h3);
|
return mid(h1+h2+h3, h1+h2+h3);
|
||||||
}
|
}
|
||||||
|
@ -175,9 +175,9 @@ transmatrix getOrientation() {
|
|||||||
beta = EM_ASM_DOUBLE({ return rotation_beta; });
|
beta = EM_ASM_DOUBLE({ return rotation_beta; });
|
||||||
gamma = EM_ASM_DOUBLE({ return rotation_gamma; });
|
gamma = EM_ASM_DOUBLE({ return rotation_gamma; });
|
||||||
return
|
return
|
||||||
rotmatrix(alpha * degree, 0, 1) *
|
cspin(0, 1, alpha * degree) *
|
||||||
rotmatrix(beta * degree, 1, 2) *
|
cspin(1, 2, beta * degree) *
|
||||||
rotmatrix(gamma * degree, 0, 2);
|
cspin(0, 2, gamma * degree);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -256,7 +256,7 @@ void make_twopoint(ld& x, ld& y) {
|
|||||||
|
|
||||||
hyperpoint mobius(hyperpoint h, ld angle, ld scale = 1) {
|
hyperpoint mobius(hyperpoint h, ld angle, ld scale = 1) {
|
||||||
h = perspective_to_space(h * scale, 1, gcSphere);
|
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;
|
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();
|
crystal::switch_z_coordinate();
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
apply_rotation(rotmatrix(M_PI, 0, 2));
|
apply_rotation(cspin(0, 2, M_PI));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if(NUMBERKEY == '3') {
|
else if(NUMBERKEY == '3') {
|
||||||
@ -1563,7 +1563,7 @@ bool handlekeys(int sym, int uni) {
|
|||||||
crystal::flip_z();
|
crystal::flip_z();
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
apply_rotation(rotmatrix(M_PI/2, 0, 2));
|
apply_rotation(cspin(0, 2, M_PI/2));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#if CAP_CRYSTAL
|
#if CAP_CRYSTAL
|
||||||
@ -1581,12 +1581,12 @@ bool handlekeys(int sym, int uni) {
|
|||||||
move_forward(-.1);
|
move_forward(-.1);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if(sym == SDLK_HOME) { apply_rotation(rotmatrix(.1, 0, 1)); return true; }
|
else if(sym == SDLK_HOME) { apply_rotation(cspin(0, 1, .1)); return true; }
|
||||||
else if(sym == SDLK_END) { apply_rotation(rotmatrix(.1, 1, 0)); return true; }
|
else if(sym == SDLK_END) { apply_rotation(cspin(1, 0, .1)); return true; }
|
||||||
else if(sym == SDLK_DOWN) { apply_rotation(rotmatrix(.1, 2, 1)); return true; }
|
else if(sym == SDLK_DOWN) { apply_rotation(cspin(2, 1, .1)); return true; }
|
||||||
else if(sym == SDLK_UP) { apply_rotation(rotmatrix(.1, 1, 2)); return true; }
|
else if(sym == SDLK_UP) { apply_rotation(cspin(1, 2, .1)); return true; }
|
||||||
else if(sym == SDLK_LEFT) { apply_rotation(rotmatrix(.1, 2, 0)); return true; }
|
else if(sym == SDLK_LEFT) { apply_rotation(cspin(2, 0, .1)); return true; }
|
||||||
else if(sym == SDLK_RIGHT) { apply_rotation(rotmatrix(.1, 0, 2)); return true; }
|
else if(sym == SDLK_RIGHT) { apply_rotation(cspin(0, 2, .1)); return true; }
|
||||||
#endif
|
#endif
|
||||||
else return false;
|
else return false;
|
||||||
}
|
}
|
||||||
@ -1659,13 +1659,13 @@ void actDraw() {
|
|||||||
if(finger_center)
|
if(finger_center)
|
||||||
perform_finger();
|
perform_finger();
|
||||||
else {
|
else {
|
||||||
if(keystate[SDLK_HOME]) qm++, t = t * rotmatrix(alpha, 0, 1), protractor += alpha;
|
if(keystate[SDLK_HOME]) qm++, t = t * cspin(0, 1, alpha), protractor += alpha;
|
||||||
if(keystate[SDLK_END]) qm++, t = t * rotmatrix(alpha, 1, 0), protractor -= alpha;
|
if(keystate[SDLK_END]) qm++, t = t * cspin(1, 0, alpha), protractor -= alpha;
|
||||||
if(!keystate[SDLK_LSHIFT]) {
|
if(!keystate[SDLK_LSHIFT]) {
|
||||||
if(keystate[SDLK_DOWN]) qm++, t = t * rotmatrix(alpha, 2, 1), protractor += alpha;
|
if(keystate[SDLK_DOWN]) qm++, t = t * cspin(2, 1, alpha), protractor += alpha;
|
||||||
if(keystate[SDLK_UP]) qm++, t = t * rotmatrix(alpha, 1, 2), protractor -= alpha;
|
if(keystate[SDLK_UP]) qm++, t = t * cspin(1, 2, alpha), protractor -= alpha;
|
||||||
if(keystate[SDLK_LEFT]) qm++, t = t * rotmatrix(alpha, 2, 0), protractor += alpha;
|
if(keystate[SDLK_LEFT]) qm++, t = t * cspin(2, 0, alpha), protractor += alpha;
|
||||||
if(keystate[SDLK_RIGHT]) qm++, t = t * rotmatrix(alpha, 0, 2), protractor -= alpha;
|
if(keystate[SDLK_RIGHT]) qm++, t = t * cspin(0, 2, alpha), protractor -= alpha;
|
||||||
}
|
}
|
||||||
if(keystate[SDLK_PAGEDOWN]) push -= alpha;
|
if(keystate[SDLK_PAGEDOWN]) push -= alpha;
|
||||||
if(keystate[SDLK_PAGEUP]) 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_HOME] && !in_crystal()) qm++, t = inverse(currentrot);
|
||||||
if(keystate[SDLK_END]) {
|
if(keystate[SDLK_END]) {
|
||||||
qm++;
|
qm++;
|
||||||
if(in_crystal()) t = t * rotmatrix(alpha, 0, 1);
|
if(in_crystal()) t = t * cspin(0, 1, alpha);
|
||||||
else t = currentrot * rotmatrix(alpha, 0, 1) * inverse(currentrot);
|
else t = currentrot * cspin(0, 1, alpha) * inverse(currentrot);
|
||||||
}
|
}
|
||||||
if(keystate[SDLK_DOWN]) qm++, t = t * rotmatrix(alpha, 1, 2);
|
if(keystate[SDLK_DOWN]) qm++, t = t * cspin(1, 2, alpha);
|
||||||
if(keystate[SDLK_UP]) qm++, t = t * rotmatrix(alpha, 2, 1);
|
if(keystate[SDLK_UP]) qm++, t = t * cspin(2, 1, alpha);
|
||||||
if(keystate[SDLK_LEFT]) qm++, t = t * rotmatrix(alpha, 0, 2);
|
if(keystate[SDLK_LEFT]) qm++, t = t * cspin(0, 2, alpha);
|
||||||
if(keystate[SDLK_RIGHT]) qm++, t = t * rotmatrix(alpha, 2, 0);
|
if(keystate[SDLK_RIGHT]) qm++, t = t * cspin(2, 0, alpha);
|
||||||
if(keystate[SDLK_PAGEUP]) model_distance /= exp(alpha * ruggospeed);
|
if(keystate[SDLK_PAGEUP]) model_distance /= exp(alpha * ruggospeed);
|
||||||
if(keystate[SDLK_PAGEDOWN]) 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 CAP_RUG
|
||||||
if(rug::rugged) {
|
if(rug::rugged) {
|
||||||
if(rug_rotation1) {
|
if(rug_rotation1) {
|
||||||
rug::apply_rotation(rotmatrix(rug_angle * degree, 1, 2));
|
rug::apply_rotation(cspin(1, 2, rug_angle * degree));
|
||||||
rug::apply_rotation(rotmatrix(rug_rotation1 * 2 * M_PI * t / period, 0, 2));
|
rug::apply_rotation(cspin(0, 2, rug_rotation1 * 2 * M_PI * t / period));
|
||||||
rug::apply_rotation(rotmatrix(-rug_angle * degree, 1, 2));
|
rug::apply_rotation(cspin(1, 2, -rug_angle * degree));
|
||||||
}
|
}
|
||||||
if(rug_rotation2) {
|
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
|
#endif
|
||||||
@ -1141,9 +1141,9 @@ void perspective() {
|
|||||||
void rug() {
|
void rug() {
|
||||||
dynamicval<bool> b(rug::rugged, true);
|
dynamicval<bool> b(rug::rugged, true);
|
||||||
rug::physics();
|
rug::physics();
|
||||||
rug::apply_rotation(rotmatrix(ticks / 3000., 1, 2));
|
rug::apply_rotation(cspin(1, 2, ticks / 3000.));
|
||||||
gamescreen(2);
|
gamescreen(2);
|
||||||
rug::apply_rotation(rotmatrix(-ticks / 3000., 1, 2));
|
rug::apply_rotation(cspin(1, 2, -ticks / 3000.));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user