<commit_before>#ifndef ROISEGMENTER3D_H
#define ROISEGMENTER3D_H

#include <opencv2/opencv.hpp>
#include <ros/ros.h>

//PCL's includes
//#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/filters/passthrough.h>
#include <pcl/ros/conversions.h>
#include <pcl/point_cloud.h>
#include <pcl/filters/statistical_outlier_removal.h>

//Msgs
#include <sensor_msgs/PointCloud2.h>
#include <TFG/HandLocPx.h>
#include <TFG/HandLoc.h>




class RoiSegmenter3D //: public RoiSegmenter
{

public:
    RoiSegmenter3D();

private:
    ros::NodeHandle nh;

    ros::Subscriber point_cloud_sub;
    ros::Subscriber coord_sub;

    ros::Publisher point_cloud_pub;

//    ros::Publisher coord_r_pub;
//    ros::Publisher coord_l_pub;
    ros::Publisher coord_pub;

    void segment(const sensor_msgs::PointCloud2ConstPtr &);

    void distance2px(pcl::PointCloud<pcl::PointXYZ>& , pcl::PointCloud <pcl::PointXYZ>& );

    void coordinates (const TFG::HandLocConstPtr &);

    TFG::HandLoc coord;



};

#endif // ROISEGMENTER3D_H<commit_msg>roisegmenter3D.h commented<commit_after>#ifndef ROISEGMENTER3D_H
#define ROISEGMENTER3D_H

#include <opencv2/opencv.hpp>
#include <ros/ros.h>

//PCL's includes
//#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/filters/passthrough.h>
#include <pcl/ros/conversions.h>
#include <pcl/point_cloud.h>
#include <pcl/filters/statistical_outlier_removal.h>

//Msgs
#include <sensor_msgs/PointCloud2.h>
#include <TFG/HandLocPx.h>
#include <TFG/HandLoc.h>

//* Class RoiSegmenter3D
/**
* This class segments an input point cloud and extracts the Region Of Interest
*  
*/



class RoiSegmenter3D 
{

public:

/*!
    * \brief Public constructor
    */
    
    RoiSegmenter3D();

private:
    ros::NodeHandle nh;/** @todo CHANGE THIS TO A ROISEGMENTER3DNODE! */

    ros::Subscriber point_cloud_sub; /** @todo CHANGE THIS TO A ROISEGMENTER3DNODE! */
    ros::Subscriber coord_sub; /** @todo CHANGE THIS TO A ROISEGMENTER3DNODE! */

    ros::Publisher point_cloud_pub; /** @todo CHANGE THIS TO A ROISEGMENTER3DNODE! */

    ros::Publisher coord_pub; /** @todo CHANGE THIS TO A ROISEGMENTER3DNODE! */
    
    /*!
    * \brief Method that segments the point cloud using a given center and fixed limits. 
    *
    * In this case, there are two segmented regions (both the right and left hands). The point cloud of interest is a cube with fixed dimensions extracted from the original point cloud. 
    */

    void segment(const sensor_msgs::PointCloud2ConstPtr &);/** @todo change the param to sensor_msgs::PointCloud2 for easier testing */

/*!
    * \brief Method that transforms the 3D world coordinates to pixels
    *
    * It is used to determine the limits of the 2D ROI. 
    */
    
    void distance2px(pcl::PointCloud<pcl::PointXYZ>& , pcl::PointCloud <pcl::PointXYZ>& );


    void coordinates (const TFG::HandLocConstPtr &);/** @todo Is this method really used?? */

    TFG::HandLoc coord;/** @todo Is this variable really used?? */



};

#endif // ROISEGMENTER3D_H
{'fraction_non_alphanumeric': 0.12380323539121822, 'fraction_numerical': 0.00924397490921096, 'mean_word_length': 3.9917627677100493, 'pattern_counts': {'":': 0, '<': 29, '<?xml version=': 0, '>': 29, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7482366', 'n_tokens_mistral': 1168, 'n_tokens_neox': 1086, 'n_words': 259}