00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef IMPCONTAINER_SINGLETONS_RESTRAINT_H
00013 #define IMPCONTAINER_SINGLETONS_RESTRAINT_H
00014
00015 #include "container_config.h"
00016
00017 #include <IMP/core/internal/CoreSingletonsRestraint.h>
00018
00019 #include <iostream>
00020
00021 IMPCONTAINER_BEGIN_NAMESPACE
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 class IMPCONTAINEREXPORT SingletonsRestraint :
00037 #if defined(SWIG) || defined(IMP_DOXYGEN)
00038 public Restraint
00039 #else
00040 public core::internal::CoreSingletonsRestraint
00041 #endif
00042 {
00043 typedef core::internal::CoreSingletonsRestraint P;
00044 IMP::internal::OwnerPointer<SingletonScore> ss_;
00045 IMP::internal::OwnerPointer<SingletonContainer> pc_;
00046 mutable double score_;
00047 public:
00048
00049
00050
00051
00052
00053
00054
00055 SingletonsRestraint(SingletonScore *ss,
00056 SingletonContainer *pc,
00057 std::string name="SingletonsRestraint %1%");
00058
00059 #if defined(IMP_DOXYGEN) || defined(SWIG)
00060 IMP_INCREMENTAL_RESTRAINT(SingletonsRestraint);
00061
00062
00063 SingletonContainer* get_singleton_container() {
00064 return pc_;
00065 }
00066
00067 SingletonScore* get_singleton_score() const {
00068 return ss_;
00069 }
00070 #else
00071 IMP_OBJECT(SingletonsRestraint);
00072 #endif
00073 };
00074
00075 IMPCONTAINER_END_NAMESPACE
00076
00077 #endif