/* modified 7-16-2002 to support more parameters */

typedef struct
	{
	double x, y, z;     /* the coordinates */
	double l, m, n;     /* the ray direction cosines */
	double ln, mn, nn;  /* the surface normals */
   double path;        /* the path change */
   double sag1, sag2;  /* the sag and alternate hyperhemispheric sag */
	double index, dndx, dndy, dndz; /* for GRIN surfaces only */
   double rel_surf_tran; /* for relative surface transmission data, if any */
   double udreserved1, udreserved2, udreserved3, udreserved4; /* for future expansion */
   char string[20];    /* for returning string data */
	}USER_DATA;

typedef struct
	{
   int type, numb;     /* the requested data type and number */
   int surf, wave;     /* the surface number and wavelength number */
   double wavelength, pwavelength;      /* the wavelength and primary wavelength */
   double n1, n2;      /* the index before and after */
   double cv, thic, sdia, k; /* the curvature, thickness, semi-diameter, and conic */
   double param[9];    /* the parameters 1-8 */
   double fdreserved1, fdreserved2, fdreserved3, fdreserved4; /* for future expansion */
   double xdata[201];  /* the extra data 1-200 */
   char glass[21];     /* the glass name on the surface */
	}FIXED_DATA;


typedef struct
	{
   int type, numb;     /* the requested data type and number */
   int surf, wave;     /* the surface number and wavelength number */
	int unit;           /* the unit flag */
   double wavelength, pwavelength;      /* the wavelength and primary wavelength */
   double n1, n2;      /* the index before and after */
   double cv, thic, sdia, k; /* the curvature, thickness, semi-diameter, and conic */
   int ireserved[20]; /* for future expansion */
   double dbreserved[20]; /* for future expansion */
   double param[51];    /* the parameters 0-50 */
   double xdata[201];  /* the extra data 1-200 */
   char glass[21];     /* the glass name on the surface */
	}FIXED_DATA2;

