Рисование цветной сетки в CGAL

#c #cgal

#c #cgal

Вопрос:

В CGAL есть Surface_mesh<Point_3> с. Surface_mesh::Property_map<Surface_mesh::Face_index, CGAL::Color> Я использую CGAL::draw() метод для рисования этой сетки, однако разные цвета граней не отражаются. Чего мне не хватает?

Комментарии:

1. Как минимум , вы должны показать соответствующий код и выходные данные вашей программы.

Ответ №1:

Текущая версия basic viewer для поверхностной сетки не учитывает цвет граней.

Однако изменить код легко.

  1. Посмотрите на файл draw_surface_mesh.h.
  2. Добавьте функтор MyColorFunctorSM (вдохновленный существующим DefaultColorFunctorSM), который возвращает цвет грани с учетом ее индекса
  3. Замените в функции рисования DefaultColorFunctorSM вашим новым функтором MyColorFunctorSM.

(Если вы не хотите изменять файл CGAL, вы можете определить свой функтор в своем коде и скопировать / вставить функцию рисования в свой код, прежде чем изменять его).

Ответ №2:

Я думаю, вы должны нажать M клавишу один раз в средстве просмотра, чтобы активировать функцию «многоцветный».

Комментарии:

1. Спасибо. Это будет полезно для активации цветного представления, но в настоящее время это просто случайным образом окрашивает мои треугольники, а не цвет, который я назначил им в цветовой карте.

2. Хорошо, я подумал, что это может сработать, поскольку я попробовал это на цветном кубе, и, похоже, все в порядке, но тогда прав @gdamiand, это просто невозможно.