--- ray/src/common/object.h 2003/05/15 05:13:35 2.12 +++ ray/src/common/object.h 2014/05/11 21:37:40 2.22 @@ -1,10 +1,15 @@ -/* RCSid $Id: object.h,v 2.12 2003/05/15 05:13:35 greg Exp $ */ +/* RCSid $Id: object.h,v 2.22 2014/05/11 21:37:40 greg Exp $ */ /* * object.h - header file for routines using objects and object sets. + * + * Include after "standard.h" */ +#ifndef _RAD_OBJECT_H_ +#define _RAD_OBJECT_H_ +#ifdef __cplusplus +extern "C" { +#endif -#include "copyright.h" - #ifndef OCTREE #define OCTREE int #endif @@ -17,17 +22,17 @@ */ typedef struct { + char **sarg; /* string arguments */ + RREAL *farg; /* real arguments */ short nsargs; /* # of string arguments */ short nfargs; /* # of real arguments */ - char **sarg; /* string arguments */ - FLOAT *farg; /* real arguments */ #ifdef IARGS short niargs; /* # of integer arguments */ long *iarg; /* integer arguments */ #endif } FUNARGS; -#define MAXSTR 128 /* maximum string length */ +#define MAXSTR 512 /* maximum string (word) length */ /* * An object is defined as an index into an array of @@ -37,9 +42,9 @@ typedef struct { #ifndef OBJECT #ifdef SMLMEM -#define OBJECT int2 /* index to object array */ +#define OBJECT int16 /* index to object array */ #else -#define OBJECT int4 /* index to object array */ +#define OBJECT int32 /* index to object array */ #endif #endif @@ -53,16 +58,16 @@ typedef struct { #ifndef MAXOBJBLK #ifdef SMLMEM -#define MAXOBJBLK 63 /* maximum number of object blocks */ +#define MAXOBJBLK 1023 /* maximum number of object blocks */ #else -#define MAXOBJBLK 65535 /* maximum number of object blocks */ +#define MAXOBJBLK 131071 /* maximum number of object blocks */ #endif #endif extern OBJREC *objblock[MAXOBJBLK]; /* the object blocks */ extern OBJECT nobjects; /* # of objects */ -#define OBJBLKSHFT 9 +#define OBJBLKSHFT 11 #define OBJBLKSIZ (1<>OBJBLKSHFT]+((obj)&(OBJBLKSIZ-1))) @@ -80,42 +85,13 @@ extern OBJECT nobjects; /* # of objects */ extern void (*addobjnotify[])(); /* people to notify of new objects */ -#ifdef NOPROTO - -extern OBJECT objndx(); -extern OBJECT lastmod(); -extern OBJECT modifier(); -extern OBJECT object(); -extern void insertobject(); -extern void clearobjndx(); -extern void insertelem(); -extern void deletelem(); -extern int inset(); -extern int setequal(); -extern void setcopy(); -extern OBJECT * setsave(); -extern void setunion(); -extern void setintersect(); -extern OCTREE fullnode(); -extern void objset(); -extern int dosets(); -extern void donesets(); -extern int otype(); -extern void objerror(); -extern int readfargs(); -extern void freefargs(); -extern void readobj(); -extern void getobject(); -extern OBJECT newobject(); -extern void freeobjects(); -extern int free_os(); - -#else /* defined in modobject.c */ extern OBJECT objndx(OBJREC *op); extern OBJECT lastmod(OBJECT obj, char *mname); extern OBJECT modifier(char *name); extern OBJECT object(char *oname); +extern int eqreal(double d1, double d2); +extern int eqobjects(OBJECT obj1, OBJECT obj2); extern void insertobject(OBJECT obj); extern void clearobjndx(void); /* defined in objset.c */ @@ -141,9 +117,14 @@ extern void freefargs(FUNARGS *fa); /* defined in readobj.c */ extern void readobj(char *inpspec); extern void getobject(char *name, FILE *fp); -extern OBJECT newobject(); +extern OBJECT newobject(void); extern void freeobjects(int firstobj, int nobjs); /* defined in free_os.c */ extern int free_os(OBJREC *op); -#endif /* NOPROTO */ + +#ifdef __cplusplus +} +#endif +#endif /* _RAD_OBJECT_H_ */ +