| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012, Google Inc. All rights reserved. | 2 * Copyright (c) 2012, Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 // Return a clean empty rectangle for non-intersecting cases. | 73 // Return a clean empty rectangle for non-intersecting cases. |
| 74 if (newLocation.x() >= newMaxPoint.x() || newLocation.y() >= newMaxPoint.y()
) { | 74 if (newLocation.x() >= newMaxPoint.x() || newLocation.y() >= newMaxPoint.y()
) { |
| 75 newLocation = LayoutPoint(); | 75 newLocation = LayoutPoint(); |
| 76 newMaxPoint = LayoutPoint(); | 76 newMaxPoint = LayoutPoint(); |
| 77 } | 77 } |
| 78 | 78 |
| 79 m_location = newLocation; | 79 m_location = newLocation; |
| 80 m_size = newMaxPoint - newLocation; | 80 m_size = newMaxPoint - newLocation; |
| 81 } | 81 } |
| 82 | 82 |
| 83 bool LayoutRect::inclusiveIntersect(const LayoutRect& other) |
| 84 { |
| 85 LayoutPoint newLocation(std::max(x(), other.x()), std::max(y(), other.y())); |
| 86 LayoutPoint newMaxPoint(std::min(maxX(), other.maxX()), std::min(maxY(), oth
er.maxY())); |
| 87 |
| 88 if (newLocation.x() > newMaxPoint.x() || newLocation.y() > newMaxPoint.y())
{ |
| 89 *this = LayoutRect(); |
| 90 return false; |
| 91 } |
| 92 |
| 93 m_location = newLocation; |
| 94 m_size = newMaxPoint - newLocation; |
| 95 return true; |
| 96 } |
| 97 |
| 83 void LayoutRect::unite(const LayoutRect& other) | 98 void LayoutRect::unite(const LayoutRect& other) |
| 84 { | 99 { |
| 85 // Handle empty special cases first. | 100 // Handle empty special cases first. |
| 86 if (other.isEmpty()) | 101 if (other.isEmpty()) |
| 87 return; | 102 return; |
| 88 if (isEmpty()) { | 103 if (isEmpty()) { |
| 89 *this = other; | 104 *this = other; |
| 90 return; | 105 return; |
| 91 } | 106 } |
| 92 | 107 |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 } | 190 } |
| 176 | 191 |
| 177 LayoutRect enclosingLayoutRect(const FloatRect& rect) | 192 LayoutRect enclosingLayoutRect(const FloatRect& rect) |
| 178 { | 193 { |
| 179 LayoutPoint location = flooredLayoutPoint(rect.minXMinYCorner()); | 194 LayoutPoint location = flooredLayoutPoint(rect.minXMinYCorner()); |
| 180 LayoutPoint maxPoint = ceiledLayoutPoint(rect.maxXMaxYCorner()); | 195 LayoutPoint maxPoint = ceiledLayoutPoint(rect.maxXMaxYCorner()); |
| 181 return LayoutRect(location, maxPoint - location); | 196 return LayoutRect(location, maxPoint - location); |
| 182 } | 197 } |
| 183 | 198 |
| 184 } // namespace blink | 199 } // namespace blink |
| OLD | NEW |