IMP  2.1.1
The Integrative Modeling Platform
TripletsConstraint.h
Go to the documentation of this file.
1 /**
2  * \file IMP/container/TripletsConstraint.h
3  * \brief Use a TripletModifier applied to a ParticleTripletsTemp to
4  * maintain an invariant
5  *
6  * WARNING This file was generated from TripletsConstraint.h
7  * in /tmp/nightly-build-61576/imp-2.1.1/tools/build/container_templates/container
8  * by tools/maintenance/setup_containers.py.
9  *
10  * Copyright 2007-2013 IMP Inventors. All rights reserved.
11  */
12 
13 #ifndef IMPCONTAINER_TRIPLETS_CONSTRAINT_H
14 #define IMPCONTAINER_TRIPLETS_CONSTRAINT_H
15 
16 #include <IMP/container/container_config.h>
17 #include <IMP/TripletContainer.h>
18 #include <IMP/TripletModifier.h>
19 #include <IMP/Constraint.h>
20 #include <IMP/base/object_macros.h>
21 #include <IMP/score_state_macros.h>
22 #include <IMP/kernel/internal/ContainerConstraint.h>
23 
24 IMPKERNEL_BEGIN_NAMESPACE
25 // for swig
26 class TripletContainer;
27 class TripletModifier;
28 IMPKERNEL_END_NAMESPACE
29 
30 IMPCONTAINER_BEGIN_NAMESPACE
31 //! Apply a TripletFunction to a TripletContainer to maintain an invariant
32 /** The score state is passed up to two TripletModifiers, one to
33  apply before evaluation and the other after. The one after
34  should take a DerivativeAccumulator as its last argument for
35  TripletModifier::apply() and will only be called if
36  the score was computed with derivatives.
37 
38  \see core::TripletConstraint
39  */
41 #if defined(SWIG) || defined(IMP_DOXYGEN)
42  public Constraint
43 #else
44  public IMP::kernel::internal::ContainerConstraint<
45  TripletModifier, TripletModifier, TripletContainer>
46 #endif
47  {
48  typedef IMP::kernel::internal::ContainerConstraint<
50 
51  public:
52  /** \param[in] c The Container to hold the elements to process
53  \param[in] before The TripletModifier to apply to all elements
54  before evaluate.
55  \param[in] after The TripletModifier to apply to all elements
56  after evaluate.
57  \param[in] name The object name
58  */
60  TripletModifier *after,
61  TripletContainerAdaptor c,
62  std::string name = "TripletConstraint %1%")
63  : P(before, after, c, name) {}
64 #if defined(IMP_DOXYGEN) || defined(SWIG)
65  protected:
66  void do_update_attributes();
67  void do_update_derivatives(DerivativeAccumulator *da);
68  virtual kernel::ModelObjectsTemp do_get_inputs() const;
69  virtual kernel::ModelObjectsTemp do_get_outputs() const;
71 #endif
72 };
73 
75 
76 IMPCONTAINER_END_NAMESPACE
77 
78 #endif /* IMPCONTAINER_TRIPLETS_CONSTRAINT_H */
A shared container for Triplets.
Class for adding derivatives from restraints to the model.
A base class for modifiers of ParticleTripletsTemp.
Import IMP/kernel/TripletContainer.h in the namespace.
IMP::kernel::TripletContainer TripletContainer
IMP::kernel::TripletModifier TripletModifier
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Import IMP/kernel/Constraint.h in the namespace.
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing sets of objects.
Apply a TripletFunction to a TripletContainer to maintain an invariant.
Import IMP/kernel/score_state_macros.h in the namespace.
Various general useful macros for IMP.
Implement a constraint on the Model.
TripletsConstraint(TripletModifier *before, TripletModifier *after, TripletContainerAdaptor c, std::string name="TripletConstraint %1%")
Import IMP/kernel/TripletModifier.h in the namespace.