() 1 #include<vtkSmartPointer.h>
2 #include<vtkRenderWindow.h>
3 #include<vtkRenderer.h>
4 #include<vtkRenderWindowInteractor.h>
5 #include<vtkInteractorStyleTrackballCamera.h>
6 #include<vtkCylinderSource.h>
7 #include<vtkPolyDataMapper.h>
8 #include<vtkActor.h>
9
10 #include
"vtkAutoInit.h"
11
12 VTK_MODULE_INIT(vtkRenderingOpenGL2);
// VTK was built with vtkRenderingOpenGL2
13 VTK_MODULE_INIT(vtkInteractionStyle);
14 //https://blog.csdn.net/thecentry/article/details/79111295
15 int main()
16 {
17 vtkSmartPointer<vtkCylinderSource>cylinder = vtkSmartPointer<vtkCylinderSource>
::New();
18 cylinder->SetHeight(
3.0);
19 cylinder->SetRadius(
1.0);
20 cylinder->SetResolution(
10);
21
22 vtkSmartPointer<vtkPolyDataMapper> cylinderMapper = vtkSmartPointer<vtkPolyDataMapper>
::New();
23 cylinderMapper->SetInputConnection(cylinder->
GetOutputPort());
24
25 vtkSmartPointer<vtkActor> cylinderActor = vtkSmartPointer<vtkActor>
::New();
26 cylinderActor->
SetMapper(cylinderMapper);
27
28 vtkSmartPointer<vtkRenderer> cylinderRender = vtkSmartPointer<vtkRenderer>
::New();
29 cylinderRender->
AddActor(cylinderActor);
30 cylinderRender->SetBackground(
0.1,
0.2,
0.4);
31
32 vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>
::New();
33 renWin->
AddRenderer(cylinderRender);
34 renWin->SetSize(
300,
300);
35
36 vtkSmartPointer<vtkRenderWindowInteractor> iren = vtkSmartPointer<vtkRenderWindowInteractor>
::New();
37 iren->
SetRenderWindow(renWin);
38
39 vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = vtkSmartPointer<vtkInteractorStyleTrackballCamera>
::New();
40 iren->
SetInteractorStyle(style);
41
42 iren->
Initialize();
43 iren->
Start();
44 return 0;
45 }
VTK编译出现no override found for 'vtkPolyDataMapper'
我出现no override found for 'vtkPolyDataMapper',这种问题是因为没有用cmake,而是直接用控制台结合VTK的库函数进行开发的。
参考博文 https://blog.csdn.net/thecentry/article/details/79111295
demo运行结果:
一个vtkRender可添加多个actor,同时显示,结合上面代码:
1 vtkSmartPointer<vtkCylinderSource>cylinder1 = vtkSmartPointer<vtkCylinderSource>
::New();
2 cylinder1->SetHeight(
6.0);
3 cylinder1->SetRadius(
1.0);
4 cylinder1->SetResolution(
10);
5
6
7 vtkSmartPointer<vtkPolyDataMapper> cylinderMapper1 = vtkSmartPointer<vtkPolyDataMapper>
::New();
8 cylinderMapper1->SetInputConnection(cylinder1->
GetOutputPort());
9
10 vtkSmartPointer<vtkActor> cylinderActor1 = vtkSmartPointer<vtkActor>
::New();
11 cylinderActor1->
SetMapper(cylinderMapper1);
12 //
13 vtkSmartPointer<vtkRenderer> cylinderRender = vtkSmartPointer<vtkRenderer>
::New();
14 cylinderRender->
AddActor(cylinderActor);
15 cylinderRender->
AddActor(cylinderActor1);
16 cylinderRender->SetBackground(
0.1,
0.2,
0.4);
类的介绍
(1)vtkCylinderSource
该类派生自vtkPolyDataAlgorithm。该类生成的数据类型是vtkPolyData,生成一个中心在渲染场景原点的柱体。
(2)vtkPolyDataMapper
该类用于渲染多边形几何数据(vtkPolyData),派生自类vtkMapper,将输入的数据转换为集合图元(点/线/多边形)进行渲染。
vtkPolyDataMapper::SetInputConnection(): VTK可视化管线的输入数据接口。
(3)vtkActor
该类派生自vtkProp类,渲染场景中的数据的可视化表达通过vtkProp的自类负责。
(4)vtkRenderWindow
(5)vtkRender
(6)vtkRenderWindowInteractor
(7) vtkInteractorStyleTrackballCamera
转载于:https://www.cnblogs.com/0523jy/p/11400574.html
相关资源:JAVA上百实例源码以及开源项目