36 #include <basic/Tracer.hh>
37 #include <utility/vector1.hh>
40 namespace ObjexxFCL {
namespace fmt { } }
using namespace ObjexxFCL::fmt;
43 static basic::Tracer
TR(
"protocols.loops.util");
44 static basic::Tracer
tr(
"protocols.loops" );
50 using namespace kinematics;
65 ind_loops.push_back(ii);
68 all_loops.push_back(ind_loops);
73 ind_loops.push_back(ii);
74 all_loops.push_back(ind_loops);
81 ind_loops.push_back( lastres );
82 all_loops.push_back(ind_loops);
88 for(
core::Size ii = 1; ii <= all_loops.size(); ++ii ){
89 core::Size const lastlooppos = all_loops[ii].size();
92 runtime_assert( chain_firstpos == chain_lastpos );
97 if ( all_loops[ii][1] == 1 || all_loops[ii][lastlooppos] == lastres ) {
continue; }
98 if ( all_loops[ii][1] == chain_begin || all_loops[ii][lastlooppos] == chain_end ) {
continue; }
102 if( all_loops[ii][lastlooppos] - all_loops[ii][1] < 3 ){
103 TR <<
"increasing loop from" << all_loops[ii][1] <<
" " << all_loops[ii][lastlooppos] << std::endl;
104 TR <<
"increasing loop to " << all_loops[ii][1]-1 <<
" " << all_loops[ii][lastlooppos]+1 << std::endl;
106 core::Size cut_point = (all_loops[ii][lastlooppos]+1 - all_loops[ii][1]-1)/2 + all_loops[ii][1]-1;
107 TR <<
"cut_point" <<cut_point << std::endl;
108 loops.
add_loop( all_loops[ii][1]-1, all_loops[ii][lastlooppos]+1, cut_point, 0,
false );
110 core::Size cut_point = (all_loops[ii][lastlooppos] - all_loops[ii][1])/2 + all_loops[ii][1];
111 loops.
add_loop( all_loops[ii][1], all_loops[ii][lastlooppos], cut_point, 0,
false );
112 TR <<
"cut_point" <<cut_point << std::endl;