Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
IndependentBBTorsionSRFD.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/fragment/IndependentBBTorsionSRFD.hh
12 /// @brief A version of BBTorsionSRFD that considers each torsion independently
13 /// during is_applicable() and apply() calls when passed a MoveMap (vs
14 /// the all-torsions-must-be-moveable-or-nothing-is behavior in the
15 /// original BBTorsionSRFD).
16 /// @author Yih-En Andrew Ban (yab@u.washington.edu)
17 
18 #ifndef INCLUDED_core_fragment_IndependentBBTorsionSRFD_hh
19 #define INCLUDED_core_fragment_IndependentBBTorsionSRFD_hh
20 
21 
22 // unit headers
24 
25 // package headers
28 
29 #include <core/types.hh>
30 
31 #include <utility/vector1.hh>
32 
33 
34 
35 namespace core {
36 namespace fragment {
37 
38 
39 /// @brief A version of BBTorsionSRFD that considers each torsion independently
40 /// during is_applicable() and apply() calls when passed a MoveMap (vs the
41 /// all-torsions-must-be-moveable-or-nothing-is behavior in the original
42 /// BBTorsionSRFD).
44 
45 
46 private: // typedefs
47 
48 
51 
52 
53 public: // typedefs
54 
55 
56  typedef core::Size Size;
59 
60 
61 public: // construct/destruct
62 
63 
64  /// @brief default constructor
66 
67 
68  /// @brief constructor
69  /// @param[in] n_bbtorsions Number of backbone torsions.
70  /// @param[in] secstruct The single character secondary structure type.
71  /// @param[in] sequence The single character sequence type.
73  Size const n_bbtorsions,
74  char const secstruct,
75  char const sequence
76  );
77 
78 
79  /// @brief copy constructor
81 
82 
83  /// @brief default destructor
84  virtual
86 
87 
88 public: // assignment
89 
90 
91  /// @brief copy assignment
93 
94 
95 public: // virtual constructors
96 
97 
98  /// @brief clone this object
99  virtual
101 
102 
103  /// @brief create a new instance of this object
104  virtual
106 
107 
108 public: // methods
109 
110 
111  /// @brief apply only torsions in this fragment marked as moveable in the given
112  /// MoveMap
113  /// @param[in] movemap Check for moveable torsions in this MoveMap.
114  /// @param[in,out] pose The Pose to modify.
115  /// @param[in] seqpos Insert at this sequence position.
116  /// @return True if at least one torsion inserted and second level superclass
117  /// <tt>SecstructSRFD::apply()</tt> succeeded, otherwise false.
118  virtual
119  bool apply(
120  MoveMap const & movemap,
121  Pose & pose,
122  Size const seqpos
123  ) const;
124 
125 
126  /// @brief is at least one torsion marked as moveable in the given MoveMap?
127  /// @param[in] movemap Check for moveable torsions in this MoveMap.
128  /// @param[in] seqpos Check at this sequence position.
129  /// @return True if at least one torsion moveable and second level superclass
130  /// <tt>SecstructSRFD::is_applicable()</tt>, otherwise False.
131  virtual
132  bool is_applicable(
133  MoveMap const & movemap,
134  Size seqpos
135  ) const;
136 
137 
138 };
139 
140 
141 } // namespace fragment
142 } // namespace core
143 
144 
145 #endif /* INCLUDED_core_fragment_IndependentBBTorsionSRFD_HH */