/* * File: main.cpp * Author: artur * * Created on 10 de Dezembro de 2009, 21:50 */ #include #include #include #include "Forma.h" #include "iluminacao.h" #include "defineplanos.h" #include "BancoFormas.h" #include "CarregadorTextura.h" #include "ARToolkitGLAdapter.h" /* * */ using namespace std; Cenario cenario; //! Callback de teclado do modo com texturas void teclaEsc(unsigned char key,int x, int y){ if(key==27) exit(0); } //!Função de reshape do modo com texturas void inicioVizualizacao(GLfloat aspect){ iniciaIluminacao(); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60,aspect,0.5,500); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt( 200,120,150,//posicao da camera 0,0,0,//posicao do alvo 0,1,0);//vetor cima da camera } //! Função de reshape do modo com texturas void reshape(GLsizei width,GLsizei height){ if(height ==0) height=1; glViewport(0,0,width,height); inicioVizualizacao((GLfloat)width/(GLfloat)height); } //! Função de desenho do modo com texturas void desenho(void){ glClearColor(0,0,0,1); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); iluminaAmbiente(); glColor3f(0.0f,1.0f,0.0f); //glutWireCube(10); //desenharPlano(35,20); //glutSolidTorus(20.0, 35.0, 20, 40); Cubo cuboDentro; Cubo cuboFora; cuboFora.setXMundo(-16); cuboFora.setZMundo(20); cuboDentro.setXMundo(1); cuboDentro.setZMundo(1); cout << "antes do cenario" << endl; /*criaCenario(10,10); cout << "depois do cenario" << endl; for(int i = 0; i< vetPlanos.size(); i++) vetPlanos[i].desenharForma();*/ cenario.desenharForma(); cuboDentro.desenharForma(); cuboFora.desenharForma(); glFlush(); glutSwapBuffers(); } int main(int argc, char** argv) { if(argc==1){ FormaFactory factory; Textura::habilitado=false; Cenario * cenario = new Cenario(); BancoFormas::get() .setCubo(CUBO_A,cenario) .setCubo(CUBO_B,factory.createCubo(10)) .setCubo(CUBO_C,factory.createCubo(10)) .setCubo(CUBO_D,factory.createCubo(10)) .setCubo(CUBO_E,factory.createCubo(10)); criaCenario(60,60,"cenario.arc",*cenario); ARToolkitGLAdapter::get().setCaminhoArquivoCamera("Data/camera_para.dat") .setCaminhoArquivoModelo("Data/object_data2") .setTreshold(100) .iniciarGlut(&argc,&argv); ARToolkitGLAdapter::get().iniciarARToolkit() .iniciarCaptura() .iniciarMainLoop(); }if(argc==2){ Textura::habilitado=true; Textura textura; glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH|GLUT_RGB); glutInitWindowPosition(0,0); glutInitWindowSize(500,400); glutInit(&argc,argv); glutCreateWindow("Projeto CG realidade aumentada"); CarregadorTextura::get() .setarCaminhoArquivoOrigem(argv[1]) .carregar(textura); glutDisplayFunc(desenho); glutKeyboardFunc(teclaEsc); glutReshapeFunc(reshape); glutMainLoop(); } return (EXIT_SUCCESS); }