⛏️ index : haiku.git

/*
* Copyright 2010, Haiku. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
*		Michael Pfeiffer
*/
#ifndef RECTANGLE_H
#define RECTANGLE_H


#include <SupportDefs.h>


template<typename T>
class Rectangle
{
public:
	Rectangle()
	:
	left(0),
	top(0),
	right(0),
	bottom(0)
	{

	}


	Rectangle(const BRect& rect)
	:
	left(static_cast<T>(rect.left)),
	top(static_cast<T>(rect.top)),
	right(static_cast<T>(rect.right)),
	bottom(static_cast<T>(rect.bottom))
	{
	}


	Rectangle(T left, T top, T right, T bottom)
	:
	left(left),
	top(top),
	right(right),
	bottom(bottom)
	{
	}


	Rectangle<T>& operator=(const BRect& rect) {
		left = static_cast<T>(rect.left);
		top = static_cast<T>(rect.top);
		right = static_cast<T>(rect.right);
		bottom = static_cast<T>(rect.bottom);
		return *this;
	}


	T Width() const {
		return right - left;
	}


	T Height() const {
		return bottom - top;
	}


	T left;
	T top;
	T right;
	T bottom;
};


typedef Rectangle<int32> RectInt32;


#endif