#include <gobj.h>

// NOTE:  commenting in/out this code turns on and off the debug code.
//#include <gobjdebug01.h>
#include <gobjdebug01test.h>
#include <gobjdebug01macrofunctions.h>
#include <print.h>


string gobjdebug01test::doc[] = 
{
  "",
  "Run some debug code which may or may not be turned on depending on the source code being commented in or out.",
  "Run some debug code which may or may not be turned on depending on the source code being commented in or out.",
  ""
};




void gobjdebug01test::test01()
{
  gobjContainer vg;

  vg.push(new gobjdebug01test_C());
  vg.push(new gobjdebug01test_A());
  vg.push(new gobjdebug01test_B());

  vg.draw();

#ifdef GOBJDEBUG01_H
  vector<string> & vs(gobjdebug01list::global_list);
  cout << SHOW(vs.size()) << endl;

  for (uint i=0; i<vs.size(); ++i)
    cout << "*" << vs[i] << "*" << endl;
#endif
}

void gobjdebug01test_A::draw()
{
  GOBJDEBUGCODE
}

void gobjdebug01test_B::draw()
{
  GOBJDEBUGCODE
}

void gobjdebug01test::test02()
{
  gobjContainer vg;

  vg.push(new gobjglColor3d(1.0,0.0,1.0));
  vg.push(new gobjdebug01test_C());
  vg.push(new gobjdebug01test_A());
  vg.push(new gobjdebug01test_B());

  vg.draw();

#ifdef GOBJDEBUG01_H
  vector<string> & vs(gobjdebug01list::global_list);
  //cout << SHOW(vs.size()) << endl;

  for (uint i=0; i<vs.size(); ++i)
    cout << "*" << vs[i] << "*" << endl;
#endif

}


void gobjdebug01test::test03()
{
  gobjContainer vg;

  vg.push(new gobjglColor3d(1.0,0.0,1.0));
  vg.push(new gobjdebug01test_C());
  vg.push(new gobjdebug01test_A());
  vg.push(new gobjdebug01test_B());

  {
#ifdef GOBJDEBUG01_H 
    gobjlog log; 
#endif
    vg.draw();
  }

  {
    gobjlog_log
    vg.draw();
  }

  gobjlog_draw(vg)

}




