40 #include <pcl/ModelCoefficients.h>
62 const Eigen::VectorXf &line_b,
63 Eigen::Vector4f &point,
64 double sqr_eps = 1e-4);
77 Eigen::Vector4f &point,
78 double sqr_eps = 1e-4);
89 template <
typename Scalar>
bool
91 const Eigen::Matrix<Scalar, 4, 1> &plane_b,
92 Eigen::Matrix<Scalar, Eigen::Dynamic, 1> &line,
93 double angular_tolerance = 0.1);
97 const Eigen::Vector4f &plane_b,
98 Eigen::VectorXf &line,
99 double angular_tolerance = 0.1)
101 return (planeWithPlaneIntersection<float> (plane_a, plane_b, line, angular_tolerance));
106 const Eigen::Vector4d &plane_b,
107 Eigen::VectorXd &line,
108 double angular_tolerance = 0.1)
110 return (planeWithPlaneIntersection<double> (plane_a, plane_b, line, angular_tolerance));
124 template <
typename Scalar>
bool
126 const Eigen::Matrix<Scalar, 4, 1> &plane_b,
127 const Eigen::Matrix<Scalar, 4, 1> &plane_c,
128 Eigen::Matrix<Scalar, 3, 1> &intersection_point,
129 double determinant_tolerance = 1e-6);
134 const Eigen::Vector4f &plane_b,
135 const Eigen::Vector4f &plane_c,
136 Eigen::Vector3f &intersection_point,
137 double determinant_tolerance = 1e-6)
139 return (threePlanesIntersection<float> (plane_a, plane_b, plane_c,
140 intersection_point, determinant_tolerance));
145 const Eigen::Vector4d &plane_b,
146 const Eigen::Vector4d &plane_c,
147 Eigen::Vector3d &intersection_point,
148 double determinant_tolerance = 1e-6)
150 return (threePlanesIntersection<double> (plane_a, plane_b, plane_c,
151 intersection_point, determinant_tolerance));
157 #include <pcl/common/impl/intersections.hpp>
Define standard C methods and C++ classes that are common to all methods.
Define standard C methods to do distance calculations.
bool lineWithLineIntersection(const Eigen::VectorXf &line_a, const Eigen::VectorXf &line_b, Eigen::Vector4f &point, double sqr_eps)
Get the intersection of a two 3D lines in space as a 3D point.
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)
Determine the line of intersection of two non-parallel planes using lagrange multipliers.
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)
Determine the point of intersection of three non-parallel planes by solving the equations.