4.6 Расширяемость языка
27.08.2007 г.
4.6. Расширяемость языка

Возможность расширения предусмотрена с целью поддержки работы с автоматически определяемыми узлами, которые не являются частью стандарта. Например, если бы в стандарте отсутствовал узел типа "куб", его можно было бы вывести следующим образом:

Cube {
fields [ SFFloat width, SFPloat height, SFFloat
depth ] width 10 height 4 depth 3 }
Кроме этого новые типы узлов можно задавать через уже существующие. В этом случае новые узлы определяются путем задания дополнительного параметра 'isA' поля MFStririg. Например, новый тип "Material" под названием "ExtendedMaterial", имеющий особые свойства отражения может быть определен следующим образом:
ExtendedMaterial { fields [ MFString isA,
MFFloat indexOfRefraction, MFColor
ambientColor, MFColor diffuseColor, MFColor
specularColor, MFColor emissiveColor, MFFloat
shininess, MFFloat transparency ] isA
[ "Material" ] indexOfRefraction .34
diffuseColor .8 .54 1 }
Последнее обновление ( 15.11.2007 г. )