/* 
 * cylinder.h - This file contains the defines for cylinders etc.
 *
 *  $Id: cylinder.h,v 1.8 1997/12/15 12:12:15 johns Exp $
 */

object * newcylinder(void *, vector, vector, flt);
object * newfcylinder(void *, vector, vector, flt);

#ifdef CYLINDER_PRIVATE

typedef struct {
  unsigned int id;                      /* Unique Object serial number    */
  void * nextobj;                       /* pointer to next object in list */
  object_methods * methods;             /* this object's methods          */
  texture * tex;                        /* object texture                 */
  vector ctr;
  vector axis;
  flt rad;
} cylinder;

static void cylinder_intersect(cylinder *, ray *);
static void fcylinder_intersect(cylinder *, ray *);

static int cylinder_bbox(void * obj, vector * min, vector * max);
static int fcylinder_bbox(void * obj, vector * min, vector * max);

static void cylinder_normal(cylinder *, vector *, ray *, vector *);
#endif

