vtkOBJImporter сопоставление цветов для k3d

Следуя приведенному здесь коду, можно получить гранулярную vtkPolyData для передачи в k3d в python. Однако в настоящее время я назначаю цвет k3d вот так;

def rgb2hex(r,g,b):
     return eval("0x{:02x}{:02x}{:02x}".format(r,g,b))

#using the actors from [referenced code][1] to get the granular actors from .OBJ
col = actor.GetProperty().GetDiffuseColor()
rgb2hex(int(col[0]*255),int(col[1]*255),int(col[2]*255))

Это уродливо и неэффективно. vtkPolyDataMapper уже должен обрабатывать цвет, поэтому должен быть способ сделать это более прямым способом. Как можно использовать vtkPolyDataMapper, чтобы получить список цветов для передачи в аргумент цвета k3d.vtk_poly_data()?

mapper = actor.GetMapper() 
mapper.SetInputData(vtkPolyData)

1 ответ

VTK изначально не поддерживает это форматирование (0xrrggbb) для цвета. Вам всегда приходится иметь дело с трехкомпонентными числами с плавающей запятой или целыми числами.

Другие вопросы по тегам