IMP  2.2.1
The Integrative Modeling Platform
ExampleSingletonModifier.h
Go to the documentation of this file.
1 /**
2  * \file IMP/example/ExampleSingletonModifier.h
3  * \brief A singleton modifier which wraps an attribute into a
4  * given range.
5  *
6  * Copyright 2007-2014 IMP Inventors. All rights reserved.
7  */
8 
9 #ifndef IMPEXAMPLE_EXAMPLE_SINGLETON_MODIFIER_H
10 #define IMPEXAMPLE_EXAMPLE_SINGLETON_MODIFIER_H
11 
12 #include <IMP/example/example_config.h>
13 #include <IMP/SingletonModifier.h>
15 #include <IMP/singleton_macros.h>
16 
17 IMPEXAMPLE_BEGIN_NAMESPACE
18 
19 //! An example singleton modifer
20 /** A simple singleton modifier which restrains the x,y,z
21  coordinates to a box by wrapping them.
22 
23  Such a class could be coupled with an IMP::core::SingletonRestraint
24  or IMP::core::SingletonsRestraint to keep a set of particles
25  in a box.
26 
27  \include range_restriction.py
28 
29  The source code is as follows:
30  \include ExampleRestraint.h
31  \include ExampleRestraint.cpp
32  */
33 class IMPEXAMPLEEXPORT ExampleSingletonModifier : public SingletonModifier {
35 
36  public:
38 
39  // note, Doxygen wants a semicolon at the end of macro lines
40  virtual void apply_index(kernel::Model *m, kernel::ParticleIndex p) const
41  IMP_OVERRIDE;
43  kernel::Model *m, const kernel::ParticleIndexes &pis) const IMP_OVERRIDE;
45  kernel::Model *m, const kernel::ParticleIndexes &pis) const IMP_OVERRIDE;
48 };
49 
50 IMPEXAMPLE_END_NAMESPACE
51 
52 #endif /* IMPEXAMPLE_EXAMPLE_SINGLETON_MODIFIER_H */
Import IMP/kernel/SingletonModifier.h in the namespace.
Import IMP/kernel/singleton_macros.h in the namespace.
virtual void apply_index(kernel::Model *m, kernel::ParticleIndex v) const
A base class for modifiers of kernel::ParticlesTemp.
virtual ModelObjectsTemp do_get_inputs(kernel::Model *m, const ParticleIndexes &pis) const
A bounding box in D dimensions.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
virtual ModelObjectsTemp do_get_outputs(kernel::Model *m, const ParticleIndexes &pis) const
#define IMP_SINGLETON_MODIFIER_METHODS(Name)
Class for storing model, its restraints, constraints, and particles.
Definition: kernel/Model.h:72