38 #include <Eigen/Dense>
46 const float regStrength,
47 const std::vector<std::vector<float>>& pc_vec,
48 std::vector<float>& edgeWeight,
49 std::vector<uint32_t>& Eu,
50 std::vector<uint32_t>& Ev,
51 std::vector<uint32_t>& in_component,
52 std::vector<std::vector<uint32_t>>& components);
54 const float regStrength,
55 const std::vector<std::vector<float>>& pc_vec,
56 std::vector<float>& edgeWeight,
57 std::vector<uint32_t>& Eu,
58 std::vector<uint32_t>& Ev,
59 std::vector<uint32_t>&);
68 void min_col(std::vector<std::vector<T>>& arr, std::vector<T>&);
72 void max_col(std::vector<std::vector<T>>& arr, std::vector<T>&);
74 void mean_col(std::vector<std::vector<T>>& arr, std::vector<T>&);
84 std::vector<std::vector<T>>& vec_dec);
88 std::vector<std::vector<T>>& u_group,
89 std::vector<T>& arr_unq,
92 void unique_group(std::vector<T>& idx, std::vector<std::vector<T>>&);
95 std::vector<std::vector<T>>& u_group,
96 std::vector<T>& arr_unq);
99 std::vector<size_t>& ia,
100 std::vector<size_t>& ic);
101 template <
typename T>
103 std::vector<size_t>& idx,
104 std::vector<std::vector<T>>&);
105 template <
typename ValueType,
typename IndexType>
107 std::vector<IndexType>& idx,
108 std::vector<ValueType>&);
110 template <
typename T1,
typename T2>
111 void get_subset(
const std::vector<std::vector<T1>>& arr,
112 const std::vector<T2>& indices,
113 std::vector<std::vector<T1>>&);
114 template <
typename T1,
typename T2>
115 void get_subset(
const std::vector<std::vector<T1>>& arr,
116 const std::vector<T2>& indices,
118 template <
typename T1,
typename T2>
120 std::vector<T2>& indices,
121 std::vector<std::vector<T1>>& arr_sub);
122 template <
typename T1,
typename T2>
124 std::vector<T2>& indices,
125 std::vector<T1>& arr_sub);
129 std::vector<std::vector<uint32_t>>& res_idx,
130 std::vector<std::vector<float>>& res_dists,
135 unsigned n_thread = 0);
139 Eigen::MatrixXf& query_points,
141 std::vector<std::vector<size_t>>& res_idx,
142 std::vector<std::vector<float>>& res_dists);
146 Eigen::MatrixXf& query_points,
void unique_index_by_rows(std::vector< std::vector< T >> &arr, std::vector< size_t > &ia, std::vector< size_t > &ic)
void sort_indexes(std::vector< ValueType > &v, std::vector< IndexType > &idx, std::vector< ValueType > &)
void knn_cpp_nearest_neighbors(const std::vector< std::vector< float >> &dataset, size_t k, std::vector< std::vector< uint32_t >> &res_idx, std::vector< std::vector< float >> &res_dists, unsigned n_thread)
bool perform_cut_pursuit(const uint32_t K, const float regStrength, const std::vector< std::vector< float >> &pc_vec, std::vector< float > &edgeWeight, std::vector< uint32_t > &Eu, std::vector< uint32_t > &Ev, std::vector< uint32_t > &in_component, std::vector< std::vector< uint32_t >> &components)
void min_col(std::vector< std::vector< T >> &arr, std::vector< T > &)
T mode_col(std::vector< T > &arr)
void knn_cpp_query(knncpp::KDTreeMinkowskiX< float, knncpp::EuclideanDistance< float >> &kdtree, Eigen::MatrixXf &query_points, size_t k, std::vector< std::vector< size_t >> &res_idx, std::vector< std::vector< float >> &res_dists)
float knn_cpp_query_min_d(knncpp::KDTreeMinkowskiX< float, knncpp::EuclideanDistance< float >> &kdtree, Eigen::MatrixXf &query_points, size_t k)
T median_col(std::vector< T > &arr)
void mean_col(std::vector< std::vector< T >> &arr, std::vector< T > &)
void toTranslatedVector(const ccPointCloud *pc, std::vector< std::vector< T >> &y)
void knn_cpp_build(knncpp::KDTreeMinkowskiX< float, knncpp::EuclideanDistance< float >> &kdtree, unsigned n_thread=0)
void max_col(std::vector< std::vector< T >> &arr, std::vector< T > &)
size_t arg_max_col(std::vector< T > &arr)
void sort_indexes_by_row(std::vector< std::vector< T >> &v, std::vector< size_t > &idx, std::vector< std::vector< T >> &)
void decimate_vec(std::vector< std::vector< T >> &arr, T res, std::vector< std::vector< T >> &vec_dec)
void perform_cut_pursuit2d(const uint32_t K, const float regStrength, const std::vector< std::vector< float >> &pc_vec, std::vector< float > &edgeWeight, std::vector< uint32_t > &Eu, std::vector< uint32_t > &Ev, std::vector< uint32_t > &)
size_t arg_min_col(std::vector< T > &arr)
void unique_group(std::vector< T > &arr, std::vector< std::vector< T >> &u_group, std::vector< T > &arr_unq, std::vector< T > &ui)
void get_subset(const std::vector< std::vector< T1 >> &arr, const std::vector< T2 > &indices, std::vector< std::vector< T1 >> &)
A 3D cloud and its associated features (color, normals, scalar fields, etc.)