
* lazzara/csv2vtk/csv2vtk.cc: convert a cloud of points in CSV format to a VTK file. --- milena/sandbox/ChangeLog | 7 +++ milena/sandbox/lazzara/csv2vtk/csv2vtk.cc | 83 +++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 0 deletions(-) create mode 100644 milena/sandbox/lazzara/csv2vtk/csv2vtk.cc diff --git a/milena/sandbox/ChangeLog b/milena/sandbox/ChangeLog index 4065f8d..e569149 100644 --- a/milena/sandbox/ChangeLog +++ b/milena/sandbox/ChangeLog @@ -1,5 +1,12 @@ 2009-02-20 Guillaume Lazzara <z@lrde.epita.fr> + Add csv2vtk converter. + + * lazzara/csv2vtk/csv2vtk.cc: convert a cloud of points in CSV format + to a VTK file. + +2009-02-20 Guillaume Lazzara <z@lrde.epita.fr> + Cleanup sandbox. * lazzara/igr/igr-biggest-comp.cc: new. Variant of igr.cc which diff --git a/milena/sandbox/lazzara/csv2vtk/csv2vtk.cc b/milena/sandbox/lazzara/csv2vtk/csv2vtk.cc new file mode 100644 index 0000000..dc1f686 --- /dev/null +++ b/milena/sandbox/lazzara/csv2vtk/csv2vtk.cc @@ -0,0 +1,83 @@ +// Author: Andrew J. P. Maclean +// Purpose read in a dataset where each line consists of point +// with its position (x,y,z) and (possibly) a scalar. +// Then create and save a vtk polydata array suitable for further rendering. + +#include <iostream> +#include <stdexcept> +#include <string> +#include <fstream> +#include <iomanip> +#include <algorithm> +#include <sstream> +#include <vtkRenderer.h> +#include <vtkRenderWindow.h> +#include <vtkRenderWindowInteractor.h> +#include <vtkPolyDataMapper.h> +#include <vtkActor.h> +#include <vtkXMLPolyDataWriter.h> +#include <vtkXMLPolyDataReader.h> +#include <vtkParticleReader.h> +#include <vtkSmartPointer.h> + + + +int main ( int argc, char* argv[] ) +{ + if ( argc != 3 ) + { + std::cout << "Need input file and output file." << std::endl; + return 1; + } + + std::string ifn = argv[1]; + std::string ofn = argv[2]; + std::cerr << "Input file: " << ifn << std::endl; + std::cerr << "Output file: " << ofn << std::endl; + + if ( ifn == ofn ) + { + std::cerr << "File names cannot be the same." << std::endl; + return 1; + } + + vtkSmartPointer<vtkParticleReader> reader = + vtkSmartPointer<vtkParticleReader>::New(); + + reader->SetFileName(ifn.c_str()); + reader->Update(); + + vtkSmartPointer<vtkXMLPolyDataWriter> writer = + vtkSmartPointer<vtkXMLPolyDataWriter>::New(); + writer->SetInput(reader->GetOutput()); + writer->SetFileName(ofn.c_str()); + writer->Write(); + + // Set up the pipeline. + + vtkSmartPointer<vtkPolyDataMapper> mapper = + vtkSmartPointer<vtkPolyDataMapper>::New(); + + mapper->SetInput(reader->GetOutput()); + + vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New(); + actor->SetMapper(mapper); + + vtkSmartPointer<vtkRenderer> ren = vtkSmartPointer<vtkRenderer>::New(); + ren->SetBackground(0.2,0.2 ,0.3); + + vtkSmartPointer<vtkRenderWindow> renWin = + vtkSmartPointer<vtkRenderWindow>::New(); + renWin->AddRenderer(ren); + renWin->SetSize(800 ,600); + + vtkSmartPointer<vtkRenderWindowInteractor> iRen = + vtkSmartPointer<vtkRenderWindowInteractor>::New(); + iRen->SetRenderWindow(renWin); + ren->AddViewProp(actor); + ren->Render(); + iRen->Initialize(); + iRen->Start(); +} + + -- 1.5.6.5