1 /****************************************************************************
2  *                  cones.h
3  *
4  * This module contains all defines, typedefs, and prototypes for CONES.CPP.
5  *
6  * from Persistence of Vision(tm) Ray Tracer version 3.6.
7  * Copyright 1991-2003 Persistence of Vision Team
8  * Copyright 2003-2004 Persistence of Vision Raytracer Pty. Ltd.
9  *---------------------------------------------------------------------------
10  * NOTICE: This source code file is provided so that users may experiment
11  * with enhancements to POV-Ray and to port the software to platforms other
12  * than those supported by the POV-Ray developers. There are strict rules
13  * regarding how you are permitted to use this file. These rules are contained
14  * in the distribution and derivative versions licenses which should have been
15  * provided with this file.
16  *
17  * These licences may be found online, linked from the end-user license
18  * agreement that is located at http://www.povray.org/povlegal.html
19  *---------------------------------------------------------------------------
20  * This program is based on the popular DKB raytracer version 2.12.
21  * DKBTrace was originally written by David K. Buck.
22  * DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
23  *---------------------------------------------------------------------------
24  * $File: //depot/povray/3.6-release/source/cones.h $
25  * $Revision: #2 $
26  * $Change: 2939 $
27  * $DateTime: 2004/07/04 13:43:26 $
28  * $Author: root $
29  * $Log$
30  *****************************************************************************/
31 
32 
33 #ifndef CONES_H
34 #define CONES_H
35 
36 BEGIN_POV_NAMESPACE
37 
38 /*****************************************************************************
39 * Global preprocessor defines
40 ******************************************************************************/
41 
42 #define CONE_OBJECT (BASIC_OBJECT)
43 
44 
45 
46 /*****************************************************************************
47 * Global typedefs
48 ******************************************************************************/
49 
50 typedef struct Cone_Struct CYLINDER;
51 typedef struct Cone_Struct CONE;
52 
53 struct Cone_Struct
54 {
55   OBJECT_FIELDS
56   VECTOR apex;        /* Center of the top of the cone */
57   VECTOR base;        /* Center of the bottom of the cone */
58   DBL apex_radius;    /* Radius of the cone at the top */
59   DBL base_radius;    /* Radius of the cone at the bottom */
60   DBL dist;           /* Distance to end of cone in canonical coords */
61 };
62 
63 
64 
65 /*****************************************************************************
66 * Global variables
67 ******************************************************************************/
68 
69 
70 
71 
72 /*****************************************************************************
73 * Global functions
74 ******************************************************************************/
75 
76 CONE *Create_Cone (void);
77 CONE *Create_Cylinder (void);
78 void Compute_Cone_Data (OBJECT *Object);
79 void Compute_Cylinder_Data (OBJECT *Object);
80 void Compute_Cone_BBox (CONE *Cone);
81 
82 END_POV_NAMESPACE
83 
84 #endif
85