1 /**************************************************************************** 2 * patches.h 3 * 4 * switches for patches from MegaPOV 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 * 25 *=========================================================================== 26 * This file is part of MegaPOV, a modified and unofficial version of POV-Ray 27 * For more information on MegaPOV visit our website: 28 * http://megapov.inetart.net/ 29 *=========================================================================== 30 * 31 * $RCSfile: patches.h,v $ 32 * $Revision: 1.56 $ 33 * $Author: chris $ 34 * 35 *****************************************************************************/ 36 #ifndef PATCHES_H 37 #define PATCHES_H 38 #define MEGAPOV_MASTER_SWITCH //Main switch, comment this out to turn off all patches 39 //for testing purposes. 40 41 #ifdef MEGAPOV_MASTER_SWITCH 42 #define UNOFFICIAL_BLOCKING_PATCH //needed for all patches, must be first 43 //Main switch for each author 44 #define PATCHES_BY_ABX 45 #define PATCHES_BY_CHRISTOPHE_BOUFFARTIGUE 46 #define PATCHES_BY_CHRISTOPH_HORMANN 47 #define PATCHES_BY_MASSIMO_VALENTINI 48 #define PATCHES_BY_THORSTEN_FROEHLICH 49 #define PATCHES_BY_VAHUR_KROUVERK 50 #define PATCHES_BY_WILLIAM_F_POKORNY 51 #define PATCHES_BY_JURJEN 52 #define PATCHES_BY_MICHA_RISER 53 #define PATCHES_BY_SMELLENBERGH 54 #define PATCHES_BY_NATHAN_KOPP 55 #define PATCHES_BY_CHRIS_HUFF 56 #define PATCHES_BY_KARI_KIVISALO 57 #define PATCHES_BY_MAEL 58 #define PATCHES_BY_THOMAS_WILLHALM 59 #define PATCHES_BY_LUTZ_PETER_HOOGE 60 61 #ifdef PATCHES_BY_ABX 62 // patches to avoid some warnings with gcc (under djgpp), bcc and dmc 63 #define AVOID_TYPE_CONVERSION_WARNINGS_PATCH 64 #define AVOID_MIGHT_BE_USED_UNINITIALIZED_WARNINGS_PATCH 65 #define AVOID_EMPTY_STRING_WARNING 66 #define REMOVE_NOT_USED_CODE_WARNINGS_PATCH 67 #define AVOID_ALWAYS_FALSE_COMPARISON_WARNINGS_PATCH 68 #define WHITE_SPACE_BEFORE_SEMICOLON_PATCH 69 70 // command options 71 #define FRAME_STEP_PATCH 72 73 // radiosity 74 #define CACHE_IN_ANIMATED_RADIOSITY_PATCH 75 76 // connecting similar code 77 #define MAKE_COLOR_SHORTER_PATCH 78 79 // parametric related patches 80 #define PARAMETRIC_MINOR_CHANGES_PATCH 81 82 // spline related patches 83 #define SOR_SPLINE_PATCH 84 #define TCB_SPLINE_PATCH // Kochanek-Bartels 85 #define AKIMA_SPLINE_PATCH 86 #define BASIC_X_SPLINE_PATCH 87 #define EXTENDED_X_SPLINE_PATCH 88 #define GENERAL_X_SPLINE_PATCH 89 #define SPLINE_LIKE_ARRAY_ACCESS_PATCH 90 91 // internal functions 92 #define F_TRIANGLE_PATCH 93 #define MISSED_FLOAT_CONSTANTS_RECOGNITION_PATCH 94 95 // expressions 96 #define IS_PATCH 97 #define VECTORS_IN_DIMENSION_SIZE_PATCH 98 #define POLYNOMIAL_SOLVER_PATCH 99 #define NTH_OUTPUT_FILE_NAME_PATCH 100 101 // platform specific patches 102 #define CUSTOM_KEYWORDS_IN_WINPOV_PATCH 103 #define CONTINUED_BMP_BUGFIX_PATCH 104 105 // post processing 106 #define POST_PROCESS_PATCH 107 108 // camera stuff 109 #define USER_DEFINED_CAMERA_PATCH 110 #define PIGMENT_CAMERA_VIEW_PATCH 111 112 // pattern stuff 113 // #define SIMPLE_PATTERN_CACHE_PATCH 114 #define IMAGES_SIZES_PATCH 115 116 // bugfixes 117 #define BLOB_QUEUE_MEMORY_LEAK_PATCH 118 119 #endif //PATCHES_BY_ABX 120 121 #ifdef PATCHES_BY_MASSIMO_VALENTINI 122 #define FIX_MEMORY_LEAKS_PATCH 123 124 #endif 125 126 #ifdef PATCHES_BY_THORSTEN_FROEHLICH 127 #define SPLINE_IN_FUNCTION_PATCH 128 #define MACRO_PARAMETER_BUGFIX_PATCH 129 #endif //PATCHES_BY_THORSTEN_FROEHLICH 130 131 #ifdef PATCHES_BY_VAHUR_KROUVERK 132 #define HMATH_PATCH 133 #endif //PATCHES_BY_VAHUR_KROUVERK 134 135 #ifdef PATCHES_BY_WILLIAM_F_POKORNY 136 #endif //PATCHES_BY_WILLIAM_F_POKORNY 137 138 #ifdef PATCHES_BY_JURJEN 139 #define TRANSPARENT_INVERTED_NORMALS_PATCH 140 #endif //PATCHES_BY_JURJEN 141 142 #ifdef PATCHES_BY_MICHA_RISER 143 #define BOUNDINGS_AS_INSIDE_PATCH 144 #endif //PATCHES_BY_MICHA_RISER 145 146 #ifdef PATCHES_BY_CHRIS_HUFF 147 #define SET_PATCH 148 #define GLOW_PATCH 149 #define DISPLACE_WARP_PATCH 150 #define LISTED_PATTERN_PATCH 151 #define NOISE_PIGMENT_PATCH 152 #endif //PATCHES_BY_CHRIS_HUFF 153 154 #ifdef PATCHES_BY_SMELLENBERGH 155 #define FASTER_PROGRESS_DISPLAY_PATCH 156 #define STRDUP_MEM_TRACE_PATCH //Will be turned off in a final release 157 #define STORE_TOKEN_POSITION_START_IN_FILE_PATCH 158 #define LESS_MEMORY_IN_PATTERNS_PATCH 159 #define MESSAGE_PATCH 160 #define TIME_DATE_PATCH 161 #define TIME_MEASUREMENT_PATCH 162 #define FONT_ALIGNMENT_PATCH 163 #endif //PATCHES_BY_SMELLENBERGH 164 165 #ifdef PATCHES_BY_NATHAN_KOPP 166 #define MOTION_BLUR_PATCH 167 #define UNOFFICIAL_BLOCKING_PATCH //we are MegaPOV we need #version unofficial MegaPov x.x in all files 168 #endif //PATCHES_BY_NATHAN_KOPP 169 170 171 #ifdef PATCHES_BY_CHRISTOPH_HORMANN 172 #define MECHANICS_SIMULATION_PATCH 173 #define UNIX_FINISH_BEEP_PATCH 174 #define RAD_CUSTOM_SAMPLES_PATCH 175 #define RAD_SAMPLES_RANDOMIZE_PATCH 176 #define NORMAL_TRANSFORM_PATCH 177 #define HDR_PATCH 178 #define INSIDE_FUNCTION_FOR_MESHES_PATCH 179 #define NO_RADIOSITY_PATCH 180 #define AREA_LIGHT_REFLECTION_PATCH 181 #define CUSTOM_TONE_MAPPING_PATCH 182 #define RADIOSITY_STATISTICS_PATCH 183 #define RADIOSITY_VISUALIZE_PATCH 184 #define RADIOSITY_ADAPTIVE_RADIUS_PATCH 185 #define NEW_RADIOSITY_PRETRACE_PATCH 186 #define CRAND_BUGFIX_PATCH 187 #define ALPHA_CLIPPING_BUGFIX_PATCH 188 #define PPM_READING_COMPATIBILITY_PATCH 189 190 //#define RADSTATS 191 #endif //PATCHES_BY_CHRISTOPH_HORMANN 192 193 #ifdef PATCHES_BY_CHRISTOPHE_BOUFFARTIGUE 194 #define CLOTHRAY_PATCH 195 #endif //PATCHES_BY_CHRISTOPHE_BOUFFARTIGUE 196 197 #ifdef PATCHES_BY_KARI_KIVISALO 198 #define FILM_EXPOSURE_SIMULATION_PATCH 199 #endif //PATCHES_BY_KARI_KIVISALO 200 201 #ifdef PATCHES_BY_MAEL 202 #define ANGLE_OF_INCIDENCE_PATCH 203 #define PROJECTION_PATCH 204 #define HDR_PATCH 205 #endif //PATCHES_BY_MAEL 206 207 #ifdef PATCHES_BY_THOMAS_WILLHALM 208 #define FUR_PATCH 209 #endif //PATCHES_BY_THOMAS_WILLHALM 210 211 #ifdef PATCHES_BY_LUTZ_PETER_HOOGE 212 #define BICUBIC_INTERPOLATION_PATCH 213 #endif //PATCHES_BY_LUTZ_PETER_HOOGE 214 215 #endif //MASTER_SWITCH 216 #endif //#ifndef PATCHES_H 217