Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SymmetricFragmentMover.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 // :noTabs=false:tabSize=4:indentSize=4:
4 //
5 // (c) Copyright Rosetta Commons Member Institutions.
6 // (c) This file is part of the Rosetta software suite and is made available under license.
7 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
8 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
9 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
10 
11 /// @file core/fragments/FragSet.hh
12 /// @brief set of fragments
13 /// @author Oliver Lange
14 /// @date Wed Aug 22 12:08:31 2007
15 ///
16 
17 #ifndef INCLUDED_protocols_simple_moves_SymmetricFragmentMover_HH
18 #define INCLUDED_protocols_simple_moves_SymmetricFragmentMover_HH
19 
20 // Unit Headers
22 
23 // Package Headers
27 // AUTO-REMOVED #include <core/fragment/FragData.fwd.hh>
28 #include <core/fragment/FragSet.hh>
29 
30 // Project Headers
32 #include <core/pose/Pose.fwd.hh>
33 #include <protocols/moves/Mover.hh>
34 
35 // ObjexxFCL Headers
36 
37 // Utility headers
38 #include <utility/vector1.fwd.hh>
39 
40 #include <utility/vector1.hh>
41 
42 
43 namespace protocols {
44 namespace simple_moves {
45 // might want to live in protocols::moves
46 
47 ///@brief A SymmetricFragmentMover that applies uniform sampling of fragments
49 public:
50  ///@constructor
54  Size symmetric_residue
55  ) : ClassicFragmentMover( fragset, movemap, "SymmetricFragmentMover" ),
56  image_start_( symmetric_residue )
57  {};
58 
59  virtual
60  bool
62  core::fragment::Frame const& frame,
63  Size frag_num,
65  core::pose::Pose &pose
66  ) const;
67 
68 
69  virtual std::string get_name() const;
70 
71 protected:
72  ///@brief alternative Constructor to be used by derived classes
76  Size symmetric_residue,
78  ) :
79  ClassicFragmentMover( fragset, movemap, type ),
80  image_start_( symmetric_residue )
81  {}
82 
83 private:
85 };
86 
87 
88 ///@brief A SymmetricFragmentMover that applies uniform sampling of fragments
90 public:
91  ///@constructor
95  FragmentCostOP cost,
96  Size symmetric_residue
97  ) :
98  ClassicFragmentMover( fragset, movemap, "SmoothSymmetricFragmentMover" ),
99  SymmetricFragmentMover( fragset, movemap, symmetric_residue, "SmoothSymmetricFragmentMover" ),
100  SmoothFragmentMover( fragset, movemap, cost, "SmoothSymmetricFragmentMover" )
101  {}
102 
103  virtual std::string get_name() const { return "SmoothSymmetricFragmentMover"; }
104 
105 protected:
106  ///@brief alternative Constructor to be used by derived classes
110  FragmentCostOP cost,
112  Size symmetric_residue
113  ) :
114  ClassicFragmentMover( fragset, movemap, type ), //virtual base class needs to be initialized explicitly
115  SymmetricFragmentMover( fragset, movemap, symmetric_residue, type ),
116  SmoothFragmentMover( fragset, movemap, cost, type )
117  {}
118 
119  virtual
120  bool
122  core::fragment::FrameList const& fl,
123  core::pose::Pose const& p,
124  Size &frame_num,
125  Size &frag_num) const {
126  return SmoothFragmentMover::choose_fragment(fl, p, frame_num, frag_num);
127  }
128 
129 
130 private:
132 };
133 
134 
135 } //simple_moves
136 } //protocls
137 #endif