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
| //applique les transformations de positions si visible
glPushMatrix();
glTranslatef(P.getX(),P.getY(),P.getZ());
glRotated(P.getAX()+Original.getAX(),1,0,0);
glRotated(P.getAY()+Original.getAY(),0,1,0);
glRotated(P.getAZ()+Original.getAZ(),0,0,1);
//transformation d'echelle
glScalef(S.getX(),S.getY(),S.getZ());
glEnable(GL_TEXTURE_2D);
if( programmeDe3D.getTextureBind() != T->getId()) {
programmeDe3D.setTextureBind(T->getId());
glBindTexture(GL_TEXTURE_2D, T->getId());
}
if( programmeDe3D.getLastVertice() != m_nVBOColVertTex ) {
glBindBufferARB( GL_ARRAY_BUFFER_ARB, m_nVBOColVertTex );
glColorPointer( 4, GL_UNSIGNED_BYTE, 0, 0 ); // Set The Color Pointer To The Color Buffer
glVertexPointer( 3, GL_FLOAT, 0, BUFFER_OFFSET(m_nVertexCount*sizeof(GsColor)) ); // Set The Vertex Pointer To The Vertex Buffer
glTexCoordPointer( 2, GL_FLOAT, 0, BUFFER_OFFSET((m_nVertexCount*sizeof(GsColor)) + (m_nVertexCount*sizeof(GsVert)) ) );
programmeDe3D.setLastVertice(m_nVBOColVertTex);
}
// Enable Pointers
glEnableClientState( GL_TEXTURE_COORD_ARRAY ); // Enable Texture Coord Arrays
// Render
glDrawArrays( GL_TRIANGLES, 0, m_nVertexCount ); // Draw All Of The Triangles At Once
glDisable(GL_TEXTURE_2D);
// Disable Pointers
glDisableClientState( GL_TEXTURE_COORD_ARRAY ); // Disable Texture Coord Arrays
glPopMatrix(); |