40 #ifndef PCL_SAMPLE_CONSENSUS_MODEL_PLANE_H_
41 #define PCL_SAMPLE_CONSENSUS_MODEL_PLANE_H_
54 template <
typename Po
int>
inline void
55 projectPoint (
const Point &p,
const Eigen::Vector4f &model_coefficients, Point &q)
58 Eigen::Vector4f pp (p.x, p.y, p.z, 1);
60 float distance_to_plane = pp.dot(model_coefficients);
67 Eigen::Vector4f q_e = pp - distance_to_plane * model_coefficients;
81 template <
typename Po
int>
inline double
84 return (a * p.x + b * p.y + c * p.z + d);
92 template <
typename Po
int>
inline double
95 return ( plane_coefficients[0] * p.x + plane_coefficients[1] * p.y + plane_coefficients[2] * p.z + plane_coefficients[3] );
106 template <
typename Po
int>
inline double
117 template <
typename Po
int>
inline double
134 template <
typename Po
intT>
145 typedef boost::shared_ptr<SampleConsensusModelPlane>
Ptr;
166 Eigen::VectorXf &model_coefficients);
174 std::vector<double> &distances);
183 const double threshold,
184 std::vector<int> &inliers);
194 const double threshold);
204 const Eigen::VectorXf &model_coefficients,
205 Eigen::VectorXf &optimized_coefficients);
215 const Eigen::VectorXf &model_coefficients,
217 bool copy_data_fields =
true);
226 const Eigen::VectorXf &model_coefficients,
227 const double threshold);
238 isModelValid (
const Eigen::VectorXf &model_coefficients)
241 if (model_coefficients.size () != 4)
243 PCL_ERROR (
"[pcl::SampleConsensusModelPlane::isModelValid] Invalid number of model coefficients given (%zu)!\n", model_coefficients.size ());
255 isSampleGood (
const std::vector<int> &samples)
const;
259 #endif //#ifndef PCL_SAMPLE_CONSENSUS_MODEL_PLANE_H_