Change projection w/keyboard

This commit is contained in:
PedroEdiaz
2024-10-22 23:07:30 -06:00
parent 6727c5fa9a
commit 2a5a101080
7 changed files with 140 additions and 48 deletions

View File

@@ -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)