A base class for algorithms to find spatial proximities.
In general, the algorithm should make sure it returns all pairs of appropriate objects which are within the distance of one another (including their radius). They are free to return more if it is convenient, but this is not recommended as the list can easily become very large.
Inheritance diagram for IMP::core::ClosePairsFinder:Public Member Functions | |
| ClosePairsFinder (std::string name) | |
Public Member Functions inherited from IMP::base::Object | |
| std::size_t | __hash__ () const |
| virtual std::string | get_type_name () const =0 |
| Return a string identifying the type of the object. | |
| virtual IMP::base::VersionInfo | get_version_info () const =0 |
| Get information about the module and version of the object. | |
| void | set_check_level (CheckLevel l) |
| void | set_log_level (LogLevel l) |
| Set the logging level used in this object. | |
| void | set_was_used (bool tf) const |
| void | show (std::ostream &out=std::cout) const |
| const std::string & | get_name () const |
| void | set_name (std::string name) |
Methods to find close pairs | |
The methods add appropriately close pairs of particles from the input list (or lists, for the bipartite version) to the out list. The ones that take bounding boxes return pairs of ints indexing the input list(s). | |
| virtual ParticlePairsTemp | get_close_pairs (const ParticlesTemp &pc) const =0 |
| virtual ParticlePairsTemp | get_close_pairs (const ParticlesTemp &pca, const ParticlesTemp &pcb) const =0 |
| virtual ParticleIndexPairs | get_close_pairs (Model *m, const ParticleIndexes &pc) const |
| virtual ParticleIndexPairs | get_close_pairs (Model *m, const ParticleIndexes &pca, const ParticleIndexes &pcb) const |
| virtual IntPairs | get_close_pairs (const algebra::BoundingBox3Ds &bbs) const =0 |
| virtual IntPairs | get_close_pairs (const algebra::BoundingBox3Ds &bas, const algebra::BoundingBox3Ds &bbs) const =0 |
The distance threshold | |
All pairs within this distance threshold are added to the output list. | |
| virtual void | set_distance (double d) |
| double | get_distance () const |
Used particles | |
Return all the particles touched in processing the passed ones. | |
| virtual ParticlesTemp | get_input_particles (const ParticlesTemp &ps) const =0 |
| virtual ContainersTemp | get_input_containers (const ParticlesTemp &ps) const =0 |
Methods to control the set of filters | |
PairPredicates objects can be used as filters to prevent the addition of pairs to the containeroutput list. Pairs for which the predicate evaluates to a non-zero value are excluded. | |
| void | remove_pair_filter (PairPredicate *d) |
| template<class F > | |
| void | remove_pair_filters_if (const F &f) |
| template<class List > | |
| void | remove_pair_filters (List d) |
| template<class List > | |
| void | set_pair_filters (List ps) |
| template<class List > | |
| void | set_pair_filters_order (List ps) |
| unsigned int | add_pair_filter (PairPredicate *obj) |
| template<class List > | |
| void | add_pair_filters (List objs) |
| void | clear_pair_filters () |
| unsigned int | get_number_of_pair_filters () const |
| bool | get_has_pair_filters () const |
| PairPredicate * | get_pair_filter (unsigned int i) const |
| PairPredicates | get_pair_filters () const |
| void | reserve_pair_filters (unsigned int sz) |
| PairFilterIterator | pair_filters_begin () |
| PairFilterIterator | pair_filters_end () |
| PairFilterConstIterator | pair_filters_begin () const |
| PairFilterConstIterator | pair_filters_end () const |
Additional Inherited Members | |
Protected Member Functions inherited from IMP::base::Object | |
| Object (std::string name) | |