00001
00002
00003
00004
00005
00006
00007 #ifndef IMPDOMINO_TRANSFORMATION_UTILS_H
00008 #define IMPDOMINO_TRANSFORMATION_UTILS_H
00009 #include <IMP/algebra/Transformation3D.h>
00010 #include <IMP/domino/Transformation.h>
00011 #include "IMP/Particle.h"
00012 #include "IMP/base_types.h"
00013 #include "IMP/domino/CombState.h"
00014 #include <IMP/core/rigid_bodies.h>
00015
00016 IMPDOMINO_BEGIN_NAMESPACE
00017 class IMPDOMINOEXPORT TransformationUtils {
00018 public:
00019 TransformationUtils(){}
00020
00021
00022
00023
00024
00025
00026
00027 TransformationUtils(const Particles &ps,bool trans_from_orig = false);
00028
00029
00030
00031
00032
00033
00034
00035 void move2state(Particle *p_sample, Particle *p_trans);
00036 protected:
00037
00038 void apply(core::RigidBody *p , const algebra::Transformation3D &t);
00039 bool go_back_;
00040 std::map<Particle *,algebra::Transformation3D> starting_transform_;
00041 };
00042 IMPDOMINO_END_NAMESPACE
00043 #endif