29 enum class CylinderFitterType
44 CylinderFitterType fitter_ = CylinderFitterType::HemisphereSearchFit;
47 Eigen::Vector<T, 3> baseCylinderAxis_;
50 size_t thetaResolution_ = 0;
51 size_t phiResolution_ = 0;
52 bool isMultithread_ =
true;
55 std::vector<Eigen::Vector<T, 3>> normalizedPoints_ = {};
65 Eigen::Vector <T, 6> precomputedMu_ = {};
66 Eigen::Matrix <T, 3, 3> precomputedF0_ = {};
67 Eigen::Matrix <T, 3, 6> precomputedF1_ = {};
68 Eigen::Matrix <T, 6, 6> precomputedF2_ = {};
93 T G(
const Eigen::Vector<T, 3>& W, Eigen::Vector<T, 3>& PC, T& rsqr )
const;
95 T fitCylindeHemisphereSingleThreaded( Eigen::Vector<T, 3>& PC, Eigen::Vector<T, 3>& W, T& resultedRootSquare )
const;
97 class BestHemisphereStoredData
100 T error = std::numeric_limits<T>::max();
101 T rootSquare = std::numeric_limits<T>::max();
102 Eigen::Vector<T, 3> W;
103 Eigen::Vector<T, 3> PC;
106 T fitCylindeHemisphereMultiThreaded( Eigen::Vector<T, 3>& PC, Eigen::Vector<T, 3>& W, T& resultedRootSquare )
const;
108 T SpecificAxisFit( Eigen::Vector<T, 3>& PC, Eigen::Vector<T, 3>& W, T& resultedRootSquare );