- GLfloat
- *light = getVector4f(1.0f, 1.0f, 1.0f, 1.0f),
- *ambient = getVector4f(0.2f, 0.2f, 0.2f, 1.0f),
- *diffuse = getVector4f(0.7f, 0.7f, 0.7f, 1.0f),
- *specular = getVector4f(0.9f, 0.9f, 0.9f, 1.0f),
- *emission = getVector4f(0.0f, 0.0f, 0.0f, 1.0f),
- *position = getVector4f(1.0f, -4.0f, 2.0f, 0.0f),
- *shininess = new GLfloat(50);
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, ambient);
- glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diffuse);
- glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);
- glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emission);
- glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, shininess);
- glLightfv(GL_LIGHT0, GL_AMBIENT, light);
- glLightfv(GL_LIGHT0, GL_DIFFUSE, light);
- glLightfv(GL_LIGHT0, GL_SPECULAR, light);
- glLightfv(GL_LIGHT0, GL_POSITION, position);
- delete[] light;
- delete[] ambient;
- delete[] diffuse;
- delete[] specular;
- delete[] emission;
- delete[] position;
- delete shininess;
- if (_backfaceCulling){
- glEnable(GL_CULL_FACE);
- }else{
- glDisable(GL_CULL_FACE);
- glPolygonMode(GL_BACK, GL_LINE);
- }
- glBindBuffer(GL_ARRAY_BUFFER, _arrayBuffer);
- glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(3, GL_FLOAT, 24, (void*)0);
- glEnableClientState(GL_NORMAL_ARRAY);
- glNormalPointer(GL_FLOAT, 24, (void*)12);
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _elementArrayBuffer);
- glEnableClientState(GL_INDEX_ARRAY);
- glIndexPointer(GL_UNSIGNED_INT, 0, NULL);
- glPushMatrix();
- glScalef(100, 100, 100);
- if (_drawPoints){
- glDepthFunc(GL_ALWAYS);
- glColor3f(1, 0, 0);
- glPointSize(5);
- glDrawArrays(GL_POINTS, 0, _vertexCount);
- glDepthFunc(GL_LESS);
- }
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glColor4f(1, 1, 1, 1);
- glPolygonMode(GL_FRONT, _polygonMode);
- glMultiDrawElements(GL_QUAD_STRIP, _vertcount, GL_UNSIGNED_INT, _indices, _vDiv*6);
- /*
- glBegin(GL_QUADS);
- glNormal3f(0.0f, 1.0f, 0.0f);
- glVertex3f( 1.0f, 0.0f, 1.0f);
- glVertex3f( 1.0f, 0.0f,-1.0f);
- glVertex3f(-1.0f, 0.0f,-1.0f);
- glVertex3f(-1.0f, 0.0f, 1.0f);
- glEnd();
- */
- glDisable(GL_LIGHTING);
- glPopMatrix();
- glDisableClientState(GL_VERTEX_ARRAY);
- glDisableClientState(GL_NORMAL_ARRAY);
- glDisableClientState(GL_INDEX_ARRAY);
- glBindBuffer(GL_ARRAY_BUFFER, 0);
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);