| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- /****************************************************************************
- * radiosit.h
- *
- * Include file for radiosit.c, Radiosity calculation routies.
- *
- * Implemented by and (c) 1994 Jim McElhiney, mcelhiney@acm.org or 71201,1326
- * All standard POV distribution rights granted. All other rights reserved.
- *
- * from Persistence of Vision(tm) Ray Tracer
- * Copyright 1996,1999 Persistence of Vision Team
- *---------------------------------------------------------------------------
- * NOTICE: This source code file is provided so that users may experiment
- * with enhancements to POV-Ray and to port the software to platforms other
- * than those supported by the POV-Ray Team. There are strict rules under
- * which you are permitted to use this file. The rules are in the file
- * named POVLEGAL.DOC which should be distributed with this file.
- * If POVLEGAL.DOC is not available or for more info please contact the POV-Ray
- * Team Coordinator by email to team-coord@povray.org or visit us on the web at
- * http://www.povray.org. The latest version of POV-Ray may be found at this site.
- *
- * This program is based on the popular DKB raytracer version 2.12.
- * DKBTrace was originally written by David K. Buck.
- * DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
- *
- *************************************************************************/
- #ifndef RADIOSIT_H
- #define RADIOSIT_H
- #define RADIOSITY_CACHE_EXTENSION ".rca"
- /*****************************************************************************
- * Global preprocessor defines
- ******************************************************************************/
- /* #define RADDEBUG 1 */
- #define MAX_NEAREST_COUNT 10
- /*****************************************************************************
- * Global typedefs
- ******************************************************************************/
- typedef struct wt_avg_struct WT_AVG;
- /* quickie structure used to gather weighted average during tree traversal */
- struct wt_avg_struct
- {
- COLOUR Weights_Times_Illuminances; /* Aggregates during traversal */
- DBL Weights; /* Aggregates during traversal */
- long Weights_Count; /* Count of points used, aggregates during trav */
- long Good_Count; /* Count of points used, aggregates during trav */
- VECTOR P, N; /* Point and Normal: input to traverse */
- DBL Current_Error_Bound; /* see Radiosity_Error_Bound */
- COLOUR Weight_Times_Illuminance[MAX_NEAREST_COUNT];
- DBL Weight[MAX_NEAREST_COUNT];
- DBL Distance[MAX_NEAREST_COUNT];
- long Close_Count;
- };
- typedef struct byte_xyz BYTE_XYZ;
- struct byte_xyz {
- unsigned char x, y, z;
- };
- /*****************************************************************************
- * Global variables
- ******************************************************************************/
- extern long ra_reuse_count;
- extern long ra_gather_count;
- extern OT_NODE *ot_root;
- extern FILE *ot_fd;
- extern COLOUR Radiosity_Gather_Total;
- extern long Radiosity_Gather_Total_Count;
- extern int Radiosity_Trace_Level;
- extern BYTE_XYZ rad_samples[];
- /*****************************************************************************
- * Global functions
- ******************************************************************************/
- int Compute_Ambient (VECTOR IPoint, VECTOR Normal, COLOUR Ambient_Colour, DBL Weight);
- long Initialize_Radiosity_Code (void);
- long Deinitialize_Radiosity_Code (void);
- #endif
|