[vtkusers] Please help: 3D Delaunay
Bryn Lloyd
blloyd at vision.ee.ethz.ch
Tue Dec 8 05:02:44 EST 2009
Hi Julio,
Try the function
vtkUnstructuredGrid::GetPoint(int i, double p[3])
it will copy the coordinates of a given point i into the double array p.
delaunay->GetOutput() is a vtkUnstructuredGrid (is a vtkPointSet).
-Bryn
Julio Pastrana wrote:
> Hello vtk experts,
>
> I really really need some help
> with the vtkDelaunay3D.
>
> I am using the example that computes the Convexhull with vtkDelaunay3D.
> Nevertheless, I am having a really hard time to get the calculated
> vertices coordinates. I just need the X,Y,Z coordinates after the
> delaunay triangulation, the points that satisfied the delaunay
> condition.
>
> I was trying with <vtkXMLUnstructuredGridWriter> but the output file
> is something I cannot understand.
>
> Is there some one out there that could help me out???
> I just need to extract the x,y,z coordinates out of the UnstructuredGrid
> I have also tried with GetPointCells and GetCellPoints but so far no
> luck.
>
> I am attaching the code
>
> Thank you very much for your help
>
> Sincerely,
> Julio
>
> CODE:
> -----------------------------------------------------------------------------------------------------------
> //Create some random points
>
> vtkSmartPointer<vtkPoints> Points = vtkSmartPointer< vtkPoints
>> ::New();
> vtkSmartPointer<vtkCellArray> Vertices =
> vtkSmartPointer<vtkCellArray>::New();
>
> //point cloud;
> for(unsigned int i = 0; i < 50; i++)
> {
> vtkIdType pid[1];
> float x = drand48()*30;
> float y = drand48()*30;
> float z = drand48()*30;
> //cerr << x << "\t" << y << "\t" << z <<"\n";
>
> pid[0] = Points->InsertNextPoint(x,y,z);
> Vertices->InsertNextCell ( 1,pid );
> }
>
> vtkSmartPointer< vtkPolyData> Polydata =
> vtkSmartPointer<vtkPolyData>::New();
> Polydata->SetPoints(Points);
> Polydata->SetVerts(Vertices);
>
> // Create the convex hull of the point cloud
> vtkSmartPointer< vtkDelaunay3D > delaunay = vtkSmartPointer<
> vtkDelaunay3D >::New();
> delaunay->SetAlpha(2);
> delaunay->SetTolerance(0.5);
> delaunay->BoundingTriangulationOff ();
>
> cerr << "Alpha value :"<< delaunay->GetAlpha () << "\tTolerance "<<
> delaunay->GetTolerance() << "\n";
> delaunay->SetInput(Polydata);
> delaunay->Update();
>
>
>
> vtkSmartPointer<vtkXMLUnstructuredGridWriter> OutputWriter =
> vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
> OutputWriter->SetFileName("output.vtu");
> OutputWriter->SetInput(delaunay->GetOutput());
> OutputWriter->Write();
>
>
>
> vtkSmartPointer<vtkUnstructuredGrid> dataSet
> =vtkSmartPointer<vtkUnstructuredGrid>::New();
> dataSet = delaunay->GetOutput();
> cerr << "Numver of cells : " << dataSet->GetNumberOfCells () << "\n";
>
>
>
> //HOW DO I GET THE X,Y,Z coordinates
> //Out of the delaunay->GetOutput()
> -----------------------------------------------------------------------------------------------------------
>
> _______________________________________________
> 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
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
More information about the vtkusers
mailing list