Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RotateJumpAxisMover.hh
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 
10 /// @file /protocols/rigid/RotateJumpAxisMover.hh
11 /// @brief RotateJumpAxisMover header
12 /// @author Steven Lewis
13 
14 #ifndef INCLUDED_protocols_rigid_RotateJumpAxisMover_hh
15 #define INCLUDED_protocols_rigid_RotateJumpAxisMover_hh
16 
17 // Unit Headers
19 
20 // Project Headers
21 #include <core/pose/Pose.fwd.hh>
22 #include <protocols/moves/Mover.hh>
23 
24 // Utility Headers
25 #include <core/types.hh>
26 
27 #include <utility/vector1.hh>
28 
29 
30 namespace protocols {
31 namespace rigid {
32 
33 ///@details This mover rotates a jump transform. Its original use was to rotate a freely rotateable zinc-histidine bond as emulated by an atom-to-atom fixed-length jump. It recalculates the Stubs for the jump and applies the new jump, resulting in an N degree rotation of one partner about the axis between the histidine nitrogen and the zinc. It will work for any jump but is intended for atom-atom jumps (not residue-residue jumps). It will choose an angle from the uniform random distribution bounded by inputs (defaults to (-180,180]); if you want a particular value then set the limits equal.
35 
36 public:
37 
38  ///@brief constructor for random distribution (just needs rb_jump_num)
39  RotateJumpAxisMover( core::Size const rb_jump_num );
40 
41  ///@brief constructor for range - these angles are in degrees, not radians!
42  RotateJumpAxisMover( core::Size const rb_jump_num, core::Angle const upper, core::Angle const lower );
43 
44  ///@brief constructor for single value - these angles are in degrees, not radians!
45  RotateJumpAxisMover( core::Size const rb_jump_num, core::Angle const angle );
46 
47  virtual ~RotateJumpAxisMover();
48 
49  virtual void apply( core::pose::Pose & pose );
50  virtual std::string get_name() const;
51 
52 private:
54 
56  core::Angle const upper_angle_; //these angles are in degrees, not radians!
57  core::Angle const lower_angle_; //these angles are in degrees, not radians!
58 
59 };//end RotateJumpAxisMover
60 
61 }//namespace rigid
62 }//namespace protocols
63 
64 #endif // INCLUDED_protocols_rigid_RotateJumpAxisMover_HH