#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2
VTK_MODULE_INIT(vtkInteractionStyle);
#include <vtkConeSource.h>
#include <vtkPolyData.h>
#include <vtkSmartPointer.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <iostream>
int main(int argc, char *argv[]){
vtkSmartPointer<vtkConeSource>coneSource = vtkSmartPointer<vtkConeSource>::New();
coneSource->Update();
vtkSmartPointer<vtkPolyData>cone = coneSource->GetOutput();
int nPoints = cone->GetNumberOfPoints();
int nCells = cone->GetNumberOfCells();
std::cout << "Point number:" << nPoints << std::endl;
std::cout << "Cell number" << nCells << std::endl;
vtkSmartPointer<vtkPolyDataMapper>mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputData(cone);
vtkSmartPointer<vtkActor>actor = vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);
vtkSmartPointer<vtkRenderer>renderer = vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(actor);
vtkSmartPointer<vtkRenderWindow>renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
vtkSmartPointer<vtkRenderWindowInteractor>renderWindowInteractor =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
renderWindow->Render();
renderWindowInteractor->Start();
return 0;
}
VTK通過GetNumberOfPoints()和GetNumberOfCells分別獲取圖形數據點數和單元數目。
圖形渲染管線vtkPolyDataMapper,vtkActor,vtkRenderer,vtkRenderWindow,vtkRenderWindowInteractor。對於vtkPolyData類型的數據渲染管線,需要定義vtkPolyDataMapper對象,用於接收vtkPolyData圖形數據以實現圖形數據到渲染圖元的轉換。
該椎體由七個空間點和7個單元的數據組成,這裏只定義了空間椎體,沒有給點或者單元數據設置屬性信息。