| 458 | } |
| 459 | |
| 460 | void renderSphere(const Vector3r &x, const float color[]) |
| 461 | { |
| 462 | glEnableClientState(GL_VERTEX_ARRAY); |
| 463 | glEnableClientState(GL_NORMAL_ARRAY); |
| 464 | |
| 465 | glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, color); |
| 466 | glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, color); |
| 467 | |
| 468 | |
| 469 | glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer); |
| 470 | glVertexPointer(3, GL_REAL, 0, 0); |
| 471 | |
| 472 | glBindBuffer(GL_ARRAY_BUFFER, normalbuffer); |
| 473 | glNormalPointer(GL_REAL, 0, 0); |
| 474 | |
| 475 | glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, elementbuffer); |
| 476 | |
| 477 | glPushMatrix(); |
| 478 | glTranslated(x[0], x[1], x[2]); |
| 479 | glDrawElements(GL_TRIANGLES, (GLsizei)vertexBufferSize, GL_UNSIGNED_SHORT, 0); |
| 480 | glPopMatrix(); |
| 481 | glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); |
| 482 | glBindBuffer(GL_ARRAY_BUFFER, 0); |
| 483 | |
| 484 | glDisableClientState(GL_NORMAL_ARRAY); |
| 485 | glDisableClientState(GL_VERTEX_ARRAY); |
| 486 | } |
| 487 | |
| 488 | void releaseSphereBuffers() |
| 489 | { |