paraview关联表达vtkPVDataRepresentation重要函数

 1.ProcessViewRequest

  virtual int ProcessViewRequest(
    vtkInformationRequestKey* request_type, vtkInformation* inInfo, vtkInformation* outInfo);

这通常由vtkView调用,以从表示中请求元数据或要求它们执行某些任务,例如PrepareForRendering。

从ParaView 5.8开始,不再为隐藏表示调用此方法,即“vtkDataRepresentation::GetVisibility()”返回false的表示。

2.MarkModified

 virtual void MarkModified();

这是最重要的功能之一。在VTK管道中,管道很容易决定何时需要重新执行。

*vtkAlgorithm::Update()可以遍历整个管道,查看是否有任何过滤器MTime发生了更改(除其他外),如果是,它可以重新执行管道。

*然而,在表示的情况下,真正的输入连接可能只存在于数据服务器节点上。在这种情况下,vtkPVDataRepresentation::RequestData()将只在数据服务器节点上被调用。

这意味着表示将无法在RequestData()中进行任何数据传递。

我们需要一些其他机制来同步进程间的数据传递。为了避免这个难题,每当管道中的任何筛选器被修改时,vtkSMRepresentationProxy都会对所有进程调用MarkModified()。

在这个方法中,vtkPVDataRepresentation子类应该确保它们在RequestData中标记所有与传递相关的过滤器,以确保它们在下次更新时执行。

vtkPVDataRepresentation还使用一个特殊的执行程序,除非在上次Update()之后调用了MarkModified(),否则它将避免更新表示,从而充当更新抑制器。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片