06 - 从Algorithm 算法派生类中删除ExecuteInformation() 和ExecuteData() VTK 6.0 迁移
2013-07-02 21:39
288 查看
在先前的vtk中,如vtkPointSetAlgorithm 等算法派生类中定义了虚方法:ExecuteInformation() 和 ExecuteData()。这些方法的定义是为了平稳的从VTK4到VTK5中。我们从如下的类中删除了ExecuteInformation() 和 ExecuteData():
vtkDataObjectAlgorithm
vtkGenericDataSetAlgorithm
vtkHyperOctreeAlgorithm
vtkPiecewiseFunctionAlgorithm
vtkPolyDataAlgorithm
vtkRectilinearGridAlgorithm
vtkSelectionAlgorithm
vtkStructuredGridAlgorithm
vtkUnstructuredGridAlgorithm
任何上面的派生类都应该改ExecuteInformation() 和 ExecuteData()变成 RequestInformation() 和 RequestData()。你还应该利用这个机会来使用输入和输出信息对象来访问输入和输出数据的对象,相对于GetInput() 和 GetOutput()。这儿有一个列外类vtkImageAlgorithm仍然支持 ExecuteData() 和 Execute()。
例子1:
替换成:
例子2:
替换成:
vtkDataObjectAlgorithm
vtkGenericDataSetAlgorithm
vtkHyperOctreeAlgorithm
vtkPiecewiseFunctionAlgorithm
vtkPolyDataAlgorithm
vtkRectilinearGridAlgorithm
vtkSelectionAlgorithm
vtkStructuredGridAlgorithm
vtkUnstructuredGridAlgorithm
任何上面的派生类都应该改ExecuteInformation() 和 ExecuteData()变成 RequestInformation() 和 RequestData()。你还应该利用这个机会来使用输入和输出信息对象来访问输入和输出数据的对象,相对于GetInput() 和 GetOutput()。这儿有一个列外类vtkImageAlgorithm仍然支持 ExecuteData() 和 Execute()。
例子1:
void vtkMyReader::ExecuteInformation() { vtkImageData* output = this->GetOutput(); output->SetWholeExtent(…); output->SetScalarType(VTK_UNSIGNED_CHAR); }
替换成:
int vtkMyReader::RequestInformation(vtkInformation*, vtkInformationVector**, vtkInformationVector* outInfoVec) { vtkInformation* outInfo = outInfoVec->GetInformationObject(0); outInfo->Set(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(), …); vtkDataObject::SetPointDataActiveScalarInfo( outInfo, VTK_UNSIGNED_CHAR, 1); return 1; }
例子2:
void vtkMyAlgorithm::Execute() { vtkImageData* input= this->GetInput(); vtkPolyData* output = this->GetOutput();
替换成:
int vtkMyReader::RequestData(vtkInformation*, vtkInformationVector**, inInfoVec, vtkInformationVector* outInfoVec) { vtkImageData* input = vtkImageData::GetData(inInfoVec[0]); vtkPolyData* output = vtkPolyData::GetData(outInfoVec);
相关文章推荐
- 10 - 删除vtkDataObject中的Update Extent方法 VTK 6.0 迁移
- 07 - 删除vtkDataObject中的SetExtentTranslator 和 GetExtentTranslator方法 VTK 6.0 迁移
- 08 - 删除vtkDataObject中的SetWholeExtent() 方法 VTK 6.0 迁移
- 09 - 删除vtkDataObject中的ShouldIReleaseData() and ReleaseDataFlag 方法 VTK 6.0 迁移
- 03 - 替换vtkDataObject中的GetProducerPort()方法 VTK 6.0 迁移
- 04 - 替换vtkDataObject中的GetPipelineInformation 和GetExecutive 方法 VTK 6.0 迁移
- 05 - 替换vtkDataObject中的Update方法 VTK 6.0 迁移
- 02 - 替换SetInput方法 VTK 6.0 迁移 (2013-06-30 16:22)
- 01 - 概述 VTK 6.0 迁移
- 11 - 改变vtkImageData中的Manipulation 方法 VTK 6.0 迁移
- 笔试算法题(48):简介 - A*搜索算法(A Star Search Algorithm)
- Openck_Swift源码分析——增加、删除设备时算法具体的实现过程
- c# 删除 DataTable 里面空行的算法
- CEPH CRUSH 算法源码分析 原文CEPH CRUSH algorithm source code analysis
- 迁移学习:经典算法解析
- c++11 algorithm 常用的容器算法
- 转载 数据挖掘十大经典算法(4) The Apriori algorithm
- 算法训练 删除数组零元素
- C++:STL常用函数模块总结(算法algorithm)
- 删除源文件注释语句----有限状态机算法实现