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 conventient, but this is not recommended as the list can easily become very large.
CloseBipartitlePairsScoreState
Public Member Functions | |
ClosePairsFinder (std::string name) | |
virtual internal::MovedSingletonContainer * | get_moved_singleton_container (SingletonContainer *in, Model *m, double threshold) const |
Return a container which lists all particles which moved more than threshold. | |
Methods to find close pairs | |
The methods add apprioriately close pairs of particles from the input list (or lists, for the bipartite version) to the out list. | |
virtual ParticlePairsTemp | get_close_pairs (SingletonContainer *pca, SingletonContainer *pcb) const =0 |
virtual ParticlePairsTemp | get_close_pairs (SingletonContainer *pc) const =0 |
The distance threshold | |
All pairs within this distance threshold are added to the output list. | |
double | get_distance () const |
virtual void | set_distance (double d) |
Used particles | |
Return all the particles touched in processing the passed ones. | |
virtual ContainersTemp | get_input_containers (SingletonContainer *a, SingletonContainer *b) const =0 |
virtual ContainersTemp | get_input_containers (SingletonContainer *pc) const =0 |
virtual ParticlesTemp | get_input_particles (SingletonContainer *a, SingletonContainer *b) const =0 |
virtual ParticlesTemp | get_input_particles (SingletonContainer *pc) const =0 |
Protected Member Functions | |
Float | get_radius (Particle *p) const |
Get the radius if get_radius_key() is non-default, otherwise 0. |