35 #ifndef JSK_RECOGNITION_UTILS_GRID_LINE_H_ 36 #define JSK_RECOGNITION_UTILS_GRID_LINE_H_ 37 #include <pcl/point_types.h> 38 #include <boost/shared_ptr.hpp> 42 #include <Eigen/Geometry> 50 GridLine(
const pcl::PointXYZRGB a,
const pcl::PointXYZRGB b);
53 const pcl::PointXYZRGB& B,
54 const pcl::PointXYZRGB& C,
55 const pcl::PointXYZRGB& D);
57 const Eigen::Vector3f B,
58 const Eigen::Vector3f C,
59 const Eigen::Vector3f D)
75 bool ab_direction = Across.dot(Bcross) < 0;
76 bool ac_direction = Across.dot(Ccross) < 0;
77 bool ad_direction = Across.dot(Dcross) < 0;
78 bool bc_direction = Bcross.dot(Ccross) < 0;
79 if (Across.norm() == 0 ||
85 else if ((ab_direction == ac_direction) &&
86 (ab_direction == ad_direction)
87 && (ab_direction == bc_direction)) {
95 const Eigen::Vector3f
from;
96 const Eigen::Vector3f
to;
98 const Eigen::Vector3f
d_;
const Eigen::Vector3f from
TFSIMD_FORCE_INLINE Vector3 cross(const Vector3 &v) const
boost::shared_ptr< GridLine > Ptr
GridLine(const pcl::PointXYZRGB a, const pcl::PointXYZRGB b)
virtual bool penetrateGrid(const Eigen::Vector3f A, const Eigen::Vector3f B, const Eigen::Vector3f C, const Eigen::Vector3f D)
virtual bool penetrateGrid(const pcl::PointXYZRGB &A, const pcl::PointXYZRGB &B, const pcl::PointXYZRGB &C, const pcl::PointXYZRGB &D)