1 /* 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #include "webrtc/modules/desktop_capture/desktop_geometry.h" 12 13 #include <algorithm> 14 15 namespace webrtc { 16 Contains(const DesktopVector & point) const17bool DesktopRect::Contains(const DesktopVector& point) const { 18 return point.x() >= left() && point.x() < right() && 19 point.y() >= top() && point.y() < bottom(); 20 } 21 ContainsRect(const DesktopRect & rect) const22bool DesktopRect::ContainsRect(const DesktopRect& rect) const { 23 return rect.left() >= left() && rect.right() <= right() && 24 rect.top() >= top() && rect.bottom() <= bottom(); 25 } 26 IntersectWith(const DesktopRect & rect)27void DesktopRect::IntersectWith(const DesktopRect& rect) { 28 left_ = std::max(left(), rect.left()); 29 top_ = std::max(top(), rect.top()); 30 right_ = std::min(right(), rect.right()); 31 bottom_ = std::min(bottom(), rect.bottom()); 32 if (is_empty()) { 33 left_ = 0; 34 top_ = 0; 35 right_ = 0; 36 bottom_ = 0; 37 } 38 } 39 Translate(int32_t dx,int32_t dy)40void DesktopRect::Translate(int32_t dx, int32_t dy) { 41 left_ += dx; 42 top_ += dy; 43 right_ += dx; 44 bottom_ += dy; 45 } 46 47 } // namespace webrtc 48 49