2 #ifndef LSST_JOINTCAL_FAST_FINDER_H
3 #define LSST_JOINTCAL_FAST_FINDER_H
42 std::vector<std::shared_ptr<const BaseStar>>
stars;
55 std::shared_ptr<const BaseStar>
findClosest(
const Point &where,
const double maxDist,
56 bool (*SkipIt)(
const BaseStar &) =
nullptr)
const;
59 std::shared_ptr<const BaseStar>
secondClosest(
const Point &where,
const double maxDist,
60 std::shared_ptr<const BaseStar> &closest,
61 bool (*SkipIt)(
const BaseStar &) =
nullptr)
const;
96 #endif // LSST_JOINTCAL_FAST_FINDER_H
stars_element operator*() const
const FastFinder & finder
decltype(stars) typedef::const_iterator pstar
std::shared_ptr< const BaseStar > findClosest(const Point &where, const double maxDist, bool(*SkipIt)(const BaseStar &)=nullptr) const
Find the closest with some rejection capability.
std::vector< std::shared_ptr< const BaseStar > > stars
pstar locateYStart(pstar begin, pstar end, double yVal) const
Iterator(const FastFinder &f, const Point &where, double maxDist)
The base class for handling stars. Used by all matching routines.
Iterator meant to traverse objects within some limiting distance.
FastFinder(const BaseStarList &list, const unsigned nXSlice=100)
Constructor.
const BaseStarList baselist
void dump() const
mostly for debugging
This is an auxillary class for matching objects from starlists.
std::vector< unsigned > index
decltype(stars) typedef::value_type stars_element
std::shared_ptr< const BaseStar > secondClosest(const Point &where, const double maxDist, std::shared_ptr< const BaseStar > &closest, bool(*SkipIt)(const BaseStar &)=nullptr) const
pstar locateYEnd(pstar begin, pstar end, double yVal) const
void findRangeInSlice(const int iSlice, const double yStart, const double yEnd, pstar &start, pstar &end) const
Iterator beginScan(const Point &where, double maxDist) const