2 #ifndef LSST_JOINTCAL_FAST_FINDER_H 3 #define LSST_JOINTCAL_FAST_FINDER_H 42 std::vector<std::shared_ptr<const BaseStar>>
stars;
48 typedef decltype(stars)::const_iterator
pstar;
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
const FastFinder & finder
decltype(stars) typedef ::const_iterator pstar
std::vector< std::shared_ptr< const BaseStar > > stars
Iterator(const FastFinder &f, const Point &where, double maxDist)
void dump() const
mostly for debugging
pstar locateYEnd(pstar begin, pstar end, double yVal) const
The base class for handling stars. Used by all matching routines.
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.
Class for a simple mapping implementing a generic Gtransfo.
Iterator beginScan(const Point &where, double maxDist) const
Iterator meant to traverse objects within some limiting distance.
FastFinder(const BaseStarList &list, const unsigned nXSlice=100)
Constructor.
pstar locateYStart(pstar begin, pstar end, double yVal) const
void findRangeInSlice(const int iSlice, const double yStart, const double yEnd, pstar &start, pstar &end) const
const BaseStarList baselist
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
stars_element operator*() const