Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RestrictToInterface.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 RestrictToInterface.hh
11 /// @brief When passed to a PackerTask, pack/design is limited to the interface
12 /// @author ashworth
13 
14 #ifndef INCLUDED_protocols_toolbox_task_operations_RestrictToInterface_hh
15 #define INCLUDED_protocols_toolbox_task_operations_RestrictToInterface_hh
16 
20 
21 // for parsing
22 #include <utility/tag/Tag.fwd.hh>
23 #include <utility/vector1.hh>
24 
25 //#include <core/conformation/Interface.hh>
26 #include <core/types.hh>
28 #include <core/pose/Pose.fwd.hh>
29 // AUTO-REMOVED #include <core/scoring/ScoreFunction.fwd.hh>
30 
31 #include <utility/tools/make_vector1.hh>
32 
33 #include <ObjexxFCL/FArray1D.hh>
34 
35 namespace protocols {
36 namespace toolbox {
37 namespace task_operations {
38 
39 //class RestrictTaskForDocking : public core::pack::task::operation::TaskOperation
40 //{
41 //public:
42 // typedef core::pack::task::operation::TaskOperation TaskOperation;
43 // typedef core::pack::task::operation::TaskOperationOP TaskOperationOP;
44 // typedef TaskOperation parent;
45 //public:
46 // RestrictTaskForDocking();
47 //
48 // RestrictTaskForDocking( core::scoring::ScoreFunctionCOP scorefxn, core::Size rb_jump, bool include_current, core::Real distance_ = 8 );
49 //
50 // virtual ~RestrictTaskForDocking();
51 //
52 // virtual TaskOperationOP clone() const;
53 //
54 // virtual void apply( core::pose::Pose const & pose, core::pack::task::PackerTask & task ) const;
55 //
56 //private:
57 // core::scoring::ScoreFunctionCOP scorefxn_;
58 // core::Size rb_jump_;
59 // bool include_current_;
60 // core::Real distance_;
61 //};
62 
64 {
65 public:
69 public:
71  DockingNoRepack1( int rb_jump_in );
72 
73  virtual ~DockingNoRepack1();
74 
75  virtual TaskOperationOP clone() const;
76 
77  virtual void apply( core::pose::Pose const & pose, core::pack::task::PackerTask & task ) const;
78 
79 private:
80  int rb_jump_;
81 
82 };
83 
85 {
86 public:
90 public:
92  DockingNoRepack2( int rb_jump_in );
93 
94  virtual ~DockingNoRepack2();
95 
96  virtual TaskOperationOP clone() const;
97 
98  virtual void apply( core::pose::Pose const & pose, core::pack::task::PackerTask & task ) const;
99 
100 private:
101  int rb_jump_;
102 
103 };
104 
106 {
107 public:
111 public:
113  {
114  set_movable_jumps( utility::tools::make_vector1< int >( 1 ) );
115  }
116 
117  RestrictToInterface( int rb_jump_in, core::Real distance_in = 8 ) :
118  parent(), distance_ ( distance_in ), loopy_interface_( false ) {
119  set_movable_jumps( utility::tools::make_vector1< int >( rb_jump_in ) );
120  }
121 
122  ///@brief Constructor with arguments for multiple jumps
123  RestrictToInterface( utility::vector1_int rb_jump_in, core::Real distance_in
124  = 8 ) : parent(), distance_ ( distance_in ), loopy_interface_( false ) {
125  set_movable_jumps( rb_jump_in );
126  }
127 
128  RestrictToInterface( utility::vector1_int rb_jump_in,
129  ObjexxFCL::FArray1D_bool loop_residues ) : parent(), distance_( 8 ),
130  loopy_interface_( true ) {
131  loop_residues_ = loop_residues;
132  set_movable_jumps( rb_jump_in );
133  }
134 
135  RestrictToInterface( ObjexxFCL::FArray1D_bool loop_residues ) :
136  parent(), distance_( 8 ), loopy_interface_( true ) {
137  loop_residues_ = loop_residues;
138  }
139 
141 
142 
143  virtual ~RestrictToInterface();
144 
145  void add_jump( int rb_jump_in ) {
146  add_movable_jump( rb_jump_in );
147  }
148 
149  virtual TaskOperationOP clone() const;
150  void rb_jump( int jump_in );
151  //void set_movable_jumps( utility::vector1_int const movable_jumps );
152  void distance( core::Real const distance_in );
153  void symmetric_task( core::pose::Pose const & pose, core::pack::task::PackerTask & task ) const;
154 
155  virtual void apply( core::pose::Pose const & pose, core::pack::task::PackerTask & task ) const;
156  virtual void parse_tag( TagPtr );
157 
158 private:
159  //utility::vector1_int rb_jump_;
162  ObjexxFCL::FArray1D_bool loop_residues_;
163 };
164 
165 }
166 }
167 }
168 
169 #endif