Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00039 template <typename PointT> vtkSmartPointer<vtkDataSet>
00040 pcl::visualization::createPolygon (const typename pcl::PointCloud<PointT>::ConstPtr &cloud)
00041 {
00042 vtkSmartPointer<vtkUnstructuredGrid> poly_grid;
00043 if (cloud->points.empty ())
00044 return (poly_grid);
00045
00046 vtkSmartPointer<vtkPoints> poly_points = vtkSmartPointer<vtkPoints>::New ();
00047 vtkSmartPointer<vtkPolygon> polygon = vtkSmartPointer<vtkPolygon>::New ();
00048
00049 poly_points->SetNumberOfPoints (cloud->points.size ());
00050 polygon->GetPointIds ()->SetNumberOfIds (cloud->points.size ());
00051
00052 size_t i;
00053 for (i = 0; i < cloud->points.size (); ++i)
00054 {
00055 poly_points->SetPoint (i, cloud->points[i].x, cloud->points[i].y, cloud->points[i].z);
00056 polygon->GetPointIds ()->SetId (i, i);
00057 }
00058
00059 allocVtkUnstructuredGrid (poly_grid);
00060 poly_grid->Allocate (1, 1);
00061 poly_grid->InsertNextCell (polygon->GetCellType (), polygon->GetPointIds ());
00062 poly_grid->SetPoints (poly_points);
00063 poly_grid->Update ();
00064
00065 return (poly_grid);
00066 }
00067
00069 template <typename PointT> vtkSmartPointer<vtkDataSet>
00070 pcl::visualization::createPolygon (const pcl::PlanarPolygon<PointT> &planar_polygon)
00071 {
00072 vtkSmartPointer<vtkUnstructuredGrid> poly_grid;
00073 if (planar_polygon.getContour ().empty ())
00074 return (poly_grid);
00075
00076 vtkSmartPointer<vtkPoints> poly_points = vtkSmartPointer<vtkPoints>::New ();
00077 vtkSmartPointer<vtkPolygon> polygon = vtkSmartPointer<vtkPolygon>::New ();
00078
00079 poly_points->SetNumberOfPoints (planar_polygon.getContour ().size () + 1);
00080 polygon->GetPointIds ()->SetNumberOfIds (planar_polygon.getContour ().size () + 1);
00081
00082 size_t i;
00083 for (i = 0; i < planar_polygon.getContour ().size (); ++i)
00084 {
00085 poly_points->SetPoint (i, planar_polygon.getContour ()[i].x,
00086 planar_polygon.getContour ()[i].y,
00087 planar_polygon.getContour ()[i].z);
00088 polygon->GetPointIds ()->SetId (i, i);
00089 }
00090
00091 poly_points->SetPoint (i, planar_polygon.getContour ()[0].x,
00092 planar_polygon.getContour ()[0].y,
00093 planar_polygon.getContour ()[0].z);
00094 polygon->GetPointIds ()->SetId (i, i);
00095
00096 allocVtkUnstructuredGrid (poly_grid);
00097 poly_grid->Allocate (1, 1);
00098 poly_grid->InsertNextCell (polygon->GetCellType (), polygon->GetPointIds ());
00099 poly_grid->SetPoints (poly_points);
00100 poly_grid->Update ();
00101
00102 return (poly_grid);
00103 }
00104