vtkTextRepresentation does not work correctly when viewport does not cover full window
The following script does not render all 4 labels unless SetTextScaleModeToNone
is commented out.
import vtk
win = vtk.vtkRenderWindow()
renderers = []
labels = []
for i in range(4):
ren = vtk.vtkRenderer()
win.AddRenderer(ren)
renderers.append(ren)
label = vtk.vtkTextRepresentation()
label.SetRenderer(ren)
label.SetText("label")
label.BuildRepresentation()
label.SetWindowLocation(label.AnyLocation)
# comment the following line out and all 4 labels are rendered.
label.GetTextActor().SetTextScaleModeToNone()
label.GetTextActor().GetTextProperty().SetJustificationToLeft()
label.SetPosition(0.01, 0.01)
ren.AddActor(label)
renderers[0].SetViewport(0, 0, 0.5, 0.5)
renderers[1].SetViewport(0.5, 0, 1, 0.5)
renderers[2].SetViewport(0, 0.5, 0.5, 1.0)
renderers[3].SetViewport(0.5, 0.5, 1, 1)
win.Render()
input()