IMP
2.0.0
The Integrative Modeling Platform
|
Peform more efficient close pair finding when rigid bodies are involved. More...
#include <IMP/core/RigidClosePairsFinder.h>
Public Member Functions | |
RigidClosePairsFinder (ClosePairsFinder *cpf=nullptr) | |
ParticlePairsTemp | get_close_pairs (Particle *a, Particle *b, const ParticleIndexes &pa, const ParticleIndexes &pb) const |
void | set_distance (double d) |
Public Member Functions inherited from IMP::core::ClosePairsFinder | |
ClosePairsFinder (std::string name) | |
ContainersTemp | get_input_containers (const ParticlesTemp &ps) const |
ContainersTemp | get_input_containers (Particle *p) const |
ParticlesTemp | get_input_particles (const ParticlesTemp &ps) const |
ParticlesTemp | get_input_particles (Particle *p) const |
ModelObjectsTemp | get_inputs (Model *m, const ParticleIndexes &pis) const |
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 |
double | get_distance () const |
void | remove_pair_filter (PairPredicate *d) |
void | remove_pair_filters (const PairPredicates &d) |
void | set_pair_filters (const PairPredicates &ps) |
void | set_pair_filters_order (const PairPredicates &objs) |
unsigned int | add_pair_filter (PairPredicate *obj) |
void | add_pair_filters (const PairPredicates &objs) |
void | clear_pair_filters () |
unsigned int | get_number_of_pair_filters () const |
bool | get_has_pair_filters () |
PairPredicate * | get_pair_filter (unsigned int i) const |
PairPredicates | get_pair_filters () const |
void | reserve_pair_filters (unsigned int sz) |
Public Member Functions inherited from IMP::base::Object | |
virtual void | clear_caches () |
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. More... | |
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) |
Additional Inherited Members | |
Protected Member Functions inherited from IMP::core::ClosePairsFinder | |
virtual ModelObjectsTemp | do_get_inputs (Model *m, const ParticleIndexes &pis) const =0 |
Related Functions inherited from IMP::base::Object | |
typedef IMP::base::Vector < IMP::base::WeakPointer < Object > > | ObjectsTemp |
The class finds all close pairs consisting of particles taken from the passed list(s) (if they are not rigid bodies) or members of rigid bodies passed as input. That is, given an input list l
, for each pair of particles p
, q
taken from the list, that are closer than the distance threshold, it returns
p
or q
are RigidBody particles it returns (p
,q
)p
and q
are RigidBody particles, it returns all
(r
,s
) where r
is a member of p
and s
is member of q
and r
and s
are closer than the distance threshold
(p
,s
) or
(r
,q
) as appropriate if only one of p
or q
is a rigid body.Consequently, the user must ensure that the RigidBody are assigned a radius that encloses all of their RigidMember particles.
It uses another ClosePairsFinder to find which pairs of particles in the input list or lists are close. Your choice of this can be passed to the constructor.
The class RigidClosePairsFinder uses CGAL in order to improve its functionality. It will fall back on less good code without it.
Definition at line 62 of file RigidClosePairsFinder.h.