/*************************************************************************/
/*                                                                       */
/*  Copyright (c) 1994 Stanford University                               */
/*                                                                       */
/*  All rights reserved.                                                 */
/*                                                                       */
/*  Permission is given to use, copy, and modify this software for any   */
/*  non-commercial purpose as long as this copyright notice is not       */
/*  removed.  All other uses, including redistribution in whole or in    */
/*  part, are forbidden without prior written permission.                */
/*                                                                       */
/*  This software is provided with absolutely no warranty and no         */
/*  support.                                                             */
/*                                                                       */
/*************************************************************************/

/************************************************************************
*                                                                       *
*     constants.h:  constants needed for rendering system 		*
*                                                                       *
************************************************************************/


#define PI           3.14159265358979323846

#define MAX_NUMPROC           1024
#define NODE0                  0    /* processor no. to which first process is bound */

                                /* rendering parameters                      */
#define PIXELS_PER_BLOCK_DIM   4
#define ZSCALE                 1
#ifdef DIM
//#define ROTATE_STEPS          100
#define STEP_SIZE             3
#else
//#define ROTATE_STEPS           100
#define STEP_SIZE              3
#endif
#define ROOT                   0

                                /* BOOLEAN constants used                    */
#define TRUE            1       /*   BOOLEAN defined as a user type          */
#define FALSE           0       /*   in my_types.h                           */
#define YES             1
#define NO              0

				/* Definition of object space coordinates:   */
#define	NM		3	/*   number of coordinates                   */
#define	X		0	/*   x-coordinate                            */
#define	Y		1	/*   y-coordinate                            */
#define	Z		2	/*   z-coordinate                            */

				/* Definition of pixel image coordinates:    */
#define	NI		2	/*   number of coordinates                   */

                                /* NORMAL constant using 16-bit signed short */
#if 0
#define NORM_LSHIFT   127.0     /*   left shift to store normal as short     */
#define NORM_RSHIFT   .00787401574803149606
#define LOOKUP_PREC   255
#define LOOKUP_HSIZE  65024     /*   = (255*127+127)*2                       */
#define LOOKUP_SIZE   130050    /*   = 255*255*2                             */
#endif
#define NORM_LSHIFT   31.0
#define NORM_RSHIFT   .03225806451612903225
#define LOOKUP_PREC   63
#define LOOKUP_HSIZE  3968
#define LOOKUP_SIZE   7938

                                /* PIXEL constants used                      */
#define NULL_PIXEL      0       /*   initialization value for pixel          */
#define PIX_CUR_VERSION 1       /*   version of .pix file used               */

				/* Definition of string sizes:               */
#define	FILENAME_SIZE		200			/* max user filename */
#define FILENAME_STRING_SIZE	(FILENAME_SIZE+1)	/* + 1 for null char */

				/* Definition of minimum and maximum values: */
#define	MIN_DENSITY	0	/*   density                                 */
#define	MAX_DENSITY	255	/*   density                                 */
#define	MIN_MAGNITUDE	0	/*   magnitude of density gradient           */
#define	MAX_MAGNITUDE	442	/*   sqrt(MAX_GRADIENT**2*3)                 */
#define MIN_OPACITY	0.0	/*   compositing opacity                     */
#define	MAX_OPACITY	1.0	/*     (0.0=transparent, 1.0=opaque)         */
#define	MIN_OPC	        0	/*                                           */
#define	MAX_OPC	        255	/*                                           */
#define	INV_MAX_OPC	.00392156862745098039
#define	MIN_PIXEL	0	/*   pixel or voxel color or opacity         */
#define	MAX_PIXEL	255	/*                                           */
#define	INV_MAX_PIXEL	.00392156862745098039
#define MAX_INLEN	1024	/*   size of any input map or space          */
#define MAX_OUTLEN	4096	/*   size of any output map or space         */
#define SMALL          0.00001  /* Don't use {SMALL,BIG} in single precision */
#define BIG            9999.999 /* expressions alongside {big,small} numbers */
/*#define MAX_INT    4294967295*/   /* 2^32-1 is the maximum integer             */

                                /* Definition of global constants assumed    */
#define INSET           1               /*   inset assumes gradient          */
                                        /*   operator not 5x5                */

#define MAX_PYRLEVEL	9	/* Maximum level in binary pyramid           */
				/*   (allows 1x1x1..512x512x512 voxels)      */

