IMP  2.1.0
The Integrative Modeling Platform
TableRefiner.h
Go to the documentation of this file.
1 /**
2  * \file IMP/core/TableRefiner.h
3  * \brief A lookup based particle refiner
4  *
5  * Copyright 2007-2013 IMP Inventors. All rights reserved.
6  */
7 
8 #ifndef IMPCORE_TABLE_REFINER_H
9 #define IMPCORE_TABLE_REFINER_H
10 
11 #include <IMP/core/core_config.h>
12 
13 #include <IMP/Refiner.h>
14 #include <IMP/refiner_macros.h>
15 #include <IMP/base/map.h>
16 IMPCORE_BEGIN_NAMESPACE
17 
18 //! A lookup based particle refiner
19 /** Each particle is refined by returning the list
20  of particles stored for it in a table.
21  */
22 class IMPCOREEXPORT TableRefiner : public Refiner {
24 
25  public:
26  //! Initialize it with an empty table
27  TableRefiner();
28 
29  //! Add a mapping to the table
31 
32  //! Remove a mapping from the table
33  void remove_particle(kernel::Particle *p);
34 
35  //! Set the mapping for a particular particle
36  void set_particle(kernel::Particle *p, const kernel::ParticlesTemp &ps);
37 
38  virtual bool get_can_refine(kernel::Particle *) const IMP_OVERRIDE;
40  IMP_OVERRIDE;
41 #ifndef SWIG
43 #endif
45  kernel::Model *m, const kernel::ParticleIndexes &pis) const IMP_OVERRIDE;
47 };
48 
49 IMPCORE_END_NAMESPACE
50 
51 #endif /* IMPCORE_TABLE_REFINER_H */
virtual const ParticlesTemp get_refined(Particle *a) const =0
Refine the passed particle into a set of particles.
virtual bool get_can_refine(Particle *) const
Return true if this refiner can refine that particle.
Import IMP/kernel/Refiner.h in the namespace.
A lookup based particle refiner.
Definition: TableRefiner.h:22
virtual ModelObjectsTemp do_get_inputs(kernel::Model *m, const ParticleIndexes &pis) const
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Class to handle individual model particles.
Import IMP/kernel/refiner_macros.h in the namespace.
void add_particle(RMF::FileHandle fh, kernel::Particle *hs)
Abstract class to implement hierarchical methods.
Declare an efficient stl-compatible map.
Class for storing model, its restraints, constraints, and particles.