IMP logo
IMP Reference Guide  2.14.0
The Integrative Modeling Platform
CloseBipartitePairContainer.h
Go to the documentation of this file.
1 /**
2  * \file IMP/container/CloseBipartitePairContainer.h
3  * \brief Return all pairs from a SingletonContainer
4  *
5  * Copyright 2007-2020 IMP Inventors. All rights reserved.
6  */
7 
8 #ifndef IMPCONTAINER_CLOSE_BIPARTITE_PAIR_CONTAINER_H
9 #define IMPCONTAINER_CLOSE_BIPARTITE_PAIR_CONTAINER_H
10 
11 #include <IMP/container/container_config.h>
13 #include "internal/CloseBipartitePairContainer.h"
14 #include <IMP/core/internal/MovedSingletonContainer.h>
15 #include <IMP/PairContainer.h>
16 #include <IMP/PairPredicate.h>
17 #include <IMP/SingletonContainer.h>
19 #include <IMP/container_macros.h>
20 
21 IMPCONTAINER_BEGIN_NAMESPACE
22 
23 /** \brief Return all spatially-proximals pairs of particles (a,b) from the
24  two SingletonContainers A and B, where a is in A and b is in B.
25 
26  \see ClosePairContainer for a more detailed description. This
27  container lists all close pairs of particles where one particle is
28  taken from each of the input sets.
29 
30  \see also AllPairContainer, ClosePairContainer,
31  AllBipartitePairContainer for variants on the functionality provided.
32  */
33 class IMPCONTAINEREXPORT CloseBipartitePairContainer :
34 #if defined(IMP_DOXYGEN) || defined(SWIG)
35  public PairContainer
36 #else
37  public IMP::container::internal::CloseBipartitePairContainer
38 #endif
39  {
40  typedef IMP::container::internal::CloseBipartitePairContainer P;
41 
42  public:
43  //! Get the individual particles from the passed SingletonContainer
45  SingletonContainerAdaptor b, double distance,
46  double slack = 1,
47  std::string name =
48  "CloseBipartitePairContainer%1%");
49 #ifndef IMP_DOXYGEN
50  //! Get the individual particles from the passed SingletonContainer
52  SingletonContainerAdaptor b, double distance,
53  core::ClosePairsFinder *cpf, double slack = 1,
54  std::string name =
55  "CloseBipartitePairContainer%1%");
56 #endif
57 
58 #if defined(IMP_DOXYGEN) || defined(SWIG)
59 
60  /** @name Methods to control the set of filters
61 
62  PairPredicate objects can be added as filters to prevent
63  the addition of pairs to the container output list. Pairs
64  for which the predicates evaluate to a non-zero value are
65  excluded from the list.
66  */
67  /**@{*/
68  IMP_LIST_ACTION(public, PairPredicate, PairPredicates, pair_filter,
69  pair_filters, PairPredicate *, PairPredicates,
70  obj->set_was_used(true);
71  , , );
72  /**@}*/
76  void do_apply(const PairModifier *sm) const;
78 
79  private:
80  virtual std::size_t do_get_contents_hash() const IMP_OVERRIDE;
81 #endif
83 };
84 
85 IMPCONTAINER_END_NAMESPACE
86 
87 #endif /* IMPCONTAINER_CLOSE_BIPARTITE_PAIR_CONTAINER_H */
virtual ParticleIndexPairs get_range_indexes() const =0
A shared container for Pairs.
Definition: PairContainer.h:37
A base class for algorithms to find spatial proximities.
A container for Singletons.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Return all spatially-proximals pairs of particles (a,b) from the two SingletonContainers A and B...
A more IMP-like version of the std::vector.
Definition: Vector.h:39
Macros to define containers of objects.
A base class for modifiers of ParticlePairsTemp.
Definition: PairModifier.h:32
A container for Pairs.
Define PairPredicate.
Store a list of ParticleIndexPairs.
virtual ParticleIndexes get_all_possible_indexes() const =0
Get contained particles.
Abstract predicate function.
Definition: PairPredicate.h:31
A base class for algorithms to detect proximities.
virtual ParticleIndexPairs get_indexes() const =0
virtual ModelObjectsTemp do_get_inputs() const =0
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.