Д1. Синтаксис SDL

1039

порождены от базового типа GeomObj (сокращение от «геометрический объект»), в силу чего тип Shape может находиться в списке, указывающем на GeomObj. В классе Scene имеются следующие четыре поля:

Light* light:
// the light-source list

// список источников света

GeomObj* obj:
// the object list

// список объектов

Color3 background:
// the background color

// цвет фона

Color3 ambient:
// the global ambient color

// глобальный фоновый цвет

В дополнение к этим полям имеется еще три поля, используемые для трассировки лучей (см. главу 14): maxRecursionDepth, minShinyness, minTransparency.

Д1. Синтаксис SDL

Язык SDL чувствителен к регистру, однако обладает свободным форматом: все разделители (пробел, знак табуляции, перевод строки, подача страницы и т. д.) эквивалентны одному пробелу. Комментарии начинаются с восклицательного знака «!» и продолжаются до конца текущей строки. Ключевые слова в SDL используются для задания различных аффинных преобразований, геометрических объектов, источников света, а также атрибутов сцены, таких как цвет фона.

Создание геометрических объектов Для создания объекта и помещения его в список объектов достаточно просто объявить его тип. Например, так:

cube добавляет кубический объект в список объектов, а sphere добавляет сферический объект.

Прочие геометрические объекты включают в себя (полный список содержится в файле Sdl. h) torus (тор), plane (плоскость), square (квадрат), cylinder (цилиндр), cone (конус), tetrahedron (тетраэдр), octahedron (октаэдр), dodecahedron (додекаэдр), icosahedron (икосаэдр), buckyball (бакибол), diamond (ромб), teapot (чайник). Когда любой из этих объектов указан в файле, то соответствующий объект добавляется к списку объектов (в его конец).

Существуют дополнительные типы геометрических объектов, требующие параметр, который является или вещественным числом, или именем файла. Этот параметр помещается сразу за именем объекта:

taperedCylinder .312
! make a tapered cylinder with small radius .312

! создаем конический цилиндр с меньшим радиусом 0.312


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