36 #ifndef _vpMbDepthNormalTracker_h_
37 #define _vpMbDepthNormalTracker_h_
39 #include <visp3/core/vpConfig.h>
40 #include <visp3/core/vpPlane.h>
41 #include <visp3/mbt/vpMbTracker.h>
42 #include <visp3/mbt/vpMbtFaceDepthNormal.h>
44 #if DEBUG_DISPLAY_DEPTH_NORMAL
45 #include <visp3/core/vpDisplay.h>
55 const vpColor &col,
unsigned int thickness = 1,
bool displayFullModel =
false);
58 const vpColor &col,
unsigned int thickness = 1,
bool displayFullModel =
false);
62 return m_depthNormalFeatureEstimationMethod;
67 virtual std::vector<std::vector<double> >
getModelForDisplay(
unsigned int width,
unsigned int height,
70 bool displayFullModel=
false);
79 bool verbose =
false);
80 #if defined(VISP_HAVE_PCL)
81 void reInitModel(
const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &point_cloud,
const std::string &cad_name,
93 virtual void setDepthNormalPclPlaneEstimationMethod(
int method);
95 virtual void setDepthNormalPclPlaneEstimationRansacMaxIter(
int maxIter);
97 virtual void setDepthNormalPclPlaneEstimationRansacThreshold(
double thresold);
99 virtual void setDepthNormalSamplingStep(
unsigned int stepX,
unsigned int stepY);
107 #if defined(VISP_HAVE_PCL)
113 void setUseDepthNormalTracking(
const std::string &name,
const bool &useDepthNormalTracking);
119 #if defined(VISP_HAVE_PCL)
120 virtual void track(
const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &point_cloud);
122 virtual void track(
const std::vector<vpColVector> &point_cloud,
unsigned int width,
unsigned int height);
130 std::vector<vpMbtFaceDepthNormal *> m_depthNormalListOfActiveFaces;
132 std::vector<vpColVector> m_depthNormalListOfDesiredFeatures;
134 std::vector<vpMbtFaceDepthNormal *> m_depthNormalFaces;
136 int m_depthNormalPclPlaneEstimationMethod;
138 int m_depthNormalPclPlaneEstimationRansacMaxIter;
140 double m_depthNormalPclPlaneEstimationRansacThreshold;
142 unsigned int m_depthNormalSamplingStepX;
144 unsigned int m_depthNormalSamplingStepY;
146 bool m_depthNormalUseRobust;
150 std::vector<std::vector<double> > m_featuresToBeDisplayedDepthNormal;
159 #if DEBUG_DISPLAY_DEPTH_NORMAL
166 void computeVisibility(
unsigned int width,
unsigned int height);
172 virtual std::vector<std::vector<double> > getFeaturesForDisplayDepthNormal();
175 int idFace = 0,
const std::string &name =
"");
178 const std::string &name =
"");
185 void segmentPointCloud(
const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &point_cloud);
187 void segmentPointCloud(
const std::vector<vpColVector> &point_cloud,
unsigned int width,
188 unsigned int height);