#include "ZGo.h"



/*
  //  Create internal data
  im1 = new ZGoIMAGE(zgo, "image1.jpg", 512, 240);
  im2 = new ZGoIMAGE(zgo, "image2.jpg", 512, 240);
  alpha = new ZGoREAL(zgo);
  //  Create internal functions
  sine = new ZGoSine(zgo,
               (new ZGoPARAMS(zgo))->add("time", input->get("time")),
               (new ZGoPARAMS(zgo))->add("result", alpha)
             );
  fader = new ZGoFader(zgo,
                (new ZGoPARAMS(zgo))->add("image1", im1)->add("image2", im2)->add("alpha", alpha),
                (new ZGoPARAMS(zgo))->add("result", output->get("result"))
              );
*/


ZGoMain::ZGoMain(ZGo *zgo, ZGoPARAMS *input, ZGoPARAMS *output)
{
  this->zgo = zgo;
  this->input = input->setInput(this);
  this->output = output->setOutput(this);

  this->fnType = new ZGoNAME(zgo, "ZGoMain");

  time = (ZGoREAL *)input->get("time");
  result = (ZGoIMAGE *)output->get("result");

  //  Create internal data

  position = new ZGoVECTOR(zgo, -1, 2, -4);
  point_at = new ZGoVECTOR(zgo, 0, 0, 0);

  camera = new ZGoCAMERA(zgo);

  obj = new ZGo3DOBJECT(zgo);
  obj->plane(1);

  //  Create internal functions

  pcamera = new ZGoPointCamera(zgo,
                 (new ZGoPARAMS(zgo))->add("position", position)->add("point_at", point_at),
                 (new ZGoPARAMS(zgo))->add("camera", camera)
               );
	            
  render = new ZGoRender(zgo,
                 (new ZGoPARAMS(zgo))->add("object", obj)->add("camera", camera),
                 (new ZGoPARAMS(zgo))->add("result", result)
               );
}



void ZGoMain::process()
{
}
