#ifndef BOXOBBHALFSPACED2TEST_H
#define BOXOBBHALFSPACED2TEST_H

#include <boxOBBhalfspaceD2.h>
#include <gobj.h>
#include <point.h>



/*!
\brief Orientated Bounding Boxes test.
*/
class boxOBBhalfspaceD2test
{
public:

  /** OBB object A. */
  static boxOBBhalfspaceD2<point2<double>,double> * Aptr;
  /** OBB object B. */
  static boxOBBhalfspaceD2<point2<double>,double> * Bptr;

  /** Toggle the help menu. */
  static bool * help;

  /** Graphics to display the boxes. */
  static gobjContainer boxes;

  /** Global graphics container. */
  gobjContainer xGraphics;

  /** Display handler. */
  static void display01();

  /** Keyboard handler for test01. */
  static void keyboard01(unsigned char key, int x, int y);

  /** Update for test01 before graphics display. */
  static void update01();

  /** Load two OBBsepaxisD2 boxes and display. */ 
  void test01(int & argc, char** argv);

  /** Test the boxOBBhalfspaceD2<PT,PD>::construct(...) 
      function. */
  static int unittest01();

  /** Test if the point q is inside the box. 
  ./main prog=13 p0=0.0,0.0 p1=1.0,0.0 p2=1.0,1.0 p3=0.0,1.0 q=.2,.3 */
  static int unittest02(int & argc, char** argv);

};


#endif



