00001
00002
00003
00004
00005
00006
00007
00008 #ifndef IMPDOMINO_SIMPLE_DISCRETE_RESTRAINT_H
00009 #define IMPDOMINO_SIMPLE_DISCRETE_RESTRAINT_H
00010
00011 #include "domino_config.h"
00012
00013 #include <IMP/Model.h>
00014 #include <IMP/Restraint.h>
00015
00016 #include <string>
00017 #include <climits>
00018
00019 IMPDOMINO_BEGIN_NAMESPACE
00020
00021
00022
00023
00024 class IMPDOMINOEXPORT SimpleDiscreteRestraint : public Restraint
00025 {
00026 public:
00027
00028
00029
00030 SimpleDiscreteRestraint(Model& model_, std::string restraint_filename,
00031 Particle *p1, Particle *p2);
00032 IMP_RESTRAINT(SimpleDiscreteRestraint);
00033
00034 IMP_LIST(private, Particle, particle, Particle*, Particles);
00035 protected:
00036 void load_restraints(std::string restraint_filename);
00037 Model *model;
00038 std::pair<int, int> key;
00039 Particle *p1, *p2;
00040 std::map<std::pair<int, int>, std::map<std::pair<int, int>,
00041 float> > states2values;
00042 };
00043
00044 IMPDOMINO_END_NAMESPACE
00045
00046 #endif