I am reading the VTKTextbook. On page 112 (physical page 128) it says:
/Now let’s reexamine the same process of pipeline execution by following
method invocation. The process begins when
the actor receives a Render() message from a renderer. The actor in turn
sends a Render() message to its mapper. The
mapper begins network execution by asking its input to update itself via the
Update() operation. This causes a cascade
of Update() methods as each filter in turn asks its input to update itself.
If branching in the pipeline is present, the
update method will branch as well. Finally, the cascade terminates when a
source object is encountered. If the source
object is out of date, it will send itself an RequestData() command. Each
filter will send itself an RequestData() as
necessary to bring itself up to date. Finally, the mapper will perform
operations to transform its input into rendering
It is clear how Update() mehods get propagated towards the Source, as each
"node" in the network asks its input to update. Following the text above, it
says that the cascade terminates when the source is reached. It than sends
itself RequestData command, if it is out of date. But the text than goes to
say " Each filter will send itself an RequestData()" if needed.
How do filters know to call RequestData on themselves? With Update, it is
clear, as each filter asks its input to update. This flows upstream to the
source. But than if only the source asks itself to RequestData, how do
filters downstream from it know to do so aswell?
I hope I made my question clear, I thank you in advance.