10 - 删除vtkDataObject中的Update Extent方法 VTK 6.0 迁移


VTK6 引入了许多不兼容的变。其中之一是删除vtkDataObject中所有有关管道的方法。下面列出来的就是其中的一些方法:

  • SetUpdateExtent(int piece, int numPieces, int ghostLevel)
  • SetUpdateExtent(int piece, int numPieces)
  • SetUpdateExtent(int extent[6])
  • SetUpdateExtent(int x0, int x1, int y0, int y1, int z0, int z1)
  • int* GetUpdateExtent()
  • GetUpdateExtent(int& x0, int& x1, int& y0, int& y1,int& z0, int& z1)
  • GetUpdateExtent(int extent[6])
  • SetUpdateExtentToWholeExtent()

为了方便,我们给vtkAlgorithm类中加了相似的方法,这样可以方便的过度到VTK6中。这些方法如下:

  • SetUpdateExtent(int port, int connection, int piece,int numPieces, int ghostLevel);
  • SetUpdateExtent(int piece,int numPieces, int ghostLevel);
  • SetUpdateExtent(int port, int connection, int extent[6]);
  • SetUpdateExtent(int extent[6]);
  • SetUpdateExtentToWholeExtent(int port, int connection);
  • SetUpdateExtentToWholeExtent();
  • int* GetUpdateExtent()
  • GetUpdateExtent(int& x0, int& x1, int& y0, int& y1,int& z0, int& z1)
  • GetUpdateExtent(int extent[6])
  • GetUpdatePiece()
  • GetUpdateNumberOfPieces()
  • GetUpdateGhostLeve()

例子1:


 

vtkDataObject* dobj = aFilter->GetOutput();
dobj->UpdateInformation();
dobj->SetUpdateExtent(0 /*piece*/,  2 /*number of pieces*/);
dobj->Update();

 

替换成:

aFilter->UpdateInformation();
aFilter->SetUpdateExtent(0 /*piece*/, 2 /*number of pieces*/, 0 /*ghost levels*/);
aFilter->Update();

 

例子2:


vtkDataObject* dobj = aFilter->GetOutput();
dobj->UpdateInformation();
int updateExtent[6] = {0, 10, 0, 10, 0, 10};
dobj->SetUpdateExtent(updateExtent);
dobj->Update();

 

替换成:

aFilter->UpdateInformation();
int updateExtent[6] = {0, 10, 0, 10, 0, 10};
aFilter->SetUpdateExtent(updateExtent);
aFilter->Update();

 

 

 

 

posted on 2013-07-03 20:22  |残阳|露  阅读(766)  评论(0编辑  收藏  举报

导航