/**
* @brief Determines whether or not this Rectangle is valid.
*
+ * @SINCE_1_9.18
* @return True if width and height are not negative
*/
bool IsValid() const
* @brief Intersects this rectangle and the specified rectangle.
* The result of the intersection is stored in this rectangle.
*
+ * @SINCE_1_9.18
* @param[in] rect The other rectangle to intersect with
+ * @return True if the rectangles intersect
*/
bool Intersect(const Rect<T>& rect)
{
* @brief Merges this rectangle and the specified rectangle.
* The result of the merge is stored in this rectangle.
*
+ * @SINCE_1_9.18
* @param[in] rect The other rectangle to merge with
*/
void Merge(const Rect<T>& rect)
* @brief Inset the rectangle by (dx,dy). If dx is positive, then the sides are moved inwards.
* If dx is negative, then the sides are moved outwards.
* The result of the inset is stored in this rectangle.
+ * @SINCE_1_9.18
*/
void Inset(T dx, T dy)
{