#ifndef TEST07_H
#define TEST07_H


#include <myglutgui.h>
#include <gobj.h>
#include <zpr.h>


/*!
  \brief gobjContainer is a generic graphics
 object container which can write itself out as a display 
 list

  OpenGL's display list functions can be tested.  A 
  gobjContainer can be written out as static geometry by a 
  call to displaylistcreatenew().  This simplifies the use of 
  display lists as the client only needs to create it and 
  draw as any other gobj.

  The example shows how parameter driven geometry like the 
  glutWireTorus function need not be computed everytime 
  but used to build variable geometry that is then compiled.
*/
class test07 : public myglutgui
{
  /** Global graphics stream. */
  gobjContainer xGraphics;

  /** Graphics to be compiled. */
  gobjContainer * gcomp;

  /** Configurable torus. */
  gobjglutWireTorus * gtorus;

  void f1();

  zpr zz;
public:

  test07
  (
    int & argc, 
    char** & argv,
    uintc mode,
    uintc x,
    uintc y,
    string const & title
  );

  void keyboard(unsigned char key, int x, int y);

  void display();

  void eval();

};

#endif


