home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / NEWS / RADIANCE / SRC / COMMON / CONE.H < prev    next >
C/C++ Source or Header  |  1993-10-07  |  997b  |  32 lines

  1. /* Copyright (c) 1986 Regents of the University of California */
  2.  
  3. /* SCCSid "@(#)cone.h 2.1 11/12/91 LBL" */
  4.  
  5. /*
  6.  *  cone.h - header file for cones (cones, cylinders, rings, cups, tubes).
  7.  *
  8.  *    Storage of arguments in the cone structure is a little strange.
  9.  *  To save space, we use an index into the real arguments of the
  10.  *  object structure through ca.  The indices are for the axis
  11.  *  endpoints and radii:  p0, p1, r0 and r1.
  12.  *
  13.  *     2/12/86
  14.  */
  15.  
  16. typedef struct cone {
  17.     FLOAT  *ca;        /* cone arguments (o->oargs.farg) */
  18.     char  p0, p1;        /* indices for endpoints */
  19.     char  r0, r1;        /* indices for radii */
  20.     FVECT  ad;        /* axis direction vector */
  21.     FLOAT  al;        /* axis length */
  22.     FLOAT  sl;        /* side length */
  23.     FLOAT  (*tm)[4];    /* pointer to transformation matrix */
  24. }  CONE;
  25.  
  26. #define  CO_R0(co)    ((co)->ca[(co)->r0])
  27. #define  CO_R1(co)    ((co)->ca[(co)->r1])
  28. #define  CO_P0(co)    ((co)->ca+(co)->p0)
  29. #define  CO_P1(co)    ((co)->ca+(co)->p1)
  30.  
  31. extern CONE  *getcone();
  32.