/* */ #include "SplitSlowestSegmentSplitter.h" bool SplitSlowestSegmentSplitter::splitSegment(Segment& seg, int cuid, Segments& segments) { Segments::iterator slowest = segments.end();; for(Segments::iterator itr = segments.begin(); itr != segments.end(); itr++) { Segment& s = *itr; if(s.finish) { continue; } if(s.ep-(s.sp+s.ds) <= minSegmentSize) { continue; } if(slowest == segments.end()) { slowest = itr; } else { Segment sl = *slowest; if((sl.ep-(sl.sp+sl.ds))/(sl.speed+1) < (s.ep-(s.sp+s.ds))/(s.speed+1)) { slowest = itr; } } } if(slowest == segments.end()) { return false; } else { split(seg, cuid, *slowest); segments.push_back(seg); return true; } }