02 - 替换SetInput方法 VTK 6.0 迁移 (2013-06-30 16:22)
2013-07-02 08:44
507 查看
VTK6 引入了许多不兼容的变化,这其中就包括用SetInputData()和SetInputConnection()替换SetInput()方法。在先前的版本中,VTK4 引入了SetInput()方法,VTK5中引入了SetInputConnection()。
下面举一些例子:在如下例子中,虽然我只演示了替换SetInput(),读者可以类比替换SetSource()。在例子中,读者可以搜索相应的替换方法SetSourceConnection() or SetSourceData()。
例子1
应该变成:anotherFilter->SetInputConnection(aFilter->GetOutputPort());
例子3
变成:
例子4
这个该法分两种情况,如果aFilter在以后的更新流中不在被修改的话,我们可以简单的用SetInputData(不建立管道)
另外一种情况就是建立管道连接。
例子5
对于上面这个方法需要改写,分两种情况,如果调用者传入的是myfunction(aFilter->GetOutput());,则需要传入方法的参数变成算法,如下:
另一种情况是vtkPolyData* pd = vtkPolyData::New(); myfunction(pd);则,仅仅需要替换为SetInputData()
例子6
这个和例子5的修改方式一样,需要决定vtkDataObject的产生式通过polydata还是algorithm。
下面举一些例子:在如下例子中,虽然我只演示了替换SetInput(),读者可以类比替换SetSource()。在例子中,读者可以搜索相应的替换方法SetSourceConnection() or SetSourceData()。
例子1
anotherFilter->SetInput(aFilter->GetOutput()); 变成 anotherFilter->SetInputConnection(aFilter->GetOutputPort()); 例子2
vtkDataObject* output = aFilter->GetOutput(); anotherFilter->SetInput(output);
应该变成:anotherFilter->SetInputConnection(aFilter->GetOutputPort());
例子3
vtkPolyData *pd = vtkPolyData::New(); aFilter->SetInput(pd);
变成:
vtkPolyData *pd = vtkPolyData::New(); aFilter->SetInputData(pd);
例子4
vtkDataObject* output = aFilter->GetOutput(); aFilter->Update(); anotherFilter->SetInput(output);
这个该法分两种情况,如果aFilter在以后的更新流中不在被修改的话,我们可以简单的用SetInputData(不建立管道)
vtkDataObject* output = aFilter->GetOutput(); aFilter->Update(); anotherFilter->SetInputData(output);
另外一种情况就是建立管道连接。
例子5
void myfunction(vtkDataObject* dobj) { vtkAFilter* aFilter = vtkAFilter::New(); aFilter->SetInput(dobj); aFilter->Update(); // … }
对于上面这个方法需要改写,分两种情况,如果调用者传入的是myfunction(aFilter->GetOutput());,则需要传入方法的参数变成算法,如下:
void myfunction(vtkAlgorithm* alg, int port) { vtkAFilter* aFilter = vtkAFilter::New(); aFilter->SetInputConnection(alg->GetOutputPort(port)); aFilter->Update(); // … }
另一种情况是vtkPolyData* pd = vtkPolyData::New(); myfunction(pd);则,仅仅需要替换为SetInputData()
void myfunction(vtkDataObject* dobj) { vtkAFilter* aFilter = vtkAFilter::New(); aFilter->SetInputData(dobj); aFilter->Update(); // … }
例子6
class foo { vtkDataObject* DataObject; void Process() { vtkAFilter* aFilter = vtkAFilter::New(); aFilter->SetInput(this->DataObject); aFilter->Update(); // … } };
这个和例子5的修改方式一样,需要决定vtkDataObject的产生式通过polydata还是algorithm。
相关文章推荐
- 07 - 删除vtkDataObject中的SetExtentTranslator 和 GetExtentTranslator方法 VTK 6.0 迁移
- 03 - 替换vtkDataObject中的GetProducerPort()方法 VTK 6.0 迁移
- 04 - 替换vtkDataObject中的GetPipelineInformation 和GetExecutive 方法 VTK 6.0 迁移
- 05 - 替换vtkDataObject中的Update方法 VTK 6.0 迁移
- 08 - 删除vtkDataObject中的SetWholeExtent() 方法 VTK 6.0 迁移
- VTK学习(一)SetInputData()和SetInputConnection()替换SetInput()
- 10 - 删除vtkDataObject中的Update Extent方法 VTK 6.0 迁移
- 09 - 删除vtkDataObject中的ShouldIReleaseData() and ReleaseDataFlag 方法 VTK 6.0 迁移
- 11 - 改变vtkImageData中的Manipulation 方法 VTK 6.0 迁移
- 上传文件input tyle="file"文件的浏览按钮和文本框用图片替换的方法1
- Android 6.0获取wifi Mac地址为02:00:00:00:00:00的解决方法
- javabean 注解替换set/get方法
- 安卓解决6.0以后没有setLatestEventInfo方法的解决方案
- android:inputType属性和setInputType()方法参数对应整理
- Vcenter6.0虚拟机 备份及迁移方法对比
- TextInputLayout setError后影响EditText设定的自定义背景问题解决方法
- 使用@AutoWired替换struts2 Action中的get、set方法
- list -- set方法——替换列表中指定位置的元素
- HTML中input元素的setSelectionRange()方法的详细使用过程
- IOS简单的字串替换方法stringByTrimmingCharactersInSet