Beispiel #1
0
void keyPressed(unsigned char key, int x, int y)
{
    if( key == 'g' )
        CurrMode = ( CurrMode == M_2D )?M_3D:M_2D;
    if( key == 27 )
        exit(0);
    if( key == 'w' )
    {
        CameraPos += CameraView * 0.02;
        CameraView += CameraView * 0.02;
        CameraView = CameraView / CameraView.Length() * 255;
    }
    if( key == 's' )
    {
        CameraPos += CameraView * -0.02;
        CameraView += CameraView * -0.02;
        CameraView = CameraView / CameraView.Length() * 255;
    }
    if( key == 'a' )
    {
        CameraPos.print();
        Vect<double> tmp = Vect<double>(3,0.0,1.0,0.0) % Vect<double>(3,CameraView[V_X],0.0,CameraView[V_Z]) ;
        tmp.print();
        CameraPos += tmp / tmp.Length() * 2;
        CameraView += tmp / tmp.Length() * 2;
        CameraView = CameraView / CameraView.Length() * 255;
    }
    if( key == 'd' )
    {
        CameraPos.print();
        Vect<double> tmp =  CameraView % Vect<double>(3,0.0,1.0,0.0) ; 
        tmp.print();
        CameraPos += tmp / tmp.Length() * -2;
        CameraView += tmp / tmp.Length() * -2;
        CameraView = CameraView / CameraView.Length() * 255;
    }
    if( key == 'o' )
        glEnable(GL_ALPHA_TEST);
    if( key == 'p' )
        glDisable(GL_ALPHA_TEST);
}
Beispiel #2
0
void onMouseMove( int X, int Y )
{
        int kX(500), kY(500);
        int dX(X-pX), dY(Y-pY);
        
        CameraView.print();
        double Angle = dX / (double)kX;
        CameraView = Rotate( CameraView, Angle, Vect<double>(3, 0.0, 1.0, 0.0 ) );
        Angle = -dY / (double)kY;
        CameraView = Rotate( CameraView, Angle, Vect<double>(3, 0.0, 1.0, 0.0 ) % CameraView );
        if( fabs( CameraView[V_X] ) <= 1 && fabs( CameraView[V_Z] ) <= 1 )
        {
            CameraView[V_X] = pVX;
            CameraView[V_Y] = pVY;
            CameraView[V_Z] = pVZ;
        }
        pX = X;
        pY = Y;
        pVX = CameraView[V_X];
        pVY = CameraView[V_Y];
        pVZ = CameraView[V_Z];
        //CameraView = CameraView / CameraView.Length() * 255;
}