File indexing completed on 2024-04-06 12:28:56
0001 #ifndef TkTrackingRegionsMargin_H
0002 #define TkTrackingRegionsMargin_H
0003
0004
0005
0006 #include <utility>
0007 #include <iostream>
0008
0009 template <class T>
0010 class TkTrackingRegionsMargin : public std::pair<T, T> {
0011 public:
0012 TkTrackingRegionsMargin() {}
0013
0014 TkTrackingRegionsMargin(const T& aLeft, const T& aRight) : std::pair<T, T>(aLeft, aRight) {}
0015
0016 TkTrackingRegionsMargin(const std::pair<T, T>& aPair) : std::pair<T, T>(aPair) {}
0017
0018 const T& left() const { return this->first; }
0019 const T& right() const { return this->second; }
0020
0021 void operator+=(const T& v) { add(v, v); }
0022 void add(const T& addLeft, const T& addRight) {
0023 this->first += addLeft;
0024 this->second += addRight;
0025 }
0026 };
0027
0028 template <class T>
0029 std::ostream& operator<<(std::ostream& out, const TkTrackingRegionsMargin<T>& m) {
0030 return out << "(" << m.left() << "," << m.right() << ")";
0031 }
0032 #endif