5#ifndef OBJECT_MATCHING_H
6#define OBJECT_MATCHING_H
31 template <
typename T,
typename U>
39 template <
typename T,
typename U>
49 template <
typename T,
typename U>
52 const std::vector<const T*> &targetObjects,
58 template <
typename T,
typename U>
61 const std::vector<const T*> &targetObjects,
62 float maxDistance = 0.1)
const;
65 template <
typename T,
typename U>
72 template <
typename T,
typename U>
76 float maxDistance = 0.1)
const;
78 template <
typename T,
typename U>
81 const std::vector<const T*> &targetObjects,
85 template <
typename T,
typename U>
88 const std::vector<const T*> &targetObjects,
89 float maxDistance)
const;
98 template <
typename T,
typename U>
100 const U *matchObject,
101 const std::vector<const T*> &targetObjects,
107 template <
typename T,
typename U>
109 const U *matchObject,
110 const std::vector<const T*> &targetObjects,
111 float maxDistance = 0.1)
const;
114 template <
typename T,
typename U>
116 const U *matchObject,
121 template <
typename T,
typename U>
123 const U *matchObject,
125 float maxDistance = 0.1)
const;
130 template <
typename T,
typename U>
137 template <
typename T,
typename U>
An STL vector of pointers that by default owns its pointed-to elements.
DistanceCompare(const U *baseObject, const DistanceFunctor< T, U > *m)
virtual bool operator()(const T *x, const T *y)
const DistanceFunctor< T, U > * m_metric
bool anyMatch(const U *matchObject, const std::vector< const T * > &targetObjects, float maxDistance, const DistanceFunctor< T, U > *metric) const
const DistanceFunctor< T, U > * prepareMetric() const
bool anyMatch(const U *matchObject, const std::vector< const T * > &targetObjects, float maxDistance) const
std::vector< const T * > matchToObjects(const U *matchObject, const std::vector< const T * > &targetObjects, float maxDistance, const DistanceFunctor< T, U > *metric) const
matchToObjects returns the objects of type T from the supplied vector that match to matchObject,...
std::vector< const T * > matchToObjects(const U *matchObject, const DataVector< T > &targetObjects, float maxDistance, const DistanceFunctor< T, U > *metric) const
const T * matchToObject(const U *matchObject, const DataVector< T > &targetObjects, float maxDistance=0.1) const
std::vector< const T * > matchToObjects(const U *matchObject, const DataVector< T > &targetObjects, float maxDistance=0.1) const
float distance(const T *t, const U *u, const DistanceFunctor< T, U > *metric) const
distance returns the distance between the two supplied objects using metric, if available,...
const T * matchToObject(const U *matchObject, const std::vector< const T * > &targetObjects, float maxDistance, const DistanceFunctor< T, U > *metric) const
matchToObject returns the object of type T from the suppled vector that best matches matchObject acco...
virtual ~ObjectMatching()
float distance(const T *t, const U *u) const
const T * matchToObject(const U *matchObject, const std::vector< const T * > &targetObjects, float maxDistance=0.1) const
const T * matchToObject(const U *matchObject, const DataVector< T > &targetObjects, float maxDistance, const DistanceFunctor< T, U > *metric) const
std::vector< const T * > matchToObjects(const U *matchObject, const std::vector< const T * > &targetObjects, float maxDistance=0.1) const
Workaround x86 precision issues for FP inequality comparisons.
bool less(double a, double b)
Compare two FP numbers, working around x87 precision issues.