home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / mac / developm / source / macraysh.sit / Code / Headers / atmosphere.h next >
Encoding:
C/C++ Source or Header  |  1991-11-08  |  1.4 KB  |  48 lines

  1. /*
  2.  * atmosphere.h
  3.  *
  4.  * Copyright (C) 1989, 1991, Craig E. Kolb
  5.  * All rights reserved.
  6.  *
  7.  * This software may be freely copied, modified, and redistributed
  8.  * provided that this copyright notice is preserved on all copies.
  9.  *
  10.  * You may not distribute this software, in whole or in part, as part of
  11.  * any commercial product without the express consent of the authors.
  12.  *
  13.  * There is no warranty or other guarantee of fitness of this software
  14.  * for any purpose.  It is provided solely "as is".
  15.  *
  16.  * $Id: atmosphere.h,v 4.0 91/07/17 14:40:06 kolb Exp Locker: kolb $
  17.  *
  18.  * $Log:    atmosphere.h,v $
  19.  * Revision 4.0  91/07/17  14:40:06  kolb
  20.  * Initial version.
  21.  * 
  22.  */
  23. #ifndef ATMOSPHERE_H
  24. #define ATMOSPHERE_H
  25.  
  26. #include "common.h"
  27.  
  28. typedef char * AtmosRef;
  29.  
  30. typedef struct Medium {
  31.     Float    index,            /* Index of refraction */
  32.         statten;        /* specular transmission attenuation */    
  33.     struct Medium *next;
  34. } Medium;
  35.  
  36. typedef struct Atmosphere {
  37.     AtmosRef data;            /* Effect info */
  38.     void    (*method)();        /* Atmosphere method */
  39.     struct Atmosphere *next;    /* Next effect */
  40. } Atmosphere;
  41.  
  42. extern Atmosphere *AtmosCreate(char *data, void (*method )());
  43. extern Atmosphere *AtmosphereCopy(Atmosphere *atmos);
  44. extern Medium *MediumPush(Float index, Float statten, Medium *media);
  45. extern void Atmospherics(Atmosphere *effects, Ray *ray, Float dist, Vector *pos, Color *color);
  46.  
  47. #endif /* ATMOSPHERE_H */
  48.