--- ray/src/common/calcomp.h 2003/02/22 02:07:21 2.6 +++ ray/src/common/calcomp.h 2003/06/30 19:04:29 2.12 @@ -1,65 +1,13 @@ -/* RCSid: $Id: calcomp.h,v 2.6 2003/02/22 02:07:21 greg Exp $ */ +/* RCSid $Id: calcomp.h,v 2.12 2003/06/30 19:04:29 greg Exp $ */ /* * calcomp.h - header file for expression parser. */ +#ifndef _RAD_CALCOMP_H_ +#define _RAD_CALCOMP_H_ +#ifdef __cplusplus +extern "C" { +#endif -/* ==================================================================== - * The Radiance Software License, Version 1.0 - * - * Copyright (c) 1990 - 2002 The Regents of the University of California, - * through Lawrence Berkeley National Laboratory. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes Radiance software - * (http://radsite.lbl.gov/) - * developed by the Lawrence Berkeley National Laboratory - * (http://www.lbl.gov/)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Radiance," "Lawrence Berkeley National Laboratory" - * and "The Regents of the University of California" must - * not be used to endorse or promote products derived from this - * software without prior written permission. For written - * permission, please contact radiance@radsite.lbl.gov. - * - * 5. Products derived from this software may not be called "Radiance", - * nor may "Radiance" appear in their name, without prior written - * permission of Lawrence Berkeley National Laboratory. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of Lawrence Berkeley National Laboratory. For more - * information on Lawrence Berkeley National Laboratory, please see - * . - */ - /* EPNODE types */ #define VAR 1 #define NUM 2 #define UMINUS 3 @@ -120,85 +68,6 @@ extern unsigned int esupport; extern EPNODE *curfunc; extern int nextc; -#ifdef NOPROTO - -extern void fcompile(); -extern void scompile(); -extern double varvalue(); -extern double evariable(); -extern void varset(); -extern void dclear(); -extern void dremove(); -extern int vardefined(); -extern char *setcontext(); -extern char *pushcontext(); -extern char *popcontext(); -extern char *qualname(); -extern int incontext(); -extern void chanout(); -extern void dcleanup(); -extern EPNODE *dlookup(); -extern VARDEF *varlookup(); -extern VARDEF *varinsert(); -extern void varfree(); -extern EPNODE *dfirst(); -extern EPNODE *dnext(); -extern EPNODE *dpop(); -extern void dpush(); -extern void addchan(); -extern void getstatement(); -extern EPNODE *getdefn(); -extern EPNODE *getchan(); -extern EPNODE *eparse(); -extern double eval(); -extern int epcmp(); -extern void epfree(); -extern EPNODE *ekid(); -extern int nekids(); -extern void initfile(); -extern void initstr(); -extern void getscanpos(); -extern int scan(); -extern char *long2ascii(); -extern void syntax(); -extern void addekid(); -extern char *getname(); -extern int getinum(); -extern double getnum(); -extern EPNODE *getE1(); -extern EPNODE *getE2(); -extern EPNODE *getE3(); -extern EPNODE *getE4(); -extern EPNODE *getE5(); -extern EPNODE *rconst(); -extern int isconstvar(); -extern int isconstfun(); -extern int fundefined(); -extern double funvalue(); -extern void funset(); -extern int nargum(); -extern double argument(); -extern VARDEF *argf(); -extern char *argfun(); -extern double efunc(); -extern LIBR *liblookup(); -extern void libupdate(); -extern void eprint(); -extern void dprint(); -extern char *savestr(); -extern void freestr(); -extern int shash(); -extern char *emalloc(); -extern char *ecalloc(); -extern char *erealloc(); -extern void efree(); -extern void eputs(); -extern void wputs(); -extern void quit(); - -extern double chanvalue(); - -#else /* defined in caldefn.c */ extern void fcompile(char *fname); extern void scompile(char *str, char *fname, int ln); @@ -213,7 +82,7 @@ extern char *pushcontext(char *ctx); extern char *popcontext(void); extern char *qualname(char *nam, int lvl); extern int incontext(char *qn); -extern void chanout(int (*cs)()); +extern void chanout(void (*cs)(int n, double v)); extern void dcleanup(int lvl); extern EPNODE *dlookup(char *name); extern VARDEF *varlookup(char *name); @@ -282,4 +151,9 @@ extern void quit(int code); /* defined by client */ extern double chanvalue(int n); + +#ifdef __cplusplus +} #endif +#endif /* _RAD_CALCOMP_H_ */ +