//
// 

#ifndef _Rectangle_h
#define _Rectangle_h

// Includes
#include <Engine/Core/Shape.h>
#include <Engine/Core/Vector.h>

//==============================================================================

namespace ptc
{


class Ray;


class Rectangle : public Shape
{
public:
	Rectangle();
	Rectangle( const Vector& center,
			   const Vector& right,
			   const Vector& normal,
			   float width,		//< in right dir
			   float height );		//< in cross( right, normal ) dir

	void setIsDoubleSided( bool new_value );
	bool getIsDoubleSided() const;

	IntersectDescr intersect( const Ray& ray ) override;

private:
	Vector center_;
	Vector right_;
	Vector up_;
	Vector normal_;
	float width_;
	float height_;
	bool is_double_sided_;
};


} // namespace ptc

#endif // Include guard
