To make it quick, my understanding is that :
1. If I need B to be modified if A is changed, I NEED to do
2. Otherwise, "B->SetInputData(A)" is enough (A will be an input of B
BUT no link will be set between A and B : changing A does not trigger
update of B).
Up to here I guess (?) I'am right (at least for the big headlines)...
Stop me here if not !
Now, I want to have a source (grid) and I need to apply a filter on it.
Say that in a call back I modify the source: I want BOTH source and
filter to be updated when call backs are modifying the source. Here is
what I have:
vtkSmartPointer<vtkUnstructuredGrid> spGrid =
vtkSmartPointer<vtkUnstructuredGrid>::New(); // Source
// Fill the source with points and cells...
vtkSmartPointer<vtkVertexGlyphFilter> spVertexGlyphs =
spVertexGlyphs->SetInputData(spGrid); // Case 2
vtkSmartPointer<vtkPolyDataMapper> spVertexGlyphMap =
// Case 1 : the filter is updated if the source is modified.
This seems to works: the filter is updated if the source is modified.
But, this does NOT work: the source is NOT modified (= updated in the
VTK window) when the callback modify it (so the filter may OR NOT be
updated accordingly ?!).
I expected to be compelled to do:
vtkSmartPointer<vtkDataSetMapper> spGridMap =
spGridMap->SetInputConnection(spGrid->GetOutputPort()); // Compilation
KO because there is not SetInputConnection or GetOutputPort ???
So I'am compelled to do (found lots of examples that do that):
... And I end up with a grid that does NOT update in the VTK window
when call back modify the source.
I found a way to update it: the callback modify the grid and, at the
end of the callback, I added "spGrid->Modified()", this triggers the
update of the source.
So basically, I did what I need ... But:
1. Is the "spGrid->Modified()" a hack ? Or is it the "right" way to do
? If yes, why (as it seems to bypass the update process) ?
2. Why is there no SetInputConnection on spGridMap ? Why is there no
GetOutputPort on vtkUnstructuredGrid ?
I just would like to understand the logic behind....
Powered by www.kitware.com