--- ray/src/rt/func.h 2003/02/25 02:47:22 2.3 +++ ray/src/rt/func.h 2024/10/29 00:36:54 2.11 @@ -1,37 +1,46 @@ -/* RCSid $Id: func.h,v 2.3 2003/02/25 02:47:22 greg Exp $ */ +/* RCSid $Id: func.h,v 2.11 2024/10/29 00:36:54 greg Exp $ */ /* * Header file for modifiers using function files. * * Include after ray.h */ +#ifndef _RAD_FUNC_H_ +#define _RAD_FUNC_H_ -#include "copyright.h" +#include "calcomp.h" -#include "calcomp.h" +#ifdef __cplusplus +extern "C" { +#endif #define MAXEXPR 9 /* maximum expressions in modifier */ typedef struct { EPNODE *ep[MAXEXPR+1]; /* NULL-terminated expression list */ char *ctx; /* context (from file name) */ - XF *f, *b; /* forward and backward transforms */ + XF *fxp, *bxp; /* forward and backward transforms */ } MFUNC; /* material function */ extern XF unitxf; /* identity transform */ extern XF funcxf; /* current transform */ -#ifdef NOPROTO - -extern MFUNC *getfunc(); -extern void freefunc(); -extern int setfunc(); -extern void loadfunc(); - -#else - +extern void initfunc(void); +extern void set_eparams(const char *prms); extern MFUNC *getfunc(OBJREC *m, int ff, unsigned int ef, int dofwd); extern void freefunc(OBJREC *m); extern int setfunc(OBJREC *m, RAY *r); +extern int worldfunc(const char *ctx, RAY *r); extern void loadfunc(char *fname); + /* defined in noise3.c */ +extern void setnoisefuncs(void); + + /* defined in fprism.c */ +extern void setprismfuncs(void); + + +#ifdef __cplusplus +} #endif +#endif /* _RAD_FUNC_H_ */ +