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>
57 namespace visualization
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"); }
342 template <
typename Po
intT>
349 std::string field_name_;
352 using Ptr = std::shared_ptr<PointCloudColorHandlerGenericField<PointT>>;
353 using ConstPtr = std::shared_ptr<const PointCloudColorHandlerGenericField<PointT>>;
357 const std::string& field_name);
378 return (
"PointCloudColorHandlerGenericField");
389 template <
typename Po
intT>
397 using Ptr = shared_ptr<PointCloudColorHandlerRGBAField<PointT> >;
398 using ConstPtr = shared_ptr<const PointCloudColorHandlerRGBAField<PointT> >;
429 getName ()
const {
return (
"PointCloudColorHandlerRGBAField"); }
445 template <
typename Po
intT>
453 using Ptr = shared_ptr<PointCloudColorHandlerLabelField<PointT> >;
454 using ConstPtr = shared_ptr<const PointCloudColorHandlerLabelField<PointT> >;
462 static_mapping_ = static_mapping;
468 const bool static_mapping =
true)
472 static_mapping_ = static_mapping;
493 getName ()
const {
return (
"PointCloudColorHandlerLabelField"); }
501 bool static_mapping_;
517 using Ptr = shared_ptr<PointCloudColorHandler<PointCloud> >;
518 using ConstPtr = shared_ptr<const PointCloudColorHandler<PointCloud> >;
522 cloud_ (cloud), capable_ (false), field_idx_ ()
584 using Ptr = shared_ptr<PointCloudColorHandlerRandom<PointCloud> >;
585 using ConstPtr = shared_ptr<const PointCloudColorHandlerRandom<PointCloud> >;
596 getName ()
const {
return (
"PointCloudColorHandlerRandom"); }
622 double r,
double g,
double b) :
624 r_ (r), g_ (g), b_ (b)
631 getName ()
const {
return (
"PointCloudColorHandlerCustom"); }
659 using Ptr = shared_ptr<PointCloudColorHandlerRGBField<PointCloud> >;
660 using ConstPtr = shared_ptr<const PointCloudColorHandlerRGBField<PointCloud> >;
671 getName ()
const {
return (
"PointCloudColorHandlerRGBField"); }
691 using Ptr = shared_ptr<PointCloudColorHandlerHSVField<PointCloud> >;
692 using ConstPtr = shared_ptr<const PointCloudColorHandlerHSVField<PointCloud> >;
703 getName ()
const {
return (
"PointCloudColorHandlerHSVField"); }
730 using Ptr = shared_ptr<PointCloudColorHandlerRGBAField<PointCloud> >;
731 using ConstPtr = shared_ptr<const PointCloudColorHandlerRGBAField<PointCloud> >;
742 getName ()
const {
return (
"PointCloudColorHandlerRGBAField"); }
763 using Ptr = shared_ptr<PointCloudColorHandlerLabelField<PointCloud> >;
764 using ConstPtr = shared_ptr<const PointCloudColorHandlerLabelField<PointCloud> >;
769 const bool static_mapping =
true);
777 getName ()
const {
return (
"PointCloudColorHandlerLabelField"); }
783 bool static_mapping_;
789 #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 std::string getName() const =0
Abstract getName method.
virtual ~PointCloudColorHandler()=default
Destructor.
shared_ptr< PointCloudColorHandler< PointCloud > > Ptr
virtual vtkSmartPointer< vtkDataArray > getColor() const =0
Obtain the actual color for the input dataset as a VTK data array.
bool capable_
True if this handler is capable of handling the input data, false otherwise.
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.
PointCloudColorHandlerCustom(const PointCloudConstPtr &cloud, double r, double g, double b)
Constructor.
Handler for predefined user colors.
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.
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.
Generic field handler class for colors.
std::string getName() const override
Class getName method.
PointCloudColorHandlerGenericField(const PointCloudConstPtr &cloud, const std::string &field_name)
constructor
std::string getFieldName() const override
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.
std::vector< pcl::PCLPointField > fields_
void setInputCloud(const PointCloudConstPtr &cloud)
Set the input cloud to be used.
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.
virtual std::string getName() const
Get the name of the class.
int v_field_idx_
The field index for "V".
vtkSmartPointer< vtkDataArray > getColor() const override
Obtain the actual color for the input dataset as a VTK data array.
HSV handler class for colors.
PointCloudColorHandlerHSVField(const PointCloudConstPtr &cloud)
Constructor.
virtual std::string getName() const
Class getName method.
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.
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.
bool capable_
True if this handler is capable of handling the input data, false otherwise.
bool isCapable() const
Check if this handler is capable of handling the input data or not.
PointCloudConstPtr cloud_
A pointer to the input dataset.
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.
virtual vtkSmartPointer< vtkDataArray > getColor() const =0
Obtain the actual color for the input dataset as a VTK data array.
std::vector< pcl::PCLPointField > fields_
The list of fields available for this PointCloud.
PointCloudColorHandler(const PointCloudConstPtr &cloud)
Constructor.
shared_ptr< PointCloudColorHandler< PointT > > Ptr
virtual std::string getFieldName() const =0
Abstract getFieldName method.
int field_idx_
The index of the field holding the data that represents the color.
PointCloudColorHandlerLabelField(const PointCloudConstPtr &cloud, const bool static_mapping=true)
Constructor.
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.
Label field handler class for colors.
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.
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.
PointCloudColorHandlerLabelField(const bool static_mapping=true)
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.
virtual std::string getFieldName() const
Get the name of the field used.
PointCloudColorHandlerRGBAField(const PointCloudConstPtr &cloud)
Constructor.
RGBA handler class for colors.
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.
virtual std::string getName() const
Class getName method.
virtual std::string getFieldName() const
Get the name of the field used.
virtual std::string getFieldName() const
Get the name of the field used.
PointCloudColorHandlerRGBField(const PointCloudConstPtr &cloud)
Constructor.
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.
RGB handler class for colors.
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.
PointCloudColorHandlerRGBField()
Constructor.
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.
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.
Handler for random PointCloud colors (i.e., R, G, B will be randomly chosen)
virtual std::string getName() const
Abstract getName method.
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.
PointCloudColorHandlerRandom(const PointCloudConstPtr &cloud)
Constructor.
PointCloudColorHandlerRandom()
Constructor.
Defines all the PCL and non-PCL macros used.
A point structure representing Euclidean xyz coordinates, and the RGB color.