Далее указываем, какие точки надо соединить. От последовательности зависит куда направлена нормаль.
poly = c4d.CPolygon(0, 1, 2)
polygon.SetPolygon(0, poly) # полигон один, и его индекс = 0
обновить
polygon.Message(c4d.MSG_UPDATE)
Вот более сложный пример, в котором создадим меш из двух полигонов треугольного и примыкающего к нему четырехугольного. Вот полный код:
import c4d
from c4d import Vector
def main():
# Создаем новый полигональный объект с 5 вершинами и 2 полигонами
poly_object = c4d.PolygonObject(5, 2)
# Задаем вершины для треугольника и квадрата
poly_object.SetPoint(0, Vector(0, 0, 0)) # вершина в начале координат
poly_object.SetPoint(1, Vector(100, 0, 0)) # Общая точка
poly_object.SetPoint(2, Vector(50, 100, 0)) # Вершина треугольника (Общая точка)
poly_object.SetPoint(3, Vector(150, 0, 0)) # Вершина четырехугольника
poly_object.SetPoint(4, Vector(150, 100, 0))# Вершина четырехугольника
# Создаем полигоны
# Треугольник - первый полигон
poly_object.SetPolygon(0, c4d.CPolygon(0, 1, 2))
# Квадрат - второй полигон (две стороны квадрата общие с треугольником)
poly_object.SetPolygon(1, c4d.CPolygon(1, 3, 4, 2))
# Вызываем, чтобы обновить состояние объекта
poly_object.Message(c4d.MSG_UPDATE)
# Имя объекта для удобства
poly_object.SetName("Triangle and Square")
# Добавляем объект в документ
doc.InsertObject(poly_object)
c4d.EventAdd()
# Вызываем функцию main()
main()
Чтобы понять как строятся полигоны взгляните на рисунок.
Красными цифрами обозначены номера вершин. Их мы перечисляем в CPolygon - от порядка перечисления зависит в какую сторону будет обращена нормаль полигона. Таким образом, если мы заменим в коде выше на это: