/* * $Id: dlist3d.h,v 1.1.1.1 2005/09/18 22:07:44 dhmunro Exp $ * Declare functions used for manipulating 3D display lists. */ /* Copyright (c) 2005, The Regents of the University of California. * All rights reserved. * This file is part of yorick (http://yorick.sourceforge.net). * Read the accompanying LICENSE file for details. */ #ifndef DLIST3D_H #define DLIST3D_H typedef struct yBox3D yBox3D; 00015 struct yBox3D { double xmin, xmax, ymin, ymax, zmin, zmax; } ; typedef void yglDrawFunc3d(int mode, void *data); typedef struct yList3d_Elem yList3d_Elem; 00022 struct yList3d_Elem { yBox3D box; yglDrawFunc3d *func; void *data; yList3d_Elem *next; } ; typedef struct yPoly3dData yPoly3dData; 00030 struct yPoly3dData { long npolys, edge, smooth, do_light; long *len; float *xyz, *norm, *colr; } ; typedef struct yGlyph3dData yGlyph3dData; 00037 struct yGlyph3dData { long nglyph; float *origin, *scal, *theta, *phi, *colr; } ; typedef struct yCell3dData yCell3dData; 00043 struct yCell3dData { long nx, ny, do_alpha; float *xyz, *norm, *colr; } ; typedef struct yPlm3dData yPlm3dData; 00049 struct yPlm3dData { long nx, ny; float *xyz, *colr; } ; typedef struct yPlf3dData yPlf3dData; 00055 struct yPlf3dData { long nx, ny; float *xyz, *colr; } ; typedef struct ySurf3dData ySurf3dData; 00061 struct ySurf3dData { long do_alpha, nx, ny; float *xyz, *norm, *colr; } ; typedef struct yColrSurf3dData yColrSurf3dData; 00067 struct yColrSurf3dData { long do_alpha, nx, ny; float *xyz, *norm, *colr; } ; typedef struct yTstrips3dData yTstrips3dData; 00073 struct yTstrips3dData { long nstrips, edge, smooth, do_light, do_alpha; long *len; float *xyz, *norm, *colr; } ; typedef struct yQstrips3dData yQstrips3dData; 00080 struct yQstrips3dData { long nstrips, edge, smooth, do_light, do_alpha; long *len; float *xyz, *norm, *colr; } ; typedef struct yTstripsNdx3dData yTstripsNdx3dData; 00087 struct yTstripsNdx3dData { long nstrips, ntri, nvert, numedg, edge, do_alpha; long *len, *ndx; float *xyz, *norm, *colr; } ; typedef struct yTarray3dData yTarray3dData; 00094 struct yTarray3dData { long ntri, edge, smooth, do_light, do_alpha, cpervrt, cubemap, emit; float *xyz, *norm, *colr; } ; typedef struct yQarray3dData yQarray3dData; 00100 struct yQarray3dData { long nquad, edge, smooth, do_light, do_alpha, cpervrt; float *xyz, *norm, *colr; } ; typedef struct yTivarray3dData yTivarray3dData; 00106 struct yTivarray3dData { long ntri, nvert; unsigned int *ptndx; float *ileave; } ; typedef struct yTvarray3dData yTvarray3dData; 00113 struct yTvarray3dData { long ntri, nvert, cpervrt, do_alpha; unsigned int *ptndx; float *xyz, *norm, *colr; } ; typedef struct yLines3dData yLines3dData; 00120 struct yLines3dData { long nvert; float *xyz, *colr; } ; typedef struct yPoints3dData yPoints3dData; 00126 struct yPoints3dData { long nvert; float *xyz, *colr; } ; typedef struct yTex3dData yTex3dData; 00132 struct yTex3dData { double ds, *origin, *boxsiz; } ; typedef struct yTexcell2dData yTexcell2dData; 00137 struct yTexcell2dData { long nx, ny, nz; double *znsiz; unsigned char *texval; } ; typedef struct yPix3dData yPix3dData; 00144 struct yPix3dData { long nx, ny; unsigned char *pix; } ; extern yList3d_Elem *yglNewCachedList3dElem(void); extern yList3d_Elem *yglNewDirectList3dElem(void); extern void yglDrawCurr3d(void); extern void yglClearList3d(void); extern void yglClearCachedList3d(void); extern void yglClearDirectList3d(void); extern void yglDrawList3d(void); extern void yglDrawListCache3d(void); extern void yglDrawListDirect3d(void); extern long yglGetBounds3d(yBox3D *box); extern long yglGetBoundsDirectList3d(yBox3D *box); extern long yglGetBoundsCachedList3d(yBox3D *box); extern void yglSetLims3d(yList3d_Elem *elem, long nvert, float *xyz); extern void yglDrawGnomon(void); extern void yglDrawCage(void); extern void yglPolys3d(long npolys, long *len, double *xyz, double *norm, double *colr, long edge, long smooth, long do_light); extern void yglGlyphs3d(long nglyph, double *origin, double *scal, double *theta, double *phi, double *colr); extern void yglCells3d(long nx, long ny, double *corners, double *norm, double *colr, long do_alpha); extern void yglPlm3d(long nx, long ny, double *xyz, double *colr); extern void yglPlf3d(long nx, long ny, double *xyz, double *colr); extern void yglSurf3d(long do_alpha, long nx, long ny, double *xyz, double *norm, double *colr); extern void yglColrsurf3d(long do_alpha, long nx, long ny, double *xyz, double *norm, double *colr); extern void yglLines3d(long nvert, double *xyz, double *colr); extern void yglPoints3d(long nvert, double *xyz, double *colr); extern void yglTstrips3d(long nstrips, long *len, double *xyz, double *norm, double *colr, long edge, long smooth, long do_light, long do_alpha); extern void yglQstrips3d(long nstrips, long *len, double *xyz, double *norm, double *colr, long edge, long smooth, long do_light, long do_alpha); extern void yglTstripsndx3d(long nstrips, long numedg, long ntri, long *len, long *ndx, double *xyz, double *norm, double *colr, long edge, long do_alpha); extern void yglTarray3d(long ntri, double *xyz, double *norm, double *colr, long edge, long smooth, long do_light, long do_alpha, long cpervrt, long cubemap, long emit); extern void yglQarray3d(long nquad, double *xyz, double *norm, double *colr, long edge, long smooth, long do_light, long do_alpha, long cpervrt); extern void yglTivarray3d(long ntri, long nvert, long *ptndx, double *xyz, double *norm, double *colr); extern void yglTvarray3d(long ntri, long nvert, long do_alpha, long cpervrt, long *ptndx, double *xyz, double *norm, double *colr); extern void yglTex3d(float ds, double *origin, double *boxsiz); extern void yglTexcell2d(long nx, long ny, long nz, double *znsiz, char *texval); extern void yglPlpix3d(long nx, long ny, char *pix); extern yglDrawFunc3d yglDrawPolys3d; extern yglDrawFunc3d yglDrawGlyphs3d; extern yglDrawFunc3d yglDrawCells3d; extern yglDrawFunc3d yglDrawPlm3d; extern yglDrawFunc3d yglDrawPlf3d; extern yglDrawFunc3d yglDrawSurf3d; extern yglDrawFunc3d yglDrawColrSurf3d; extern yglDrawFunc3d yglDrawLines3d; extern yglDrawFunc3d yglDrawPoints3d; extern yglDrawFunc3d yglDrawTstrips3d; extern yglDrawFunc3d yglDrawQstrips3d; extern yglDrawFunc3d yglDrawTstripsNdx3d; extern yglDrawFunc3d yglDrawTarray3d; extern yglDrawFunc3d yglDrawQarray3d; extern yglDrawFunc3d yglDrawTivarray3d; extern yglDrawFunc3d yglDrawTvarray3d; extern yglDrawFunc3d yglDrawTex3d; extern yglDrawFunc3d yglDrawTexcell2d; extern yglDrawFunc3d yglDrawPix3d; extern yList3d_Elem *yListDirectHead; extern yList3d_Elem *yListCachedHead; extern int yDrawBBox3d; #endif