00001 #ifndef PLOT3D
00002 #define PLOT3D
00003
00004 #include "defines.h"
00005
00006 #include "boolean.h"
00007 #include "htransform.h"
00008 #include "color.h"
00009
00010 #include <stdio.h>
00011
00023
00030 #define DCP3D_R 0
00031
00038 #define DCP3D_G 0
00039
00046 #define DCP3D_B 1
00047
00048
00054 typedef struct {
00055 FILE *f;
00056 char *fileName;
00060 unsigned int nobj;
00062 Tcolor color;
00064 boolean inObject;
00066 } Tplot3d;
00067
00080 void InitPlot3d(char *name,boolean axes,int argc, char **arg,Tplot3d *p);
00081
00092 unsigned int StartNew3dObject(Tcolor *c,Tplot3d *p);
00093
00101 void Close3dObject(Tplot3d *p);
00102
00112 void Delete3dObject(unsigned int nobj,Tplot3d *p);
00113
00123 void Start3dBlock(Tplot3d *p);
00131 void Close3dBlock(Tplot3d *p);
00132
00142 void SetColor3dObject(unsigned int nobj,Tcolor *c,Tplot3d *p);
00143
00152 void Delay3dObject(double t,Tplot3d *p);
00153
00154
00164 void Move3dObject(unsigned int nobj,THTransform *t,Tplot3d *p);
00165
00181 void PlotBox3d(double min_x,double max_x,
00182 double min_y,double max_y,
00183 double min_z,double max_z,
00184 Tplot3d *p);
00203 void PlotTriangle3d(double x1,double y1,double z1,
00204 double x2,double y2,double z2,
00205 double x3,double y3,double z3,
00206 Tplot3d *p);
00225 void Plot3dObject(unsigned int nv,unsigned int nf,unsigned int ne,
00226 double **v,
00227 unsigned int *nvf,
00228 unsigned int **fv,Tplot3d *p);
00242 void PlotSphere(double r,double x,double y,double z,Tplot3d *p);
00243
00258 void PlotCylinder(double r,double *p1,double *p2,Tplot3d *p);
00259
00274 void PlotVect3d(unsigned int n,
00275 double *x,double *y,double *z,
00276 Tplot3d *p);
00288 void Take3dSnapshot(char *file,Tplot3d *p);
00289
00308 void ClosePlot3d(boolean quit,double average_x,double average_y,double average_z,Tplot3d *p);
00309
00310 #endif