// ==========================================================================
// $Id: aa_box.h,v 1.4 2017/09/23 00:53:23 jlang Exp $
// CSI2372 example Code for lecture 4
// ==========================================================================
// (C)opyright:
//
//   Jochen Lang
//   EECS, University of Ottawa
//   800 King Edward Ave.
//   Ottawa, On., K1N 6N5
//   Canada. 
//   http://www.eecs.uottawa.ca
// 
// Creator: jlang (Jochen Lang)
// Email:   jlang@eecs.uottawa.ca
// ==========================================================================
// $Log: aa_box.h,v $
// Revision 1.4  2017/09/23 00:53:23  jlang
// Introduced references and const again for this version
//
// Revision 1.3  2017/09/13 16:21:05  jlang
// Removed arrays, references and use of const.
//
// Revision 1.2  2013/09/30 19:44:44  jlang
// Added default parameter for the number of points.
//
// Revision 1.1  2011/09/27 17:22:20  jlang
// Added bounding shape example
//
//
// ==========================================================================
#ifndef AA_BOX
#define AA_BOX

#include <array>

#include "point2d.h" 


class AABox {
  Point2D d_lowerLeft;
  Point2D d_upperRight;
public:
  AABox( const Point2D& _lowerLeft, const Point2D& _upperRight );
  bool enclose( std::array<Point2D,4> extrema );
  void print() const;
};
#endif
