mini-led-cube/editor/src/input.c
Aaron Mueller 1b468b8c22 Start implementing a 3D GUI to configure the cube.
The idea is to use OpenGL and some simple C code to display a 3D cube.
With the mouse you can define which LED should be on or off on a
particular frame. With this technique, you can define whole sequences of
frames to form animations.
2011-10-19 01:10:15 +02:00

49 lines
997 B
C

#include <stdio.h>
#include <math.h>
#include <glut.h>
#include "config.h"
#include "input.h"
void moveCameraPosition(float direction) {
eyePos += direction;
if (eyePos > 360.0) eyePos = 0.0;
lookX = cos(eyePos * PI/180.0)*(CUBE_SIZE/2+50.0) + (CUBE_SIZE/2);
lookZ = sin(eyePos * PI/180.0)*(CUBE_SIZE/2+50.0) + (CUBE_SIZE/2);
}
void moveCameraAngle(float angle) {
eyeAngle += angle;
if (eyeAngle > 120) eyeAngle = 120;
if (eyeAngle < 0) eyeAngle = 0;
}
void keyboard(unsigned char key, int x, int y) {
switch (key) {
case 27: // ESC
exit(0);
break;
}
glutPostRedisplay();
}
void keyboard_special(int key, int x, int y) {
switch (key) {
case GLUT_KEY_LEFT:
moveCameraPosition(MOVE_SPEED);
break;
case GLUT_KEY_RIGHT:
moveCameraPosition(MOVE_SPEED*-1);
break;
case GLUT_KEY_UP:
moveCameraAngle(MOVE_SPEED);
break;
case GLUT_KEY_DOWN:
moveCameraAngle(MOVE_SPEED*-1);
}
glutPostRedisplay();
}