/
Model.cpp
31 lines (27 loc) · 903 Bytes
/
Model.cpp
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
#include"Model.hpp"
#include<GL/gl.h>
void draw_model(Model* m,unsigned mode)
{
#if 1
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
//glEnable(GL_TEXTURE_2D);
//glBindTexture(GL_TEXTURE_2D,ammo.glid);
glVertexPointer(3,GL_FLOAT,6*sizeof(float),m->data);
glNormalPointer(GL_FLOAT,6*sizeof(float),m->data+3);
glDrawElements(mode,m->in,GL_UNSIGNED_SHORT,(GLvoid*)m->index);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
#else
glBegin(GL_TRIANGLES);
for(int i=0;i<m->in;i++)
{
int j = m->index[i]*6;
// glColor3f(m->data[j+3],m->data[j+4],m->data[j+5]);
glNormal3f(m->data[j+3],m->data[j+4],m->data[j+5]);
glVertex3f(m->data[j+0],m->data[j+1],m->data[j+2]);
//std::cout<<m->data[i+0]<<" "<<m->data[i+1]<<" "<<m->data[i+2]<<"\n";;
}
glEnd();
#endif
}