zoukankan      html  css  js  c++  java
  • 02


    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。

  • 相关阅读:
    1. Visual Basic概述
    4. HTML5
    Android 操作SQLite基本用法
    android开发规范
    ListView与ArrayAdapter的搭配使用
    个人笔记——Android网络技术
    Java中forEach, 用来遍历数组
    详细讲解Android的网络通信(HttpUrlConnection和HttpClient)
    简单使用URLConnection、HttpURLConnection和HttpClient访问网络资源
    Http编程之HttpClient
  • 原文地址:https://www.cnblogs.com/ankier/p/3166210.html
Copyright © 2011-2022 走看看