Esempio n. 1
0
void scramble()
{
    int i;
    for(i=0;i<20;i++)
    {
        switch(rand()%20)
        {
        case 1:xrotation(3,-1);break;
        case 2:xrotation(2,-1);break;
        case 3:xrotation(1,-1);break;
        case 4:xrotation(1,1);break;
        case 5:xrotation(3,1);break;
        case 6:xrotation(2,1);break;
        case 7:yrotation(3,-1);break;
        case 8:yrotation(2,-1);break;
        case 9:yrotation(1,-1);break;
        case 10:yrotation(1,1);break;
        case 11:yrotation(3,1);break;
        case 12:yrotation(2,1);break;
        case 13:zrotation(3,-1);break;
        case 14:zrotation(2,-1);break;
        case 15:zrotation(1,-1);break;
        case 16:zrotation(1,1);break;
        case 17:zrotation(3,1);break;
        case 18:zrotation(2,1);break;

            default:break;
        }
    }
}
Esempio n. 2
0
void OVR_SDL2_nav::step()
{
    mat3 N = normal(inverse(yrotation(to_radians(rotation))));
    vec3 v = dposition;

    if (move_L) v = v + vec3(-1, 0, 0);
    if (move_R) v = v + vec3(+1, 0, 0);
    if (move_D) v = v + vec3(0, -1, 0);
    if (move_U) v = v + vec3(0, +1, 0);
    if (move_F) v = v + vec3(0, 0, -1);
    if (move_B) v = v + vec3(0, 0, +1);

    if (length(v) > 1.0)
        v = normalize(v);

    position = position + N * v / 30.0;
    rotation = rotation + drotation;
}
Esempio n. 3
0
//__________________________________________________________DISPLAY********************************OOOOOOOOOOOO
void draw()
{
    int i;
    float siz=0.2,x,sp=.02;
    x=siz+sp;
    glLoadIdentity();
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glRotatef(rotate_x,1.0,0.0,0.0);
    glRotatef(rotate_y,0.0,1.0,0.0);
    if(rot)
    {
        ang+=insp;
        if(ang>90)
        {
            ang=0;
            for(i=0;i<28;i++)
            {
                xro[i]=0;
                yro[i]=0;
                zro[i]=0;
            }
            if(rot==1)
                yrotation(layy,diry);
            if(rot==2)
                xrotation(layx,dirx);
            if(rot==3)
                zrotation(layz,dirz);
            if(rot==9)
            {
                yrotation(1,-1);
                yrotation(2,-1);
                yrotation(3,-1);
            }
            if(rot==11)
            {
                yrotation(1,1);
                yrotation(2,1);
                yrotation(3,1);
            }
            if(rot==14)
            {
                xrotation(1,-1);
                xrotation(2,-1);
                xrotation(3,-1);
            }
            if(rot==16)
            {
                xrotation(1,1);
                xrotation(2,1);
                xrotation(3,1);
            }

            rot=0;
            yes=1;
        }
    }
    rubic(siz,x);


    glutSwapBuffers();
}
Esempio n. 4
0
mat4 OVR_SDL2_nav::view() const
{
    return OVR_SDL2_app::view() * yrotation(to_radians(rotation))
                                * translation(-position);
}
Esempio n. 5
0
//__________________________________________________________DISPLAY********************************OOOOOOOOOOOO
void draw()
{

    int i,j,flag=0;
    float siz=0.2,x,sp=.02;
    x=siz+sp;
    glLoadIdentity();
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    glRotatef(rotate_x,1.0,0.0,0.0);
    glRotatef(rotate_y,0.0,1.0,0.0);
    if(rot)
    {
        ang+=insp;
        if(ang>90)
        {
            ang=0;
            for(i=0;i<28;i++)
            {
                xro[i]=0;
                yro[i]=0;
                zro[i]=0;
            }
            if(rot==1)
                yrotation(layy,diry);
            if(rot==2)
                xrotation(layx,dirx);
            if(rot==3)
                zrotation(layz,dirz);
            if(rot==9)
            {
                yrotation(1,-1);
                yrotation(2,-1);
                yrotation(3,-1);
            }
            if(rot==11)
            {
                yrotation(1,1);
                yrotation(2,1);
                yrotation(3,1);
            }
            if(rot==14)
            {
                xrotation(1,-1);
                xrotation(2,-1);
                xrotation(3,-1);
            }
            if(rot==16)
            {
                xrotation(1,1);
                xrotation(2,1);
                xrotation(3,1);
            }

            rot=0;
            yes=1;
        }
    }
    rubic(siz,x);
    glColor3f(0,0,0);
   renderBitmapString(0.6,1.1,GLUT_BITMAP_TIMES_ROMAN_24,"RESET");
    renderBitmapString(-0.9,0.7,GLUT_BITMAP_TIMES_ROMAN_24,"SCRAMBLE");
    if(pause==1)
        renderBitmapString(-0.15,0.9,GLUT_BITMAP_TIMES_ROMAN_24,"PLAY");
    else{
            if(pressed&&solving){
            tmi++;
            tse+=tmi/100;
            tm+=tse/60;
            tmi%=100;
            tse%=60;
            st[0]=48+tm;
            st[2]=48+tse/10;
            st[3]=48+tse%10;
            st[5]=48+tmi/10;
            st[6]=48+tmi%10;
            }
        renderBitmapString(-0.15,0.9,GLUT_BITMAP_TIMES_ROMAN_24,"PAUSE");
        }
        renderBitmapString(0.7,-0.5,GLUT_BITMAP_TIMES_ROMAN_24,st);
        for(i=0;i<6;i++)
        for(j=1;j<10;j++)
        {
            if(C[i][5]!=C[i][j])
                {
                    flag=1;

        }
        }
        if(!flag){
                pressed=0;
                solving=0;
                pause=-1;
            renderBitmapString(-0.2,0.5,GLUT_BITMAP_TIMES_ROMAN_24,"SOLVED");
                    }
    glutSwapBuffers();
}