#include "ZGo.h"



//---- ZGo3DOBJECT -----------------------------------------------------------//

class ZGo3DOBJECT : public ZGoDATA
{
  public:

  //- Point data

  int points;
  float (*point)[3];

  //- Face data

  int faces;
  int (*face)[3];

  //- Sub-object data

  ZGo3DOBJECT **object;
  int objects;

  //- Transformation

  ZGoMATRIX *trans;

  //- FUNCTIONS

  ZGo3DOBJECT(ZGo *zgo);
  ~ZGo3DOBJECT();

  void clear();
  void addFace(int p1, int p2, int p3);
  void addFace(int p1, int p2, int p3, int p4);
  void addPoint(float x, float y, float z);
  void addObject();
  void addObject(ZGo3DOBJECT *obj);

  ZGo3DOBJECT *cube();
  ZGo3DOBJECT *plane(float scale);
  ZGo3DOBJECT *pqtorus(int p, int q, float poffset);

  ZGo3DOBJECT *transform(ZGoMATRIX *m);

  void render(ZGoCAMERA *camera, ZGoIMAGE *im, ZGoIMAGE *zbuf);
  void render(ZGoCAMERA *camera, ZGoMATRIX *m, ZGoIMAGE *im, ZGoIMAGE *zbuf);
};



//---- end of file -----------------------------------------------------------//
