// 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):