IMP  2.0.1
The Integrative Modeling Platform
close_pairs_finder_macros.h
Go to the documentation of this file.
1 /**
2  * \file IMP/core/close_pairs_finder_macros.h
3  * \brief Various important macros
4  * for implementing decorators.
5  *
6  * Copyright 2007-2013 IMP Inventors. All rights reserved.
7  *
8  */
9 
10 #ifndef IMPCORE_CLOSE_PAIRS_FINDER_MACROS_H
11 #define IMPCORE_CLOSE_PAIRS_FINDER_MACROS_H
12 
13 #include "ClosePairsFinder.h"
15 #include <IMP/base/object_macros.h>
16 
17 
18 // various installs of doxygen get messed up with this macro, so hide it
19 #ifdef IMP_DOXYGEN
20 /** Helper macro for implementing
21  IMP::core::ClosePairsFinder objects. In addition to the
22  IMP_OBJECT methods it declares:
23  - IMP::core::get_close_pairs()
24 */
25 #define IMP_CLOSE_PAIRS_FINDER(Name)
26 #else
27 #define IMP_CLOSE_PAIRS_FINDER(Name) \
28  IMP_IMPLEMENT(ParticlePairsTemp get_close_pairs(const ParticlesTemp \
29  &pa) const); \
30  IMP_IMPLEMENT(ParticlePairsTemp get_close_pairs(const ParticlesTemp &pa, \
31  const ParticlesTemp &pb) \
32  const); \
33  IMP_IMPLEMENT(IntPairs get_close_pairs(const algebra::BoundingBox3Ds &bbs) \
34  const); \
35  IMP_IMPLEMENT(IntPairs get_close_pairs(const algebra::BoundingBox3Ds &bas, \
36  const algebra::BoundingBox3Ds &bbs)\
37  const); \
38  using ClosePairsFinder::get_close_pairs; \
39  IMP_IMPLEMENT(ModelObjectsTemp \
40  do_get_inputs(Model *m, \
41  const ParticleIndexes &pis) const); \
42  IMP_OBJECT(Name)
43 #endif
44 
45 #endif /* IMPCORE_CLOSE_PAIRS_FINDER_MACROS_H */