1 #include <vtkAutoInit.h>
2 VTK_MODULE_INIT(vtkRenderingOpenGL2);
3 VTK_MODULE_INIT(vtkRenderingFreeType);
4 VTK_MODULE_INIT(vtkInteractionStyle);
5
6 #include <vtkSmartPointer.h>
7 #include <vtkProperty.h>
8 #include <vtkPolygon.h>
9 #include <vtkCellArray.h>
10 #include <vtkPoints.h>
11 #include <vtkPolyData.h>
12 #include <vtkPointData.h>
13 #include <vtkDelaunay2D.h>
14 #include <vtkMath.h>
15 #include <vtkPolyDataMapper.h>
16 #include <vtkActor.h>
17 #include <vtkRenderWindoh>
18 #include <vtkRenderer.h>
19 #include <vtkRenderWindowInteractor.h>
20 #include <vtkVertexGlyphFilter.h>
21
22 int main(int, char *[])
23
34 }
35
36 vtkSmartPointer<vtkPolyData> polydata =
37 vtkSmartPointer<vtkPolyData>::New();
38 polydata>SetPoints(points);
39
40 vtkSmartPointer<vtkPolygon> poly =
41 vtkSmartPointer<vtkPolygon>::New();
42 /*poly>GetPointIds()>InsertNextId(22);
43 poly>GetPointIds()>InsertNextId(23);
44 poly>GetPointIds()>InsertNextId(24);
45 poly>GetPointIds()>InsertNextId(25);
46 poly>GetPointIds()>InsertNextId(35);
47 poly>GetPointIds()>InsertNextId(45);
48 poly>GetPointIds()>InsertNextId(44);
49 poly>GetPointIds()>InsertNextId(43);
50 poly>GetPointIds()>InsertNextId(42);
51 poly>GetPointIds()>InsertNextId(32);*/
52
53 poly>GetPointIds()>InsertNextId(32);
54 poly>GetPointIds()>InsertNextId(42);
55 poly>GetPointIds()>InsertNextId(43);
56 poly>GetPointIds()>InsertNextId(44);
57 poly>GetPointIds()>InsertNextId(45);
58 poly>GetPointIds()>InsertNextId(35);
59 poly>GetPointIds()>InsertNextId(25);
60 poly>GetPointIds()>InsertNextId(24);
61 poly>GetPointIds()>InsertNextId(23);
62 poly>GetPointIds()>InsertNextId(22);
64 vtkSmartPointer<vtkCellArray> cell =
65 vtkSmartPointer<vtkCellArray>::New();
66 cell>InsertNextCell(poly);
67
68 vtkSmartPointer<vtkPolyData> boundary =
69 vtkSmartPointer<vtkPolyData>::New();
70 boundary>SetPoints(points);
71 boundary>SetPolys(cell);
72
73 vtkSmartPointer<vtkDelaunay2D> delaunay =
74 vtkSmartPointer<vtkDelaunay2D>::New();
75 delaunay>SetInputData(polydata);
76 delaunay>SetSourceData(boundary);
77 delaunay>Update();
78
79 vtkSmartPointer<vtkVertexGlyphFilter> glyphFilter =
80 vtkSmartPointer<vtkVertexGlyphFilter>::New();
81 glyphFilter>SetInputData(polydata);
82 glyphFilter>Update();
83
84 vtkSmartPointer<vtkPolyDataMapper> pointsMapper =
85 vtkSmartPointer<vtkPolyDataMapper>::New();
86 pointsMapper>SetInputData(glyphFilter>GetOutput());
87
88 vtkSmartPointer<vtkActor> pointsActor =
89 vtkSmartPointer<vtkActor>::New();
90 pointsActor>SetMapper(pointsMapper);
91 pointsActor>GetProperty()>SetPointSize(3);
92 pointsActor>GetProperty()>SetColor(1,0,0);
93
94 vtkSmartPointer<vtkPolyDataMapper> triangulatedMapper =
95 vtkSmartPointer<vtkPolyDataMapper>::New();
96 triangulatedMapper>SetInputData(delaunay>GetOutput());
97
98 vtkSmartPointer<vtkActor> triangulatedActor =
99 vtkSmartPointer<vtkActor>::New();
100 triangulatedActor>SetMapper(triangulatedMapper);
101
102 vtkSmartPointer<vtkRenderer> renderer =
103 vtkSmartPointer<vtkRenderer>::New();
104 renderer>AddActor(pointsActor);
105 renderer>AddActor(triangulatedActor);
106 renderer>SetBackground(1.0, 1.0, 1.0);
107
108 vtkSmartPointer<vtkRenderWindow> renderWindow =
109 vtkSmartPointer<vtkRenderWindow>::New();
110 renderWindow>AddRenderer(renderer);
111
112 vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
113 vtkSmartPointer<vtkRenderWindowInteractor>::New();
114 renderWindowInteractor>SetRenderWindow(renderWindow);
115
116 renderWindow>SetSize(640, 480);
117 renderWindow>Render();
118 renderWindow>SetWindowName("PolyDataConstrainedDelaunay2D");
119 renderWindow>Render();
120 renderWindowInteractor>Start();
121
122 return EXIT_SUCCESS;
123 }
上一篇:ITK 实例8 从缓冲器中输入图像数据
下一篇:VTK 实例68:体绘制透明度调整
VTK









