VTK學習(十三)圖形渲染管線

#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個單元的數據組成,這裏只定義了空間椎體,沒有給點或者單元數據設置屬性信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章