| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- /****************************************************************************
- * texture.h
- *
- * This file contains defines and variables for the txt*.c files
- *
- * from Persistence of Vision(tm) Ray Tracer
- * Copyright 1996,1999 Persistence of Vision Team
- *---------------------------------------------------------------------------
- * NOTICE: This source code file is provided so that users may experiment
- * with enhancements to POV-Ray and to port the software to platforms other
- * than those supported by the POV-Ray Team. There are strict rules under
- * which you are permitted to use this file. The rules are in the file
- * named POVLEGAL.DOC which should be distributed with this file.
- * If POVLEGAL.DOC is not available or for more info please contact the POV-Ray
- * Team Coordinator by email to team-coord@povray.org or visit us on the web at
- * http://www.povray.org. The latest version of POV-Ray may be found at this site.
- *
- * This program is based on the popular DKB raytracer version 2.12.
- * DKBTrace was originally written by David K. Buck.
- * DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
- *
- *****************************************************************************/
- /* NOTE: FRAME.H contains other texture stuff. */
- #ifndef TEXTURE_H
- #define TEXTURE_H
- #include "pattern.h"
- #include "warps.h"
- /*****************************************************************************
- * Global preprocessor defines
- ******************************************************************************/
- #define RNDMASK 0x7FFF
- #define RNDMULTIPLIER ((DBL)0.000030518509476)
- /*
- * Macro to create random number in the [0; 1] range.
- */
- #define FRAND() ((DBL)POV_RAND()*RNDMULTIPLIER)
- #define FLOOR(x) ((x) >= 0.0 ? floor(x) : (0.0 - floor(0.0 - (x)) - 1.0))
- #define Hash3d(a,b,c) \
- hashTable[(int)(hashTable[(int)(hashTable[(int)((a) & 0xfffL)] ^ ((b) & 0xfffL))] ^ ((c) & 0xfffL))]
- #define Hash2d(a,b) \
- hashTable[(int)(hashTable[(int)((a) & 0xfffL)] ^ ((b) & 0xfffL))]
- #define Hash1d(a,b) \
- hashTable[(int)(a) ^ ((b) & 0xfffL)]
- #define INCRSUM(m,s,x,y,z) \
- ((s)*(RTable[m]*0.5 + RTable[m+1]*(x) + RTable[m+2]*(y) + RTable[m+3]*(z)))
- #define INCRSUMP(mp,s,x,y,z) \
- ((s)*((mp[0])*0.5 + (mp[1])*(x) + (mp[2])*(y) + (mp[3])*(z)))
- /*****************************************************************************
- * Global typedefs
- ******************************************************************************/
- /*****************************************************************************
- * Global variables
- ******************************************************************************/
- extern short *hashTable;
- extern DBL *frequency; /* dmf */
- extern unsigned int Number_Of_Waves; /* dmf */
- extern VECTOR *Wave_Sources; /* dmf */
- /*****************************************************************************
- * Global functions
- ******************************************************************************/
- void Compute_Colour (COLOUR Colour,PIGMENT *Pigment, DBL value);
- void Initialize_Noise (void);
- void Free_Noise_Tables (void);
- DBL Noise (VECTOR EPoint);
- void DNoise (VECTOR result, VECTOR EPoint);
- DBL Turbulence (VECTOR EPoint, TURB *Turb);
- void DTurbulence (VECTOR result, VECTOR EPoint, TURB *Turb);
- DBL cycloidal (DBL value);
- DBL Triangle_Wave (DBL value);
- void Transform_Textures (TEXTURE *Textures, TRANSFORM *Trans);
- void Destroy_Textures (TEXTURE *Textures);
- void Post_Textures (TEXTURE *Textures);
- FINISH *Create_Finish (void);
- FINISH *Copy_Finish (FINISH *Old);
- TEXTURE *Create_PNF_Texture (void);
- TEXTURE *Copy_Texture_Pointer (TEXTURE *Texture);
- TEXTURE *Copy_Textures (TEXTURE *Textures);
- TEXTURE *Create_Texture (void);
- int Test_Opacity (TEXTURE *Texture);
- TURB *Create_Turb (void);
- int POV_RAND (void);
- void POV_SRAND (int seed);
- int POV_GET_OLD_RAND(void);
- #endif
|