Розробка VRML - документiв. Мова VRML (Virtual Reality Modeling Language). Інструментарій. Основні принципи, страница 2

-  клас, що описує заданий об'єкт разом із заданими візуальними властивостями. 

-  поле класу Shape, що містить інформацію про візуальні властивості заданої фігури. Як значення, цьому полю встановлюється об'єкт типу Appearance. 

Примітка: мова VRML чуттєва до регістра. Назви полів завжди починаються з маленької букви, а назви відповідних їм об'єктів - із великої.  Appearance { } 

-  клас, що описує візуальні властивості поверхні.  material 

-  поле класу Appearance, що містить інформацію про матеріал, із якого зроблена поверхня. 

Material { } 

-  клас, що описує візуальні властивості матеріалу.  diffuseColor 

-  поле класу Material, що задає колір матеріалу по системі RGB. Значення кожного кольору - раціональне число - змінюється в проміжку [0,1]. (у даному прикладі куля зеленого кольору, отже значення, поля diffuseColor 0 1 0.). Для одержання потрібних відтінків необхідно комбінувати значення червоної (R), зеленої (G) і синій (B) складових.  geometry 

-  поле класу Shape. Містить інформацію про геометричні властивості поверхні, що описується класом Shape.  Sphere { } 

-  клас, що описує кулю. 

Примітка: замість класу Sphere міг - би знаходитися будь-який інший геометричний клас, наприклад, Cylinder, Cone і т.

ін. Детальний опис основних класів можна знайти в Додатку.  radius 

-  поле класу Sphere. Як значення, цьому полю ставиться у відповідність ненегативне раціональне число, що задає довжину радіуса в одиничних відрізках системи координат. 

Отже, вище був цілком розглянутий і проаналізований найпростіший приклад об'єкта VRML. 

Примітка: у наведеному прикладі були описані далеко не, всі поля вище перерахованих класів. Однак, не дивлячись на це, наведений приклад є цілком функціональним, тому що в усі неописані, поля, були підставлені значення за замовчуванням. Не рекомендується додатково описувати поля даних, якщо їхні значення збігаються зі значеннями за замовчуванням, тому що це дуже сильно перевантажує текст програми. Всі основні типи даних, а також самі базові класи, їх поля, значення за замовчуванням і діапазони зміни приведені в додатку.  

Принципи роботи з вузлами

Вузол може містити захищені поля (field), поля з можливістю зовнішнього доступу (exposedField), поля, що призначені для отримання зовнішніх подій (eventIn), поля, що призначені для виводу подій, що сгенеровані даним об'єктом (eventOut). Кожна з перерахованих сутностей має чітко визначений тип (всі основні типи перераховані у додатку). На етапі обробки відбувається зв'язування компонентів вузлів за наступними правилами: 

z  зв'язувати можна тільки компоненти однакового типу, 

z  вихідні події можна зв'язувати з відкритими полями і вхідними подіями,  z неприпустимо зв'язувати вихідну подію з вихідною подією,  z неприпустимо зв'язувати вхідну подію з вхідною подією,  z неприпустимо робити зв'язку з захищеними полями. 

Відображення тексту

Даний приклад зображує рядок тексту за допомогою стандартних засобів VRML.

#VRML V2.0 utf8 

Transform {    children [      Shape { 

appearance Appearance {          material Material {            diffuseColor 0.2 0.3 0.4

}          }        geometry Text { 

        string ["HELLO WORLD !!!"]

fontStyle FontStyle {            family "COURIER"            style "BOLD"            size 1 

]    }

Де 

z Text { } - клас, що містить опис текстового рядка.  z string [ ] - поле класу Text, що містить текстовий рядок.  z fontStyle - поле класу Text, що містить опис шрифту, що використовується.  z FontStyle { } - клас, що описує стилеві характеристики шрифту.  z family - поле класу FontStyle, що містить назва шрифту.  z style - поле класу FontStyle, що задає стиль шрифту.  z size - поле класу FontStyle, що задає розмір шрифту. 

Оператор USE

Для скорочення тексту програми застосовується оператор USE. Загальний вигляд оператора USE: 

USE ім'я_описаного_вище_об'єкта