/*	File: Quadrang.h
 *
 *	Interface Description:
 *		Provides a concrete class Quadrangle which is a kind of a closed
 *		stretchable figure.
 *		See also Figure.h, ClosedF.h, StretchF.h, CloStreF.h.
 *	History:
 *		Date:		 Author:	 Change:
 *		97-05-07	 KHU		 Creation.
 */

#ifndef QUADRANG_H_
#define QUADRANG_H_

#include "CloStreF.h"

	const int quadrangleNbrOfPoints = 4;

	class Quadrangle : virtual public ClosedStretchableFigure
	{
	protected:
		// Attributes:

		CoordinatePair delta [quadrangleNbrOfPoints];

		// Commands:

		void Draw ();

	public:
		// Queries:

		Float Extent () const;

		Float Area () const;

		CoordinatePair Point (int nbr) const;
			// Precondition: 0 <= nbr < quadrangleNbrOfPoints.

		// Commands:

		void Stretch (/* IN */ const CoordinatePair & factor);

		// Constructors:

		Quadrangle
			(/* IN */ const CoordinatePair & point0,
			 /* IN */ const CoordinatePair & point1,
			 /* IN */ const CoordinatePair & point2,
			 /* IN */ const CoordinatePair & point3);

	protected:
		void CheckInvariant ();

	}; // Quadrangle

#endif // QUADRANG_H_