02 - 替换SetInput方法 VTK 6.0 迁移 (2013-06-30 16:22)
VTK6 引入了许多不兼容的变化,这其中就包括用SetInputData()和SetInputConnection()替换SetInput()方法。在先前的版本中,VTK4 引入了SetInput()方法,VTK5中引入了SetInputConnection()。
下面举一些例子:在如下例子中,虽然我只演示了替换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。
02 - 替换SetInput方法 VTK 6.0 迁移 (2013-06-30 16:22)的更多相关文章
- 05 - 替换vtkDataObject中的Update方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.下面讨论update方法并提供迁移现有代码的建议. Update() vtkDataObject::Upd ...
- 04 - 替换vtkDataObject中的GetPipelineInformation 和GetExecutive 方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.其中的两个方法就是GetPipelineInformation() 和 GetExecutive().这些 ...
- 03 - 替换vtkDataObject中的GetProducerPort()方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.其中的一个方法就是GetProducerPort(). 一般,先前使用这个方法如下例子: vtkPolyD ...
- 09 - 删除vtkDataObject中的ShouldIReleaseData() and ReleaseDataFlag 方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.下面列出来的就是其中的一些方法: ShouldIReleaseData() SetReleaseDataF ...
- 11 - 改变vtkImageData中的Manipulation 方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.这其中就包括关于vtkImageData中元数据管理及内存分配的方法.这些方法有些直接改变了行为或者能加了额外的参数. GetScalarTypeMin() GetSc ...
- 10 - 删除vtkDataObject中的Update Extent方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.下面列出来的就是其中的一些方法: SetUpdateExtent(int piece, int numPi ...
- 08 - 删除vtkDataObject中的SetWholeExtent() 方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.其中之一就是SetWholeExtent().SetWholeExtent()方法先前被用来管理结构话数据 ...
- 07 - 删除vtkDataObject中的SetExtentTranslator 和 GetExtentTranslator方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.其中的两个方法就是SetExtentTranslator() 和 GetExtentTranslator( ...
- 01 - 概述 VTK 6.0 迁移
摘要 对vtk版本4和5的管道机制重新架架构的主要目的是:迁移数据对象和算法对象中的管道执行逻辑到一个新集合的类中,我们称这个集合类叫executives.分离数据和执行模型的代码后,可以双双简化修改 ...
随机推荐
- 聚类算法:K均值、凝聚层次聚类和DBSCAN
聚类分析就仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组(簇).其目标是,组内的对象相互之间是相似的,而不同组中的对象是不同的.组内相似性越大,组间差别越大,聚类就越好. 先介绍下聚类的不 ...
- casperjs配合phantomjs实现自动登录百度,模拟点击等等操作 - 怕虎在线www.ipahoo.com图文教程 - 怕虎在线
微信支付取消2万元保证金门槛,这是全民电商来袭!-观点-虎嗅网 微信支付取消2万元保证金门槛,这是全民电商来袭! casperjs配合phantomjs实现自动登录百度,模拟点击等等操作 - 怕虎在线 ...
- JDK 高性能编程之容器
高性能编程在对不同场景下对于容器的选择有着非常苛刻的条件,这里记录下前人总结的经验,并对源码进行调试 JDK高性能编程之容器 读书笔记内容部分来源书籍深入理解JVM.互联网等 先放一个类图util,点 ...
- Java做acm所需要的基础知识之排序问题
Java做acm所需要的基础知识. 以前做acm的题都是用C/C++来写代码的,在学习完Java之后突然感觉Java中的方法比C/C++丰富很多,所以就整理一下平时做题需要用到的Java基础知识. 1 ...
- 提交表单时的等待(loading)效果
$(document).ready(function () { $("body").prepend('<div id="overlay" class=&q ...
- iOS键盘覆盖输入框的处理.doc
在一个多项输入界面上,会有多个UITextfield类型的输入框.为了滚动方面,我们会将他们一一添加到UITableView的cell中,从而组成一个可以上下滑动的数据输入界面. 但是字符输入是通过系 ...
- iOS开发之iPhone通过get和post方式请求asp.net webservice
.创建一个webservice .在webconfig中启用http get 和http post. 复制代码 <</span> webServices > <</ ...
- Android Studio中解决Gradle DSL method not found: 'android()'
近期导入as的项目出了这种问题 这个问题困扰了我非常长时间,好吧,搜了半天全都是runProguard的.最后在stackoverflow上搜到解决的方法了: http://stackoverflow ...
- $.each 和$(selector).each()的差别
Home » jQuery » $.each() $.each() Posted on 2012 年 3 月 15 日 in jQuery, jQuery函数 | by Jason | 译自官方手冊: ...
- (转) Android平台上关于IM的实践总结
前言 IM通信在互联网发展到现在已经是码农的世界里人尽皆知的技术,特别在当下移动互联网迅猛发展的时代这种技术的开发也更加火热,其中老牌的代表作就有QQ和MSN,和最近新崛起的微信,默默,易信,来往等眼 ...