[vtkusers] polyline and appendpolydata problem

Elvis Chen elvis.chen at gmail.com
Sun Oct 22 13:11:48 EDT 2017


You are right. The data files I was given was bad. Thanks for going through
the trouble,

On 21 Oct 2017 12:41 a.m., "kenichiro yoshimi" <rccm.kyoshimi at gmail.com>
wrote:

> Hi
>
> I tested your code with the following input files as a trial, however
> the problem didn't occur.
> ---indexFile---
> 3
> 3
> ---------------
> ---pointFile---
> 0.0 0.0 0.0
> 0.0 1.0 0.0
> 0.0 2.0 0.0
> 1.0 0.0 0.0
> 1.0 1.0 0.0
> 1.0 2.0 0.0
> ---------------
>
> I think you need to firstly check the validity of the input file format.
>
> Thanks a lot
>
> 2017-10-21 8:07 GMT+09:00 Elvis Chen <elvis.chen at gmail.com>:
> > hi all,
> >
> > I am working on a 3D surface reconstruction problem.  Think of a 3D laser
> > scanner, where I have multiple sets of 3D points (1 set per laser scan
> > line).  I would like to visualize them as a set of polylines, 1 polyline
> per
> > scan line.
> >
> > I wrote the following code to read these data from 2 files. One file is a
> > set of 3D points, the other is a text file indicating the number of
> points
> > per scan line.  I then create 1 polyline per scan line, and append them
> > together using vtkappendpolydata. I then wrote the results into a .vtk
> file.
> >
> > However, visualizing the .vtk file suggests that the beginning of the nth
> > scan line is connected to the end of the (n-1)th scan line.  How do I
> create
> > a set of the disconnected polylines?
> >
> > any help is very much appreciated,
> >
> > My codes are as following:
> >
> > #include <vtkSmartPointer.h>
> > #include <vtkAppendPolyData.h>
> > #include <vtkPoints.h>
> > #include <vtkPolyLine.h>
> > #include <vtkCellArray.h>
> > #include <vtkCellData.h>
> > #include <vtkPolyData.h>
> > #include <vtkPolyDataWriter.h>
> >
> > int main ( int argc, char *argv[])
> >   {
> >
> >   ifstream indexFile(argv[1]);
> >   ifstream pointFile(argv[2]);
> >   int num;
> >   double x, y, z;
> >   vtkSmartPointer< vtkAppendPolyData > append =
> >     vtkSmartPointer< vtkAppendPolyData >::New();
> >
> >   while (indexFile >> num)
> >     {
> >     vtkSmartPointer< vtkPoints > points =
> >       vtkSmartPointer< vtkPoints >::New();
> >     vtkSmartPointer< vtkPolyLine > polyline =
> >       vtkSmartPointer< vtkPolyLine >::New();
> >
> >     polyline->GetPointIds()->SetNumberOfIds(num);
> >     for (unsigned int i = 0; i < (unsigned int)num; i++)
> >       {
> >       pointFile >> x >> y >> z;
> >       points->InsertNextPoint(x, y, z);
> >       polyline->GetPointIds()->SetId(i, i);
> >       }
> >
> >     vtkSmartPointer< vtkCellArray > cells =
> >       vtkSmartPointer< vtkCellArray >::New();
> >     cells->InsertNextCell(polyline);
> >     vtkSmartPointer< vtkPolyData > polyData =
> >       vtkSmartPointer< vtkPolyData >::New();
> >     polyData->SetPoints(points);
> >     polyData->SetLines(cells);
> >     polyData->Modified();
> >
> >     append->AddInputData(polyData);
> >     append->Modified();
> >     }
> >   indexFile.close();
> >   pointFile.close();
> >
> >   vtkSmartPointer< vtkPolyDataWriter > writer =
> >     vtkSmartPointer< vtkPolyDataWriter >::New();
> >   writer->SetFileName("test.vtk");
> >   writer->SetInputConnection(append->GetOutputPort());
> >   writer->Write();
> >
> >
> >   return (0);
> >   }
> >
> > _______________________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Please keep messages on-topic and check the VTK FAQ at:
> > http://www.vtk.org/Wiki/VTK_FAQ
> >
> > Search the list archives at: http://markmail.org/search/?q=vtkusers
> >
> > Follow this link to subscribe/unsubscribe:
> > http://public.kitware.com/mailman/listinfo/vtkusers
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20171022/3c3cc921/attachment.html>


More information about the vtkusers mailing list