38 #ifndef PCL_INTERSECTIONS_H_ 39 #define PCL_INTERSECTIONS_H_ 41 #include <pcl/ModelCoefficients.h> 61 PCL_EXPORTS
inline bool 63 const Eigen::VectorXf &line_b,
64 Eigen::Vector4f &point,
65 double sqr_eps = 1e-4);
75 PCL_EXPORTS
inline bool 78 Eigen::Vector4f &point,
79 double sqr_eps = 1e-4);
90 PCL_EXPORTS
template <
typename Scalar>
bool 92 const Eigen::Matrix<Scalar, 4, 1> &plane_b,
93 Eigen::Matrix<Scalar, Eigen::Dynamic, 1> &line,
94 double angular_tolerance = 0.1);
96 PCL_EXPORTS
inline bool 98 const Eigen::Vector4f &plane_b,
99 Eigen::VectorXf &line,
100 double angular_tolerance = 0.1)
102 return (planeWithPlaneIntersection<float> (plane_a, plane_b, line, angular_tolerance));
105 PCL_EXPORTS
inline bool 107 const Eigen::Vector4d &plane_b,
108 Eigen::VectorXd &line,
109 double angular_tolerance = 0.1)
111 return (planeWithPlaneIntersection<double> (plane_a, plane_b, line, angular_tolerance));
125 PCL_EXPORTS
template <
typename Scalar>
bool 127 const Eigen::Matrix<Scalar, 4, 1> &plane_b,
128 const Eigen::Matrix<Scalar, 4, 1> &plane_c,
129 Eigen::Matrix<Scalar, 3, 1> &intersection_point,
130 double determinant_tolerance = 1e-6);
133 PCL_EXPORTS
inline bool 135 const Eigen::Vector4f &plane_b,
136 const Eigen::Vector4f &plane_c,
137 Eigen::Vector3f &intersection_point,
138 double determinant_tolerance = 1e-6)
140 return (threePlanesIntersection<float> (plane_a, plane_b, plane_c,
141 intersection_point, determinant_tolerance));
144 PCL_EXPORTS
inline bool 146 const Eigen::Vector4d &plane_b,
147 const Eigen::Vector4d &plane_c,
148 Eigen::Vector3d &intersection_point,
149 double determinant_tolerance = 1e-6)
151 return (threePlanesIntersection<double> (plane_a, plane_b, plane_c,
152 intersection_point, determinant_tolerance));
158 #include <pcl/common/impl/intersections.hpp> 160 #endif //#ifndef PCL_INTERSECTIONS_H_ PCL_EXPORTS bool threePlanesIntersection(const Eigen::Matrix< Scalar, 4, 1 > &plane_a, const Eigen::Matrix< Scalar, 4, 1 > &plane_b, const Eigen::Matrix< Scalar, 4, 1 > &plane_c, Eigen::Matrix< Scalar, 3, 1 > &intersection_point, double determinant_tolerance=1e-6)
Determine the point of intersection of three non-parallel planes by solving the equations.
PCL_EXPORTS bool planeWithPlaneIntersection(const Eigen::Matrix< Scalar, 4, 1 > &plane_a, const Eigen::Matrix< Scalar, 4, 1 > &plane_b, Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &line, double angular_tolerance=0.1)
Determine the line of intersection of two non-parallel planes using lagrange multipliers.
This file defines compatibility wrappers for low level I/O functions.
Define standard C methods to do distance calculations.
Define standard C methods and C++ classes that are common to all methods.
PCL_EXPORTS bool lineWithLineIntersection(const Eigen::VectorXf &line_a, const Eigen::VectorXf &line_b, Eigen::Vector4f &point, double sqr_eps=1e-4)
Get the intersection of a two 3D lines in space as a 3D point.