IMP logo
IMP Reference Guide  2.6.2
The Integrative Modeling Platform
QuadModifier.h
Go to the documentation of this file.
1 // Autogenerated by ../../../../tmp/nightly-build-86896/imp-2.6.2/tools/build/make_containers.py
2 // from ../../../../tmp/nightly-build-86896/imp-2.6.2/tools/build/container_templates/kernel/ClassnameModifier.h
3 // Do not edit - any changes will be lost!
4 
5 /**
6  * \file IMP/QuadModifier.h
7  * \brief A Modifier on ParticleQuadsTemp
8  *
9  * Copyright 2007-2016 IMP Inventors. All rights reserved.
10  */
11 
12 #ifndef IMPKERNEL_QUAD_MODIFIER_H
13 #define IMPKERNEL_QUAD_MODIFIER_H
14 
15 #include <IMP/kernel_config.h>
16 #include "DerivativeAccumulator.h"
17 #include "base_types.h"
18 #include "internal/container_helpers.h"
19 #include "model_object_helpers.h"
20 
21 IMPKERNEL_BEGIN_NAMESPACE
22 
23 //! A base class for modifiers of ParticleQuadsTemp
24 /** The primary function of such a class is to change
25  the passed particles.
26 
27  \see IMP::QuadPredicate
28 
29  Implementers should see IMP_QUAD_MODIFIER(). Also see
30  QuadDerivativeModifier.
31  */
32 class IMPKERNELEXPORT QuadModifier : public ParticleInputs,
33  public ParticleOutputs,
34  public Object {
35  public:
36  typedef ParticleQuad Argument;
38  QuadModifier(std::string name = "QuadModifier %1%");
39 
40  /** Apply the function to a single value*/
41  virtual void apply_index(Model *m, const ParticleIndexQuad& v) const = 0;
42 
43  /** Apply the function to a collection of ParticleQuadsTemp */
44  /** If bounds are passed, only apply to ones between the upper and
45  lower bounds.*/
46  virtual void apply_indexes(Model *m, const ParticleIndexQuads &o,
47  unsigned int lower_bound,
48  unsigned int upper_bound) const {
49  for (unsigned int i = lower_bound; i < upper_bound; ++i) {
50  apply_index(m, o[i]);
51  }
52  }
53 };
54 
55 IMPKERNEL_END_NAMESPACE
56 
57 #endif /* IMPKERNEL_QUAD_MODIFIER_H */
Basic types used by IMP.
A class to store an fixed array of same-typed values.
Definition: Array.h:33
virtual void apply_indexes(Model *m, const ParticleIndexQuads &o, unsigned int lower_bound, unsigned int upper_bound) const
Definition: QuadModifier.h:46
Class for adding derivatives from restraints to the model.
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:72
Common base class for heavy weight IMP objects.
Definition: Object.h:106
Single variable function.
A base class for modifiers of ParticleQuadsTemp.
Definition: QuadModifier.h:32