home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume28 / rayshade / patch05 < prev    next >
Text File  |  1992-02-10  |  26KB  |  867 lines

  1. Newsgroups: comp.sources.misc
  2. From: Craig Kolb <rayshade-request@cs.princeton.edu>
  3. Subject:  v28i031:  rayshade - A raytracing package for UNIX, Patch05
  4. Message-ID: <1992Feb10.162120.5958@sparky.imd.sterling.com>
  5. X-Md4-Signature: 195b08002a13ee79874b4c3ce3a9fed5
  6. Date: Mon, 10 Feb 1992 16:21:20 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Craig Kolb <rayshade-request@cs.princeton.edu>
  10. Posting-number: Volume 28, Issue 31
  11. Archive-name: rayshade/patch05
  12. Environment: UNIX
  13. Patch-To: rayshade: Volume 21, Issue 3-22
  14.  
  15. System: rayshade version 4.0
  16. Patch #: 5
  17. Priority: HIGH
  18. Subject: patch #3, continued
  19. Date: Mon Feb  3 13:24:56 EST 1992
  20. From: Rayshade Construction Co. <rayshade-request@cs.princeton.edu>
  21.  
  22. Fix:    From rn, say "| patch -p -N -d DIR", where DIR is your rayshade source
  23.     directory.  Outside of rn, say "cd DIR; patch -p -N <thisarticle".
  24.     If you don't have the patch program, apply the following by hand,
  25.     or get patch (version 2.0, latest patchlevel).
  26.  
  27.     After patching:
  28.         Configure -d
  29.         make depend
  30.         make
  31.  
  32.     If patch indicates that patchlevel is the wrong version, you may need
  33.     to apply one or more previous patches, or the patch may already
  34.     have been applied.  See the patchlevel.h file to find out what has or
  35.     has not been applied.  In any event, don't continue with the patch.
  36.  
  37.     If you are missing previous patches they can be obtained through
  38.     anonymous ftp from weedeater.math.yale.edu (130.132.23.17) in
  39.     pub/rayshade.4.0/patches.
  40.  
  41. Index: patchlevel.h
  42. Prereq: 4
  43. 1c1
  44. < #define PATCHLEVEL 4
  45. ---
  46. > #define PATCHLEVEL 5
  47. Index: libshade/picture.c
  48. Prereq: 4.0
  49. *** old/libshade/picture.c    Mon Feb  3 12:42:55 1992
  50. --- new/libshade/picture.c    Fri Jan 17 10:30:09 1992
  51. ***************
  52. *** 13,21 ****
  53.    * There is no warranty or other guarantee of fitness of this software
  54.    * for any purpose.  It is provided solely "as is".
  55.    *
  56. !  * $Id: picture.c,v 4.0 91/07/17 14:47:00 kolb Exp Locker: kolb $
  57.    *
  58.    * $Log:    picture.c,v $
  59.    * Revision 4.0  91/07/17  14:47:00  kolb
  60.    * Initial version.
  61.    * 
  62. --- 13,26 ----
  63.    * There is no warranty or other guarantee of fitness of this software
  64.    * for any purpose.  It is provided solely "as is".
  65.    *
  66. !  * $Id: picture.c,v 4.0.1.1 92/01/10 16:28:28 cek Exp Locker: cek $
  67.    *
  68.    * $Log:    picture.c,v $
  69. +  * Revision 4.0.1.1  92/01/10  16:28:28  cek
  70. +  * patch3: Added check for nonexistent patial image file.
  71. +  * patch3: Fixed declaration of nrow in count_rle_rows().
  72. +  * patch3: Changed level of several error messages.
  73. +  * 
  74.    * Revision 4.0  91/07/17  14:47:00  kolb
  75.    * Initial version.
  76.    * 
  77. ***************
  78. *** 85,91 ****
  79.           if (Options.imgname) {
  80.               Options.pictfile = fopen(Options.imgname, "w");
  81.               if (Options.pictfile == (FILE *)NULL)
  82. !                 RLerror(RL_PANIC,"Cannot open %s for writing.",
  83.                       Options.imgname);
  84.           } else
  85.               Options.pictfile = stdout;
  86. --- 90,96 ----
  87.           if (Options.imgname) {
  88.               Options.pictfile = fopen(Options.imgname, "w");
  89.               if (Options.pictfile == (FILE *)NULL)
  90. !                 RLerror(RL_ABORT,"Cannot open %s for writing.",
  91.                       Options.imgname);
  92.           } else
  93.               Options.pictfile = stdout;
  94. ***************
  95. *** 137,143 ****
  96.   PictureSetWindow()
  97.   {
  98.       if (Options.imgname == (char *)NULL)
  99. !         RLerror(RL_PANIC,
  100.               "No partially-completed image file specified.\n");
  101.   
  102.       /*
  103. --- 142,148 ----
  104.   PictureSetWindow()
  105.   {
  106.       if (Options.imgname == (char *)NULL)
  107. !         RLerror(RL_ABORT,
  108.               "No partially-completed image file specified.\n");
  109.   
  110.       /*
  111. ***************
  112. *** 144,149 ****
  113. --- 149,158 ----
  114.        * Open image and read RLE header.
  115.        */
  116.       Options.pictfile = fopen(Options.imgname, "r");
  117. +     if (Options.pictfile == (FILE *)NULL) {
  118. +         RLerror(RL_ABORT, "Cannot open image file %s.\n",
  119. +                     Options.imgname);
  120. +     }
  121.       rle_dflt_hdr.rle_file = Options.pictfile;
  122.       rle_get_setup_ok(&rle_dflt_hdr, "rayshade", Options.imgname);
  123.   
  124. ***************
  125. *** 196,202 ****
  126.   rle_hdr *hdr;
  127.   {
  128.       rle_op **raw;
  129. !     int **nraw, y, ynext;
  130.   
  131.       if (rle_raw_alloc( hdr, &raw, &nraw ) < 0)  {
  132.           RLerror(RL_PANIC,
  133. --- 205,211 ----
  134.   rle_hdr *hdr;
  135.   {
  136.       rle_op **raw;
  137. !     int *nraw, y, ynext;
  138.   
  139.       if (rle_raw_alloc( hdr, &raw, &nraw ) < 0)  {
  140.           RLerror(RL_PANIC,
  141. ***************
  142. *** 284,290 ****
  143.       if (Options.imgname) {
  144.           Options.pictfile = fopen(Options.imgname, "w");
  145.           if (Options.pictfile == (FILE *)NULL)
  146. !             RLerror(RL_PANIC, "Cannot open %s for writing.",
  147.                   Options.imgname);
  148.       } else
  149.           Options.pictfile = stdout;
  150. --- 293,299 ----
  151.       if (Options.imgname) {
  152.           Options.pictfile = fopen(Options.imgname, "w");
  153.           if (Options.pictfile == (FILE *)NULL)
  154. !             RLerror(RL_ERROR, "Cannot open %s for writing.",
  155.                   Options.imgname);
  156.       } else
  157.           Options.pictfile = stdout;
  158.  
  159. Index: Doc/Guide/lights.tex
  160. *** old/Doc/Guide/lights.tex    Mon Feb  3 12:42:56 1992
  161. --- new/Doc/Guide/lights.tex    Fri Jan 17 10:29:14 1992
  162. ***************
  163. *** 13,23 ****
  164.   In this chapter, an {\em Intensity\/} is either a red-green-blue triple
  165.   indicating the color of the light source, or a single value that is
  166.   interpreted as the intensity of a ``white'' light.
  167. ! In the current version of {\em rayshade}, the intensity of a light does
  168.   not decrease as
  169.   one moves farther from it.
  170.   
  171. ! If you do not define a light source, \rayshade will create a directional
  172.   light source of intensity 1.0 defined by the vector (1., -1., 1.).
  173.   This default light source is designed to work well when default
  174.   viewing parameters and surface values are being used.
  175. --- 13,23 ----
  176.   In this chapter, an {\em Intensity\/} is either a red-green-blue triple
  177.   indicating the color of the light source, or a single value that is
  178.   interpreted as the intensity of a ``white'' light.
  179. ! In the current version of {\rayshade}, the intensity of a light does
  180.   not decrease as
  181.   one moves farther from it.
  182.   
  183. ! If you do not define a light source, {\rayshade} will create a directional
  184.   light source of intensity 1.0 defined by the vector (1., -1., 1.).
  185.   This default light source is designed to work well when default
  186.   viewing parameters and surface values are being used.
  187. ***************
  188. *** 163,173 ****
  189.   the shadow ray until it either reaches the light source or until
  190.   the light is completely attenuated.
  191.   
  192. ! By default, \rayshade computes shadow attenuation by assuming
  193.   that the index of refraction of the transparent object is the
  194.   same as that of the medium through which the ray is traveling.
  195.   To disable
  196. ! partial shadowing due to transparent objects, the {\em shadowtransp}
  197.   keyword should be given somewhere in the input file.
  198.   
  199.   \begin{defkey}{shadowtransp}{}
  200. --- 163,173 ----
  201.   the shadow ray until it either reaches the light source or until
  202.   the light is completely attenuated.
  203.   
  204. ! By default, {\rayshade} computes shadow attenuation by assuming
  205.   that the index of refraction of the transparent object is the
  206.   same as that of the medium through which the ray is traveling.
  207.   To disable
  208. ! partial shadowing due to transparent objects, the {\tt shadowtransp}
  209.   keyword should be given somewhere in the input file.
  210.   
  211.   \begin{defkey}{shadowtransp}{}
  212.  
  213. Index: libray/libcommon/vecmath.c
  214. Prereq: 4.0.1.1
  215. *** old/libray/libcommon/vecmath.c    Mon Feb  3 12:50:01 1992
  216. --- new/libray/libcommon/vecmath.c    Fri Jan 17 10:29:27 1992
  217. ***************
  218. *** 13,24 ****
  219.    * There is no warranty or other guarantee of fitness of this software
  220.    * for any purpose.  It is provided solely "as is".
  221.    *
  222. !  * $Id: vecmath.c,v 4.0.1.1 91/09/29 15:38:41 cek Exp Locker: cek $
  223.    *
  224.    * $Log:    vecmath.c,v $
  225.    * Revision 4.0.1.1  91/09/29  15:38:41  cek
  226.    * patch1: Fixed floating-point compare in normalization code.
  227. !  * 
  228.    * Revision 4.0  91/07/17  14:33:02  kolb
  229.    * Initial version.
  230.    * 
  231. --- 13,27 ----
  232.    * There is no warranty or other guarantee of fitness of this software
  233.    * for any purpose.  It is provided solely "as is".
  234.    *
  235. !  * $Id: vecmath.c,v 4.0.1.2 91/11/26 21:36:15 cek Exp Locker: cek $
  236.    *
  237.    * $Log:    vecmath.c,v $
  238. +  * Revision 4.0.1.2  91/11/26  21:36:15  cek
  239. +  * patch3: Potential roundoff problems.
  240. +  * 
  241.    * Revision 4.0.1.1  91/09/29  15:38:41  cek
  242.    * patch1: Fixed floating-point compare in normalization code.
  243. !  *
  244.    * Revision 4.0  91/07/17  14:33:02  kolb
  245.    * Initial version.
  246.    * 
  247. ***************
  248. *** 92,98 ****
  249.   Float from_index, to_index, cos1;
  250.   Vector *dir, *I, *N;
  251.   {
  252. !     Float kn, cos2, k;
  253.       Vector nrm;
  254.   
  255.       if (cos1 < 0.) {
  256. --- 95,101 ----
  257.   Float from_index, to_index, cos1;
  258.   Vector *dir, *I, *N;
  259.   {
  260. !     double kn, cos2, k;
  261.       Vector nrm;
  262.   
  263.       if (cos1 < 0.) {
  264. ***************
  265. *** 110,116 ****
  266.       cos2 = 1. - kn*kn*(1. - cos1*cos1);
  267.       if (cos2 < 0.)
  268.           return TRUE;        /* Total internal reflection. */
  269. !     k = kn * cos1 - sqrt(cos2);
  270.       VecComb(kn, *I, k, nrm, dir);
  271.       return FALSE;
  272.   }
  273. --- 113,119 ----
  274.       cos2 = 1. - kn*kn*(1. - cos1*cos1);
  275.       if (cos2 < 0.)
  276.           return TRUE;        /* Total internal reflection. */
  277. !     k = kn * cos1 - sqrt((double)cos2);
  278.       VecComb(kn, *I, k, nrm, dir);
  279.       return FALSE;
  280.   }
  281.  
  282. Index: libshade/options.c
  283. Prereq: 4.0.1.1
  284. *** old/libshade/options.c    Mon Feb  3 12:49:52 1992
  285. --- new/libshade/options.c    Fri Jan 17 10:30:11 1992
  286. ***************
  287. *** 13,21 ****
  288.    * There is no warranty or other guarantee of fitness of this software
  289.    * for any purpose.  It is provided solely "as is".
  290.    *
  291. !  * $Id: options.c,v 4.0.1.1 91/10/05 18:23:15 cek Exp Locker: cek $
  292.    *
  293.    * $Log:    options.c,v $
  294.    * Revision 4.0.1.1  91/10/05  18:23:15  cek
  295.    * patch1: Changes for new window/crop options.
  296.    * patch1: Corrected help message.
  297. --- 13,27 ----
  298.    * There is no warranty or other guarantee of fitness of this software
  299.    * for any purpose.  It is provided solely "as is".
  300.    *
  301. !  * $Id: options.c,v 4.0.1.3 92/01/14 18:29:59 cek Exp Locker: cek $
  302.    *
  303.    * $Log:    options.c,v $
  304. +  * Revision 4.0.1.3  92/01/14  18:29:59  cek
  305. +  * patch3: Added "-u" (cpp) option.
  306. +  * 
  307. +  * Revision 4.0.1.2  91/12/13  12:09:53  cek
  308. +  * patch3: Fixed "-W" option typo.
  309. +  * 
  310.    * Revision 4.0.1.1  91/10/05  18:23:15  cek
  311.    * patch1: Changes for new window/crop options.
  312.    * patch1: Corrected help message.
  313. ***************
  314. *** 197,202 ****
  315. --- 203,211 ----
  316.                   argv += 3;
  317.                   argc -= 3;
  318.                   break;
  319. +             case 'u':
  320. +                 Options.cpp = !Options.cpp;
  321. +                 break;
  322.               case 'v':
  323.                   Options.verbose = TRUE;
  324.                   break;
  325. ***************
  326. *** 216,222 ****
  327.                   break;
  328.               case 'W':
  329.                   Options.window[LOW][X] = atoi(argv[1]);
  330. !                 Options.window[HIGH][X] = atoi(argv[3]);
  331.                   Options.window[LOW][Y] = atoi(argv[3]);
  332.                   Options.window[HIGH][Y] = atoi(argv[4]);
  333.                   Options.window_set = TRUE;
  334. --- 225,231 ----
  335.                   break;
  336.               case 'W':
  337.                   Options.window[LOW][X] = atoi(argv[1]);
  338. !                 Options.window[HIGH][X] = atoi(argv[2]);
  339.                   Options.window[LOW][Y] = atoi(argv[3]);
  340.                   Options.window[HIGH][Y] = atoi(argv[4]);
  341.                   Options.window_set = TRUE;
  342.  
  343. Index: libshade/misc.c
  344. Prereq: 4.0
  345. *** old/libshade/misc.c    Mon Feb  3 12:42:46 1992
  346. --- new/libshade/misc.c    Fri Jan 17 10:30:07 1992
  347. ***************
  348. *** 13,21 ****
  349.    * There is no warranty or other guarantee of fitness of this software
  350.    * for any purpose.  It is provided solely "as is".
  351.    *
  352. !  * $Id: misc.c,v 4.0 91/07/17 14:46:31 kolb Exp Locker: kolb $
  353.    *
  354.    * $Log:    misc.c,v $
  355.    * Revision 4.0  91/07/17  14:46:31  kolb
  356.    * Initial version.
  357.    * 
  358. --- 13,24 ----
  359.    * There is no warranty or other guarantee of fitness of this software
  360.    * for any purpose.  It is provided solely "as is".
  361.    *
  362. !  * $Id: misc.c,v 4.0.1.1 92/01/14 18:29:05 cek Exp Locker: cek $
  363.    *
  364.    * $Log:    misc.c,v $
  365. +  * Revision 4.0.1.1  92/01/14  18:29:05  cek
  366. +  * patch3: Added support for switching cpp on/off.
  367. +  * 
  368.    * Revision 4.0  91/07/17  14:46:31  kolb
  369.    * Initial version.
  370.    * 
  371. ***************
  372. *** 61,70 ****
  373.           (void)strcpy(yyfilename, Options.inputname);
  374.           (void)strcat(cmd, Options.inputname);
  375.       }
  376. !     yyin = popen(cmd, "r");
  377. !     if (yyin == (FILE *)NULL)
  378. !         RLerror(RL_PANIC, "popen of \"%s\" failed!\n", cmd);
  379. ! #else
  380.       if (Options.inputname == (char *)NULL) {
  381.           yyin = stdin;
  382.           (void)strcpy(yyfilename, "stdin");
  383. --- 64,76 ----
  384.           (void)strcpy(yyfilename, Options.inputname);
  385.           (void)strcat(cmd, Options.inputname);
  386.       }
  387. !     if (Options.cpp) {
  388. !         yyin = popen(cmd, "r");
  389. !         if (yyin == (FILE *)NULL)
  390. !             RLerror(RL_PANIC, "popen of \"%s\" failed!\n", cmd);
  391. !     } else {
  392. ! #endif
  393.       if (Options.inputname == (char *)NULL) {
  394.           yyin = stdin;
  395.           (void)strcpy(yyfilename, "stdin");
  396. ***************
  397. *** 74,79 ****
  398. --- 80,87 ----
  399.           if (yyin == (FILE *)NULL)
  400.               RLerror(RL_PANIC,
  401.                   "Cannot open %s.\n",Options.inputname);
  402. +     }
  403. + #if defined(CPPSTDIN) && defined(POPEN)
  404.       }
  405.   #endif
  406.       /*
  407.  
  408. Index: libshade/options.h
  409. Prereq: 4.0.1.1
  410. *** old/libshade/options.h    Mon Feb  3 12:49:55 1992
  411. --- new/libshade/options.h    Fri Jan 17 10:30:07 1992
  412. ***************
  413. *** 13,21 ****
  414.    * There is no warranty or other guarantee of fitness of this software
  415.    * for any purpose.  It is provided solely "as is".
  416.    *
  417. !  * $Id: options.h,v 4.0.1.1 91/09/29 15:51:17 cek Exp Locker: cek $
  418.    *
  419.    * $Log:    options.h,v $
  420.    * Revision 4.0.1.1  91/09/29  15:51:17  cek
  421.    * patch1: Added window and crop options.
  422.    * 
  423. --- 13,24 ----
  424.    * There is no warranty or other guarantee of fitness of this software
  425.    * for any purpose.  It is provided solely "as is".
  426.    *
  427. !  * $Id: options.h,v 4.0.1.2 92/01/14 18:29:14 cek Exp Locker: cek $
  428.    *
  429.    * $Log:    options.h,v $
  430. +  * Revision 4.0.1.2  92/01/14  18:29:14  cek
  431. +  * patch3: Added "cpp" option.
  432. +  * 
  433.    * Revision 4.0.1.1  91/09/29  15:51:17  cek
  434.    * patch1: Added window and crop options.
  435.    * 
  436. ***************
  437. *** 65,71 ****
  438.           startframe,        /* Starting frame number. */
  439.           endframe,        /* ending frame number */
  440.           totalframes,        /* total # of frames */
  441. !         totalframes_set;    /* set on command line? */
  442.   #ifdef URT
  443.       int    alpha;            /* Write alpha channel? */
  444.       int    exp_output;        /* Write exponential RLE file? */
  445. --- 68,75 ----
  446.           startframe,        /* Starting frame number. */
  447.           endframe,        /* ending frame number */
  448.           totalframes,        /* total # of frames */
  449. !         totalframes_set,    /* set on command line? */
  450. !         cpp;            /* run CPP? */
  451.   #ifdef URT
  452.       int    alpha;            /* Write alpha channel? */
  453.       int    exp_output;        /* Write exponential RLE file? */
  454.  
  455. Index: libray/libcommon/common.h
  456. Prereq: 4.0
  457. *** old/libray/libcommon/common.h    Mon Feb  3 12:42:25 1992
  458. --- new/libray/libcommon/common.h    Fri Jan 17 10:29:27 1992
  459. ***************
  460. *** 13,21 ****
  461.    * There is no warranty or other guarantee of fitness of this software
  462.    * for any purpose.  It is provided solely "as is".
  463.    *
  464. !  * $Id: common.h,v 4.0 91/07/17 14:30:18 kolb Exp Locker: kolb $
  465.    *
  466.    * $Log:    common.h,v $
  467.    * Revision 4.0  91/07/17  14:30:18  kolb
  468.    * Initial version.
  469.    * 
  470. --- 13,24 ----
  471.    * There is no warranty or other guarantee of fitness of this software
  472.    * for any purpose.  It is provided solely "as is".
  473.    *
  474. !  * $Id: common.h,v 4.0.1.1 91/11/26 21:34:27 cek Exp Locker: cek $
  475.    *
  476.    * $Log:    common.h,v $
  477. +  * Revision 4.0.1.1  91/11/26  21:34:27  cek
  478. +  * patch3: Added EPSILON definition, redefine equal() macro.
  479. +  * 
  480.    * Revision 4.0  91/07/17  14:30:18  kolb
  481.    * Initial version.
  482.    * 
  483. ***************
  484. *** 56,61 ****
  485. --- 59,71 ----
  486.   /*
  487.    * Various useful constants and macros.
  488.    */
  489. + /*
  490. +  * Minimum vector length & fp value.
  491. +  * Modify depending upon Float typedef.
  492. +  */
  493. + #define EPSILON        (Float)0.00001
  494.   #ifndef PI
  495.   #define    PI        3.14159265358979323846
  496.   #endif
  497. ***************
  498. *** 94,100 ****
  499.   /*
  500.    * Close enough for us.
  501.    */
  502. ! #define equal(a, b)        (fabs((a) - (b)) < 0.000001)
  503.   /*
  504.    * Maximum/Minimum functions
  505.    */
  506. --- 104,110 ----
  507.   /*
  508.    * Close enough for us.
  509.    */
  510. ! #define equal(a, b)        (fabs((a) - (b)) < EPSILON)
  511.   /*
  512.    * Maximum/Minimum functions
  513.    */
  514.  
  515. Index: rayshade/raytrace.c
  516. Prereq: 4.0
  517. *** old/rayshade/raytrace.c    Mon Feb  3 12:43:01 1992
  518. --- new/rayshade/raytrace.c    Fri Jan 17 10:30:25 1992
  519. ***************
  520. *** 13,21 ****
  521.    * There is no warranty or other guarantee of fitness of this software
  522.    * for any purpose.  It is provided solely "as is".
  523.    *
  524. !  * $Id: raytrace.c,v 4.0 91/07/17 14:50:49 kolb Exp Locker: kolb $
  525.    *
  526.    * $Log:    raytrace.c,v $
  527.    * Revision 4.0  91/07/17  14:50:49  kolb
  528.    * Initial version.
  529.    * 
  530. --- 13,24 ----
  531.    * There is no warranty or other guarantee of fitness of this software
  532.    * for any purpose.  It is provided solely "as is".
  533.    *
  534. !  * $Id: raytrace.c,v 4.0.1.1 92/01/10 17:13:02 cek Exp Locker: cek $
  535.    *
  536.    * $Log:    raytrace.c,v $
  537. +  * Revision 4.0.1.1  92/01/10  17:13:02  cek
  538. +  * patch3: Made status report print actual scanline number.
  539. +  * 
  540.    * Revision 4.0  91/07/17  14:50:49  kolb
  541.    * Initial version.
  542.    * 
  543. ***************
  544. *** 153,161 ****
  545.           scan2.pix = tmppix;
  546.           scan2.samp = tmpsamp;
  547.   
  548. !         if ((y-1) % Options.report_freq == 0) {
  549. !             fprintf(Stats.fstats,"Finished line %d (%lu rays",y-1,
  550. !                             Stats.EyeRays);
  551.               if (Options.verbose) {
  552.                   /*
  553.                    * Report total CPU and split times.
  554. --- 156,165 ----
  555.           scan2.pix = tmppix;
  556.           scan2.samp = tmpsamp;
  557.   
  558. !         if ((y+Screen.miny-1) % Options.report_freq == 0) {
  559. !             fprintf(Stats.fstats,"Finished line %d (%lu rays",
  560. !                         y+Screen.miny-1,
  561. !                         Stats.EyeRays);
  562.               if (Options.verbose) {
  563.                   /*
  564.                    * Report total CPU and split times.
  565.  
  566. Index: Doc/Guide/guide.tex
  567. *** old/Doc/Guide/guide.tex    Mon Feb  3 12:41:54 1992
  568. --- new/Doc/Guide/guide.tex    Fri Jan 17 10:29:11 1992
  569. ***************
  570. *** 1,7 ****
  571.   %
  572.   % Rayshde User's Guide
  573.   %
  574. ! % $Id: guide.tex,v 4.0 91/07/17 14:24:11 kolb Exp Locker: kolb $
  575.   %
  576.   % Keyword definition
  577.   \newenvironment{defkey}[2]{\begin{description} \item[] {\tt #1\/} #2 \\}{\end{description}}
  578. --- 1,7 ----
  579.   %
  580.   % Rayshde User's Guide
  581.   %
  582. ! % $Id: guide.tex,v 4.0.1.1 92/01/10 17:04:24 cek Exp Locker: cek $
  583.   %
  584.   % Keyword definition
  585.   \newenvironment{defkey}[2]{\begin{description} \item[] {\tt #1\/} #2 \\}{\end{description}}
  586. ***************
  587. *** 14,26 ****
  588.   
  589.   \documentstyle[11pt]{report}
  590.   
  591. ! \newcommand{\Rayshade}{\mbox{{\em Rayshade}\/} }
  592. ! \newcommand{\rayshade}{\mbox{{\em rayshade}\/} }
  593.   
  594.   \title{Rayshade User's Guide and Reference Manual}
  595.   \author{Craig E. Kolb}
  596. ! \date{Draft 0.2 \\
  597. ! July 12, 1991}
  598.   \begin{document}
  599.   \maketitle
  600.   \pagenumbering{roman}
  601. --- 14,26 ----
  602.   
  603.   \documentstyle[11pt]{report}
  604.   
  605. ! \newcommand{\Rayshade}{\mbox{{\em Rayshade}\/}}
  606. ! \newcommand{\rayshade}{\mbox{{\em rayshade}\/}}
  607.   
  608.   \title{Rayshade User's Guide and Reference Manual}
  609.   \author{Craig E. Kolb}
  610. ! \date{Draft 0.4 \\
  611. ! January 10, 1992}
  612.   \begin{document}
  613.   \maketitle
  614.   \pagenumbering{roman}
  615.  
  616. Index: libshade/setup.c
  617. Prereq: 4.0.1.1
  618. *** old/libshade/setup.c    Mon Feb  3 12:49:58 1992
  619. --- new/libshade/setup.c    Fri Jan 17 10:30:09 1992
  620. ***************
  621. *** 13,21 ****
  622.    * There is no warranty or other guarantee of fitness of this software
  623.    * for any purpose.  It is provided solely "as is".
  624.    *
  625. !  * $Id: setup.c,v 4.0.1.1 91/09/29 15:52:20 cek Exp Locker: cek $
  626.    *
  627.    * $Log:    setup.c,v $
  628.    * Revision 4.0.1.1  91/09/29  15:52:20  cek
  629.    * patch1: Added crop window initialization.
  630.    * patch1: Moved RSViewing call to appropriate location.
  631. --- 13,24 ----
  632.    * There is no warranty or other guarantee of fitness of this software
  633.    * for any purpose.  It is provided solely "as is".
  634.    *
  635. !  * $Id: setup.c,v 4.0.1.2 92/01/14 18:29:35 cek Exp Locker: cek $
  636.    *
  637.    * $Log:    setup.c,v $
  638. +  * Revision 4.0.1.2  92/01/14  18:29:35  cek
  639. +  * patch3: Added initialization of cpp option.
  640. +  * 
  641.    * Revision 4.0.1.1  91/09/29  15:52:20  cek
  642.    * patch1: Added crop window initialization.
  643.    * patch1: Moved RSViewing call to appropriate location.
  644. ***************
  645. *** 84,89 ****
  646. --- 87,93 ----
  647.   
  648.       Screen.xres = Screen.yres = UNSET;
  649.   
  650. +     Options.cpp = TRUE;
  651.       Options.maxdepth = MAXDEPTH;
  652.       Options.report_freq = REPORTFREQ;
  653.       Options.jitter = TRUE;
  654.  
  655. Index: libray/libobj/poly.c
  656. Prereq: 4.0
  657. *** old/libray/libobj/poly.c    Mon Feb  3 12:42:54 1992
  658. --- new/libray/libobj/poly.c    Fri Jan 17 10:29:39 1992
  659. ***************
  660. *** 13,21 ****
  661.    * There is no warranty or other guarantee of fitness of this software
  662.    * for any purpose.  It is provided solely "as is".
  663.    *
  664. !  * $Id: poly.c,v 4.0 91/07/17 14:39:00 kolb Exp Locker: kolb $
  665.    *
  666.    * $Log:    poly.c,v $
  667.    * Revision 4.0  91/07/17  14:39:00  kolb
  668.    * Initial version.
  669.    * 
  670. --- 13,24 ----
  671.    * There is no warranty or other guarantee of fitness of this software
  672.    * for any purpose.  It is provided solely "as is".
  673.    *
  674. !  * $Id: poly.c,v 4.0.1.1 91/11/26 21:25:34 cek Exp Locker: cek $
  675.    *
  676.    * $Log:    poly.c,v $
  677. +  * Revision 4.0.1.1  91/11/26  21:25:34  cek
  678. +  * patch3: Additional check for degenerate polygon.
  679. +  * 
  680.    * Revision 4.0  91/07/17  14:39:00  kolb
  681.    * Initial version.
  682.    * 
  683. ***************
  684. *** 43,48 ****
  685. --- 46,56 ----
  686.       PointList *curp, *pltmp;
  687.       int i;
  688.   
  689. +     if (npoints < 3) {
  690. +         RLerror(RL_WARN, "Degenerate polygon.\n");
  691. +         return (Polygon *)NULL;
  692. +     }
  693. +     
  694.       poly = (Polygon *)share_malloc(sizeof(Polygon));
  695.       /*
  696.        * Allocate space for the vertices.
  697.  
  698. Index: Doc/quickref.txt
  699. *** old/Doc/quickref.txt    Mon Feb  3 12:49:53 1992
  700. --- new/Doc/quickref.txt    Fri Jan 17 10:29:17 1992
  701. ***************
  702. *** 39,46 ****
  703.   -q             Run quietly            -R xres yres   Resolution
  704.   -r             Right eye view         -S samples     Use Samples^2 samples
  705.   -s             Toggle shadow caching  -T r g b       Contrast threshold
  706. ! -V filename    Verbose file output    -v             Verbose output
  707. ! -W lx hx ly hy Render subwindow       -X l r b t     Crop window
  708.   -------------------------------------------------------------------------------
  709.   
  710.   File: /* Input file consists of...*/
  711. --- 39,47 ----
  712.   -q             Run quietly            -R xres yres   Resolution
  713.   -r             Right eye view         -S samples     Use Samples^2 samples
  714.   -s             Toggle shadow caching  -T r g b       Contrast threshold
  715. ! -u             Toggle use of cpp      -V filename    Verbose file output
  716. ! -v             Verbose output         -W lx hx ly hy Render subwindow
  717. ! -X l r b t     Crop window
  718.   -------------------------------------------------------------------------------
  719.   
  720.   File: /* Input file consists of...*/
  721.  
  722. Index: libray/libcommon/vector.h
  723. Prereq: 4.0
  724. *** old/libray/libcommon/vector.h    Mon Feb  3 12:42:26 1992
  725. --- new/libray/libcommon/vector.h    Fri Jan 17 10:29:27 1992
  726. ***************
  727. *** 13,21 ****
  728.    * There is no warranty or other guarantee of fitness of this software
  729.    * for any purpose.  It is provided solely "as is".
  730.    *
  731. !  * $Id: vector.h,v 4.0 91/07/17 14:33:11 kolb Exp Locker: kolb $
  732.    *
  733.    * $Log:    vector.h,v $
  734.    * Revision 4.0  91/07/17  14:33:11  kolb
  735.    * Initial version.
  736.    * 
  737. --- 13,24 ----
  738.    * There is no warranty or other guarantee of fitness of this software
  739.    * for any purpose.  It is provided solely "as is".
  740.    *
  741. !  * $Id: vector.h,v 4.0.1.1 91/11/26 21:34:41 cek Exp Locker: cek $
  742.    *
  743.    * $Log:    vector.h,v $
  744. +  * Revision 4.0.1.1  91/11/26  21:34:41  cek
  745. +  * patch3: Moved EPSILON definition.
  746. +  * 
  747.    * Revision 4.0  91/07/17  14:33:11  kolb
  748.    * Initial version.
  749.    * 
  750. ***************
  751. *** 29,38 ****
  752.   #define YNORMAL        (char)1
  753.   #define ZNORMAL        (char)2
  754.   
  755. - /*
  756. -  * Minimum vector length
  757. -  */
  758. - #define EPSILON        (Float)0.00001
  759.   /*
  760.    * Maximum length
  761.    */
  762. --- 32,37 ----
  763.  
  764. Index: Doc/Guide/transform.tex
  765. *** old/Doc/Guide/transform.tex    Mon Feb  3 12:42:06 1992
  766. --- new/Doc/Guide/transform.tex    Fri Jan 17 10:29:11 1992
  767. ***************
  768. *** 1,6 ****
  769.   \chapter {Transformations}
  770.   
  771. ! Rayshade supports the application of linear transformations to objects
  772.   and textures.  If more than one transformation is specified, the
  773.   total resulting transformation is computed and applied.
  774.   
  775. --- 1,6 ----
  776.   \chapter {Transformations}
  777.   
  778. ! {\Rayshade} supports the application of linear transformations to objects
  779.   and textures.  If more than one transformation is specified, the
  780.   total resulting transformation is computed and applied.
  781.   
  782. ***************
  783. *** 45,49 ****
  784.   \end{verbatim}
  785.   
  786.   Note that transformation parameters may be specified using
  787. ! of animated expressions, causing the transformations themselves
  788.   to be animated.  See Appendix B for further details.
  789. --- 45,49 ----
  790.   \end{verbatim}
  791.   
  792.   Note that transformation parameters may be specified using
  793. ! animated expressions, causing the transformations themselves
  794.   to be animated.  See Appendix B for further details.
  795.  
  796. Index: etc/rsconvert/main.c
  797. Prereq: 4.0
  798. *** old/etc/rsconvert/main.c    Mon Feb  3 12:42:15 1992
  799. --- new/etc/rsconvert/main.c    Fri Jan 17 10:29:21 1992
  800. ***************
  801. *** 13,21 ****
  802.    * There is no warranty or other guarantee of fitness of this software
  803.    * for any purpose.  It is provided solely "as is".
  804.    *
  805. !  * $Id: main.c,v 4.0 91/07/17 14:29:30 kolb Exp Locker: kolb $
  806.    *
  807.    * $Log:    main.c,v $
  808.    * Revision 4.0  91/07/17  14:29:30  kolb
  809.    * Initial version.
  810.    * 
  811. --- 13,24 ----
  812.    * There is no warranty or other guarantee of fitness of this software
  813.    * for any purpose.  It is provided solely "as is".
  814.    *
  815. !  * $Id: main.c,v 4.0.1.1 91/11/26 21:11:33 cek Exp Locker: cek $
  816.    *
  817.    * $Log:    main.c,v $
  818. +  * Revision 4.0.1.1  91/11/26  21:11:33  cek
  819. +  * patch3: Define ENDCAPS for cylinder-capping.
  820. +  * 
  821.    * Revision 4.0  91/07/17  14:29:30  kolb
  822.    * Initial version.
  823.    * 
  824. ***************
  825. *** 48,53 ****
  826. --- 51,57 ----
  827.       } else
  828.           yyin = stdin;
  829.       printf("/* Converted by rsconvert */\n");
  830. +     printf("#define ENDCAPS\n");
  831.       yyparse();
  832.   }    
  833.   
  834.  
  835. Index: Doc/TODO
  836. *** old/Doc/TODO    Mon Feb  3 12:42:07 1992
  837. --- new/Doc/TODO    Fri Jan 17 10:29:17 1992
  838. ***************
  839. *** 2,9 ****
  840.   TODO List
  841.   ---------
  842.   
  843. - Non-URT images upside-down.
  844.   If World object has only one subobject, and the World
  845.   is neither textured nor transformed (can't do this anyway),
  846.   then make that object the World object.  In theory we could
  847. --- 2,7 ----
  848.  
  849. Index: Doc/BUGS
  850. *** old/Doc/BUGS    Mon Feb  3 12:41:45 1992
  851. --- new/Doc/BUGS    Fri Jan 17 10:29:11 1992
  852. ***************
  853. *** 1 ****
  854. ! Non-URT images are rendered upside-down.
  855. --- 1,2 ----
  856. ! Planar mappings don't skew correctly.
  857. ! Defining Float == float doesn't breaks refraction.
  858.  
  859.  
  860. *** End of Patch 5 ***
  861.  
  862. exit 0 # Just in case...
  863.