VTK修炼之道83:Pipeline管线执行模型

本文详细探讨了VTK的管线执行模型,包括vtkDemandDrivenPipeline的工作原理,如ComputePipelineMTime()、REQUEST_DATA_OBJECT()、REQUEST_INFORMATION()和REQUEST_DATA()四个关键步骤,揭示了VTK数据处理的内在机制。
摘要由CSDN通过智能技术生成

1.管线执行模性

请求是VTK执行管线的一个基本操作,一个管线执行模型由多个请求共同完成。管线建立完毕,当显示调用一个Filter的Update()函数时,该Filter的vtkExecutive子类执行对象会产生一系列请求,并在管线中传递。
例如,一个Writer对象执行Update()时,会调用this->GetExecutive()->Update()来更新管线。此时,执行对象会产生多个请求,并在管线中传递,并由vtkExecutice::ProcessRequest()进行处理。管线中处理一个Filter请求时,通常会先传递至其提够数据输入的上游Filter,待上游Filter处理完请求再在当前Filter中进行处理。执行对象在处理请求时,通常需要算法对象的协助来完成。执行对象会将请求发送至算法对象,并由vtkAlgorithm::ProcessRequest()进行处理。所有Filter类中都会实现ProcessRequest函数,并处理相关请求。与此同时,输入/输出管线信息对象也会传递到该函数中,然后根据相关的参数设置相关的处理。算法对象不允许从执行对象中再次获取其他信息
因此,管线执行流程可以这样表述:请求首先在管线末端Filter的执行对象中产生,并不断向上游Filter进行传递,直至管线前端Filter。管线前端Filter的算法对象对请求进行处理,产生相应的数据和信息,并不断传递至下游的Filter以便完成请求处理,直到完成请求的发起者。过程如下如所示:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值