1 /****************************************************************************
4 * This module contains all defines, typedefs, and prototypes for POINT.C.
6 * from Persistence of Vision(tm) Ray Tracer
7 * Copyright 1996,1999 Persistence of Vision Team
8 *---------------------------------------------------------------------------
9 * NOTICE: This source code file is provided so that users may experiment
10 * with enhancements to POV-Ray and to port the software to platforms other
11 * than those supported by the POV-Ray Team. There are strict rules under
12 * which you are permitted to use this file. The rules are in the file
13 * named POVLEGAL.DOC which should be distributed with this file.
14 * If POVLEGAL.DOC is not available or for more info please contact the POV-Ray
15 * Team Coordinator by email to team-coord@povray.org or visit us on the web at
16 * http://www.povray.org. The latest version of POV-Ray may be found at this site.
18 * This program is based on the popular DKB raytracer version 2.12.
19 * DKBTrace was originally written by David K. Buck.
20 * DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
22 *****************************************************************************/
32 /*****************************************************************************
33 * Global preprocessor defines
34 ******************************************************************************/
36 #define LIGHT_OBJECT (COMPOUND_OBJECT+PATCH_OBJECT+LIGHT_SOURCE_OBJECT)
40 /* Light source types. */
42 #define POINT_SOURCE 1
44 #define FILL_LIGHT_SOURCE 3
45 #define CYLINDER_SOURCE 4
49 /*****************************************************************************
51 ******************************************************************************/
53 typedef struct Light_Source_Struct LIGHT_SOURCE
;
55 struct Light_Source_Struct
59 VECTOR Direction
, Center
, Points_At
, Axis1
, Axis2
;
60 DBL Coeff
, Radius
, Falloff
;
61 DBL Fade_Distance
, Fade_Power
;
62 LIGHT_SOURCE
*Next_Light_Source
;
63 unsigned char Light_Type
, Area_Light
, Jitter
, Track
;
64 int Area_Size1
, Area_Size2
;
66 int Media_Attenuation
;
67 int Media_Interaction
;
69 OBJECT
*Shadow_Cached_Object
;
71 /* Light buffers for the six general directions in space. [DB 9/94] */
73 PROJECT_TREE_NODE
*Light_Buffer
[6];
79 /*****************************************************************************
81 ******************************************************************************/
86 /*****************************************************************************
88 ******************************************************************************/
90 LIGHT_SOURCE
*Create_Light_Source (void);
91 DBL
Attenuate_Light (LIGHT_SOURCE
*Light_Source
, RAY
*Light_Source_Ray
, DBL Distance
);
92 COLOUR
**Create_Light_Grid (int Size1
, int Size2
);