18 enum class CylinderFitterType
33 CylinderFitterType fitter_ = CylinderFitterType::HemisphereSearchFit;
36 Eigen::Vector<T, 3> baseCylinderAxis_;
39 size_t thetaResolution_ = 0;
40 size_t phiResolution_ = 0;
41 bool isMultithread_ =
true;
44 std::vector<Eigen::Vector<T, 3>> normalizedPoints_ = {};
54 Eigen::Vector <T, 6> precomputedMu_ = {};
55 Eigen::Matrix <T, 3, 3> precomputedF0_ = {};
56 Eigen::Matrix <T, 3, 6> precomputedF1_ = {};
57 Eigen::Matrix <T, 6, 6> precomputedF2_ = {};
82 T G(
const Eigen::Vector<T, 3>& W, Eigen::Vector<T, 3>& PC, T& rsqr )
const;
84 T fitCylindeHemisphereSingleThreaded( Eigen::Vector<T, 3>& PC, Eigen::Vector<T, 3>& W, T& resultedRootSquare )
const;
86 class BestHemisphereStoredData
89 T
error = std::numeric_limits<T>::max();
91 Eigen::Vector<T, 3>
W;
92 Eigen::Vector<T, 3>
PC;
95 T fitCylindeHemisphereMultiThreaded( Eigen::Vector<T, 3>& PC, Eigen::Vector<T, 3>& W, T& resultedRootSquare )
const;
97 T SpecificAxisFit( Eigen::Vector<T, 3>& PC, Eigen::Vector<T, 3>& W, T& resultedRootSquare );