void displayNavigateSubwindow()
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	
	glLoadIdentity();

	setNavigateSubwindowCamera(&estado.camera, modelo.objecto);
    setLight();

	glCallList(modelo.labirinto[JANELA_NAVIGATE]);
	glCallList(modelo.chao[JANELA_NAVIGATE]);

	if(!estado.vista[JANELA_NAVIGATE])
      {
        glPushMatrix();
            glTranslatef(modelo.objecto.pos.x,modelo.objecto.pos.y,modelo.objecto.pos.z);
            glRotatef(GRAUS(modelo.objecto.dir),0,1,0);
            glRotatef(-90,1,0,0);
            glScalef(SCALE_HOMER,SCALE_HOMER,SCALE_HOMER);
            mdlviewer_display(modelo.homer[JANELA_NAVIGATE]);
        glPopMatrix();
      }

	desenhaBussola(glutGet(GLUT_WINDOW_WIDTH),glutGet(GLUT_WINDOW_HEIGHT));

	glutSwapBuffers();
}
void displayNavigateSubwindow()
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

	glLoadIdentity();

	setNavigateSubwindowCamera(&estado.camera2, gordon.objecto);
	setLight();

	glCallList(modelo.labirinto[JANELA_NAVIGATE]);
	glCallList(modelo.chao[JANELA_NAVIGATE]);

	if(!estado.vista[JANELA_NAVIGATE])
	{
		glPushMatrix();
		glTranslatef(gordon.objecto.pos.x,gordon.objecto.pos.y,gordon.objecto.pos.z);
		glRotatef(GRAUS(gordon.objecto.dir),0,1,0);
		glRotatef(-90,1,0,0);
		glScalef(SCALE_GORDON,SCALE_GORDON,SCALE_GORDONY);
		mdlviewer_display(gordon.stdModel[JANELA_NAVIGATE]);
		glPopMatrix();

		for(int i=0; i < 3 ; i++)
		{
			if(headCrabs[i].objecto.pos.x != NULL)
				if(headCrabs[i].objecto.pos.x > 0)
				{
					glPushMatrix();		
					glTranslatef(headCrabs[i].objecto.pos.x,headCrabs[i].objecto.pos.y,headCrabs[i].objecto.pos.z);
					glRotatef(GRAUS(headCrabs[i].objecto.dir),0,1,0);
					glRotatef(-90,1,0,0);
					glScalef(SCALE_GORDON+0.01,SCALE_GORDON+0.01,SCALE_GORDONY+0.01);
					mdlviewer_display(headCrabs[i].stdModel[JANELA_NAVIGATE]);
					glPopMatrix();
				}
		}

		//GLint x=2;

		//for(int i=0;i<3;i++){

		//	glPushMatrix();
		//	glTranslatef(x+i,0,0);
		//	//glRotatef(GRAUS(gordon.objecto.dir),0,1,0);
		//	glRotatef(-90,1,0,0);
		//	glScalef(SCALE_GORDON,SCALE_GORDON,SCALE_GORDON);
		//	mdlviewer_display(headCrabs[i].stdModel[JANELA_NAVIGATE]);
		//	glPopMatrix();
		//}
	}

	glutSwapBuffers();
}
void Timer(int value)
{
    GLfloat nx=0,nz=0;
    GLboolean andar=GL_FALSE;

	GLuint curr = glutGet(GLUT_ELAPSED_TIME);

	if(modelo.homer[JANELA_NAVIGATE].GetSequence()==20 && curr-modelo.animStart>1050){
		modelo.homer[JANELA_NAVIGATE].SetSequence(0);
		modelo.homer[JANELA_TOP].SetSequence(0);
		modelo.animStart = 0;
	}
  // calcula velocidade baseado no tempo passado
	float velocidade= modelo.objecto.vel*(curr - modelo.prev )*0.001;

	glutTimerFunc(estado.timer, Timer, 0);
	modelo.prev = curr;

    
  if(estado.teclas.up){
	  nx = modelo.objecto.pos.x + velocidade * cos(modelo.objecto.dir);
	  nz = modelo.objecto.pos.z + velocidade * -sin(modelo.objecto.dir);
		if(!detectaColisao(nx,nz)){
			modelo.objecto.pos.x=nx;
			modelo.objecto.pos.z=nz;
		}else{
			modelo.animStart = curr;
		}
    andar=GL_TRUE;
	}
	if(estado.teclas.down){
    nx = modelo.objecto.pos.x - velocidade * cos(modelo.objecto.dir);
	nz = modelo.objecto.pos.z - velocidade * -sin(modelo.objecto.dir);
		if(!detectaColisao(nx,nz)){
			modelo.objecto.pos.x=nx;
			modelo.objecto.pos.z=nz;
		}else{
			modelo.animStart = curr;
		}
    andar=GL_TRUE;
	}
	if(estado.teclas.left){
		modelo.objecto.dir += 0.1;
		estado.camera.dir_long += 0.1;
    }
	if(estado.teclas.right){
		modelo.objecto.dir -= 0.1;
		estado.camera.dir_long -= 0.1;
	}

	setNavigateSubwindowCamera(&estado.camera,modelo.objecto);

// Sequencias - 0(parado) 3(andar) 20(choque)
//  modelo.homer[JANELA_NAVIGATE].GetSequence()  le Sequencia usada pelo homer
//  modelo.homer[JANELA_NAVIGATE].SetSequence()  muda Sequencia usada pelo homer
	if(modelo.homer[JANELA_NAVIGATE].GetSequence() !=20){
		if(andar && modelo.homer[JANELA_NAVIGATE].GetSequence()!=3){
			modelo.homer[JANELA_NAVIGATE].SetSequence(3);
			modelo.homer[JANELA_TOP].SetSequence(3);
		}else if(!andar && modelo.homer[JANELA_NAVIGATE].GetSequence()!=0){
			modelo.homer[JANELA_NAVIGATE].SetSequence(0);
			modelo.homer[JANELA_TOP].SetSequence(0);
		}
	}
  redisplayAll();
	
}