home *** CD-ROM | disk | FTP | other *** search
- /*
- * common.h
- *
- * Copyright (C) 1989, 1991, Craig E. Kolb
- * All rights reserved.
- *
- * This software may be freely copied, modified, and redistributed
- * provided that this copyright notice is preserved on all copies.
- *
- * You may not distribute this software, in whole or in part, as part of
- * any commercial product without the express consent of the authors.
- *
- * There is no warranty or other guarantee of fitness of this software
- * for any purpose. It is provided solely "as is".
- *
- * $Id: common.h,v 4.0 91/07/17 14:30:18 kolb Exp Locker: kolb $
- *
- * $Log: common.h,v $
- * Revision 4.0 91/07/17 14:30:18 kolb
- * Initial version.
- *
- */
- #ifndef COMMON_H
- #define COMMON_H
-
- #include <stdio.h>
- #include <math.h>
- #include <stdlib.h>
-
- #include "config.h"
-
- typedef double Float;
-
- typedef void * voidstar;
-
- #include "expr.h"
- #include "vector.h"
- #include "ray.h"
- #include "color.h"
- #include "transform.h"
- #include "error.h"
-
- #ifndef TRUE
- #define TRUE 1
- #endif
-
- #ifndef FALSE
- #define FALSE 0
- #endif
-
- /*
- * Various useful constants and macros.
- */
- #ifndef PI
- #define PI 3.14159265358979323846
- #endif
- #define TWOPI (2. * PI)
- #define INV_TWOPI (1. / TWOPI)
- #define deg2rad(x) (Float)(x * PI/180.)
- #define LNHALF (-.69314718)
-
- #ifndef NULL
- # define NULL 0
- #endif
-
- #define UNSET -1
-
- #define share_malloc(x) Malloc(x)
- #define share_calloc(x,y) Calloc(x,y)
-
- /*
- * Close enough for us.
- */
- #define equal(a, b) (fabs((a) - (b)) < 0.000001)
- /*
- * Maximum/Minimum functions
- */
- #define max(a, b) ((a) > (b) ? (a) : (b))
- #define min(a, b) ((a) < (b) ? (a) : (b))
-
- extern voidstar Malloc(unsigned bytes) ;
- extern voidstar Calloc(unsigned nelem, unsigned elen) ;
- extern void Free(voidstar memory) ;
-
- extern char *strsave(char *);
-
- #endif /* COMMON_H */
-