IMP logo
IMP Reference Guide  2.6.1
The Integrative Modeling Platform
CCDLoopClosure.h
Go to the documentation of this file.
1 /**
2  * \file IMP/kinematics/CCDLoopClosure.h
3  * \brief
4  *
5  * \authors Dina Schneidman, Yannick Spill
6  * Copyright 2007-2016 IMP Inventors. All rights reserved.
7  *
8  */
9 
10 #ifndef IMPKINEMATICS_CCD_LOOP_CLOSURE_H
11 #define IMPKINEMATICS_CCD_LOOP_CLOSURE_H
12 
13 #include "kinematics_config.h"
15 #include <IMP/algebra/Vector3D.h>
16 
17 IMPKINEMATICS_BEGIN_NAMESPACE
18 
19 /**
20  CCD loop closure
21  see Canutescu and Dunbrack, Protein Science
22 */
23 class IMPKINEMATICSEXPORT CCDLoopClosure {
24 public:
25  // F1-3 are the target points for closed loop
26  // M1-3 are the points in the model
28  const algebra::Vector3D& F1,
29  const algebra::Vector3D& F2,
30  const algebra::Vector3D& F3,
31  core::XYZ M1, core::XYZ M2, core::XYZ M3);
32 
33  bool close_loop();
34 
35  private:
36  // computes the distance between target and mobile loop anchors
37  double distance_function_S() const;
38 
39  void optimize_joint(unsigned int joint_id);
40 
41  private:
43  algebra::Vector3D F1_, F2_, F3_; // target loop anchors
44  core::XYZ M1_, M2_, M3_; // mobile version of loop anchors
45 
46 };
47 
48 IMPKINEMATICS_END_NAMESPACE
49 
50 #endif /* IMPKINEMATICS_CCD_LOOP_CLOSURE_H */
A decorator for a particle with x,y,z coordinates.
Definition: XYZ.h:30
VectorD< 3 > Vector3D
Definition: VectorD.h:395
Simple 3D vector class.
functionality for defining various revolute kinematic joints between rigid bodies as part of a kinema...