Base on couse 2, Changed step 4 to

  • 4, Create a QVTKOpenGLWidget

    //step 0: set it to a window:
    auto vw = new  QVTKOpenGLWidget(this) ;
    vtkRenderWindow *renWin = vw->GetRenderWindow();
    ui->tabWidget->addTab( vw, __FUNCTION__);
    
    vtkRenderer *render= vtkRenderer::New();
    
    render->SetBackground( 0.1, 0.2, 0.4 );
    
    vtkSmartPointer<vtkConeSource> coneSource = vtkSmartPointer<vtkConeSource>::New();
    coneSource->SetRadius(.2);
    coneSource->SetHeight(.5);
    coneSource->SetCenter(0, 0, 0);
    
    
    vtkSmartPointer<vtkPolyDataMapper> coneMapper =
      vtkSmartPointer<vtkPolyDataMapper>::New();
    coneMapper->SetInputConnection(coneSource->GetOutputPort());
    vtkSmartPointer<vtkActor> coneActor =
      vtkSmartPointer<vtkActor>::New();
    coneActor->SetMapper(coneMapper);
    
    vtkSmartPointer<vtkActor> oriConeActor =
      vtkSmartPointer<vtkActor>::New();
    oriConeActor->SetMapper(coneMapper);
    
    
    // added outline
      vtkSmartPointer<vtkOutlineFilter> outline =
      vtkSmartPointer<vtkOutlineFilter>::New();
      outline->SetInputConnection(coneSource->GetOutputPort());
    
      vtkSmartPointer<vtkPolyDataMapper> outlineMapper =
      vtkSmartPointer<vtkPolyDataMapper>::New();
      outlineMapper->SetInputConnection(outline->GetOutputPort());
    
      vtkSmartPointer<vtkActor> outlineActor =
      vtkSmartPointer<vtkActor>::New();
      outlineActor->SetMapper(outlineMapper);
      outlineActor->GetProperty()->SetColor(0, 0, 0);
    
    
    render->AddActor(oriConeActor);
    render->AddActor(outlineActor);
    renWin->AddRenderer( render );
    
  • 5, Build and run You will get:

You can download the whole source code from Course-3