IMP logo
Public Member Functions
IMP::core::ClosePairsFinder Class Reference

Detailed Description

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.

See also:
ClosePairContainer
CloseBipartitePairContainer
+ Inheritance diagram for IMP::core::ClosePairsFinder:

List of all members.

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
PairPredicateget_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)

The documentation for this class was generated from the following file:

Generated on Tue May 22 2012 23:33:30 for IMP by doxygen 1.8.1