13 #ifndef IMPCONTAINER_PAIRS_CONSTRAINT_H
14 #define IMPCONTAINER_PAIRS_CONSTRAINT_H
16 #include <IMP/container/container_config.h>
21 #include <IMP/internal/ContainerConstraint.h>
22 #include <cereal/access.hpp>
23 #include <cereal/types/base_class.hpp>
25 IMPKERNEL_BEGIN_NAMESPACE
29 IMPKERNEL_END_NAMESPACE
31 IMPCONTAINER_BEGIN_NAMESPACE
42 #if defined(SWIG) || defined(IMP_DOXYGEN)
45 public IMP::internal::ContainerConstraint<
46 PairModifier, PairModifier, PairContainer>
49 typedef IMP::internal::ContainerConstraint<
52 friend class cereal::access;
53 template<
class Archive>
void serialize(Archive &ar) {
54 ar(cereal::base_class<P>(
this));
69 std::string name =
"PairsConstraint %1%")
70 : P(before, after, c, name) {}
74 #if defined(IMP_DOXYGEN) || defined(SWIG)
76 void do_update_attributes();
86 IMPCONTAINER_END_NAMESPACE
A shared container for Pairs.
Helper macros for implementing IMP Objects.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
A more IMP-like version of the std::vector.
A base class for modifiers of ParticlePairsTemp.
Implement a constraint on the Model.
#define IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
A Modifier on ParticlePairsTemp.
A base class for constraints.
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
virtual ModelObjectsTemp do_get_outputs() const =0
PairsConstraint(PairModifier *before, PairModifier *after, PairContainerAdaptor c, std::string name="PairsConstraint %1%")
Apply a PairFunction to a PairContainer to maintain an invariant.
virtual ModelObjectsTemp do_get_inputs() const =0
Class for adding derivatives from restraints to the model.