IMP logo
IMP Reference Guide  develop.98ef8da184,2024/04/23
The Integrative Modeling Platform
InternalCoordinatesConstraint.h
Go to the documentation of this file.
1 /**
2  * \file IMP/pmi1/InternalCoordinatesConstraint.h
3  * \brief A modifier that enforce identical internal coordinates for NonRigidMembers.
4  *
5  * Copyright 2007-2018 IMP Inventors. All rights reserved.
6  */
7 
8 #ifndef IMPPMI1_INTERNAL_COORDINATES_CONSTRAINT_H
9 #define IMPPMI1_INTERNAL_COORDINATES_CONSTRAINT_H
10 
11 #include <IMP/pmi1/pmi1_config.h>
12 #include <IMP/SingletonModifier.h>
13 #include <IMP/singleton_macros.h>
14 
15 IMPPMI1_BEGIN_NAMESPACE
16 
17 //! An example singleton modifier
18 /** A simple singleton modifier which ensures the x,y,z coordinates
19  stay in a box by wrapping them.
20 
21  Such a class could be coupled with an IMP::core::SingletonConstraint
22  or IMP::container::SingletonsConstraint to keep a set of particles
23  in a box.
24 
25  \include range_restrictionExampleSingletonModifier.py
26 
27  The source code is as follows:
28  \include InternalCoordinatesConstraint.h
29  \include InternalCoordinatesConstraint.cpp
30  */
31 class IMPPMI1EXPORT InternalCoordinatesConstraint : public SingletonModifier {
32 
33  public:
35 
36  // note, Doxygen wants a semicolon at the end of macro lines
37  virtual void apply_index(Model *m, ParticleIndex p) const override;
39  Model *m, const ParticleIndexes &pis) const override;
41  Model *m, const ParticleIndexes &pis) const override;
44 };
45 
46 IMPPMI1_END_NAMESPACE
47 
48 #endif /* IMPPMI1_INTERNAL_COORDINATES_CONSTRAINT_H */
A base class for modifiers of ParticlesTemp.
A Modifier on ParticlesTemp.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Macros for various classes.
virtual ModelObjectsTemp do_get_outputs(Model *m, const ParticleIndexes &pis) const =0
Overload this method to specify the outputs.
A more IMP-like version of the std::vector.
Definition: Vector.h:50
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:86
#define IMP_SINGLETON_MODIFIER_METHODS(Name)
virtual ModelObjectsTemp do_get_inputs(Model *m, const ParticleIndexes &pis) const =0
Overload this method to specify the inputs.
virtual void apply_index(Model *m, ParticleIndex v) const =0