IMP  2.2.1
The Integrative Modeling Platform
LeavesRefiner.h
Go to the documentation of this file.
1 /**
2  * \file IMP/core/LeavesRefiner.h
3  * \brief Return the hierarchy children of a particle.
4  *
5  * Copyright 2007-2014 IMP Inventors. All rights reserved.
6  */
7 
8 #ifndef IMPCORE_LEAVES_REFINER_H
9 #define IMPCORE_LEAVES_REFINER_H
10 
11 #include <IMP/core/core_config.h>
12 #include "Hierarchy.h"
13 
14 #include <IMP/Refiner.h>
15 
16 IMPCORE_BEGIN_NAMESPACE
17 
18 class HierarchyTraits;
19 
20 //! Return the hierarchy leaves under a particle.
21 /** \ingroup hierarchy
22  \see Hierarchy
23  \see Hierarchy
24 */
25 class IMPCOREEXPORT LeavesRefiner : public Refiner {
26  HierarchyTraits traits_;
27 
28  public:
29  //! Create a refiner for a particular type of hierarchy
31 
32  virtual bool get_can_refine(kernel::Particle *) const IMP_OVERRIDE;
34  IMP_OVERRIDE;
36  kernel::Model *m, const kernel::ParticleIndexes &pis) const IMP_OVERRIDE;
37 #ifndef SWIG
39 #endif
41 };
42 
43 IMPCORE_END_NAMESPACE
44 
45 #endif /* IMPCORE_LEAVES_REFINER_H */
Decorator for helping deal with a hierarchy.
virtual const ParticlesTemp get_refined(Particle *a) const =0
Refine the passed particle into a set of particles.
Return the hierarchy leaves under a particle.
Definition: LeavesRefiner.h:25
virtual bool get_can_refine(Particle *) const
Return true if this refiner can refine that particle.
Import IMP/kernel/Refiner.h in the namespace.
virtual ModelObjectsTemp do_get_inputs(kernel::Model *m, const ParticleIndexes &pis) const
Define the type for a type of hierarchy.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Class to handle individual model particles.
Abstract class to implement hierarchical methods.
Class for storing model, its restraints, constraints, and particles.
Definition: kernel/Model.h:72