Still no color … edited script below.
#!/usr/bin/env python3
import vtkmodules.vtkRenderingOpenGL2
from glob import glob
from vtkmodules.vtkCommonCore import vtkLookupTable
from vtkmodules.vtkIOImage import vtkPNGWriter
from vtkmodules.vtkRenderingCore import (
vtkActor,
vtkColorTransferFunction,
vtkPolyDataMapper,
vtkRenderWindow,
vtkRenderWindowInteractor,
vtkRenderer)
from vtkmodules.vtkIOXML import vtkXMLPolyDataReader
MAX_TEMP = 400
TABLE_SIZE = 256
def debug_view(fname):
import sys
from vtkmodules.vtkInteractionStyle import vtkInteractorStyleTrackballCamera
r = vtkXMLPolyDataReader()
r.SetFileName(fname)
r.Update()
ctf = vtkColorTransferFunction()
ctf.SetColorSpaceToRGB()
ctf.AddRGBPoint(0, 1.0, 0.0, 0.0)
ctf.AddRGBPoint(MAX_TEMP, 0.0, 1.0, 1.0)
lut = vtkLookupTable()
lut.SetNumberOfTableValues(TABLE_SIZE)
lut.SetTableRange(0, MAX_TEMP)
for i in range(TABLE_SIZE):
rgb = ctf.GetColor(i/TABLE_SIZE)
lut.SetTableValue(i, *rgb)
lut.SetRampToLinear()
lut.Build()
m = vtkPolyDataMapper()
m.SetInputConnection(r.GetOutputPort())
m.SetLookupTable(lut)
m.SetScalarModeToUseCellData()
m.SetColorModeToMapScalars()
m.SelectColorArray("Temperature")
m.SetScalarRange(0, MAX_TEMP)
a = vtkActor()
a.SetMapper(m)
a.RotateX(-20)
a.RotateY(50)
ren = vtkRenderer()
ren.AddActor(a)
renWin = vtkRenderWindow()
renWin.AddRenderer(ren)
iren = vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
style = vtkInteractorStyleTrackballCamera()
iren.SetInteractorStyle(style)
renWin.SetSize(300, 300)
renWin.SetWindowName("Tetra")
iren.Initialize()
ren.ResetCamera()
renWin.Render()
iren.Start()
if __name__ == "__main__":
debug_view("hot_tetra.vtp")