image

image

將C:\VTK 5.6\vtkdata\Data\42400-IDGH.stl加入專案

image

   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:  


image

練習再加入相同一組machine parts

image_thumb2_thumb

image_thumb1[1]

新增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

參考資料:

1. Infovis with VTK

2. VTK/Examples/Cxx/IO/ReadSTL

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 me1237guy 的頭像
    me1237guy

    天天向上

    me1237guy 發表在 痞客邦 留言(0) 人氣()