From bd1f8226ec961870339660514a5836840d52811e Mon Sep 17 00:00:00 2001 From: Daniel Wolf Date: Thu, 11 Aug 2016 10:16:50 +0200 Subject: [PATCH] Added TimeRange.trim() method --- src/TimeRange.cpp | 5 +++++ src/TimeRange.h | 1 + 2 files changed, 6 insertions(+) diff --git a/src/TimeRange.cpp b/src/TimeRange.cpp index cfe3dc6..1663592 100644 --- a/src/TimeRange.cpp +++ b/src/TimeRange.cpp @@ -58,6 +58,11 @@ void TimeRange::shrink(time_type value) { grow(-value); } +void TimeRange::trim(const TimeRange& limits) { + TimeRange newRange(std::max(start, limits.start), std::min(end, limits.end)); + resize(newRange); +} + bool TimeRange::operator==(const TimeRange& rhs) const { return start == rhs.start && end == rhs.end; } diff --git a/src/TimeRange.h b/src/TimeRange.h index 3f6ba63..775e6dc 100644 --- a/src/TimeRange.h +++ b/src/TimeRange.h @@ -24,6 +24,7 @@ public: void shift(time_type offset); void grow(time_type value); void shrink(time_type value); + void trim(const TimeRange& limits); bool operator==(const TimeRange& rhs) const; bool operator!=(const TimeRange& rhs) const;