bool ConePrimitiveShape::Fit(const PointCloud &pc, float epsilon, float normalThresh, MiscLib::Vector< size_t >::const_iterator begin, MiscLib::Vector< size_t >::const_iterator end) { Cone fit = m_cone; if(fit.LeastSquaresFit(pc, begin, end)) { m_cone = fit; return true; } return false; }
PrimitiveShape *ConePrimitiveShape::LSFit(const PointCloud &pc, float epsilon, float normalThresh, MiscLib::Vector< size_t >::const_iterator begin, MiscLib::Vector< size_t >::const_iterator end, std::pair< size_t, float > *score) const { Cone fit = m_cone; if(fit.LeastSquaresFit(pc, begin, end)) { score->first = -1; return new ConePrimitiveShape(fit); } score->first = 0; return NULL; }