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