13 #ifndef IMPCONTAINER_TRIPLETS_CONSTRAINT_H
14 #define IMPCONTAINER_TRIPLETS_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
27 class TripletContainer;
28 class TripletModifier;
29 IMPKERNEL_END_NAMESPACE
31 IMPCONTAINER_BEGIN_NAMESPACE
42 #if defined(SWIG) || defined(IMP_DOXYGEN)
45 public IMP::internal::ContainerConstraint<
46 TripletModifier, TripletModifier, TripletContainer>
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 =
"TripletsConstraint %1%")
70 : P(before, after, c, name) {}
74 #if defined(IMP_DOXYGEN) || defined(SWIG)
76 void do_update_attributes();
86 IMPCONTAINER_END_NAMESPACE
Helper macros for implementing IMP Objects.
TripletsConstraint(TripletModifier *before, TripletModifier *after, TripletContainerAdaptor c, std::string name="TripletsConstraint %1%")
A container for Triplets.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
A more IMP-like version of the std::vector.
Implement a constraint on the Model.
#define IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
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
Apply a TripletFunction to a TripletContainer to maintain an invariant.
A base class for modifiers of ParticleTripletsTemp.
A shared container for Triplets.
A Modifier on ParticleTripletsTemp.
virtual ModelObjectsTemp do_get_inputs() const =0
Class for adding derivatives from restraints to the model.