1 #include <pcl/apps/cloud_composer/transform_clouds.h>
2 #include <pcl/apps/cloud_composer/items/cloud_item.h>
3 
4 #include <pcl/point_types.h>
5 
6 #include <pcl/apps/cloud_composer/impl/transform_clouds.hpp>
7 
TransformClouds(QMap<QString,vtkSmartPointer<vtkMatrix4x4>> transform_map,QObject * parent)8 pcl::cloud_composer::TransformClouds::TransformClouds (QMap <QString, vtkSmartPointer<vtkMatrix4x4> > transform_map, QObject* parent)
9   : ModifyItemTool (nullptr, parent)
10   , transform_map_ (std::move(transform_map))
11 {
12 
13 }
14 
~TransformClouds()15 pcl::cloud_composer::TransformClouds::~TransformClouds ()
16 {
17 
18 }
19 
20 QList <pcl::cloud_composer::CloudComposerItem*>
performAction(ConstItemList input_data,PointTypeFlags::PointType type)21 pcl::cloud_composer::TransformClouds::performAction (ConstItemList input_data, PointTypeFlags::PointType type)
22 {
23   if (type != PointTypeFlags::NONE)
24   {
25     switch ((std::uint8_t) type)
26     {
27       case (PointTypeFlags::XYZ):
28         return this->performTemplatedAction<pcl::PointXYZ> (input_data);
29       case (PointTypeFlags::XYZ | PointTypeFlags::RGB):
30         return this->performTemplatedAction<pcl::PointXYZRGB> (input_data);
31       case (PointTypeFlags::XYZ | PointTypeFlags::RGBA):
32         return this->performTemplatedAction<pcl::PointXYZRGBA> (input_data);
33     }
34   }
35 
36   QList <CloudComposerItem*> output;
37 
38   qCritical () << "Transform requires templated types!";
39 
40   return output;
41 }
42