/* * Copyright 2007 Sandia Corporation. * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive * license for use of this work by or on behalf of the * U.S. Government. Redistribution and use in source and binary forms, with * or without modification, are permitted provided that this Notice and any * statement of authorship are reproduced on all copies. */ #include "ui_SimpleView.h" #include "SimpleView.h" #include <vtkDataObjectToTable.h> #include <vtkElevationFilter.h> #include <vtkPolyDataMapper.h> #include <vtkQtTableView.h> #include <vtkRenderer.h> #include <vtkRenderWindow.h> #include <vtkVectorText.h> #include "vtkSmartPointer.h" #define VTK_CREATE(type, name) \ vtkSmartPointer<type> name = vtkSmartPointer<type>::New() // Constructor SimpleView::SimpleView() { this->ui = new Ui_SimpleView; this->ui->setupUi(this); // Qt Table View this->TableView = vtkSmartPointer<vtkQtTableView>::New(); // Place the table view in the designer form this->ui->tableFrame->layout()->addWidget(this->TableView->GetWidget()); // Geometry VTK_CREATE(vtkVectorText, text); text->SetText("VTK and Qt!"); VTK_CREATE(vtkElevationFilter, elevation); elevation->SetInputConnection(text->GetOutputPort()); elevation->SetLowPoint(0,0,0); elevation->SetHighPoint(10,0,0); // Mapper VTK_CREATE(vtkPolyDataMapper, mapper); mapper->ImmediateModeRenderingOn(); mapper->SetInputConnection(elevation->GetOutputPort()); // Actor in scene VTK_CREATE(vtkActor, actor); actor->SetMapper(mapper); // VTK Renderer VTK_CREATE(vtkRenderer, ren); // Add Actor to renderer ren->AddActor(actor); // VTK/Qt wedded this->ui->qvtkWidget->GetRenderWindow()->AddRenderer(ren); // Just a bit of Qt interest: Culling off the // point data and handing it to a vtkQtTableView VTK_CREATE(vtkDataObjectToTable, toTable); toTable->SetInputConnection(elevation->GetOutputPort()); toTable->SetFieldType(vtkDataObjectToTable::POINT_DATA); // Here we take the end of the VTK pipeline and give it to a Qt View this->TableView->SetRepresentationFromInputConnection(toTable->GetOutputPort()); // Set up action signals and slots connect(this->ui->actionOpenFile, SIGNAL(triggered()), this, SLOT(slotOpenFile())); connect(this->ui->actionExit, SIGNAL(triggered()), this, SLOT(slotExit())); }; SimpleView::~SimpleView() { // The smart pointers should clean up for up } // Action to be taken upon file open void SimpleView::slotOpenFile() { } void SimpleView::slotExit() { qApp->exit(); }