41#pragma GCC system_header
46#include <pcl/point_cloud.h>
47#include <pcl/PCLPointCloud2.h>
48#include <pcl/visualization/common/common.h>
50#include <vtkSmartPointer.h>
51#include <vtkDataArray.h>
52#include <vtkFloatArray.h>
53#include <vtkUnsignedCharArray.h>
64 template <
typename Po
intT>
72 using Ptr = shared_ptr<PointCloudColorHandler<PointT> >;
73 using ConstPtr = shared_ptr<const PointCloudColorHandler<PointT> >;
137 template <
typename Po
intT>
145 using Ptr = shared_ptr<PointCloudColorHandlerRandom<PointT> >;
146 using ConstPtr = shared_ptr<const PointCloudColorHandlerRandom<PointT> >;
164 getName ()
const {
return (
"PointCloudColorHandlerRandom"); }
185 template <
typename Po
intT>
193 using Ptr = shared_ptr<PointCloudColorHandlerCustom<PointT> >;
194 using ConstPtr = shared_ptr<const PointCloudColorHandlerCustom<PointT> >;
208 double r,
double g,
double b)
219 getName ()
const {
return (
"PointCloudColorHandlerCustom"); }
243 template <
typename Po
intT>
251 using Ptr = shared_ptr<PointCloudColorHandlerRGBField<PointT> >;
252 using ConstPtr = shared_ptr<const PointCloudColorHandlerRGBField<PointT> >;
283 getName ()
const {
return (
"PointCloudColorHandlerRGBField"); }
298 template <
typename Po
intT>
306 using Ptr = shared_ptr<PointCloudColorHandlerHSVField<PointT> >;
307 using ConstPtr = shared_ptr<const PointCloudColorHandlerHSVField<PointT> >;
322 getName ()
const {
return (
"PointCloudColorHandlerHSVField"); }
343 template <
typename Po
intT>
351 using Ptr = shared_ptr<PointCloudColorHandlerGenericField<PointT> >;
352 using ConstPtr = shared_ptr<const PointCloudColorHandlerGenericField<PointT> >;
356 : field_name_ (field_name)
363 const std::string &field_name)
365 , field_name_ (field_name)
385 getName ()
const {
return (
"PointCloudColorHandlerGenericField"); }
394 std::string field_name_;
404 template <
typename Po
intT>
412 using Ptr = shared_ptr<PointCloudColorHandlerRGBAField<PointT> >;
413 using ConstPtr = shared_ptr<const PointCloudColorHandlerRGBAField<PointT> >;
444 getName ()
const {
return (
"PointCloudColorHandlerRGBAField"); }
460 template <
typename Po
intT>
468 using Ptr = shared_ptr<PointCloudColorHandlerLabelField<PointT> >;
469 using ConstPtr = shared_ptr<const PointCloudColorHandlerLabelField<PointT> >;
477 static_mapping_ = static_mapping;
483 const bool static_mapping =
true)
487 static_mapping_ = static_mapping;
508 getName ()
const {
return (
"PointCloudColorHandlerLabelField"); }
516 bool static_mapping_;
532 using Ptr = shared_ptr<PointCloudColorHandler<PointCloud> >;
533 using ConstPtr = shared_ptr<const PointCloudColorHandler<PointCloud> >;
536 PointCloudColorHandler (
const PointCloudConstPtr &cloud) :
537 cloud_ (cloud), capable_ (false), field_idx_ ()
541 virtual ~PointCloudColorHandler() =
default;
545 isCapable ()
const {
return (capable_); }
549 getName ()
const = 0;
553 getFieldName ()
const = 0;
561 virtual vtkSmartPointer<vtkDataArray>
562 getColor()
const = 0;
568 setInputCloud (
const PointCloudConstPtr &cloud)
575 PointCloudConstPtr cloud_;
599 using Ptr = shared_ptr<PointCloudColorHandlerRandom<PointCloud> >;
600 using ConstPtr = shared_ptr<const PointCloudColorHandlerRandom<PointCloud> >;
611 getName ()
const {
return (
"PointCloudColorHandlerRandom"); }
637 double r,
double g,
double b) :
646 getName ()
const {
return (
"PointCloudColorHandlerCustom"); }
674 using Ptr = shared_ptr<PointCloudColorHandlerRGBField<PointCloud> >;
675 using ConstPtr = shared_ptr<const PointCloudColorHandlerRGBField<PointCloud> >;
686 getName ()
const {
return (
"PointCloudColorHandlerRGBField"); }
706 using Ptr = shared_ptr<PointCloudColorHandlerHSVField<PointCloud> >;
707 using ConstPtr = shared_ptr<const PointCloudColorHandlerHSVField<PointCloud> >;
718 getName ()
const {
return (
"PointCloudColorHandlerHSVField"); }
745 using Ptr = shared_ptr<PointCloudColorHandlerGenericField<PointCloud> >;
746 using ConstPtr = shared_ptr<const PointCloudColorHandlerGenericField<PointCloud> >;
750 const std::string &field_name);
758 getName ()
const {
return (
"PointCloudColorHandlerGenericField"); }
766 std::string field_name_;
783 using Ptr = shared_ptr<PointCloudColorHandlerRGBAField<PointCloud> >;
784 using ConstPtr = shared_ptr<const PointCloudColorHandlerRGBAField<PointCloud> >;
795 getName ()
const {
return (
"PointCloudColorHandlerRGBAField"); }
816 using Ptr = shared_ptr<PointCloudColorHandlerLabelField<PointCloud> >;
817 using ConstPtr = shared_ptr<const PointCloudColorHandlerLabelField<PointCloud> >;
822 const bool static_mapping =
true);
830 getName ()
const {
return (
"PointCloudColorHandlerLabelField"); }
836 bool static_mapping_;
842#include <pcl/visualization/impl/point_cloud_color_handlers.hpp>
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< PointCloud< PointT > > Ptr
shared_ptr< const PointCloud< PointT > > ConstPtr
virtual std::string getFieldName() const
Get the name of the field used.
virtual std::string getName() const
Get the name of the class.
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
double r_
Internal R, G, B holding the values given by the user.
PointCloudColorHandlerCustom(const PointCloudConstPtr &cloud, double r, double g, double b)
Constructor.
virtual std::string getFieldName() const
Get the name of the field used.
double r_
Internal R, G, B holding the values given by the user.
shared_ptr< const PointCloudColorHandlerCustom< PointT > > ConstPtr
PointCloudColorHandlerCustom(const PointCloudConstPtr &cloud, double r, double g, double b)
Constructor.
PointCloudColorHandlerCustom(double r, double g, double b)
Constructor.
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
virtual std::string getName() const
Abstract getName method.
shared_ptr< PointCloudColorHandlerCustom< PointT > > Ptr
virtual std::string getName() const
Get the name of the class.
PointCloudColorHandlerGenericField(const PointCloudConstPtr &cloud, const std::string &field_name)
Constructor.
shared_ptr< PointCloudColorHandlerGenericField< PointCloud > > Ptr
virtual std::string getFieldName() const
Get the name of the field used.
shared_ptr< const PointCloudColorHandlerGenericField< PointCloud > > ConstPtr
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
shared_ptr< PointCloudColorHandlerGenericField< PointT > > Ptr
virtual std::string getFieldName() const
Get the name of the field used.
PointCloudColorHandlerGenericField(const PointCloudConstPtr &cloud, const std::string &field_name)
Constructor.
virtual std::string getName() const
Class getName method.
PointCloudColorHandlerGenericField(const std::string &field_name)
Constructor.
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Set the input cloud to be used.
shared_ptr< const PointCloudColorHandlerGenericField< PointT > > ConstPtr
virtual std::string getFieldName() const
Get the name of the field used.
int s_field_idx_
The field index for "S".
PointCloudColorHandlerHSVField(const PointCloudConstPtr &cloud)
Constructor.
shared_ptr< PointCloudColorHandlerHSVField< PointCloud > > Ptr
shared_ptr< const PointCloudColorHandlerHSVField< PointCloud > > ConstPtr
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
virtual std::string getName() const
Get the name of the class.
int v_field_idx_
The field index for "V".
PointCloudColorHandlerHSVField(const PointCloudConstPtr &cloud)
Constructor.
shared_ptr< PointCloudColorHandlerHSVField< PointT > > Ptr
virtual std::string getName() const
Class getName method.
virtual std::string getFieldName() const
Get the name of the field used.
shared_ptr< const PointCloudColorHandlerHSVField< PointT > > ConstPtr
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
int v_field_idx_
The field index for "V".
int s_field_idx_
The field index for "S".
Base Handler class for PointCloud colors.
PointCloudColorHandler()
Constructor.
shared_ptr< const PointCloudColorHandler< PointT > > ConstPtr
virtual ~PointCloudColorHandler()=default
Destructor.
virtual vtkSmartPointer< vtkDataArray > getColor() const =0
Obtain the actual color for the input dataset as a VTK data array.
pcl::PointCloud< PointT > PointCloud
bool isCapable() const
Check if this handler is capable of handling the input data or not.
PointCloudConstPtr cloud_
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Set the input cloud to be used.
typename PointCloud::Ptr PointCloudPtr
typename PointCloud::ConstPtr PointCloudConstPtr
virtual std::string getName() const =0
Abstract getName method.
std::vector< pcl::PCLPointField > fields_
PointCloudColorHandler(const PointCloudConstPtr &cloud)
Constructor.
shared_ptr< PointCloudColorHandler< PointT > > Ptr
virtual std::string getFieldName() const =0
Abstract getFieldName method.
shared_ptr< PointCloudColorHandlerLabelField< PointCloud > > Ptr
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
PointCloudColorHandlerLabelField(const PointCloudConstPtr &cloud, const bool static_mapping=true)
Constructor.
virtual std::string getFieldName() const
Get the name of the field used.
shared_ptr< const PointCloudColorHandlerLabelField< PointCloud > > ConstPtr
virtual std::string getName() const
Get the name of the class.
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Set the input cloud to be used.
virtual std::string getName() const
Class getName method.
PointCloudColorHandlerLabelField(const PointCloudConstPtr &cloud, const bool static_mapping=true)
Constructor.
shared_ptr< PointCloudColorHandlerLabelField< PointT > > Ptr
virtual std::string getFieldName() const
Get the name of the field used.
shared_ptr< const PointCloudColorHandlerLabelField< PointT > > ConstPtr
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
PointCloudColorHandlerLabelField(const bool static_mapping=true)
Constructor.
shared_ptr< const PointCloudColorHandlerRGBAField< PointCloud > > ConstPtr
shared_ptr< PointCloudColorHandlerRGBAField< PointCloud > > Ptr
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
virtual std::string getName() const
Get the name of the class.
virtual std::string getFieldName() const
Get the name of the field used.
PointCloudColorHandlerRGBAField(const PointCloudConstPtr &cloud)
Constructor.
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
PointCloudColorHandlerRGBAField()
Constructor.
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Set the input cloud to be used.
PointCloudColorHandlerRGBAField(const PointCloudConstPtr &cloud)
Constructor.
shared_ptr< PointCloudColorHandlerRGBAField< PointT > > Ptr
virtual std::string getName() const
Class getName method.
shared_ptr< const PointCloudColorHandlerRGBAField< PointT > > ConstPtr
virtual std::string getFieldName() const
Get the name of the field used.
shared_ptr< const PointCloudColorHandlerRGBField< PointCloud > > ConstPtr
shared_ptr< PointCloudColorHandlerRGBField< PointCloud > > Ptr
virtual std::string getFieldName() const
Get the name of the field used.
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
PointCloudColorHandlerRGBField(const PointCloudConstPtr &cloud)
Constructor.
virtual std::string getName() const
Get the name of the class.
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
shared_ptr< PointCloudColorHandlerRGBField< PointT > > Ptr
virtual std::string getFieldName() const
Get the name of the field used.
PointCloudColorHandlerRGBField()
Constructor.
shared_ptr< const PointCloudColorHandlerRGBField< PointT > > ConstPtr
PointCloudColorHandlerRGBField(const PointCloudConstPtr &cloud)
Constructor.
virtual std::string getName() const
Class getName method.
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Set the input cloud to be used.
shared_ptr< PointCloudColorHandlerRandom< PointCloud > > Ptr
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
virtual std::string getFieldName() const
Get the name of the field used.
virtual std::string getName() const
Get the name of the class.
PointCloudColorHandlerRandom(const PointCloudConstPtr &cloud)
Constructor.
shared_ptr< const PointCloudColorHandlerRandom< PointCloud > > ConstPtr
shared_ptr< const PointCloudColorHandlerRandom< PointT > > ConstPtr
virtual std::string getName() const
Abstract getName method.
virtual std::string getFieldName() const
Get the name of the field used.
shared_ptr< PointCloudColorHandlerRandom< PointT > > Ptr
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
PointCloudColorHandlerRandom(const PointCloudConstPtr &cloud)
Constructor.
PointCloudColorHandlerRandom()
Constructor.
Defines all the PCL and non-PCL macros used.