29 #ifndef mrpt_vision_descriptor_kdtrees_H
30 #define mrpt_vision_descriptor_kdtrees_H
77 ASSERT_(!feats.
empty() && feats[0]->descriptors.hasDescriptorSIFT())
134 ASSERT_(!feats.
empty() && feats[0]->descriptors.hasDescriptorSIFT())
169 template <
typename distance_t,
typename element_t>
179 const size_t dim=
m_feats[idx_p2]->descriptors.SIFT.
size();
180 const element_t *p2 = &
m_feats[idx_p2]->descriptors.SIFT[0];
182 for (
size_t i=0;i<dim;i++)
184 d+=(*p1-*p2)*(*p1-*p2);
191 inline element_t
kdtree_get_pt(
const size_t idx,
int dim)
const {
return m_feats[idx]->descriptors.SIFT[dim]; }
195 template <
typename distance_t,
typename element_t>
205 const size_t dim=
m_feats[idx_p2]->descriptors.SURF.
size();
206 const element_t *p2 = &
m_feats[idx_p2]->descriptors.SURF[0];
208 for (
size_t i=0;i<dim;i++)
210 d+=(*p1-*p2)*(*p1-*p2);
217 inline element_t
kdtree_get_pt(
const size_t idx,
int dim)
const {
return m_feats[idx]->descriptors.SURF[dim]; }