18 #include <utility/tag/Tag.hh>
19 #include <basic/Tracer.hh>
22 #include <utility/vector0.hh>
23 #include <utility/vector1.hh>
27 namespace protein_interface_design {
32 using namespace protocols::moves;
34 static basic::Tracer
TR(
"protocols.protein_interface_design.movers.LoopOver" );
55 max_iterations_( 10 ),
66 max_iterations_( max_iterations ),
67 mover_( mover->
clone() ),
68 condition_( condition->
clone() ),
69 ms_whenfail_( ms_whenfail )
84 if (
mover_->get_additional_output())
85 utility_exit_with_message(
"Movers returning multiple poses are unsupported by LoopOver.");
87 bool filter_result(
false );
91 TR<<
"Loop iteration "<<count<<std::endl;
105 if( !filter_result ){
107 if( !
drift_ ) pose = saved_pose;
121 using namespace filters;
124 drift_ = tag->getOption<
bool >(
"drift", 1 );
132 Movers_map::const_iterator find_mover( movers.find( mover_name ) );
133 Filters_map::const_iterator find_filter( filters.find( filter_name ));
134 if( find_mover == movers.end() ) {
135 TR<<
"WARNING WARNING!!! mover not found in map. skipping:\n"<<tag<<std::endl;
136 runtime_assert( find_mover != movers.end() );
138 if( find_filter == filters.end() ) {
139 TR<<
"WARNING WARNING!!! filter not found in map. skipping:\n"<<tag<<std::endl;
140 runtime_assert( find_filter == filters.end() );
142 mover_ = find_mover->second;
144 TR <<
"with mover \"" << mover_name <<
"\" and filter \"" << filter_name <<
"\" and " <<
max_iterations_<<
" max iterations\n";