From 36c2bd6209f87dc7c6f56e2c0314e19f9cab95ec Mon Sep 17 00:00:00 2001 From: Thorsten Harter Date: Thu, 10 Jan 2019 15:54:52 +0100 Subject: [PATCH] Fix regression in pcl::SACSegmentation line fitting pcl::SampleConsensusModelLine::isSampleGood should check if the two sample points differ in one coordinate, not in all of them. --- .../include/pcl/sample_consensus/impl/sac_model_line.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sample_consensus/include/pcl/sample_consensus/impl/sac_model_line.hpp b/sample_consensus/include/pcl/sample_consensus/impl/sac_model_line.hpp index 7c7fd7512a..9a8505d93c 100644 --- a/sample_consensus/include/pcl/sample_consensus/impl/sac_model_line.hpp +++ b/sample_consensus/include/pcl/sample_consensus/impl/sac_model_line.hpp @@ -49,13 +49,16 @@ template bool pcl::SampleConsensusModelLine::isSampleGood (const std::vector &samples) const { + // Make sure that the two sample points are not identical if ( (input_->points[samples[0]].x != input_->points[samples[1]].x) - && + || (input_->points[samples[0]].y != input_->points[samples[1]].y) - && + || (input_->points[samples[0]].z != input_->points[samples[1]].z)) + { return (true); + } return (false); }