#! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'Doc/BUGS' <<'END_OF_FILE' XPlanar mappings don't skew correctly. XDefining Float == float doesn't breaks refraction. END_OF_FILE if test 89 -ne `wc -c <'Doc/BUGS'`; then echo shar: \"'Doc/BUGS'\" unpacked with wrong size! fi # end of 'Doc/BUGS' fi if test -f 'Doc/Copyright' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Doc/Copyright'\" else echo shar: Extracting \"'Doc/Copyright'\" \(484 characters\) sed "s/^X//" >'Doc/Copyright' <<'END_OF_FILE' X/* X * Copyright (C) 1989, 1991, Craig E. Kolb X * All rights reserved. X * X * This software may be freely copied, modified, and redistributed X * provided that this copyright notice is preserved on all copies. X * X * You may not distribute this software, in whole or in part, as part of X * any commercial product without the express consent of the authors. X * X * There is no warranty or other guarantee of fitness of this software X * for any purpose. It is provided solely "as is". X */ END_OF_FILE if test 484 -ne `wc -c <'Doc/Copyright'`; then echo shar: \"'Doc/Copyright'\" unpacked with wrong size! fi # end of 'Doc/Copyright' fi if test ! -d 'Doc/Guide' ; then echo shar: Creating directory \"'Doc/Guide'\" mkdir 'Doc/Guide' fi if test -f 'Doc/Guide/README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Doc/Guide/README'\" else echo shar: Extracting \"'Doc/Guide/README'\" \(450 characters\) sed "s/^X//" >'Doc/Guide/README' <<'END_OF_FILE' XThis directory contains a draft of the Rayshade User's Guide. XIt is written using LaTeX macros. To create the corresponding X"dvi" file, run "latex guide" twice from this directory. XThe resulting "guide.dvi" file should be fed to your favorite Xdvi --> readable-format converter. X XIf you do not have LaTeX, a postscript version of this document Xis available via anonymous ftp from weedeater.math.yale.edu X(130.132.23.17) in pub/rayshade.4.0/guide.ps. END_OF_FILE if test 450 -ne `wc -c <'Doc/Guide/README'`; then echo shar: \"'Doc/Guide/README'\" unpacked with wrong size! fi # end of 'Doc/Guide/README' fi if test ! -d 'Examples' ; then echo shar: Creating directory \"'Examples'\" mkdir 'Examples' fi if test -f 'Examples/ashtray.def.ray' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Examples/ashtray.def.ray'\" else echo shar: Extracting \"'Examples/ashtray.def.ray'\" \(738 characters\) sed "s/^X//" >'Examples/ashtray.def.ray' <<'END_OF_FILE' X/* X * Ashtray object X * C. Kolb 11/1990 X * X * $Id: ashtray.def.ray,v 4.0 91/07/17 14:25:26 kolb Exp Locker: kolb $ X */ Xname indent_proto grid 3 2 1 X cylinder 0.5 0 -1.2 0 0 1.2 0 X disc .5 0 -1.2 0 0 -1 0 X disc .5 0 1.2 0 0 1 0 X cylinder 0.5 2 -1.2 0 2 1.2 0 X disc .5 2 -1.2 0 0 -1 0 X disc .5 2 1.2 0 0 1 0 X cylinder 0.5 -2 -1.2 0 -2 1.2 0 X disc .5 -2 -1.2 0 0 -1 0 X disc .5 -2 1.2 0 0 1 0 Xend X X Xname rests grid 3 3 1 X object indent_proto translate 0 -5. .2 X object indent_proto translate 0 5. .2 X object indent_proto rotate 0 0 1 90 translate 5. 0 .2 X object indent_proto rotate 0 0 1 90 translate -5. 0 .2 Xend X X Xname ashtray difference X difference box -5 -5 -3 5 5 0 torus 3 1.5 0 0 0 0 0 1 end X object rests Xend END_OF_FILE if test 738 -ne `wc -c <'Examples/ashtray.def.ray'`; then echo shar: \"'Examples/ashtray.def.ray'\" unpacked with wrong size! fi # end of 'Examples/ashtray.def.ray' fi if test -f 'Examples/ashtray.ray' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Examples/ashtray.ray'\" else echo shar: Extracting \"'Examples/ashtray.ray'\" \(463 characters\) sed "s/^X//" >'Examples/ashtray.ray' <<'END_OF_FILE' X/* X * Painted ashtray X * C Kolb 12/90 X * Set IMAGEFILE to image you wish to use. X */ X#ifndef IMAGEFILE X#define IMAGEFILE /usr/u/utah/img/mandrill.rle X#endif X Xreport verbose X X#include "ashtray.def.ray" X Xsurface white ambient .1 .1 .1 diffuse .6 .6 .6 specular .4 .4 .4 Xplane white 0 0 -3 0 0 1 Xobject ashtray X texture image IMAGEFILE map planar X scale 10 10 1 translate -5 -5 0 X Xlight 1. directional -.5 -1 1.9 Xbackground .1 .3 .8 Xeyep 5. -15 13. Xscreen 256 256 END_OF_FILE if test 463 -ne `wc -c <'Examples/ashtray.ray'`; then echo shar: \"'Examples/ashtray.ray'\" unpacked with wrong size! fi # end of 'Examples/ashtray.ray' fi if test -f 'Examples/blob.ray' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Examples/blob.ray'\" else echo shar: Extracting \"'Examples/blob.ray'\" \(500 characters\) sed "s/^X//" >'Examples/blob.ray' <<'END_OF_FILE' X/* X * Example blob input file, courtesy of Mark Podlipec X */ Xeyep 0.0 -6.0 1.0 Xlookp 0.0 0.0 0.0 Xfov 45. 45. Xscreen 240 240 Xlight 1.4 point 15. -20. 25. Xlight 0.7 point 5. -25. 10. Xsurface white ambient .02 .02 .02 diffuse .5 .5 .5 specular .8 .8 .8 specpow 32 X Xblob white 0.6 1.0 1.0 -0.900 0.000 0.000 X 1.0 1.0 0.900 0.000 0.000 X 1.0 1.0 0.000 0.000 -0.900 X 1.0 1.0 0.000 0.000 0.900 texture marble X Xplane white 0. 0. -3.77 0 0 1 X END_OF_FILE if test 500 -ne `wc -c <'Examples/blob.ray'`; then echo shar: \"'Examples/blob.ray'\" unpacked with wrong size! fi # end of 'Examples/blob.ray' fi if test -f 'Examples/glass.def.ray' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Examples/glass.def.ray'\" else echo shar: Extracting \"'Examples/glass.def.ray'\" \(348 characters\) sed "s/^X//" >'Examples/glass.def.ray' <<'END_OF_FILE' X/* X * Drinking glass object. X * C. Kolb 12/89 X */ Xname glass Xunion X torus 0.95 0.06 0 0 2 0 0 1 X difference X list /* outer glass */ X cone 0.9 0 0 -0.001 1.0 0 0 2 X disc 1 0 0 2 0 0 1 X disc 0.9 0 0 -.001 0 0 -1 X end X list /* inner glass */ X cone 0.7 0 0 0.1 0.9 0 0 2.2 X disc .9 0 0 2.2 0 0 1 X disc .7 0 0 0.1 0 0 -1 X end X end Xend END_OF_FILE if test 348 -ne `wc -c <'Examples/glass.def.ray'`; then echo shar: \"'Examples/glass.def.ray'\" unpacked with wrong size! fi # end of 'Examples/glass.def.ray' fi if test -f 'Examples/glass.ray' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Examples/glass.ray'\" else echo shar: Extracting \"'Examples/glass.ray'\" \(531 characters\) sed "s/^X//" >'Examples/glass.ray' <<'END_OF_FILE' X/* X * Bump-mapped transparent drinking glass on checkerboard X * C Kolb 12/90 X */ X#include "glass.def.ray" X Xsurface glass X diffuse .08 .08 .08 specular .2 .2 .2 X reflect 1. transp 1 body .8 .8 .8 index 1.3 Xsurface white ambient 1 1 1 Xsurface red diffuse .8 0 0 ambient .1 0 0 specular .6 .6 .6 X Xobject glass glass /*texture bump 0.2 scale .2 .2 .2*/ X Xplane ambient .1 .1 .1 diffuse .7 .7 .7 0 0 0 0 0 1 X texture checker red scale .8 .8 .8 translate 0 0 -.2 X Xbackground .1 .3 .8 Xeyep 0 -10 7 Xfov 30 Xlight 1. directional 1. -1. 1. END_OF_FILE if test 531 -ne `wc -c <'Examples/glass.ray'`; then echo shar: \"'Examples/glass.ray'\" unpacked with wrong size! fi # end of 'Examples/glass.ray' fi if test -f 'Examples/planet.ray' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Examples/planet.ray'\" else echo shar: Extracting \"'Examples/planet.ray'\" \(467 characters\) sed "s/^X//" >'Examples/planet.ray' <<'END_OF_FILE' X/* X * "planet" input file to demonstrate fbm texture and use of cpp X * C. Kolb X */ X#define EXPAND(x) scale x x x X X#define LACUNARITY 2. X#define OCTAVES 6 X Xscreen 256 256 Xlight 1.0 0.9 0.8 directional 1. -1. 1. Xeyep 0. -4. 0. Xsphere ambient .06 .05 .04 X diffuse .9 .85 .8 X 1.0 0 0 0 X texture fbm 0. /* offset */ X 1. /* scale */ X 0.3 /* h */ X LACUNARITY /* lambda */ X OCTAVES /* octaves */ X -.2 /* thresh */ X planet.map /* mapname */ X EXPAND(0.7) END_OF_FILE if test 467 -ne `wc -c <'Examples/planet.ray'`; then echo shar: \"'Examples/planet.ray'\" unpacked with wrong size! fi # end of 'Examples/planet.ray' fi if test -f 'Examples/stripe.ray' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Examples/stripe.ray'\" else echo shar: Extracting \"'Examples/stripe.ray'\" \(641 characters\) sed "s/^X//" >'Examples/stripe.ray' <<'END_OF_FILE' X/* X * Simple demo of how uv texturing and bump mapping works. X * You'll need to define the pathname of an image you want to slap X * on the cylinder. X * X * To run, say something like: X * rayshade -v -C -DIMAGEFILE=mandrill.rle stripe.ray > stripe.rle X * X * C. Kolb 12/90 X */ X#ifndef IMAGEFILE X#define IMAGEFILE /usr/u/utah/img/mandrill.rle X#endif X Xsurface white ambient .1 .1 .1 diffuse .6 .6 .6 X Xcylinder 1 -3 0 0 3 0 0 X texture stripe white 0.1 3 /* add ten stripes per, rotated */ X scale .1 .1 1. X rotate 0 0 1 45 X texture image /* and smack on 25 copies of the image */ X IMAGEFILE X textsurf white X scale .2 .2 1. Xscreen 500 160 END_OF_FILE if test 641 -ne `wc -c <'Examples/stripe.ray'`; then echo shar: \"'Examples/stripe.ray'\" unpacked with wrong size! fi # end of 'Examples/stripe.ray' fi if test -f 'MANIFEST' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'MANIFEST'\" else echo shar: Extracting \"'MANIFEST'\" \(12384 characters\) sed "s/^X//" >'MANIFEST' <<'END_OF_FILE' X File Name Archive # Description X----------------------------------------------------------- X Configure 19 Configuration script X Doc 1 Rayshade documents X Doc/BUGS 1 Known bugs X Doc/Changes 3 Rencent changes X Doc/Copyright 1 Copyright information X Doc/Globals 5 Global variable information X Doc/Guide 1 User's Guide X Doc/Guide/README 1 User's Guide information X Doc/Guide/animate.tex 8 Animation documentation X Doc/Guide/camera.tex 10 Camera documentation module X Doc/Guide/guide.tex 2 Rayshade user's guide and ref manual X Doc/Guide/height.tex 5 Heightfield documentation X Doc/Guide/intro.tex 6 Introduction X Doc/Guide/lights.tex 12 Light source documentation X Doc/Guide/objects.tex 16 Object documentation X Doc/Guide/options.tex 10 Command-line option document X Doc/Guide/preface.tex 7 Babblings X Doc/Guide/running.tex 15 Overview of running rayshade X Doc/Guide/surfaces.tex 13 Description of surface properties X Doc/Guide/texture.tex 15 Texturing document X Doc/Guide/transform.tex 3 Transformations X Doc/TODO 3 List of proposed projects X Doc/quickref.txt 13 Rayshade quick reference guide X Examples 1 Example rayshade input X Examples/ashtray.def.ray 1 Ashtray object X Examples/ashtray.ray 1 Ashtray scene X Examples/balls.ray 2 Ten spheres X Examples/blob.ray 1 Blob scene X Examples/boxball.ray 3 Sphere/box csg scene X Examples/coin.ray 2 Flipping coin demo X Examples/csg.ray 5 Csg scene X Examples/glass.def.ray 1 Glass object X Examples/glass.ray 1 Glass scene X Examples/mtv.ray 5 Muse Ick TV logo X Examples/planet.map 6 Colormap used in planet.ray X Examples/planet.ray 1 Texture-mapped sphere X Examples/pool.ray 7 Gaudy pool table X Examples/solids.ray 2 Sphere and cone X Examples/stripe.ray 1 Stripe example X MANIFEST 1 X Makefile 1 Toplevel Makefile X README 1 General information X Reconfigure 3 Extract .SH files from given config X blurb.urt 11 Utah Raster Toolkit information X config.H 10 Example configuration header X config.h.SH 10 Script to generate config.h X etc 1 Tools and other goodies X etc/Makefile.SH 2 Script to generate tool Makefile X etc/malloc.sgi 4 Suggested malloc tuning on sgi machines X etc/nff2shade.awk 7 NFF-->rayshade conversion awk script X etc/rsconvert 1 Old rayshade input --> new conversion X etc/rsconvert/Makefile.SH 4 Script to generate conversion Makefile X etc/rsconvert/lex.l 8 Lexical analysis for converter X etc/rsconvert/main.c 4 Conversion driver X etc/rsconvert/yacc.y 16 Conversion actions X libray 1 Ray tracing library X libray/Makefile 1 libray Makefile X libray/libcommon 1 Common routines/data structures X libray/libcommon/Makefile.SH 4 Script to produce Makefile X libray/libcommon/color.h 3 Color definitions X libray/libcommon/common.h 5 Headers for useful routines X libray/libcommon/error.h 3 Error reporting definitions X libray/libcommon/expr.c 10 Expression handling X libray/libcommon/expr.h 3 Expression definitions X libray/libcommon/memory.c 4 Memory allocation X libray/libcommon/ray.h 2 Ray definitions X libray/libcommon/rotate.c 6 Rotation methods X libray/libcommon/rotate.h 3 Rotationdefinitions X libray/libcommon/sampling.c 7 Sampling control X libray/libcommon/sampling.h 3 Sampling definitions X libray/libcommon/scale.c 4 Scaling methods X libray/libcommon/scale.h 2 Scaling definitions X libray/libcommon/transform.c 14 Transformation routines X libray/libcommon/transform.h 5 Transformation definitions X libray/libcommon/translate.c 4 Translation methods X libray/libcommon/translate.h 3 Translation definitions X libray/libcommon/vecmath.c 7 Vector manipulation routines X libray/libcommon/vector.h 5 Vector definitions X libray/libcommon/xform.c 5 Linear transformation methods X libray/libcommon/xform.h 5 Linear transformation definitions X libray/libimage 1 Image reading library X libray/libimage/Makefile.SH 4 Script to produce imagelib Makefile X libray/libimage/image.c 9 Image reading routines X libray/libimage/image.h 3 Image reading definitions X libray/liblight 1 Light source library X libray/liblight/Makefile.SH 4 Script to produce liblight Makefile X libray/liblight/extended.c 6 Extended light source methods X libray/liblight/extended.h 2 Extended source definitions X libray/liblight/infinite.c 4 Infinite light source methdos X libray/liblight/infinite.h 2 Infinite source definitions X libray/liblight/jittered.c 5 Jittered light source methods X libray/liblight/jittered.h 2 Jittered source definitions X libray/liblight/light.c 5 Lighting calculations X libray/liblight/light.h 5 Light definitions X libray/liblight/point.c 4 Point source methods X libray/liblight/point.h 2 Point source definitions X libray/liblight/shadow.c 11 Shadow determination routines X libray/liblight/spot.c 7 Spot light methods X libray/liblight/spot.h 2 Spot light definitions X libray/libobj 1 Object library X libray/libobj/Makefile.SH 4 Script to generate libobj Makefile X libray/libobj/blob.c 17 Blobby molecule methods X libray/libobj/blob.h 4 Blobby molecule definitions X libray/libobj/bounds.c 9 Bounding box routines X libray/libobj/bounds.h 3 Bounding box definitions X libray/libobj/box.c 7 Box methods X libray/libobj/box.h 2 Box defininitions X libray/libobj/cone.c 10 Cone methods X libray/libobj/cone.h 2 Cone definitions X libray/libobj/csg.c 14 Construct solid geometry methods X libray/libobj/csg.h 3 CSG definitions X libray/libobj/cylinder.c 8 Cylinder methods X libray/libobj/cylinder.h 2 Cylinder definitions X libray/libobj/disc.c 8 Disc methods X libray/libobj/disc.h 2 Disc definitions X libray/libobj/geom.c 13 Geometric object support routines X libray/libobj/geom.h 8 Geometric object definitions X libray/libobj/grid.c 14 Uniform spatial subdivision methods X libray/libobj/grid.h 4 Uniform spatial subdivision definitions X libray/libobj/hf.c 16 Height field methods X libray/libobj/hf.h 6 Height field definitions X libray/libobj/instance.c 6 Object instantiation methods X libray/libobj/instance.h 3 Instantiation definitions X libray/libobj/intersect.c 8 Intersection routines X libray/libobj/list.c 7 List methods X libray/libobj/list.h 2 List definitions X libray/libobj/plane.c 7 Plane methods X libray/libobj/plane.h 2 Plane definitions X libray/libobj/poly.c 12 Polygon methods X libray/libobj/poly.h 3 Polygon definitions X libray/libobj/roots.c 8 Cubic and quartic root finding routines X libray/libobj/sphere.c 8 Sphere methods X libray/libobj/sphere.h 2 Sphere definitions X libray/libobj/torus.c 12 Torus methods X libray/libobj/torus.h 3 Torus definitions X libray/libobj/triangle.c 15 Triangle methods X libray/libobj/triangle.h 4 Triangle definitions X libray/libsurf 1 Surface library X libray/libsurf/Makefile.SH 4 Script to generate libsurf Makefile X libray/libsurf/atmosphere.c 5 Atmospheric effects support routines X libray/libsurf/atmosphere.h 3 Atmospheric effects defintions X libray/libsurf/fog.c 4 Fog methods X libray/libsurf/fog.h 2 Fog definitions X libray/libsurf/fogdeck.c 6 Fog deck X libray/libsurf/fogdeck.h 2 Fog deck definitions X libray/libsurf/mist.c 4 Mist methods X libray/libsurf/mist.h 2 Mist definitions X libray/libsurf/surface.c 7 Surface support routines X libray/libsurf/surface.h 5 Surface definitions X libray/libsurf/surfshade.c 9 Surface shading routines X libray/libtext 1 Texturing library X libray/libtext/Makefile.SH 4 Script to generate libtext Makefile X libray/libtext/blotch.c 3 Blotch methods X libray/libtext/blotch.h 2 Blotch definitiosn X libray/libtext/bump.c 3 Bump texture methods X libray/libtext/bump.h 1 Bump definitions X libray/libtext/checker.c 3 Checker texture methods X libray/libtext/checker.h 2 Checker definitions X libray/libtext/cloud.c 6 Cloud texture methods X libray/libtext/cloud.h 2 Cloud definitions X libray/libtext/fbm.c 5 Fractional Brownian motion methods X libray/libtext/fbm.h 2 fBm definitions X libray/libtext/fbmbump.c 3 fBm-based bump methods X libray/libtext/fbmbump.h 1 fBm bump definitions X libray/libtext/gloss.c 3 Glossy reflection methods X libray/libtext/gloss.h 1 Glossy reflection definitions X libray/libtext/imagetext.c 10 Image texturing methods X libray/libtext/imagetext.h 3 Image texturing definitions X libray/libtext/mapping.c 9 Inverse mapping methods X libray/libtext/mapping.h 2 Inverse mapping definitions X libray/libtext/marble.c 4 Marble texture methods X libray/libtext/marble.h 2 Marble definitions X libray/libtext/mount.c 3 Mountain texture methods X libray/libtext/mount.h 2 Mountain texture definitions X libray/libtext/noise.c 11 Noise function X libray/libtext/sky.c 4 Sky texture methods X libray/libtext/sky.h 2 Sky texture definitions X libray/libtext/stripe.c 6 Stripe texture methods X libray/libtext/stripe.h 2 Stripe texture definitions X libray/libtext/textaux.c 9 Texturing support routines X libray/libtext/texture.c 9 Texturing driving routines X libray/libtext/texture.h 5 Texture definitions X libray/libtext/windy.c 4 Windy-blown water texture X libray/libtext/windy.h 2 Definitions for windy texture X libray/libtext/wood.c 5 Wood texture methods X libray/libtext/wood.h 1 Wood texture definitions X libshade 1 libray/rayshade interface library X libshade/Makefile.SH 6 Makefile for rayshade library X libshade/builtin.c 3 Builtin functions X libshade/builtin.h 1 Builtin definitions X libshade/defaults.h 4 Defaults X libshade/funcdefs.h 2 Various prototypes X libshade/lex.l 9 Lexical analysis X libshade/lightdef.c 7 Light definition X libshade/misc.c 8 Useful routines X libshade/objdef.c 5 Object definition X libshade/options.c 12 Option-parsing X libshade/options.h 7 Option declarations X libshade/picture.c 11 Image file manipulation X libshade/picture.h 2 Image file definitions X libshade/rayshade.h 1 Useful includes for libshade X libshade/setup.c 9 Initializtion and cleanup X libshade/shade.c 13 Shading calculations X libshade/stats.c 8 Statistics reporting X libshade/stats.h 3 Statistics header X libshade/surfdef.c 6 Surface definition X libshade/symtab.c 7 Symbol table manipulation X libshade/symtab.h 3 Symbol table declarations X libshade/viewing.c 12 Camera manipulation X libshade/viewing.h 3 Viewing declarations X libshade/yacc.y 18 Rayshade input parsing X patchlevel.h 1 Patch level information X raypaint 1 Raypaint application X raypaint/Makefile.SH 6 Raypaint Makefile X raypaint/README 5 General raypaint information X raypaint/glgraphics.c 6 SGI graphics support X raypaint/main.c 6 Raypaint main X raypaint/render.c 17 Driving routines X raypaint/version.c 1 Version information X raypaint/xgraphics.c 11 X11 graphics support X rayshade 1 Rayshade application X rayshade/Makefile.SH 6 Rayshade Makefile X rayshade/main.c 5 Rayshade main X rayshade/raytrace.c 14 Screen sampling, etc. X rayshade/raytrace.h 2 Sampling definitions X rayshade/version.c 1 Version information X rayview 1 Rayshade previewer X rayview/Makefile.SH 6 Makefile for previewer X rayview/README 1 General rayview information X rayview/glmethods.c 18 Support routines for SGI's GL X rayview/main.c 4 Preview driver X rayview/spheregen.c 11 Sphere generation X rayview/version.c 1 Version information END_OF_FILE if test 12384 -ne `wc -c <'MANIFEST'`; then echo shar: \"'MANIFEST'\" unpacked with wrong size! fi # end of 'MANIFEST' fi if test -f 'Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Makefile'\" else echo shar: Extracting \"'Makefile'\" \(529 characters\) sed "s/^X//" >'Makefile' <<'END_OF_FILE' X# X# Makefile for rayshade distribution X# C. Kolb 1/91 X# X# $Id: Makefile,v 4.0.1.1 91/10/10 18:33:14 cek Exp Locker: cek $ X# X XMAKE = make -$(MAKEFLAGS) XSTUFF = libray libshade rayshade etc XSHELL = /bin/sh X Xdefault: X for i in $(STUFF); do \ X (cd $$i && $(MAKE)); \ X done X X# X# Have to keep clean/depend separete so X# Configure will work X# X Xdepend: X for i in $(STUFF); do \ X (cd $$i && $(MAKE) depend); \ X done X Xclean: X for i in $(STUFF); do \ X (cd $$i && $(MAKE) clean); \ X done X Xkit: X (makekit -iMANIFEST.new -oMANIFEST -s 52K) END_OF_FILE if test 529 -ne `wc -c <'Makefile'`; then echo shar: \"'Makefile'\" unpacked with wrong size! fi # end of 'Makefile' fi if test -f 'README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'README'\" else echo shar: Extracting \"'README'\" \(8030 characters\) sed "s/^X//" >'README' <<'END_OF_FILE' XThis is version 4.0 of rayshade, a ray tracing program. XRayshade reads a multi-line ASCII file describing a scene to be rendered Xand produces a Utah Raster Toolkit "RLE" format file containing the Xray traced image. X XRayshade features: X X Eleven primitives (blob, box, cone, cylinder, height field, X plane, polygon, sphere, torus, flat- and Phong-shaded triangle) X X Aggregate objects X X Constructive solid geometry X X Point, directional, extended, spot, and quadrilateral light sources X X Solid procedural texturing, bump mapping, and X 2D "image" texture mapping X X Antialiasing through variable-rate "jittered" sampling X X Arbitrary linear transformations on objects and texture/bump maps. X X Use of uniform spatial subdivision or hierarchy of bounding X volumes to speed rendering X X Options to facilitate rendering of stereo pairs X X Rudimentary animation support X X XThere are many differences between rayshade versions 3.0 and 4.0. In Xparticular, the input syntax has changed. Input files created for Xversion 3.0 must be converted to version 4.0 syntax using the provided Xconversion utility, rsconvert. See Doc/Changes for a list of some of Xthe more important changes. X XRayshade v4.0 has been tested on many different UNIX-based computers, Xincluding: SGI 4D, IBM RS6000, Sun Sparcstation 1, Sun 3, DECstation, XApollo DN10000, NeXT. If your machine has a C compiler, enough memory X(at least 2Mb), and runs something resembling UNIX, rayshade should be fairly Xeasy to port. Be warned that rayshade uses yacc and lex to process input Xfiles. If you do not have lex and yacc, try to get flex and bison from Xthe Free Software Foundation folks (ftp to prep.ai.mit.edu). Attempts Xto port rayshade to 16-bit machines will likely lead to nothing but Xa profound sense of frustration. X XRayshade uses a Configure script in order to determine how it should Xbe compiled. This means that if you're not runing under UNIX, you'll Xprobably have to create a config.h and edit the Makefiles by hand. XIf you create a config.h file and/or Makefiles for use in an non-UNIX Xenvironment, send them to us and we will make it available for use by Xothers. The prototype config.H file may be of some help. X XNormally, rayshade makes use of the Utah Raster toolkit. You are Xstrongly encouraged to get a copy of the toolkit, as it provides a Xhost of useful tools for image manipulation and a library for reading/writing Xthe toolkit's "RLE" format image files. "blurb.urt" is the "blurb" file from Xthe latest distribution of the toolkit. Also of interest is the X"fbm" library, available from nl.cs.cmu.edu:/usr/mlm/ftp/fbm.tar.Z, which Xprovides additional tools for converting Utah Raster format images Xto/from other formats. X XIf you do not want to or cannot use the Utah Raster toolkit, rayshade Xcan be configured to create image files using a generic format Xidentical to that used by Mark VandeWettering's "mtv" ray tracer. X XThe rayshade distribution consists of two libraries (libray, libshade) and Xseveral applications (rayshade proper, rayview, raypaint) that are Xlinked against these libraries. To compile, run the Configure script to Xgenerate config.h and the Makefiles, then run "make depend" Xfollowed by "make". If the Configuration script fails, or if Xit can't determine a way to generate dependencies, you'll probably Xhave to edit the Makefiles or extract them from the Makefile.SH scripts Xby hand. Don't be overly alarmed if there are a few non-fatal error Xmessages while running "make depend" X XThe Doc directory contains a User's Guide in the Guide subdirectory, Xas well as a quick-reference sheet and some information that might Xbe useful in porting or modifying rayshade. To create a formatted Xversion of the User's Guide, you'll need LaTeX. If you don't have XLaTeX, a postscript version of the Guide is available via anonymous Xftp from weedeater.math.yale.edu (see below). X XThe etc directory contains miscellaneous goodies, including the source Xto a filter to convert rayshade v3.0 input to rayshade 4.0. XThe Example directory contains example input files, which may be Xused to test rayshade and to familiarize yourself with rayshade's input Xsyntax. You can also run any one of Eric Haines' XStandard Procedural Databases through awk using the etc/nff2shade.awk Xscript, and then feed the results to rayshade. Note that for several Xof the databases, you will need to tweak the data a bit to achieve Xoptimal runtimes. See nff2shade.awk for details. X XRayshade was not designed to be, nor is it, the be-all and end-all of Xray tracers. It was meant to be reasonably fast, portable, and easy to Xmodify. It has some nice features which allow you to produce Xpretty pictures, but there are countless extensions, modifications, Xand improvements which could be made. There are many routines which may be Xoptimized and many features which could be added. For a list of suggested Ximprovements and projects see "TODO". You are strongly encouraged to modify Xthe source code left and right. X XWhile there is currently no documentation for the libraries, it Xshould be easy for you to add your own primitives, textures, aggregates, Xand light sources by looking at the code and sending mail if you get Xstuck. X XAdditional rayshade goodies are available via anonymous ftp from Xweedeater.math.yale.edu (130.132.23.17) in pub/rayshade.4.0. XIf you have contributions of new objects, textures, input files, Xconfiguration files, or images to make, feel free to send us email or Xto drop off a copy via ftp in the "incoming" directory on weedeater. X XThe first version of rayshade was written by Craig Kolb, David P. Dobkin, Xand David C. Hoffman during 1987-1988, and was heavily based on an X"introductory" public domain ray tracer written by Roman Kuchkuda. XRayshade v3.0 was written by Craig Kolb and released in the Fall of 1989. XRayshade v4.0 was written by Craig Kolb and Rod Bogart during 1990-1991. X XRayshade was made possible by many people who have made suggestions, Xfixed bugs, and who have been all-around good sports about the whole thing. X XThanks to Gavin Bell, David Dobkin, Eric Haines, Lefteris Koutsofios, XKen Musgrave, Przemek Prusinkiewicz, and Allan Snider for their Xencouragement, comments, and willingness to be on the Front Lines. X XThanks to Roman Kuchkuda for providing such a solid base upon which Xto build. X XSpecial thanks to Robert Skinner for providing the Noise(), DNoise(), Xand other texturing functions and allowing them to be redistributed. X XPat Hanrahan's OOGL provided the spirit (if not the letter) of the Xmodularity of rayshade v4.0. Thanks to Pat and to Mark VandeWettering Xfor the 'net tracer' conversations and for the inspiration to do something Xto clean up rayshade. X XThanks to Marc Andreessen, Tony Apodaca, Ray Bellis, Dominique Boisvert, XWilliam Bouma, Allen Braunsdorf, Jeff Butterworth, Nick Carriero, XNancy Everson, Tom Friedel, Robert Funchess, David Gelernter, Mike Gigante, XEd Herderick, John Knuston, Raphael Manfredi, Lee Moore, Dietmar Saupe, XIain Sinclair, Brian Wyvill, and everybody else for their bugfixes, Xsuggestions, input files, encouragement, and other feedback. X XThanks also to Mark Podlipec for providing the blob and torus objects. X XThanks to Jochen Schwarze for the cubic and quartic root-finding functions. XHis code, and a host of other useful routines, can be found in X"Graphics Gems", edited by Andrew Glassner. X XThanks to Benoit Mandelbrot for the support he provided this project. X XIf you find any bugs, make any useful extensions, have a nice input file, Xport rayshade to a new environment, or need assistance understanding a Xparticularly braindamaged section of code, please let us know. We can be Xmost easily reached by email. X XOnce you start using rayshade, and you'd like to be kept abreast of Xchanges and extensions, send a message to rayshade-request@cs.princeton.edu, Xand we'll add you to the rayshade mailing list. X XCraig Kolb XRod Bogart X10 January 1992 Xrayshade-request@cs.yale.edu X XCraig Kolb XComputer Science Department XPrinceton University X35 Olden St. XPrinceton, NJ 08544 END_OF_FILE if test 8030 -ne `wc -c <'README'`; then echo shar: \"'README'\" unpacked with wrong size! fi # end of 'README' fi if test ! -d 'etc' ; then echo shar: Creating directory \"'etc'\" mkdir 'etc' fi if test ! -d 'etc/rsconvert' ; then echo shar: Creating directory \"'etc/rsconvert'\" mkdir 'etc/rsconvert' fi if test ! -d 'libray' ; then echo shar: Creating directory \"'libray'\" mkdir 'libray' fi if test -f 'libray/Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'libray/Makefile'\" else echo shar: Extracting \"'libray/Makefile'\" \(501 characters\) sed "s/^X//" >'libray/Makefile' <<'END_OF_FILE' X# X# Makefile for libray X# C. Kolb 1/91 X# X# $Id: Makefile,v 4.0.1.1 91/10/10 18:33:41 cek Exp Locker: cek $ X# XMAKE = make -$(MAKEFLAGS) XSTUFF = libcommon libobj libimage liblight libsurf libtext XSHELL = /bin/sh X Xdefault: X for i in $(STUFF); do \ X (cd $$i && $(MAKE)); \ X done X X# X# Have to keep clean/depend separete so X# Configure will work X# X Xdepend: X for i in $(STUFF); do \ X (cd $$i && $(MAKE) depend); \ X done X Xclean: X for i in $(STUFF); do \ X (cd $$i && $(MAKE) clean); \ X done X rm -f libray.a END_OF_FILE if test 501 -ne `wc -c <'libray/Makefile'`; then echo shar: \"'libray/Makefile'\" unpacked with wrong size! fi # end of 'libray/Makefile' fi if test ! -d 'libray/libcommon' ; then echo shar: Creating directory \"'libray/libcommon'\" mkdir 'libray/libcommon' fi if test ! -d 'libray/libimage' ; then echo shar: Creating directory \"'libray/libimage'\" mkdir 'libray/libimage' fi if test ! -d 'libray/liblight' ; then echo shar: Creating directory \"'libray/liblight'\" mkdir 'libray/liblight' fi if test ! -d 'libray/libobj' ; then echo shar: Creating directory \"'libray/libobj'\" mkdir 'libray/libobj' fi if test ! -d 'libray/libsurf' ; then echo shar: Creating directory \"'libray/libsurf'\" mkdir 'libray/libsurf' fi if test ! -d 'libray/libtext' ; then echo shar: Creating directory \"'libray/libtext'\" mkdir 'libray/libtext' fi if test -f 'libray/libtext/bump.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'libray/libtext/bump.h'\" else echo shar: Extracting \"'libray/libtext/bump.h'\" \(859 characters\) sed "s/^X//" >'libray/libtext/bump.h' <<'END_OF_FILE' X/* X * bump.h X * X * Copyright (C) 1989, 1991, Craig E. Kolb X * All rights reserved. X * X * This software may be freely copied, modified, and redistributed X * provided that this copyright notice is preserved on all copies. X * X * You may not distribute this software, in whole or in part, as part of X * any commercial product without the express consent of the authors. X * X * There is no warranty or other guarantee of fitness of this software X * for any purpose. It is provided solely "as is". X * X * $Id: bump.h,v 4.0 91/07/17 14:41:43 kolb Exp Locker: kolb $ X * X * $Log: bump.h,v $ X * Revision 4.0 91/07/17 14:41:43 kolb X * Initial version. X * X */ X#ifndef BUMP_H X X#define TextBumpCreate(s) TextCreate((TextRef) BumpCreate(s), \ X BumpApply) Xtypedef struct { X Float size; X} Bump; X Xextern Bump *BumpCreate(); Xextern void BumpApply(); X X#endif /* BUMP_H */ END_OF_FILE if test 859 -ne `wc -c <'libray/libtext/bump.h'`; then echo shar: \"'libray/libtext/bump.h'\" unpacked with wrong size! fi # end of 'libray/libtext/bump.h' fi if test -f 'libray/libtext/fbmbump.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'libray/libtext/fbmbump.h'\" else echo shar: Extracting \"'libray/libtext/fbmbump.h'\" \(862 characters\) sed "s/^X//" >'libray/libtext/fbmbump.h' <<'END_OF_FILE' X/* X * fbmbump.h X * X * Copyright (C) 1989, 1991, Craig E. Kolb X * All rights reserved. X * X * This software may be freely copied, modified, and redistributed X * provided that this copyright notice is preserved on all copies. X * X * You may not distribute this software, in whole or in part, as part of X * any commercial product without the express consent of the authors. X * X * There is no warranty or other guarantee of fitness of this software X * for any purpose. It is provided solely "as is". X * X * $Id: fbmbump.h,v 4.0 91/07/17 14:42:24 kolb Exp Locker: kolb $ X * X * $Log: fbmbump.h,v $ X * Revision 4.0 91/07/17 14:42:24 kolb X * Initial version. X * X */ X#ifndef FBMBUMP_H X X#define TextFBmBumpCreate(o,s,h,l,n) TextCreate( \ X (TextRef)FBmBumpCreate(o, s,h,l,n),FBmBumpApply) Xextern FBm *FBmBumpCreate(); Xextern void FBmBumpApply(); X X#endif /* FBMBUMP_H */ END_OF_FILE if test 862 -ne `wc -c <'libray/libtext/fbmbump.h'`; then echo shar: \"'libray/libtext/fbmbump.h'\" unpacked with wrong size! fi # end of 'libray/libtext/fbmbump.h' fi if test -f 'libray/libtext/gloss.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'libray/libtext/gloss.h'\" else echo shar: Extracting \"'libray/libtext/gloss.h'\" \(891 characters\) sed "s/^X//" >'libray/libtext/gloss.h' <<'END_OF_FILE' X/* X * gloss.h X * X * Copyright (C) 1989, 1991, Craig E. Kolb X * All rights reserved. X * X * This software may be freely copied, modified, and redistributed X * provided that this copyright notice is preserved on all copies. X * X * You may not distribute this software, in whole or in part, as part of X * any commercial product without the express consent of the authors. X * X * There is no warranty or other guarantee of fitness of this software X * for any purpose. It is provided solely "as is". X * X * $Id: gloss.h,v 4.0 91/07/17 14:42:33 kolb Exp Locker: kolb $ X * X * $Log: gloss.h,v $ X * Revision 4.0 91/07/17 14:42:33 kolb X * Initial version. X * X */ X#ifndef GLOSS_H X X#define TextGlossCreate(g) TextCreate((TextRef) GlossCreate(g), \ X GlossApply) Xtypedef struct { X Float glossy; /* glossiness */ X} Gloss; X Xextern Gloss *GlossCreate(); Xextern void GlossApply(); X X#endif /* GLOSS_H */ END_OF_FILE if test 891 -ne `wc -c <'libray/libtext/gloss.h'`; then echo shar: \"'libray/libtext/gloss.h'\" unpacked with wrong size! fi # end of 'libray/libtext/gloss.h' fi if test -f 'libray/libtext/wood.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'libray/libtext/wood.h'\" else echo shar: Extracting \"'libray/libtext/wood.h'\" \(839 characters\) sed "s/^X//" >'libray/libtext/wood.h' <<'END_OF_FILE' X/* X * wood.h X * X * Copyright (C) 1989, 1991, Craig E. Kolb X * All rights reserved. X * X * This software may be freely copied, modified, and redistributed X * provided that this copyright notice is preserved on all copies. X * X * You may not distribute this software, in whole or in part, as part of X * any commercial product without the express consent of the authors. X * X * There is no warranty or other guarantee of fitness of this software X * for any purpose. It is provided solely "as is". X * X * $Id: wood.h,v 4.0 91/07/17 14:44:38 kolb Exp Locker: kolb $ X * X * $Log: wood.h,v $ X * Revision 4.0 91/07/17 14:44:38 kolb X * Initial version. X * X */ X#ifndef WOOD_H X X#define TextWoodCreate() TextCreate((TextRef) WoodCreate(), \ X WoodApply) X Xtypedef char Wood; X Xextern Wood *WoodCreate(); Xextern void WoodApply(); X X#endif /* WOOD_H */ END_OF_FILE if test 839 -ne `wc -c <'libray/libtext/wood.h'`; then echo shar: \"'libray/libtext/wood.h'\" unpacked with wrong size! fi # end of 'libray/libtext/wood.h' fi if test ! -d 'libshade' ; then echo shar: Creating directory \"'libshade'\" mkdir 'libshade' fi if test -f 'libshade/builtin.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'libshade/builtin.h'\" else echo shar: Extracting \"'libshade/builtin.h'\" \(826 characters\) sed "s/^X//" >'libshade/builtin.h' <<'END_OF_FILE' X/* X * builtin.h X * X * Copyright (C) 1989, 1991, Craig E. Kolb X * All rights reserved. X * X * This software may be freely copied, modified, and redistributed X * provided that this copyright notice is preserved on all copies. X * X * You may not distribute this software, in whole or in part, as part of X * any commercial product without the express consent of the authors. X * X * There is no warranty or other guarantee of fitness of this software X * for any purpose. It is provided solely "as is". X * X * $Id: builtin.h,v 4.0 91/07/17 14:45:09 kolb Exp Locker: kolb $ X * X * $Log: builtin.h,v $ X * Revision 4.0 91/07/17 14:45:09 kolb X * Initial version. X * X */ X#ifndef BUILTIN_H X#define BUILTIN_H X Xextern Float SumExpr(), DiffExpr(), MultExpr(), DivideExpr(), ModExpr(), X NegateExpr(), LinearTime(); X X#endif /* BUILTIN_H */ END_OF_FILE if test 826 -ne `wc -c <'libshade/builtin.h'`; then echo shar: \"'libshade/builtin.h'\" unpacked with wrong size! fi # end of 'libshade/builtin.h' fi if test -f 'libshade/rayshade.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'libshade/rayshade.h'\" else echo shar: Extracting \"'libshade/rayshade.h'\" \(774 characters\) sed "s/^X//" >'libshade/rayshade.h' <<'END_OF_FILE' X/* X * rayshade.h X * X * Copyright (C) 1989, 1991, Craig E. Kolb X * All rights reserved. X * X * This software may be freely copied, modified, and redistributed X * provided that this copyright notice is preserved on all copies. X * X * You may not distribute this software, in whole or in part, as part of X * any commercial product without the express consent of the authors. X * X * There is no warranty or other guarantee of fitness of this software X * for any purpose. It is provided solely "as is". X * X * $Id: rayshade.h,v 4.0 91/07/17 14:47:16 kolb Exp Locker: kolb $ X * X * $Log: rayshade.h,v $ X * Revision 4.0 91/07/17 14:47:16 kolb X * Initial version. X * X */ X#ifndef RAYSHADE_H X#define RAYSHADE_H X X#include "libobj/geom.h" X#include "funcdefs.h" X X#endif /* RAYSHADE_H */ END_OF_FILE if test 774 -ne `wc -c <'libshade/rayshade.h'`; then echo shar: \"'libshade/rayshade.h'\" unpacked with wrong size! fi # end of 'libshade/rayshade.h' fi if test -f 'patchlevel.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'patchlevel.h'\" else echo shar: Extracting \"'patchlevel.h'\" \(21 characters\) sed "s/^X//" >'patchlevel.h' <<'END_OF_FILE' X#define PATCHLEVEL 6 END_OF_FILE if test 21 -ne `wc -c <'patchlevel.h'`; then echo shar: \"'patchlevel.h'\" unpacked with wrong size! fi # end of 'patchlevel.h' fi if test ! -d 'raypaint' ; then echo shar: Creating directory \"'raypaint'\" mkdir 'raypaint' fi if test -f 'raypaint/version.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'raypaint/version.c'\" else echo shar: Extracting \"'raypaint/version.c'\" \(852 characters\) sed "s/^X//" >'raypaint/version.c' <<'END_OF_FILE' X/* X * version.c X * X * Copyright (C) 1989, 1991, Craig E. Kolb X * All rights reserved. X * X * This software may be freely copied, modified, and redistributed X * provided that this copyright notice is preserved on all copies. X * X * You may not distribute this software, in whole or in part, as part of X * any commercial product without the express consent of the authors. X * X * There is no warranty or other guarantee of fitness of this software X * for any purpose. It is provided solely "as is". X * X * $Id: version.c,v 4.0 91/07/17 17:37:17 kolb Exp Locker: kolb $ X * X * $Log: version.c,v $ X * Revision 4.0 91/07/17 17:37:17 kolb X * Initial version. X * X */ X#include "rayshade.h" X#include "patchlevel.h" X#include "stats.h" X Xvoid XVersionPrint() X{ X extern char rcsid[]; X X fprintf(Stats.fstats, X "raypaint: %s\nPatch level %d\n", rcsid, PATCHLEVEL); X} END_OF_FILE if test 852 -ne `wc -c <'raypaint/version.c'`; then echo shar: \"'raypaint/version.c'\" unpacked with wrong size! fi # end of 'raypaint/version.c' fi if test ! -d 'rayshade' ; then echo shar: Creating directory \"'rayshade'\" mkdir 'rayshade' fi if test -f 'rayshade/version.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'rayshade/version.c'\" else echo shar: Extracting \"'rayshade/version.c'\" \(852 characters\) sed "s/^X//" >'rayshade/version.c' <<'END_OF_FILE' X/* X * version.c X * X * Copyright (C) 1989, 1991, Craig E. Kolb X * All rights reserved. X * X * This software may be freely copied, modified, and redistributed X * provided that this copyright notice is preserved on all copies. X * X * You may not distribute this software, in whole or in part, as part of X * any commercial product without the express consent of the authors. X * X * There is no warranty or other guarantee of fitness of this software X * for any purpose. It is provided solely "as is". X * X * $Id: version.c,v 4.0 91/07/17 14:52:08 kolb Exp Locker: kolb $ X * X * $Log: version.c,v $ X * Revision 4.0 91/07/17 14:52:08 kolb X * Initial version. X * X */ X#include "rayshade.h" X#include "patchlevel.h" X#include "stats.h" X Xvoid XVersionPrint() X{ X extern char rcsid[]; X X fprintf(Stats.fstats, X "rayshade: %s\nPatch level %d\n", rcsid, PATCHLEVEL); X} END_OF_FILE if test 852 -ne `wc -c <'rayshade/version.c'`; then echo shar: \"'rayshade/version.c'\" unpacked with wrong size! fi # end of 'rayshade/version.c' fi if test ! -d 'rayview' ; then echo shar: Creating directory \"'rayview'\" mkdir 'rayview' fi if test -f 'rayview/README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'rayview/README'\" else echo shar: Extracting \"'rayview/README'\" \(595 characters\) sed "s/^X//" >'rayview/README' <<'END_OF_FILE' XRayview reads a rayshade input file and opens a graphics window into Xwhich images are rendered using GL (SGI / RS6000) library calls. X XSupport is provided for most rayshade primitives and light sources. XSupport for CSG is limited to drawing the bounding boxes of those Xobjects used in each CSG object. X XRayview is intended to be an example of the kind of application program Xthat can be written using the rayshade libraries. You are encouraged Xto improve or otherwise modify rayview to suit your needs. X XTo compile, edit the Makefile, set GRAPHICSLIB and SPHERELIB appropriately, Xand run make. END_OF_FILE if test 595 -ne `wc -c <'rayview/README'`; then echo shar: \"'rayview/README'\" unpacked with wrong size! fi # end of 'rayview/README' fi if test -f 'rayview/version.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'rayview/version.c'\" else echo shar: Extracting \"'rayview/version.c'\" \(851 characters\) sed "s/^X//" >'rayview/version.c' <<'END_OF_FILE' X/* X * version.c X * X * Copyright (C) 1989, 1991, Craig E. Kolb X * All rights reserved. X * X * This software may be freely copied, modified, and redistributed X * provided that this copyright notice is preserved on all copies. X * X * You may not distribute this software, in whole or in part, as part of X * any commercial product without the express consent of the authors. X * X * There is no warranty or other guarantee of fitness of this software X * for any purpose. It is provided solely "as is". X * X * $Id: version.c,v 4.0 91/07/17 14:55:52 kolb Exp Locker: kolb $ X * X * $Log: version.c,v $ X * Revision 4.0 91/07/17 14:55:52 kolb X * Initial version. X * X */ X#include "rayshade.h" X#include "patchlevel.h" X#include "stats.h" X Xvoid XVersionPrint() X{ X extern char rcsid[]; X X fprintf(Stats.fstats, X "rayview: %s\nPatch level %d\n", rcsid, PATCHLEVEL); X} END_OF_FILE if test 851 -ne `wc -c <'rayview/version.c'`; then echo shar: \"'rayview/version.c'\" unpacked with wrong size! fi # end of 'rayview/version.c' fi echo shar: End of archive 1 \(of 19\). cp /dev/null ark1isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 19 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0