28 #include <ObjexxFCL/FArray1D.hh>
33 #include <utility/vector1.hh>
34 #include <boost/foreach.hpp>
37 #define foreach BOOST_FOREACH
66 if (
this != &rval ) {
99 using namespace core::conformation::signals;
134 :
Parent( rval ), segments_(rval.segments_ ) {}
142 if (
this != &rval ) {
175 if( begin > end ) utility_exit_with_message(
"Negative length segment added to SpecialSegmentsObserver.");
177 segments_.push_back( std::pair< Size, Size >(begin, end ) );
183 ObjexxFCL::FArray1D_bool & array,
192 for(
core::Size i = 1; i <= segments.size(); ++i ){
193 for(
core::Size j = segments[i].first; j < segments[i].second; ++j ) array[ j - 1 ] = value;
204 std::set< Size > deleted_segments;
222 deleted_segments.insert(i);
225 segments_[i].first =
event.position -
event.length_change;
226 segments_[i].second +=
event.length_change;
229 segments_[i].first +=
event.length_change;
230 segments_[i].second +=
event.length_change;
234 segments_[i].first +=
event.length_change;
235 segments_[i].second +=
event.length_change;
246 segments_[i].second +=
event.length_change;
250 segments_[i].second +=
event.length_change;
258 if( deleted_segments.size() > 0 ){
261 if( deleted_segments.find( i ) != deleted_segments.end() ) new_segments.push_back(
segments_[i] );