// FUNCTION ====== inputHanding void inputHanding(){ float posstep = 0.1; SDL_Event event; while(SDL_PollEvent(&event)){ if( event.type == SDL_KEYDOWN ){ switch( event.key.keysym.sym ){ case SDLK_ESCAPE: quit(); break; case SDLK_w: modelPos[1] +=posstep; break; case SDLK_s: modelPos[1] -=posstep; break; case SDLK_a: modelPos[0] +=posstep; break; case SDLK_d: modelPos[0] -=posstep; break; case SDLK_q: modelPos[2] +=posstep*10; break; case SDLK_e: modelPos[2] -=posstep*10; break; //case SDLK_r: world.fireProjectile( warrior1 ); break; } } if( event.type == SDL_QUIT){ quit(); }; } int dmx,dmy; SDL_GetMouseState( &mouseX, &mouseY ); Uint32 buttons = SDL_GetRelativeMouseState( &dmx, &dmy); //printf( " %i %i \n", mx,my ); float mouseRotSpeed = 0.01; if ( buttons & SDL_BUTTON(SDL_BUTTON_RIGHT)) { Quat4f q; q.fromTrackball( 0, 0, -dmx*mouseRotSpeed, dmy*mouseRotSpeed ); //printf( " %i %i (%3.3f,%3.3f,%3.3f,%3.3f) \n", dmx,dmy, q.x,q.y,q.z,q.w ); //qCamera.qmul_T( q ); qCamera.qmul( q ); //qCamera.normalize(); } }