Change projection w/keyboard
This commit is contained in:
49
src/input.c
49
src/input.c
@@ -18,15 +18,60 @@ vec3 axis[3] =
|
||||
{0, 0, 1},
|
||||
};
|
||||
|
||||
extern struct projection projection;
|
||||
|
||||
void __key_callback_input(GLFWwindow * window, int key, int scancode, int action, int mods )
|
||||
{
|
||||
if( action != GLFW_PRESS)
|
||||
return;
|
||||
|
||||
if( GLFW_KEY_0 <= key && key <= GLFW_KEY_9 )
|
||||
|
||||
if( GLFW_KEY_0<key && key<=GLFW_KEY_9 )
|
||||
{
|
||||
printf("%d\n", key-GLFW_KEY_0 );
|
||||
unsigned char selected_coord;
|
||||
|
||||
selected_coord = key-GLFW_KEY_0-1;
|
||||
|
||||
if( selected_coord >= projection.m )
|
||||
return;
|
||||
if( selected_coord == projection.x )
|
||||
return;
|
||||
if( selected_coord == projection.y )
|
||||
return;
|
||||
if( selected_coord == projection.z )
|
||||
return;
|
||||
|
||||
selected_coord = projection.w;
|
||||
}
|
||||
|
||||
if( projection.w >= projection.m )
|
||||
return;
|
||||
|
||||
switch( key )
|
||||
{
|
||||
unsigned char tmp;
|
||||
|
||||
case GLFW_KEY_P:
|
||||
tmp=projection.w;
|
||||
projection.w=projection.x;
|
||||
projection.x=tmp;
|
||||
break;
|
||||
case GLFW_KEY_O:
|
||||
tmp=projection.w;
|
||||
projection.w=projection.y;
|
||||
projection.y=tmp;
|
||||
break;
|
||||
case GLFW_KEY_I:
|
||||
tmp=projection.w;
|
||||
projection.w=projection.z;
|
||||
projection.z=tmp;
|
||||
break;
|
||||
}
|
||||
|
||||
set_projection_mesh( projection );
|
||||
return;
|
||||
|
||||
|
||||
}
|
||||
|
||||
void __window_callback_input(GLFWwindow * window, int w, int h)
|
||||
|
||||
Reference in New Issue
Block a user