#ifndef TIMESTAMPED_OBJECT_INDEXER_H #define TIMESTAMPED_OBJECT_INDEXER_H //#include #include template class TimestampedObjectIndexer { public: TimestampedObjectIndexer(double tol, const std::vector& timestamps, const std::vector& objects); //! Returns all Ts that are within tol_ of timestamp. std::vector query(double timestamp) const; private: //! Bin width. double tol_; double min_; double max_; std::vector< std::pair > index_; std::vector< std::vector< std::pair > > bins_; size_t max_num_objects_in_bin_; void getBinContents(double timestamp, std::vector* objects) const; void buildIndex(const std::vector& timestamps, const std::vector& objects); size_t timestampToBin(double timestamp) const; }; #endif // TIMESTAMPED_OBJECT_INDEXER_H