IMP logo
IMP Reference Guide  develop.fd542ac670,2020/04/03
The Integrative Modeling Platform
TripletModifier.h
Go to the documentation of this file.
1 // Autogenerated by ../../../../tmp/nightly-build-35396/imp-20200403.develop.fd542ac670/tools/build/make_containers.py
2 // from ../../../../tmp/nightly-build-35396/imp-20200403.develop.fd542ac670/tools/build/container_templates/kernel/ClassnameModifier.h
3 // Do not edit - any changes will be lost!
4 
5 /**
6  * \file IMP/TripletModifier.h
7  * \brief A Modifier on ParticleTripletsTemp
8  *
9  * Copyright 2007-2020 IMP Inventors. All rights reserved.
10  */
11 
12 #ifndef IMPKERNEL_TRIPLET_MODIFIER_H
13 #define IMPKERNEL_TRIPLET_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 ParticleTripletsTemp
24 /** The primary function of such a class is to change
25  the passed particles.
26 
27  \see IMP::TripletPredicate
28 
29  Implementers should see IMP_TRIPLET_MODIFIER(). Also see
30  TripletDerivativeModifier.
31  */
32 class IMPKERNELEXPORT TripletModifier : public ParticleInputs,
33  public ParticleOutputs,
34  public Object {
35  public:
36  typedef ParticleTriplet Argument;
38  TripletModifier(std::string name = "TripletModifier %1%");
39 
40  /** Apply the function to a single value*/
41  virtual void apply_index(Model *m, const ParticleIndexTriplet& v) const = 0;
42 
43  /** Apply the function to a collection of ParticleTripletsTemp */
44  /** If bounds are passed, only apply to ones between the upper and
45  lower bounds.*/
46  virtual void apply_indexes(Model *m, const ParticleIndexTriplets &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_TRIPLET_MODIFIER_H */
Basic types used by IMP.
virtual void apply_indexes(Model *m, const ParticleIndexTriplets &o, unsigned int lower_bound, unsigned int upper_bound) const
A class to store an fixed array of same-typed values.
Definition: Array.h:33
Base class for objects that take particle arguments and modify them.
Class for adding derivatives from restraints to the model.
Base class for objects that take particle arguments and read from them.
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
Classes used in the construction of ModelObjects.
A base class for modifiers of ParticleTripletsTemp.