Page MenuHomePhabricator

ReadPLY.cxx

Authored By
kilgus
Jun 17 2015, 4:13 PM
Size
2 KB
Referenced Files
None
Subscribers
None

ReadPLY.cxx

#include <vtkPolyData.h>
#include <vtkPLYReader.h>
#include <vtkSmartPointer.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkTexture.h>
#include <vtkJPEGReader.h>
#include <vtkOBJReader.h>
#include <vtkProperty.h>
#include <vtkSTLReader.h>
#include <vtkPointData.h>
int main ( int argc, char *argv[] )
{
std::string inputFilename = "/media/tommy/hdd/thomasHdd/Pictures/ItSeezMeshes/Pitt/model_mesh.obj";
// std::string inputFilename = "/media/tommy/hdd/thomasHdd/Pictures/ItSeezMeshes/Pitt/model_mesh.ply";
// vtkSmartPointer<vtkPLYReader> reader =
// vtkSmartPointer<vtkPLYReader>::New();
// reader->SetFileName ( inputFilename.c_str() );
// vtkSmartPointer<vtkSTLReader> reader =
// vtkSmartPointer<vtkSTLReader>::New();
// reader->SetFileName ( inputFilename.c_str() );
vtkSmartPointer<vtkOBJReader> reader =
vtkSmartPointer<vtkOBJReader>::New();
reader->SetFileName ( inputFilename.c_str() );
reader->Update();
std::cout << "#Points:" << reader->GetOutput()->GetNumberOfPoints() << std::endl;
for(int i = 0; i < reader->GetOutput()->GetNumberOfPoints(); ++i)
std::cout << setprecision(12) << reader->GetOutput()->GetPointData()->GetTCoords()->GetTuple2(i)[0] << " " << reader->GetOutput()->GetPointData()->GetTCoords()->GetTuple2(i)[1] << std::endl;
vtkSmartPointer<vtkJPEGReader> jPEGReader = vtkSmartPointer<vtkJPEGReader>::New();
jPEGReader->SetFileName ( "/media/tommy/hdd/thomasHdd/Pictures/ItSeezMeshes/Pitt/model_texture.jpg" );
jPEGReader->Update();
vtkSmartPointer<vtkTexture> texture = vtkSmartPointer<vtkTexture>::New();
texture->SetInputConnection(jPEGReader->GetOutputPort());
// Visualize
vtkSmartPointer<vtkPolyDataMapper> mapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputConnection(reader->GetOutputPort());
vtkSmartPointer<vtkActor> actor =
vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);
actor->SetTexture(texture);
// actor->GetProperty()->SetRepresentationToWireframe();
vtkSmartPointer<vtkRenderer> renderer =
vtkSmartPointer<vtkRenderer>::New();
vtkSmartPointer<vtkRenderWindow> renderWindow =
vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
// renderWindow->SetLineSmoothing(1);
// renderWindow->SetPolygonSmoothing(1);
// renderWindow->SetMultiSamples(8);
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
renderer->AddActor(actor);
// renderer->SetBackground(0.1804,0.5451,0.3412); // Sea green
renderWindow->Render();
renderWindowInteractor->Start();
return EXIT_SUCCESS;
}

File Metadata

Mime Type
text/x-c++src
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1104
Default Alt Text
ReadPLY.cxx (2 KB)

Event Timeline

VTK example to load a textured surface