13 #ifndef IMPCONTAINER_PREDICATE_TRIPLETS_RESTRAINT_H
14 #define IMPCONTAINER_PREDICATE_TRIPLETS_RESTRAINT_H
16 #include <IMP/container/container_config.h>
17 #include <boost/unordered_map.hpp>
23 IMPCONTAINER_BEGIN_NAMESPACE
37 mutable boost::unordered_map<int, kernel::ParticleIndexTriplets> lists_;
38 boost::unordered_map<int, base::PointerMember<TripletScore> > scores_;
39 mutable std::size_t input_version_;
40 bool error_on_unknown_;
41 void update_lists_if_necessary()
const;
45 TripletContainerAdaptor input,
47 "PredicateTripletsRestraint %1%");
64 return lists_.find(predicate_value)->second;
74 Restraints do_create_current_decomposition() const;
77 IMPCONTAINER_END_NAMESPACE
Applies a TripletScore to each Triplet in a list based on a predicate.
Various important functionality for implementing decorators.
void set_is_complete(bool tf)
A smart pointer to a ref-counted Object that is a class member.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Import IMP/kernel/TripletPredicate.h in the namespace.
IMP::base::Vector< IMP::base::Pointer< Restraint > > Restraints
virtual void do_add_score_and_derivatives(ScoreAccumulator sa) const
Abstract predicate function.
Class for adding up scores during ScoringFunction evaluation.
A restraint is a term in an IMP ScoringFunction.
virtual ModelObjectsTemp do_get_inputs() const =0
Abstract class for scoring object(s) of type ParticleTriplet.
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
kernel::ParticleIndexTriplets get_indexes(int predicate_value) const