Цилидр - Cylinder
Cylinder {
field SFBool bottom TRUE #есть или нет низ цилиндра
field SFFloat height 2 #высота (2 - пример записи)
field SFFloat radius 1 #радиус (1 - пример записи)
field SFBool side TRUE #есть или нет боковая поверхность
field SFBool top TRUE #есть или нет верх
}
Нуль КС находится в центре цилиндра. Если Какае-либо поле из bottom, side, top имеет значение FALSE - то соответствующую сторону не видно и не срабатывают сенсоры т.е. можной "пройти"
Сфера - Sphere
Sphere {
field SFFloat radius 1 #радиус (1 - пример записи)
}
Нуль КС находится в центре сферы
Конус - Cone
Cone {
field SFFloat bottomRadius 1 #радиус основания
field SFFloat height 2 #высота
field SFBool side TRUE #есть или нет боковая поверхность
field SFBool bottom TRUE #есть или нет низ
}
Нуль КС находится в середине линии соединяющей вершину и центр основания
Если Какае-либо поле из bottom, side имеет значение FALSE - то соответствующую сторону не видно и не срабатывают сенсоры т.е. можной "пройти"
Набор многоугольников для описания объекта - IndexedFaceSet
IndexedFaceSet {
eventIn MFInt32 set_colorIndex #
eventIn MFInt32 set_coordIndex #
eventIn MFInt32 set_normalIndex #
eventIn MFInt32 set_texCoordIndex #
exposedField SFNode color NULL # должен содержать ноду Color
exposedField SFNode coord NULL # должен содержать ноду Coordinate
exposedField SFNode normal NULL # должен содержать ноду Normal
exposedField SFNode texCoord NULL # должен содержать TextureCoordinate
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 [] #
}
IndexedFaceSet - представляет трехмерную фигуру составленную из многоугольников, которые построены из вершин, которые представлены в поле coord . Поле coordIndex определяет из каких вершин строится очередной многоугольники, -1 заканчивает описание очередного многоугольника (в конце -1 не обязательно). Например [1 2 5 8 10 -1 3 4 6 7] (первый многоугольник состоит из вершин с индексами 1 2 5 8 10), при этом отсчет вершин начинается с 0.
Если colorPerVertex = FALSE, тоесли colorindex не пустой, то цвет каждого многоугольника определяется соответсвующим индексом из colorindex , опредеялющим порядковый номер цвета описанного в ноде Color
если colorindex пустой, то цвет каждого многоугольника определяется соответсвующим цветом описанным в ноде Color, т.е. описаний цветов в ноде Color должно быть столько сколько описано многоугольниковЕсли colorPerVertex = TRUE, то
если colorindex не пустой, то цвет каждой вершины определяется соответсвующим индексом из colorindex , опредеялющим порядковый номер цвета описанного в ноде Color
если colorindex пустой, то цвет каждой вершины определяется соответсвующим цветом описанным в ноде Color, т.е. описаний цветов в ноде Color должно быть столько сколько описано вершинЕсли Normal пустое то нормали генерируются автоматически, используя поле creaseAngle .
Если не пустое то нормали берутся из ноды Normal в соответствие с индексами в normalIndexЕсли texCoordIndex не пустое то текстуры для каждой плоскости берутся из поля texCoord в соответствие с индексами в texCoordIndex при этом описание каждой плоскости заканчивается -1
Если texCoordIndex пустое то текстуры для каждой плоскости берутся из поля texCoord по порядкуНабор линий для описания объекта - IndexedLineSet
IndexedLineSet {
eventIn MFInt32 set_colorIndex
eventIn MFInt32 set_coordIndex
exposedField SFNode color NULL # должен содержать ноду Color
exposedField SFNode coord NULL # должен содержать ноду Coordinate
field MFInt32 colorIndex []
field SFBool colorPerVertex TRUE
field MFInt32 coordIndex []
}
IndexedLineSet - представляет трехмерную фигуру составленную из полилиний, которые построены из вершин, которые представлены в поле coord . Поле coordIndex определяет из каких вершин строится очередная полиния, -1 заканчивает описание очередной полинии (в конце -1 не обязательно). Например [1 2 5 8 10 -1 3 4 6 7] (первая полилиния состоит из вершин с индексами 1 2 5 8 10), при этом отсчет вершин начинается с 0.
Если colorPerVertex = FALSE, тоесли colorindex не пустой, то цвет каждой полилинии определяется соответсвующим индексом из colorindex , опредеялющим порядковый номер цвета описанного в ноде Color
если colorindex пустой, то цвет каждой полилинии определяется соответсвующим цветом описанным в ноде Color, т.е. описаний цветов в ноде Color должно быть столько сколько описано многоугольниковЕсли colorPerVertex = TRUE, то
если colorindex не пустой, то цвет каждой вершины определяется соответсвующим индексом из colorindex , опредеялющим порядковый номер цвета описанного в ноде Color
если colorindex пустой, то цвет каждой вершины определяется соответсвующим цветом описанным в ноде Color, т.е. описаний цветов в ноде Color должно быть столько сколько описано вершинНабор точек PointSet
PointSet {
exposedField SFNode color NULL # должен содержать ноду Color
exposedField SFNode coord NULL # должен содержать ноду Coordinate
}
PointSet - представляет набор трехмерных точек , которые представлены в поле coord
Для каждой точки может быть определен цвет в поле color
Если color не определено то используется определение цвета в ноде Material (см. Shape)Сетка - ElevationGrid
ElevationGrid {
eventIn MFFloat set_height
exposedField SFNode color NULL
exposedField SFNode normal NULL
exposedField SFNode texCoord NULL
field MFFloat height []
field SFBool ccw TRUE
field SFBool colorPerVertex TRUE
field SFFloat creaseAngle 0
field SFBool normalPerVertex TRUE
field SFBool solid TRUE
field SFInt32 xDimension 0
field SFFloat xSpacing 0.0
field SFInt32 zDimension 0
field SFFloat zSpacing 0.0
}
ElevationGrid определяет прямоугольную сетку в локальной КС в плоскости X-Z. В каждом узле сетки определена высота (по оси Y). Геометрия описывается скалярным массивом, содержащим значения высот для каждого узла сетки
xDimension и zDimension - количество ячеек в сетке по осям X и Z соответсвенно должно быть > 1
xSpacing и zSpacing - расстояние между узлами в сетке по осям X и Z соответсвенно не равно нулю
height - массив высот (координат по оси Y) для каждого узла сетки.