[vtkusers] Vertex Labels with vtkGraphLayoutView
Don Pellegrino
donpellegrino at live.com
Thu Mar 29 10:01:28 EDT 2012
I found that "renWin.AddRenderer(view.GetRenderer())" produces different behavior than "view.Render()" in the following cases:
-- Snippet 1: Unexpected behavior, vertices are not labeled --
// View
vtkGraphLayoutView view = vtkGraphLayoutView.New();
view.AddRepresentationFromInput(g);
view.VertexLabelVisibilityOn();
view.SetVertexLabelArrayName("label");
view.Update();
// Render
vtkRenderWindow renWin = vtkRenderWindow.New();
renWin.AddRenderer(view.GetRenderer());
renWin.Render();
// Interact
vtkRenderWindowInteractor iren = vtkRenderWindowInteractor.New();
iren.SetRenderWindow(renWin);
iren.Initialize();
iren.Start();
-- Snippet 2: Expected behavior, vertices are labeled --
// View
vtkGraphLayoutView view = vtkGraphLayoutView.New();
view.AddRepresentationFromInput(g);
view.VertexLabelVisibilityOn();
view.SetVertexLabelArrayName("label");
// Housekeeping
view.Update();
view.ResetCamera();
view.Render();
view.GetInteractor().Start();
// Clean up memory.
g.Dispose();
label.Dispose();
view.GetInteractor().Dispose();
view.Dispose();
In Snippet 1, a vtkRenderWindow was created while in Snippet 2 a separate vtkRenderWindow was not created. In a third test, I created created a vtkRenderWindow similar to Snippet 1 and found that the following two lines appear to exhibit the difference in behavior:
renWin.AddRenderer(view.GetRenderer()); -- Same as Snippet 1, vertices are not labeled.
view.SetRenderWindow(renWin); -- Same as Snipper 2, vertices are labeled.
I had assumed that adding the vtkGraphLayoutView to the vtkRenderWindow would be equivalent to setting the the render window for the vtkGraphLayoutView to vtkRenderWindow. I suspect I have misunderstood something fundamental about the relationship between views and renderwindows. What is the nature of the difference between adding a view to a renderwindow versus setting the renderwindow for a view?
More information about the vtkusers
mailing list