VRML. Справка по языку


Полигональные сетки



Color {

exposedField MFColor color []

}

Этот класс используется только при описании сложной геометрии (IndexedFaceSet) и задает множество RGB шветов для многоугольников (flat shading) или вершин многоугольников (smooth shading). Объекты этого класса не могут появляться внутри объекта Appearance.


Coordinate {

exposedField MFVec3f point []

}

Этот класс используется только при описании сложной геометрии (IndexedFaceSet) и задает множество вершин многоугольников.



IndexedFaceSet {

eventIn MFInt32 set_colorIndex

eventIn MFInt32 set_coordIndex

eventIn MFInt32 set_normalIndex

eventIn MFInt32 set_texCoordIndex

exposedField SFNode color NULL

exposedField SFNode coord NULL

exposedField SFNode normal NULL

exposedField SFNode texCoord NULL

field SFBool ccw TRUE

field MFInt32 colorIndex []

field SFBool colorPerVertex TRUE

field SFBool convex TRUE

field MFInt32 coordIndex []

field SFFloat creaseAngle 0

field MFInt32 normalIndex []

field SFBool normalPerVertex TRUE

field SFBool solid TRUE

field MFInt32 texCoordIndex []

}


Наиболее сложный тип геометрии - набор многоугольников. Зато этот класс позволяет создавать геометрические объекты произвольной формы. Очень часто используется в VRML файлах.

Поле coord содержит координаты всех вершин описываемого множества многоугольников. Здесь должен находиться объект Coordinate.


Поле coordIndex определяет геометрию множества (сам набор многоугольников). Пример:

IndexedFaceSet {

coord Coordinate { point [0 0 0, -1 1 1, 2 2 2, -3 3 3, 4 -4 4, 5 5 5] }

coordIndex [0, 1, 2, 3, -1, 1, 2, 4, 5,- 1]

}

определяет 2 четырехугольника с вершинами 0 0 0, -1 1 1, 2 2 2, -3 3 3 и -1 1 1, 2 2 2, 4 -4 4, 5 5 5. Т.е. в coordIndex

указываются индексы вершин из coord, которые должны составить многоугольник и -1 как признак конша описания данного многоугольника и перехода к следующему. Индексы вершин, как вы видите в примере, начинаются с 0.


В поле color должен содержаться объект класса Color, задающий швета: