Расширяемость
Возможность расширения предусмотрена с целью поддержки работы с автоматически определяемыми узлами, которые не являются частью стандарта. Например, если бы в стандарте отсутствовал узел типа "куб", его можно было бы вывести следующим образом:
Cube { fields[SFFloatwidth, SFFloatheight, SFFloatdepth]width 10 height 4 depth 3 }
Кроме этого, новые типы узлов можно задавать через уже существующие. В этом случае новые узлы определяются путем задания дополнительного параметра 'isA' поля MFString. Например, новый тип "Material" под названием "ExtendedMaterial", имеющий особые свойства отражения, может быть определен следующим образом:
ExtendedMaterial { fields[MFStringisA, MFFloatindexOfRefraction, MFColor ambientColor, MFColordiffuseColor, MFColor cpecularColor, MFColoremissiveColor, MFFloat shininess, MFFloattransparency]isA [ "Material" ]indexOfRefraction .34 diffuseColor .8 .54 1 }