將C:\VTK 5.6\vtkdata\Data\42400-IDGH.stl加入專案
1: // ReadSTLEx.cpp : 定義主控台應用程式的進入點。
2: //
3:
4: #include "stdafx.h"
5: #include <vtkPolyData.h>
6: #include <vtkSTLReader.h>
7: #include <vtkSmartPointer.h>
8: #include <vtkPolyDataMapper.h>
9: #include <vtkActor.h>
10: #include <vtkRenderWindow.h>
11: #include <vtkRenderer.h>
12: #include <vtkRenderWindowInteractor.h>
13: int _tmain(int argc, _TCHAR* argv[])
14: {
15: std::string inputFilename = "42400-IDGH.stl";
16:
17: vtkSmartPointer<vtkSTLReader> reader = vtkSmartPointer<vtkSTLReader>::New();
18: reader->SetFileName(inputFilename.c_str());
19: reader->Update();
20:
21: // Visualize
22: vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
23: mapper->SetInputConnection(reader->GetOutputPort());
24:
25: vtkSmartPointer<vtkActor> actor =
26: vtkSmartPointer<vtkActor>::New();
27: actor->SetMapper(mapper);
28:
29: vtkSmartPointer<vtkRenderer> renderer =
30: vtkSmartPointer<vtkRenderer>::New();
31: vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
32: renderWindow->AddRenderer(renderer);
33: vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
34: renderWindowInteractor->SetRenderWindow(renderWindow);
35:
36: renderer->AddActor(actor);
37: renderer->SetBackground(.0, .0, .6); // Background color green
38:
39: renderWindow->Render();
40: renderWindowInteractor->Start();
41: return 0;
42: }
43:
練習再加入相同一組machine parts
新增actor2, 資料來源和actor相同, 都是mapper,
PS. 上圖VTK app示意圖是不同mapper的兩組actors
為了顯示, 將actor2進行平移, 即actor2->AddPosition(15.0, 0.0, 0.0)
1: vtkSmartPointer<vtkActor> actor2 =
2: vtkSmartPointer<vtkActor>::New();
3: actor2->SetMapper(mapper);
4: actor2->AddPosition(15.0, 0.0, 0.0);
並且加入renderer
1: renderer->AddActor(actor2);
![image image](https://imageproxy.pixnet.cc/imgproxy?url=https://pic.pimg.tw/me1237guy/1439258488-3143101882.png&width=448&height=482)
參考資料:
1. Infovis with VTK
全站熱搜