3132
12
 
12
 
13
using namespace std;
13
using namespace std;
14
 
14
 
 
 
15
bool Textura::habilitado = true;
 
 
16
 
15
Textura::Textura(int largura, int tamanho) : texturaIniciada(false){
17
Textura::Textura(int largura, int tamanho) : texturaIniciada(false){
16
    this->altura = tamanho;
18
    this->altura = tamanho;
17
    this->largura = largura;    
19
    this->largura = largura;    
...
 
...
 
36
}
38
}
37
 
39
 
38
Textura &  Textura::iniciarTextura(){
40
Textura &  Textura::iniciarTextura(){
39
    if(texturaIniciada)
41
    if(texturaIniciada || !habilitado)
40
        return *this;
42
        return *this;
41
 
43
 
42
   glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
44
   glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
...
 
...
 
59
}
61
}
60
 
62
 
61
Textura & Textura::iniciarMapeamento(){
63
Textura & Textura::iniciarMapeamento(){
62
   glEnable(GL_TEXTURE_2D);
64
   if(habilitado){
63
   //glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
65
       glEnable(GL_TEXTURE_2D);
64
   glBindTexture(GL_TEXTURE_2D, nome);
66
       glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
65
   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, largura,
67
       glBindTexture(GL_TEXTURE_2D, nome);
66
                altura, 0, GL_RGBA, GL_UNSIGNED_BYTE,
68
       glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, largura,
67
                textura.get());
69
                    altura, 0, GL_RGBA, GL_UNSIGNED_BYTE,
68
   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
70
                    textura.get());
69
                   GL_LINEAR);
71
   }
70
   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
 
 
71
                   GL_LINEAR);
 
 
72
   return *this;
72
   return *this;
73
}
73
}
74
 
74
 
75
Textura & Textura::mapearPrimeiroPonto(float x, float y, float z){
75
Textura & Textura::mapearPrimeiroPonto(float x, float y, float z){
76
    glTexCoord2d(0,0);
76
    if(habilitado){
77
    glVertex3f(x,y,z);
77
        glTexCoord2d(0,0);
 
 
78
        glVertex3f(x,y,z);
 
 
79
    }
78
    return *this;
80
    return *this;
79
}
81
}
80
 
82
 
81
Textura & Textura::mapearSegundoPonto(float x, float y, float z){
83
Textura & Textura::mapearSegundoPonto(float x, float y, float z){
82
    glTexCoord2d(1,0);
84
    if(habilitado){
83
    glVertex3f(x,y,z);
85
        glTexCoord2d(1,0);
 
 
86
        glVertex3f(x,y,z);
 
 
87
    }
84
    return *this;
88
    return *this;
85
}
89
}
86
 
90
 
87
Textura & Textura::mapearTerceiroPonto(float x, float y, float z){
91
Textura & Textura::mapearTerceiroPonto(float x, float y, float z){
88
    glTexCoord2d(1,1);
92
    if(habilitado){
89
    glVertex3f(x,y,z);
93
        glTexCoord2d(1,1);
 
 
94
        glVertex3f(x,y,z);
 
 
95
    }
90
    return *this;
96
    return *this;
91
}
97
}
92
 
98
 
93
Textura & Textura::mapearQuartoPonto(float x, float y, float z){
99
Textura & Textura::mapearQuartoPonto(float x, float y, float z){
94
    glTexCoord2d(0,1);
100
    if(habilitado){
95
    glVertex3f(x,y,z);
101
        glTexCoord2d(0,1);
 
 
102
        glVertex3f(x,y,z);
 
 
103
    }
96
    return *this;
104
    return *this;
97
}
105
}
98
 
106
 
99
 
107
 
100
Textura & Textura::finalizarMapeamento(){
108
Textura & Textura::finalizarMapeamento(){
101
    glDisable(GL_TEXTURE_2D);
109
    if(habilitado)
 
 
110
        glDisable(GL_TEXTURE_2D);
102
    return *this;
111
    return *this;
103
}
112
}
104
 
113