15 enum class CylinderFitterType
30 CylinderFitterType fitter_ = CylinderFitterType::HemisphereSearchFit;
33 Eigen::Vector<T, 3> baseCylinderAxis_;
36 size_t thetaResolution_ = 0;
37 size_t phiResolution_ = 0;
38 bool isMultithread_ =
true;
41 std::vector<Eigen::Vector<T, 3>> normalizedPoints_ = {};
51 Eigen::Vector <T, 6> precomputedMu_ = {};
52 Eigen::Matrix <T, 3, 3> precomputedF0_ = {};
53 Eigen::Matrix <T, 3, 6> precomputedF1_ = {};
54 Eigen::Matrix <T, 6, 6> precomputedF2_ = {};
79 T G(
const Eigen::Vector<T, 3>& W, Eigen::Vector<T, 3>& PC, T& rsqr )
const;
81 T fitCylindeHemisphereSingleThreaded( Eigen::Vector<T, 3>& PC, Eigen::Vector<T, 3>& W, T& resultedRootSquare )
const;
83 class BestHemisphereStoredData
86 T error = std::numeric_limits<T>::max();
87 T rootSquare = std::numeric_limits<T>::max();
88 Eigen::Vector<T, 3> W;
89 Eigen::Vector<T, 3> PC;
92 T fitCylindeHemisphereMultiThreaded( Eigen::Vector<T, 3>& PC, Eigen::Vector<T, 3>& W, T& resultedRootSquare )
const;
94 T SpecificAxisFit( Eigen::Vector<T, 3>& PC, Eigen::Vector<T, 3>& W, T& resultedRootSquare );