1 /*========================================================================= 2 3 Program: Visualization Toolkit 4 Module: objtovtp.cxx 5 6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 7 All rights reserved. 8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 9 10 This software is distributed WITHOUT ANY WARRANTY; without even 11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 12 PURPOSE. See the above copyright notice for more information. 13 14 =========================================================================*/ 15 #include "vtkNew.h" 16 #include "vtkOBJImporter.h" 17 #include "vtkRenderWindow.h" 18 #include "vtkRenderWindowInteractor.h" 19 #include "vtkRenderer.h" 20 #include "vtkSingleVTPExporter.h" 21 #include "vtksys/SystemTools.hxx" 22 23 #include <sstream> 24 main(int argc,char * argv[])25int main(int argc, char* argv[]) 26 { 27 if (argc < 2) 28 { 29 std::cerr << "expected objtovtk File1.obj [File2.obj.mtl]" << std::endl; 30 return -1; 31 } 32 33 std::string filenameOBJ(argv[1]); 34 35 std::string filenameMTL; 36 37 if (argc >= 3) 38 { 39 filenameMTL = argv[2]; 40 } 41 std::string texturePath = vtksys::SystemTools::GetFilenamePath(filenameOBJ); 42 43 vtkNew<vtkOBJImporter> importer; 44 45 importer->SetFileName(filenameOBJ.data()); 46 importer->SetFileNameMTL(filenameMTL.data()); 47 importer->SetTexturePath(texturePath.data()); 48 49 vtkNew<vtkRenderer> ren; 50 vtkNew<vtkRenderWindow> renWin; 51 vtkNew<vtkRenderWindowInteractor> iren; 52 53 renWin->AddRenderer(ren); 54 iren->SetRenderWindow(renWin); 55 importer->SetRenderWindow(renWin); 56 importer->Update(); 57 58 renWin->SetSize(800, 600); 59 ren->SetBackground(0.4, 0.5, 0.6); 60 ren->ResetCamera(); 61 renWin->Render(); 62 63 // export to a single vtk file 64 vtkNew<vtkSingleVTPExporter> exporter; 65 66 std::string outputPrefix = "o2v"; 67 outputPrefix += vtksys::SystemTools::GetFilenameWithoutLastExtension(filenameOBJ); 68 69 exporter->SetFilePrefix(outputPrefix.c_str()); 70 exporter->SetRenderWindow(renWin); 71 exporter->Write(); 72 73 iren->Start(); 74 75 return 0; 76 } 77