Inshaping: include/BoundingBox.h Source File

Inshaping

Inshaping  0.1
BoundingBox.h
Go to the documentation of this file.
1 #pragma once
2 #include<Eigen/Dense>
3 #include<vector>
4 #include<iostream>
5 #include<pcl/point_cloud.h>
6 #include<pcl/point_types.h>
7 #include<FileIO.h>
8 
9 namespace Inshape
10 {
13  struct tri
14  {
15  Eigen::Vector3d edge;
16  int from;
17  int to;
18  };
19 
20  bool compareNorm(tri i, tri j);
21 
23  {
24  private:
25  std::vector<Eigen::Vector3d> vertices;//���� Eigen::Vector3d length; //��,���Ƕ��峤�Ǵӽ�ָ��ͷ����ı� Eigen::Vector3d width; //�� ��̵ı� Eigen::Vector3d height; //�� �ڶ����ı� Eigen::Vector3d closer_point;//�Ƚ�ģ�Ĵ�С Eigen::Vector3d farer_point; public: BoundingBox(std::vector<Eigen::Vector3d>& _vertices) :vertices(_vertices) {} BoundingBox(pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud) :vertices(getOBB(cloud)) {} Eigen::Vector3d getLength(); Eigen::Vector3d getCloserPoint(); Eigen::Vector3d getClosestPoint(Eigen::Vector3d p); Eigen::Vector3d getFarerPoint(); //�������������,�������Eigen::Vector3d::Zero() �Ļ�length�ķ����޷�ȷ�������dz��Ȼ��ǿ��Ե� void computeNormals(Eigen::Vector3d head_baryCenter); void saveOBB(std::string filename); static std::vector<Eigen::Vector3d> getOBB(pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud); }; /*@}*/ }
26  Eigen::Vector3d length; //��,���Ƕ��峤�Ǵӽ�ָ��ͷ����ı� Eigen::Vector3d width; //�� ��̵ı� Eigen::Vector3d height; //�� �ڶ����ı� Eigen::Vector3d closer_point;//�Ƚ�ģ�Ĵ�С Eigen::Vector3d farer_point; public: BoundingBox(std::vector<Eigen::Vector3d>& _vertices) :vertices(_vertices) {} BoundingBox(pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud) :vertices(getOBB(cloud)) {} Eigen::Vector3d getLength(); Eigen::Vector3d getCloserPoint(); Eigen::Vector3d getClosestPoint(Eigen::Vector3d p); Eigen::Vector3d getFarerPoint(); //�������������,�������Eigen::Vector3d::Zero() �Ļ�length�ķ����޷�ȷ�������dz��Ȼ��ǿ��Ե� void computeNormals(Eigen::Vector3d head_baryCenter); void saveOBB(std::string filename); static std::vector<Eigen::Vector3d> getOBB(pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud); }; /*@}*/ }
27  Eigen::Vector3d width; //�� ��̵ı� Eigen::Vector3d height; //�� �ڶ����ı� Eigen::Vector3d closer_point;//�Ƚ�ģ�Ĵ�С Eigen::Vector3d farer_point; public: BoundingBox(std::vector<Eigen::Vector3d>& _vertices) :vertices(_vertices) {} BoundingBox(pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud) :vertices(getOBB(cloud)) {} Eigen::Vector3d getLength(); Eigen::Vector3d getCloserPoint(); Eigen::Vector3d getClosestPoint(Eigen::Vector3d p); Eigen::Vector3d getFarerPoint(); //�������������,�������Eigen::Vector3d::Zero() �Ļ�length�ķ����޷�ȷ�������dz��Ȼ��ǿ��Ե� void computeNormals(Eigen::Vector3d head_baryCenter); void saveOBB(std::string filename); static std::vector<Eigen::Vector3d> getOBB(pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud); }; /*@}*/ }
28  Eigen::Vector3d height; //�� �ڶ����ı� Eigen::Vector3d closer_point;//�Ƚ�ģ�Ĵ�С Eigen::Vector3d farer_point; public: BoundingBox(std::vector<Eigen::Vector3d>& _vertices) :vertices(_vertices) {} BoundingBox(pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud) :vertices(getOBB(cloud)) {} Eigen::Vector3d getLength(); Eigen::Vector3d getCloserPoint(); Eigen::Vector3d getClosestPoint(Eigen::Vector3d p); Eigen::Vector3d getFarerPoint(); //�������������,�������Eigen::Vector3d::Zero() �Ļ�length�ķ����޷�ȷ�������dz��Ȼ��ǿ��Ե� void computeNormals(Eigen::Vector3d head_baryCenter); void saveOBB(std::string filename); static std::vector<Eigen::Vector3d> getOBB(pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud); }; /*@}*/ }
29  Eigen::Vector3d closer_point;//�Ƚ�ģ�Ĵ�С
30  Eigen::Vector3d farer_point;
31 
32  public:
33  BoundingBox(std::vector<Eigen::Vector3d>& _vertices) :vertices(_vertices) {}
34  BoundingBox(pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud) :vertices(getOBB(cloud)) {}
35  Eigen::Vector3d getLength();
36 
37  Eigen::Vector3d getCloserPoint();
38 
39  Eigen::Vector3d getClosestPoint(Eigen::Vector3d p);
40 
41 
42  Eigen::Vector3d getFarerPoint();
43  //�������������,�������Eigen::Vector3d::Zero() �Ļ�length�ķ����޷�ȷ�������dz��Ȼ��ǿ��Ե� void computeNormals(Eigen::Vector3d head_baryCenter); void saveOBB(std::string filename); static std::vector<Eigen::Vector3d> getOBB(pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud); }; /*@}*/ }
44  void computeNormals(Eigen::Vector3d head_baryCenter);
45 
46  void saveOBB(std::string filename);
47 
48 
49  static std::vector<Eigen::Vector3d> getOBB(pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud);
50 
51  };
53 }
Definition: BoundingBox.h:13
Eigen::Vector3d getClosestPoint(Eigen::Vector3d p)
static std::vector< Eigen::Vector3d > getOBB(pcl::PointCloud< pcl::PointXYZ >::Ptr &cloud)
Eigen::Vector3d getLength()
Definition: AfterProcess.h:9
BoundingBox(pcl::PointCloud< pcl::PointXYZ >::Ptr &cloud)
Definition: BoundingBox.h:34
int from
Definition: BoundingBox.h:16
Eigen::Vector3d getCloserPoint()
bool compareNorm(tri i, tri j)
Definition: BoundingBox.h:22
void computeNormals(Eigen::Vector3d head_baryCenter)
void saveOBB(std::string filename)
BoundingBox(std::vector< Eigen::Vector3d > &_vertices)
Definition: BoundingBox.h:33
Eigen::Vector3d edge
Definition: BoundingBox.h:15
int to
Definition: BoundingBox.h:17
Eigen::Vector3d getFarerPoint()
Generated by   doxygen 1.8.14