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, задающий швета: