/* Steven Andrews, 8/25/02 */ /* See documentation called Plot3D doc */ /* Copyright 2003 by Steven Andrews. Permission is granted for non-commercial use of and modifications to the code. */ typedef struct Point3D { float r[3]; float p[3]; float o[3]; float s[3]; float *r2p; }* Pt3Dptr; typedef struct Drawing3D { int max; int n; Pt3Dptr *pt; char *col; int *line; float *r2p; }* Draw3Dptr; int Init3DPlot(int stereo,float dist,float sep); Pt3Dptr Pt3DAlloc(); void Pt3DFree(Pt3Dptr pt); void PlotPt3D(Pt3Dptr pt); void PlotLine3D(Pt3Dptr pt); void PlotStr3D(Pt3Dptr pt,char *s); void Rotate3D(char c,float alpha); void UpdatePt3D(Pt3Dptr pt,int internal); Draw3Dptr Draw3DAlloc(int n,float *r2p); void Draw3DFree(Draw3Dptr dr); int DrawingPt3D(Draw3Dptr dr,float x,float y,float z,int rel,int line,int col); void PlotDraw3D(Draw3Dptr dr); void UpdateDraw3D(Draw3Dptr dr,int internal); float *Draw3DOut(Draw3Dptr dr,char c); int Draw3D2ps(Draw3Dptr dr,int zdiv,char *name,int append);