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