1 #include <vtkAutoInit.h>
2 VTK_MODULE_INIT(vtkRenderingOpenGL2);
3 VTK_MODULE_INIT(vtkRenderingFreeType);
4 VTK_MODULE_INIT(vtkInteractionStyle);
5
6 #include <vtkPoints.h>
7 #include <vtkSmartPointer.h>
8 #include <vtkLandmarkTransform.h>
9 #include <vtkMatrix4x4.h>
10 #include <vtkPolyDataMapper.h>
11 #include <vtkActor.h>
12 #include <vtkRenderWindoh>
13 #include <vtkRenderer.h>
14 #include <vtkRenderWindowInteractor.h>
15 #include <vtkProperty.h>
16 #include <vtkTransformPolyDataFilter.h>
17 #include <vtkVertexGlyphFilter.h>
18 #include <vtkAxesActor.h>
19
20 int main(int, char *[])
21 ;
25 sourcePoints>InsertNextPoint(sourcePoint1);
26 double sourcePoint2[3] = ;
27 sourcePoints>InsertNextPoint(sourcePoint2);
28 double sourcePoint3[3] = ;
29 sourcePoints>InsertNextPoint(sourcePoint3);
30
31 vtkSmartPointer<vtkPoints> targetPoints =
32 vtkSmartPointer<vtkPoints>::New();
33 double targetPoint1[3] = ;
34 targetPoints>InsertNextPoint(targetPoint1);
35 double targetPoint2[3] = ;
36 targetPoints>InsertNextPoint(targetPoint2);
37 double targetPoint3[3] = ;
38 targetPoints>InsertNextPoint(targetPoint3);
39
40 vtkSmartPointer<vtkLandmarkTransform> landmarkTransform =
41 vtkSmartPointer<vtkLandmarkTransform>::New();
42 landmarkTransform>SetSourceLandmarks(sourcePoints);
43 landmarkTransform>SetTargetLandmarks(targetPoints);
44 landmarkTransform>SetModeToRigidBody();
45 landmarkTransform>Update();
46
47 vtkSmartPointer<vtkPolyData> source =
48 vtkSmartPointer<vtkPolyData>::New();
49 source>SetPoints(sourcePoints);
50
51 vtkSmartPointer<vtkPolyData> target =
52 vtkSmartPointer<vtkPolyData>::New();
53 target>SetPoints(targetPoints);
54
55 vtkSmartPointer<vtkVertexGlyphFilter> sourceGlyphFilter =
56 vtkSmartPointer<vtkVertexGlyphFilter>::New();
57 sourceGlyphFilter>SetInputData(source);
58 sourceGlyphFilter>Update();
59
60 vtkSmartPointer<vtkVertexGlyphFilter> targetGlyphFilter =
61 vtkSmartPointer<vtkVertexGlyphFilter>::New();
62 targetGlyphFilter>SetInputData(target);
targetGlyphFilter>Update();
64
65 vtkSmartPointer<vtkTransformPolyDataFilter> transformFilter =
66 vtkSmartPointer<vtkTransformPolyDataFilter>::New();
67 transformFilter>SetInputData(sourceGlyphFilter>GetOutput());
68 transformFilter>SetTransform(landmarkTransform);
69 transformFilter>Update();
70
71 vtkSmartPointer<vtkPolyDataMapper> sourceMapper =
72 vtkSmartPointer<vtkPolyDataMapper>::New();
73 sourceMapper>SetInputConnection(sourceGlyphFilter>GetOutputPort());
74
75 vtkSmartPointer<vtkActor> sourceActor =
76 vtkSmartPointer<vtkActor>::New();
77 sourceActor>SetMapper(sourceMapper);
78 sourceActor>GetProperty()>SetColor(1,1,0);
79 sourceActor>GetProperty()>SetPointSize(5);
80
81 vtkSmartPointer<vtkPolyDataMapper> targetMapper =
82 vtkSmartPointer<vtkPolyDataMapper>::New();
83 targetMapper>SetInputConnection(targetGlyphFilter>GetOutputPort());
84
85 vtkSmartPointer<vtkActor> targetActor =
86 vtkSmartPointer<vtkActor>::New();
87 targetActor>SetMapper(targetMapper);
88 targetActor>GetProperty()>SetColor(1,0,0);
89 targetActor>GetProperty()>SetPointSize(5);
90
91 vtkSmartPointer<vtkPolyDataMapper> solutionMapper =
92 vtkSmartPointer<vtkPolyDataMapper>::New();
93 solutionMapper>SetInputConnection(transformFilter>GetOutputPort());
94
95 vtkSmartPointer<vtkActor> solutionActor =
96 vtkSmartPointer<vtkActor>::New();
97 solutionActor>SetMapper(solutionMapper);
98 solutionActor>GetProperty()>SetColor(0,0,1);
99 solutionActor>GetProperty()>SetPointSize(5);
100
101 vtkSmartPointer<vtkRenderer> renderer =
102 vtkSmartPointer<vtkRenderer>::New();
103
104 vtkSmartPointer<vtkRenderWindow> renderWindow =
105 vtkSmartPointer<vtkRenderWindow>::New();
106 renderWindow>AddRenderer(renderer);
107 renderer>AddActor(sourceActor);
108 renderer>AddActor(targetActor);
109 renderer>AddActor(solutionActor);
110
111 vtkSmartPointer<vtkAxesActor> axes =
112 vtkSmartPointer<vtkAxesActor>::New();
113 axes>SetScale(30);
114 renderer>AddActor(axes);
115 renderer>SetBackground(.3, .6, .3);
116
117 vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
118 vtkSmartPointer<vtkRenderWindowInteractor>::New();
119 renderWindowInteractor>SetRenderWindow(renderWindow);
120
121 renderWindow>SetSize(640, 480);
122 renderWindow>Render();
123 renderWindow>SetWindowName("PolyDataLandmarkReg");
124 renderWindow>Render();
125 renderWindowInteractor>Start();
126
127 return EXIT_SUCCESS;
128 }
1 #include <vtkAutoInit.h>
2 VTK_MODULE_INIT(vtkRenderingOpenGL2);
3 VTK_MODULE_INIT(vtkRenderingFreeType);
4 VTK_MODULE_INIT(vtkInteractionStyle);
5
6 #include <vtkPoints.h>
7 #include <vtkSmartPointer.h>
8 #include <vtkLandmarkTransform.h>
9 #include <vtkMatrix4x4.h>
10 #include <vtkPolyDataMapper.h>
11 #include <vtkActor.h>
12 #include <vtkRenderWindoh>
13 #include <vtkRenderer.h>
14 #include <vtkRenderWindowInteractor.h>
15 #include <vtkProperty.h>
16 #include <vtkTransformPolyDataFilter.h>
17 #include <vtkVertexGlyphFilter.h>
18 #include <vtkIterativeClosestPointTransform.h>
19 #include <vtkPolyDataReader.h>
20 #include <vtkTransform.h>
21
22 //测试文件:../data/fran_cut.vtk
23 int main(int argc, char * argv[])
24
上一篇:VTK 实例53:网格平滑
下一篇:VTK 实例54:封闭性检测
VTK









