CGAugmentedRealityProject is an open source project powered by Assembla

Assembla offers free public and private SVN/Git repositories and project hosting with bug/issue tracking and collaboration tools.

CGAugmentedRealityProject

/projetocg
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/*
 * File:   main.cpp
 * Author: artur
 *
 * Created on 10 de Dezembro de 2009, 21:50
 */

#include <stdlib.h>
#include <GL/glut.h>
#include <iostream>
#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);
}
Ajax-loader Loading, please wait...