// the usual includes // обычные включения #include "camera.h"

Camera cam:
// global camera object

// глобальный объект класса camera

//«««««««««««« myKeyboard »»»»»»»»»»»
void myKeyboardCunsigned char key. int x. int y)
{
switch(key) {

// controls for the camera // средства управления камерой

case 'F': cam.slide(0. 0. 0.2): break: // slide camera forward // скольжение камеры вперед

case 'F'-64: cam.slide(0, 0. -0.2): break: // slide camera back // скольжение камеры назад // add up/down and left/right controls // добавляем управление вверх/вниз и влево/вправо

case 'Р': cam.pitch(-l.O): break:

case 'P'-64: cam.pitch(l.O); break: // add roll and yaw controls // добавляем управление креном и рысканием }

glutPostRedisplayO: // draw it again // перерисовываем заново

}
//«««««««««««< myDisplay »»»»»»»»»»»»» void myDisplay(void)

7.3. Встраивание камеры в программу

{
glClear(GL_COLOR_BUFFER_BIT||GL_DEPTH_BUFFER_BIT):

glutWireTeapot(l.O); // draw the teapot // рисуем чайник

glFlushO: .glutSwapBuffersO; // display the screen just made // отображаем только что сделанный экран }

main »»»»»»»»»»»»»»»> void maintint arge, char **argv) {
glutlnit(&argc. argv):

glutInitD1splayMode(GLUT_D0UBLE | GLUT_RGB); // double buffering // двойная буферизация

glutInitWindowSize(640. 480):
glutInitWindowPosition(50. 50):

glutCreateWindowC'fly a camera around a teapot"): // надпись: «пилотирование камеры вокруг чайника»

glutKeyboardFunc(myKeyboard):
glutDi splayFuncCmyDi splay):

glClearColor(l.Of.l.Of.l.Of.l.Of): // background is white // фон белый

glColor3f(0.0f.0.0f.0.0f): // set color of stuff // задаем цвет материала

glViewportCO, 0. 640. 480):

⇐ Предыдущая| |Следующая ⇒