[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