47 Часть IV. Встраивание объектов

Вданном случае первая строка (#VRML VI.О ascii)говорит, что файл подчиняется спецификации 1.0 VRML и что в нем использован стандартный набор символов ASCII. Файлы VRML 2.0 обычно начинаются строкой #VRML V2.0 utf8, что означает, что они построены по спецификации VRML 2.0 и что используется международный набор символов, основанный на ASCII.

Форма построения файла довольно свободная — вы можете пользоваться пробелами или табуляцией и переводом строки, как вам захочется. Например, рассматриваемый файл может быть представлен очень компактно:

ftVRML-Vl.O ascii Separator{Info{string "Special Edition, Using HTML, 3rd Edition"}

DEF BackgroundColor Info(string "1 1 1"}Separator{Material (diffuseColor 100}

Cone(})}

(•Совет)

Как и при работе с другими языками программирования, рекомендуется не скупиться на комментарии — это значительно упрощает понимание программ.

Элементы и поля

Если вы знакомы с языками С, C++ или Java, вы уже догадались, что в фигурные скобки заключаются блоки связанной информации. Файлы VRML состоят из описаний элементов (nodes), которые имеют следующий вид:

NodeTyp { configuration information }

Тип элемента (NodeType)определяется спецификацией VRML. Полные спецификации VRML версий 1.0 и 2.0 можно найти по адресу:

http://rosebud.sdsc.edu/vrml/. Вприведенном выше примере используются четыре типа элементов:Info, Separator, Material И Sphere.

Конфигурирование элементов при помощи полей.Информация о конфигурации, расположенная в фигурных скобках, состоит и полей(fields). Например, элементы info в предыдущем примере имеют поля типа string, а элемент Material — поле типа diffuseColor. Обычно каждое поле имеет имя и значение. Поле diffuseColor имеет значение 100, состоящее из трех чисел, которые указывают цвет для элемента sphere (в привычном порядке:

красный, зеленый, синий).

Значения полей могут выражаться отдельными числами, группами чисел, символьными строками, зарезервированными словами (командами), логическим значением и т. п. Некоторые поля могут иметь несколько значений;в этом случае они разделяются запятыми и помещаются в квадратные скобки.