IMP  2.0.0
The Integrative Modeling Platform
CoverRefined.h
Go to the documentation of this file.
1 /**
2  * \file IMP/core/CoverRefined.h
3  * \brief Cover a bond with a sphere.
4  *
5  * Copyright 2007-2013 IMP Inventors. All rights reserved.
6  */
7 
8 #ifndef IMPCORE_COVER_REFINED_H
9 #define IMPCORE_COVER_REFINED_H
10 
11 #include <IMP/core/core_config.h>
12 
13 #include "XYZR.h"
14 #include <IMP/Refiner.h>
15 #include <IMP/Pointer.h>
16 #include <IMP/Decorator.h>
17 #include <IMP/SingletonModifier.h>
19 
20 
21 IMPCORE_BEGIN_NAMESPACE
22 
23 // for swig
24 class XYZR;
25 
26 /** \brief This class sets the position and radius of each particle to
27  enclose the refined.
28 
29  \see DerivativesFromRefined
30  \see DerivativesToRefined
31  \see CentroidOfRefined
32  \see atom::CoverBond
33 
34  Set the coordinates and radius of the passed particle to cover the particles
35  listed by the particle refiner.
36  An example showing a how to use such a score state to maintain a cover
37  of the atoms of a protein by a sphere per residue.
38  \htmlinclude cover_particles.py
39 
40  \note The particle passed must be an XYZR.
41  \uses{class CoverRefined, CGAL}
42  */
43 class IMPCOREEXPORT CoverRefined: public SingletonModifier
44 {
45  IMP::OwnerPointer<Refiner> refiner_;
46  Float slack_;
47 public:
48  //! Create with the given refiner and radius key
49  /** Slack is the amount added to the radius.*/
50  CoverRefined(Refiner *ref,
51  Float slack=0);
52 
53  //! Set how nmuch extra to add to the radius.
54  void set_slack(Float slack) {
55  slack_=slack;
56  }
57 
59 };
60 
61 //! A particle which covers a set of other particles.
62 /** A decorator which sets up a particle to be a cover of a
63  set of other particles. That is, the sphere defined by
64  its XYZR decorator will always contain the passed
65  particles.
66 
67  \usesconstraint
68 */
70 
71 IMPCORE_END_NAMESPACE
72 
73 #endif /* IMPCORE_COVER_REFINED_H */