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
) для цвета. Вам всегда приходится иметь дело с трехкомпонентными числами с плавающей запятой или целыми числами.