39 #ifndef PCL_POINT_CLOUD_HANDLERS_H_
40 #define PCL_POINT_CLOUD_HANDLERS_H_
52 namespace visualization
57 template <
typename Po
intT>
65 typedef typename boost::shared_ptr<PointCloudGeometryHandler<PointT> >
Ptr;
66 typedef typename boost::shared_ptr<const PointCloudGeometryHandler<PointT> >
ConstPtr;
70 cloud_ (cloud), capable_ (false),
71 field_x_idx_ (-1), field_y_idx_ (-1), field_z_idx_ (-1),
96 getGeometry (vtkSmartPointer<vtkPoints> &points)
const = 0;
117 std::vector<sensor_msgs::PointField> fields_;
125 template <
typename Po
intT>
133 typedef typename boost::shared_ptr<PointCloudGeometryHandlerXYZ<PointT> >
Ptr;
134 typedef typename boost::shared_ptr<const PointCloudGeometryHandlerXYZ<PointT> >
ConstPtr;
143 virtual inline std::string
144 getName ()
const {
return (
"PointCloudGeometryHandlerXYZ"); }
154 getGeometry (vtkSmartPointer<vtkPoints> &points)
const;
172 template <
typename Po
intT>
180 typedef typename boost::shared_ptr<PointCloudGeometryHandlerSurfaceNormal<PointT> >
Ptr;
181 typedef typename boost::shared_ptr<const PointCloudGeometryHandlerSurfaceNormal<PointT> >
ConstPtr;
187 virtual inline std::string
188 getName ()
const {
return (
"PointCloudGeometryHandlerSurfaceNormal"); }
198 getGeometry (vtkSmartPointer<vtkPoints> &points)
const;
216 template <
typename Po
intT>
224 typedef typename boost::shared_ptr<PointCloudGeometryHandlerCustom<PointT> >
Ptr;
225 typedef typename boost::shared_ptr<const PointCloudGeometryHandlerCustom<PointT> >
ConstPtr;
229 const std::string &x_field_name,
230 const std::string &y_field_name,
231 const std::string &z_field_name);
234 virtual inline std::string
235 getName ()
const {
return (
"PointCloudGeometryHandlerCustom"); }
245 getGeometry (vtkSmartPointer<vtkPoints> &points)
const;
257 std::string field_name_;
272 typedef boost::shared_ptr<PointCloudGeometryHandler<PointCloud> >
Ptr;
273 typedef boost::shared_ptr<const PointCloudGeometryHandler<PointCloud> >
ConstPtr;
280 fields_ = cloud_->fields;
285 getName ()
const = 0;
289 getFieldName ()
const = 0;
299 getGeometry (vtkSmartPointer<vtkPoints> &points)
const;
320 std::vector<sensor_msgs::PointField> fields_;
336 typedef boost::shared_ptr<PointCloudGeometryHandlerXYZ<PointCloud> >
Ptr;
337 typedef boost::shared_ptr<const PointCloudGeometryHandlerXYZ<PointCloud> >
ConstPtr;
347 std::string
getName ()
const {
return (
"PointCloudGeometryHandlerXYZ"); }
368 typedef boost::shared_ptr<PointCloudGeometryHandlerSurfaceNormal<PointCloud> >
Ptr;
369 typedef boost::shared_ptr<const PointCloudGeometryHandlerSurfaceNormal<PointCloud> >
ConstPtr;
375 virtual inline std::string
376 getName ()
const {
return (
"PointCloudGeometryHandlerSurfaceNormal"); }
399 const std::string &x_field_name,
400 const std::string &y_field_name,
401 const std::string &z_field_name);
407 virtual inline std::string
408 getName ()
const {
return (
"PointCloudGeometryHandlerCustom"); }
416 std::string field_name_;
423 template <
typename Po
intT>
431 typedef boost::shared_ptr<PointCloudColorHandler<PointT> >
Ptr;
432 typedef boost::shared_ptr<const PointCloudColorHandler<PointT> >
ConstPtr;
436 cloud_ (cloud), capable_ (false), field_idx_ (-1), fields_ ()
458 getColor (vtkSmartPointer<vtkDataArray> &scalars)
const = 0;
473 std::vector<sensor_msgs::PointField> fields_;
480 template <
typename Po
intT>
488 typedef boost::shared_ptr<PointCloudColorHandlerRandom<PointT> >
Ptr;
489 typedef boost::shared_ptr<const PointCloudColorHandlerRandom<PointT> >
ConstPtr;
499 virtual inline std::string
500 getName ()
const {
return (
"PointCloudColorHandlerRandom"); }
510 getColor (vtkSmartPointer<vtkDataArray> &scalars)
const;
523 template <
typename Po
intT>
531 typedef boost::shared_ptr<PointCloudColorHandlerCustom<PointT> >
Ptr;
532 typedef boost::shared_ptr<const PointCloudColorHandlerCustom<PointT> >
ConstPtr;
536 double r,
double g,
double b)
549 virtual inline std::string
550 getName ()
const {
return (
"PointCloudColorHandlerCustom"); }
560 getColor (vtkSmartPointer<vtkDataArray> &scalars)
const;
576 template <
typename Po
intT>
584 typedef boost::shared_ptr<PointCloudColorHandlerRGBField<PointT> >
Ptr;
585 typedef boost::shared_ptr<const PointCloudColorHandlerRGBField<PointT> >
ConstPtr;
601 getColor (vtkSmartPointer<vtkDataArray> &scalars)
const;
605 virtual inline std::string
606 getName ()
const {
return (
"PointCloudColorHandlerRGBField"); }
610 using PointCloudColorHandler<PointT>::cloud_;
611 using PointCloudColorHandler<PointT>::capable_;
612 using PointCloudColorHandler<PointT>::field_idx_;
613 using PointCloudColorHandler<PointT>::fields_;
621 template <
typename Po
intT>
629 typedef boost::shared_ptr<PointCloudColorHandlerHSVField<PointT> >
Ptr;
630 typedef boost::shared_ptr<const PointCloudColorHandlerHSVField<PointT> >
ConstPtr;
643 getColor (vtkSmartPointer<vtkDataArray> &scalars)
const;
647 virtual inline std::string
648 getName ()
const {
return (
"PointCloudColorHandlerHSVField"); }
657 using PointCloudColorHandler<PointT>::cloud_;
658 using PointCloudColorHandler<PointT>::capable_;
659 using PointCloudColorHandler<PointT>::field_idx_;
660 using PointCloudColorHandler<PointT>::fields_;
668 template <
typename Po
intT>
676 typedef boost::shared_ptr<PointCloudColorHandlerGenericField<PointT> >
Ptr;
677 typedef boost::shared_ptr<const PointCloudColorHandlerGenericField<PointT> >
ConstPtr;
681 const std::string &field_name);
693 getColor (vtkSmartPointer<vtkDataArray> &scalars)
const;
697 virtual inline std::string
698 getName ()
const {
return (
"PointCloudColorHandlerGenericField"); }
701 using PointCloudColorHandler<PointT>::cloud_;
702 using PointCloudColorHandler<PointT>::capable_;
703 using PointCloudColorHandler<PointT>::field_idx_;
704 using PointCloudColorHandler<PointT>::fields_;
707 std::string field_name_;
722 typedef boost::shared_ptr<PointCloudColorHandler<PointCloud> >
Ptr;
723 typedef boost::shared_ptr<const PointCloudColorHandler<PointCloud> >
ConstPtr;
727 cloud_ (cloud), capable_ (false), field_idx_ ()
739 getName ()
const = 0;
743 getFieldName ()
const = 0;
749 getColor (vtkSmartPointer<vtkDataArray> &scalars)
const = 0;
776 typedef boost::shared_ptr<PointCloudColorHandlerRandom<PointCloud> >
Ptr;
777 typedef boost::shared_ptr<const PointCloudColorHandlerRandom<PointCloud> >
ConstPtr;
787 virtual inline std::string
788 getName ()
const {
return (
"PointCloudColorHandlerRandom"); }
798 getColor (vtkSmartPointer<vtkDataArray> &scalars)
const;
816 double r,
double g,
double b) :
818 r_ (r), g_ (g), b_ (b)
824 virtual inline std::string
825 getName ()
const {
return (
"PointCloudColorHandlerCustom"); }
835 getColor (vtkSmartPointer<vtkDataArray> &scalars)
const;
855 typedef boost::shared_ptr<PointCloudColorHandlerRGBField<PointCloud> >
Ptr;
856 typedef boost::shared_ptr<const PointCloudColorHandlerRGBField<PointCloud> >
ConstPtr;
865 getColor (vtkSmartPointer<vtkDataArray> &scalars)
const;
869 virtual inline std::string
870 getName ()
const {
return (
"PointCloudColorHandlerRGBField"); }
874 getFieldName ()
const {
return (
"rgb"); }
890 typedef boost::shared_ptr<PointCloudColorHandlerHSVField<PointCloud> >
Ptr;
891 typedef boost::shared_ptr<const PointCloudColorHandlerHSVField<PointCloud> >
ConstPtr;
900 getColor (vtkSmartPointer<vtkDataArray> &scalars)
const;
904 virtual inline std::string
905 getName ()
const {
return (
"PointCloudColorHandlerHSVField"); }
909 getFieldName ()
const {
return (
"hsv"); }
931 typedef boost::shared_ptr<PointCloudColorHandlerGenericField<PointCloud> >
Ptr;
932 typedef boost::shared_ptr<const PointCloudColorHandlerGenericField<PointCloud> >
ConstPtr;
936 const std::string &field_name);
942 getColor (vtkSmartPointer<vtkDataArray> &scalars)
const;
946 virtual inline std::string
947 getName ()
const {
return (
"PointCloudColorHandlerGenericField"); }
951 getFieldName ()
const {
return (field_name_); }
955 std::string field_name_;