00001
00002
00003
00004
00005
00006
00007 #ifndef IMPDOMINO_SIMPLE_DISCRETE_SPACE_H
00008 #define IMPDOMINO_SIMPLE_DISCRETE_SPACE_H
00009
00010 #include "domino_config.h"
00011 #include "DiscreteSampler.h"
00012 #include "DiscreteSet.h"
00013 #include <IMP/Particle.h>
00014 #include <map>
00015 #include <sstream>
00016
00017
00018 IMPDOMINO_BEGIN_NAMESPACE
00019
00020 class IMPDOMINOEXPORT SimpleDiscreteSpace : public DiscreteSet
00021 {
00022 public:
00023 static FloatKey get_optimization_key();
00024
00025 SimpleDiscreteSpace(int number_of_states): m_(new Model()){
00026 atts_.push_back(get_optimization_key());
00027 Particle * p;
00028 for (int j = 0;j < number_of_states;j++) {
00029 p = new Particle(m_);
00030 p->add_attribute(get_optimization_key(),j,true);
00031 states_.push_back(p);
00032 }
00033 }
00034
00035 ~SimpleDiscreteSpace();
00036
00037 protected:
00038 IMP::internal::OwnerPointer<Model> m_;
00039 };
00040
00041 IMPDOMINO_END_NAMESPACE
00042
00043 #endif