/* 
 * File:   bodyPart.h
 * Author: jorge
 *
 * Created on 20 de noviembre de 2013, 12:15
 */

#ifndef BODYPART_H
#define	BODYPART_H

#include <Eigen/Core>
#include "sampling.h"

class BodyPart
{
    public:
        
        enum
        {
            ELLIPSE_SAMPLING,OFF_CENTER_ELLIPSE_SAMPLING,ROTATION_ONLY_SAMPLING
        };
        
        BodyPart()
        {
            cloud_.reset(new pcl::PointCloud<pcl::PointXYZRGB>);
            detected_=false;
        }
        
        Sampling::Ptr sampling_;
        
        SemiFixedSegmentMinimization minimization;
        
        Ellipse::Ptr ellipse_;
        
        pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud_;

        bool detected_;
        
        pcl::PointXYZRGB preferencial_direction_;
        pcl::PointXYZRGB preferencial_end_;//Relative to start
        
        pcl::PointXYZRGB start_;
        pcl::PointXYZRGB end_;
        
        pcl::PointXYZRGB left_;
        pcl::PointXYZRGB right_;
};

#endif	/* BODYPART_H */

