


#define rayNONE 0.0
#define rayEPSILON 0.000001
#define rayINF 1000000.0
#define rayNEGINF -1000000.0

/* Feel free to read and write this data structure's members. */
typedef struct rayIntersection rayIntersection;
struct rayIntersection {
	/* The earliest time at which the ray is inside the object. Can be rayNEGINF 
	or rayNONE (or a regular value). */
    double start;
	/* The latest time at which the ray is inside the object. Can be rayINF or 
	rayNONE (or a regular value). */
    double end;
	/* If start >= rayEPSILON, then this field holds the texture coordinates at 
	the point corresponding to the start time. */
    double texCoords[2];
	/* If start >= rayEPSILON, then this field holds the unit outward-pointing 
	normal vector, in world coordinates, at the point corresponding to the start 
	time. */
    double normal[3];
};


