【VTK】Update()函数作用

  • 要求算法进行实际计算。这是因为 VTK 是惰性求值的,所以只在需要时才计算输出。
    它允许您更改算法参数而不会触发不需要的计算。

  • 例子:

vtkNew<vtkSphereSource> sphereSource;
sphereSource->Update(); // compute sphere with default
vtkPolyData* sphere = sphereSource->GetOutput();
sphereSource->SetThetaResolution(100); // change from default. Does not trigger any computation.
vtkPolyData* oldSphere = sphereSource->GetOutput(); // old output, source still not recomputed
sphereSource->Update(); // compute new sphere
vtkPolyData* sphere100 = sphereSource->GetOutput(); // new output

https://vtk.org/doc/nightly/html/classvtkAlgorithm.html#afa4eff301069b8b47703cd4939aeffa7

Update() : Bring this algorithm’s outputs up-to-date.
Reimplemented in vtkImageResliceMapper, vtkPolyDataMapper, and vtkCellGridMapper.

https://stackoverflow.com/questions/69870728/what-is-the-role-of-update-in-vtk

  • 通常,程序不显式调用Update()函数,应为在渲染引擎的最后,当调用Render()函数时,Actor会收到渲染请求,接着Actor会请求Mapper给它发送数据,而Mapper又会请求上一层的Filter的数据,Filter最后请求Source给它数据,于是,整条管线被执行。除非像以上代码所列,读入数据后,中间需要输出某些信息,在得到这些信息之前,就应该显示地调用Update()函数。
    在这里插入图片描述
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在VTK中,update()方法有两个主要的作用。 首先,update()方法用于数据管道的更新。VTK使用数据管道连接不同的处理模块,每个模块都有其特定的输入和输出。当数据管道中的一个模块的输入发生变化时,通常需要调用update()方法来更新整个管道。具体来说,update()方法会从管道的最开始处(通常是数据源)开始,逐个执行每个模块的更新操作,直到到达最终的输出模块。这样可以确保每个模块的数据都是最新的。 其次,update()方法还用于可视化窗口的更新。在VTK中,可视化窗口通常用于展示处理后的数据,例如绘制三维模型、显示图像等。当在窗口中添加或修改了数据对象后,需要调用update()方法以重新渲染窗口,并显示最新的数据内容。 总的来说,VTK中的update()方法用于更新数据管道中各个模块的数据,并重新渲染可视化窗口,以展示最新的数据内容。通过调用update()方法,可以确保数据的一致性并实时显示处理后的结果。 ### 回答2: vtk中的update()函数是用来更新数据和图形显示的。当我们在程序中对数据进行了修改或者添加了新的数据后,我们需要调用update()函数来更新vtk图形以使得修改后的数据能够正确显示在图形中。 update()函数作用是将数据从数据源传输给过滤器,再从过滤器传输给图形显示器。具体而言,它会执行以下几个步骤: 首先,update()函数会将数据源的数据传输给过滤器,过滤器会对数据进行处理,如进行平滑、滤波、剪切等操作,然后将处理后的数据传输给图形显示器。 其次,update()函数会更新图形显示器中的几何图形和着色器,将新的数据显示在图形窗口中。 最后,update()函数会将图形刷新到屏幕上,使得我们能够看到最新的数据显示结果。 总结来说,vtk中的update()函数是用于更新数据与图形显示的函数,它将数据从数据源传输给过滤器,再将处理后的数据传输给图形显示器,并将最新的数据显示在图形窗口中。 ### 回答3: 在VTK(Visualization Toolkit)中,update()函数用于启动数据管道的更新过程。 当我们创建和设置了多个VTK对象(如数据源、滤波器、数据映射器和渲染器等)并将它们连接起来时,数据只在需要时才会被计算和更新,而不是立即更新。这样可以节省时间和计算资源。 update()的作用就是触发数据管道的更新过程。当调用update()函数时,VTK会按照数据管道的顺序自动计算和更新所有相关的对象。 具体而言,当我们调用update()函数时,它会按照以下步骤工作: 1. 检查数据源(如文件读取器)是否有新的数据可用,如果有就读取它们。 2. 检查连接到数据源的滤波器,如果滤波器的输入数据已过期或被修改,则进行数据转换和计算。 3. 检查连接到滤波器的数据映射器,如果映射器的输入数据已过期或被修改,则进行数据转换和映射。 4. 检查连接到数据映射器的渲染器,如果渲染器的输入数据已过期或被修改,则进行数据渲染。 5. 最终将渲染结果显示在屏幕上。 总之,update()函数VTK中用于启动数据管道更新过程的重要方法。通过调用它,可以确保我们获取到最新的数据,并更新相关的可视化结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值