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

时间:2022-11-25 22:06:15

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( /*piece*/, /*number of pieces*/);
dobj->Update();

替换成:

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

例子2:


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

替换成:

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