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)
222 getName ()
const {
return (
"PointCloudColorHandlerCustom"); }
246 template <
typename Po
intT>
254 using Ptr = shared_ptr<PointCloudColorHandlerRGBField<PointT> >;
255 using ConstPtr = shared_ptr<const PointCloudColorHandlerRGBField<PointT> >;
289 getName ()
const {
return (
"PointCloudColorHandlerRGBField"); }
304 template <
typename Po
intT>
312 using Ptr = shared_ptr<PointCloudColorHandlerHSVField<PointT> >;
313 using ConstPtr = shared_ptr<const PointCloudColorHandlerHSVField<PointT> >;
331 getName ()
const {
return (
"PointCloudColorHandlerHSVField"); }
352 template <
typename Po
intT>
360 using Ptr = shared_ptr<PointCloudColorHandlerGenericField<PointT> >;
361 using ConstPtr = shared_ptr<const PointCloudColorHandlerGenericField<PointT> >;
365 : field_name_ (field_name)
372 const std::string &field_name)
374 , field_name_ (field_name)
397 getName ()
const {
return (
"PointCloudColorHandlerGenericField"); }
406 std::string field_name_;
416 template <
typename Po
intT>
424 using Ptr = shared_ptr<PointCloudColorHandlerRGBAField<PointT> >;
425 using ConstPtr = shared_ptr<const PointCloudColorHandlerRGBAField<PointT> >;
459 getName ()
const {
return (
"PointCloudColorHandlerRGBAField"); }
475 template <
typename Po
intT>
483 using Ptr = shared_ptr<PointCloudColorHandlerLabelField<PointT> >;
484 using ConstPtr = shared_ptr<const PointCloudColorHandlerLabelField<PointT> >;
492 static_mapping_ = static_mapping;
498 const bool static_mapping =
true)
502 static_mapping_ = static_mapping;
526 getName ()
const {
return (
"PointCloudColorHandlerLabelField"); }
534 bool static_mapping_;
550 using Ptr = shared_ptr<PointCloudColorHandler<PointCloud> >;
551 using ConstPtr = shared_ptr<const PointCloudColorHandler<PointCloud> >;
617 using Ptr = shared_ptr<PointCloudColorHandlerRandom<PointCloud> >;
618 using ConstPtr = shared_ptr<const PointCloudColorHandlerRandom<PointCloud> >;
632 getName ()
const {
return (
"PointCloudColorHandlerRandom"); }
658 double r,
double g,
double b) :
670 getName ()
const {
return (
"PointCloudColorHandlerCustom"); }
698 using Ptr = shared_ptr<PointCloudColorHandlerRGBField<PointCloud> >;
699 using ConstPtr = shared_ptr<const PointCloudColorHandlerRGBField<PointCloud> >;
713 getName ()
const {
return (
"PointCloudColorHandlerRGBField"); }
733 using Ptr = shared_ptr<PointCloudColorHandlerHSVField<PointCloud> >;
734 using ConstPtr = shared_ptr<const PointCloudColorHandlerHSVField<PointCloud> >;
748 getName ()
const {
return (
"PointCloudColorHandlerHSVField"); }
775 using Ptr = shared_ptr<PointCloudColorHandlerGenericField<PointCloud> >;
776 using ConstPtr = shared_ptr<const PointCloudColorHandlerGenericField<PointCloud> >;
780 const std::string &field_name);
791 getName ()
const {
return (
"PointCloudColorHandlerGenericField"); }
799 std::string field_name_;
816 using Ptr = shared_ptr<PointCloudColorHandlerRGBAField<PointCloud> >;
817 using ConstPtr = shared_ptr<const PointCloudColorHandlerRGBAField<PointCloud> >;
831 getName ()
const {
return (
"PointCloudColorHandlerRGBAField"); }
852 using Ptr = shared_ptr<PointCloudColorHandlerLabelField<PointCloud> >;
853 using ConstPtr = shared_ptr<const PointCloudColorHandlerLabelField<PointCloud> >;
858 const bool static_mapping =
true);
869 getName ()
const {
return (
"PointCloudColorHandlerLabelField"); }
875 bool static_mapping_;
881#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
int field_idx_
The index of the field holding the data that represents the color.
bool isCapable() const
Return whether this handler is capable of handling the input data or not.
PointCloudConstPtr cloud_
A pointer to the input dataset.
PointCloudColorHandler(const PointCloudConstPtr &cloud)
Constructor.
PointCloud::ConstPtr PointCloudConstPtr
virtual std::string getFieldName() const =0
Abstract getFieldName method.
PointCloud::Ptr PointCloudPtr
void setInputCloud(const PointCloudConstPtr &cloud)
Set the input cloud to be used.
shared_ptr< const PointCloudColorHandler< PointCloud > > ConstPtr
virtual ~PointCloudColorHandler()
Destructor.
virtual std::string getName() const =0
Abstract getName method.
virtual vtkSmartPointer< vtkDataArray > getColor() const =0
Obtain the actual color for the input dataset as a VTK data array.
shared_ptr< PointCloudColorHandler< PointCloud > > Ptr
bool capable_
True if this handler is capable of handling the input data, false otherwise.
pcl::PCLPointCloud2 PointCloud
virtual ~PointCloudColorHandlerCustom()
Empty destructor.
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 ~PointCloudColorHandlerCustom()
Destructor.
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.
virtual ~PointCloudColorHandlerGenericField()
Empty destructor.
shared_ptr< PointCloudColorHandlerGenericField< PointT > > Ptr
virtual std::string getFieldName() const
Get the name of the field used.
virtual ~PointCloudColorHandlerGenericField()
Destructor.
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.
virtual ~PointCloudColorHandlerHSVField()
Empty destructor.
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
virtual ~PointCloudColorHandlerHSVField()
Empty destructor.
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 vtkSmartPointer< vtkDataArray > getColor() const =0
Obtain the actual color for the input dataset as a VTK data array.
virtual ~PointCloudColorHandler()
Destructor.
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 ~PointCloudColorHandlerLabelField()
Empty destructor.
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 ~PointCloudColorHandlerLabelField()
Destructor.
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
virtual ~PointCloudColorHandlerRGBAField()
Empty destructor.
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.
virtual ~PointCloudColorHandlerRGBAField()
Destructor.
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.
virtual ~PointCloudColorHandlerRGBField()
Empty destructor.
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 ~PointCloudColorHandlerRGBField()
Destructor.
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.
virtual ~PointCloudColorHandlerRandom()
Empty destructor.
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.
shared_ptr< ::pcl::PCLPointCloud2 > Ptr
shared_ptr< const ::pcl::PCLPointCloud2 > ConstPtr