private:

float x. y:

}: Отметим, что когда вызывается glVertex2f(), величины .г и у приводятся к типу GLfloat. Чаще всего в этом нет необходимости, поскольку тип GLfloat определен в большинстве систем как float.

class IntRect. Выровненный прямоугольник с целыми координатами При описании порта просмотра нам необходим выровненный прямоугольник, имеющий целые координаты. Класс IntRect предоставляет эту функциональность в следующем коде:

class IntRect {

public:

IntRect() {1=0: г = 100: b - 0: t - 100: } // constructors // конструкторы

1 Студенты, предпочитающие писать на С, могут определить подобные типы с помощью конструкции Struct.

Глава 3. Дополнительные инструменты для рисования

IntRectCint left, int right, int bottom, int top)

(1 - left; r - right; b - bottom; t = top:} void set(int left, int right, int bottom, int top)

{1 - left; r - right: b - bottom; t - top:} void draw(void); // draw this rectangle using OpenGL // рисуем данный прямоугольник с использованием OpenGL private:

int 1. r, b, t:

}

class RealRect. Выровненный прямоугольник с вещественными координатами Мировому окну необходим выровненный прямоугольник, указывающий свои границы в вещественных числах. (Данный класс настолько похож на IntRect, что некоторые программисты предпочли бы по данному образцу определить класс, который содержал бы как целые, так и вещественные координаты.) Код класса следующий:

class RealRect {

same as IntRect except use float instead of int

}■

II такой же. как IntRect. только испопьзует float вместо II int

Практические упражнения

3.4.1. Реализация классов Расширьте приведенные выше классы, добавив в них другие, полезные на ваш взгляд, функции, а также реализовав некоторые уже объявленные ранее функции, такие как drawO для класса IntRect.

3.4.2. Объявление класса Canvas

Мы объявляем интерфейс класса Canvas в заголовочном файле Canvas. h, как показано в листинге 3.6. Элементы данных файла Canvas. h включают в себя текущую позицию, окно, порт просмотра и преобразование окно - порт просмотра.

Листинг 3.6. Заголовочный файл Canvas.h


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