--- ray/src/common/object.h 2013/12/08 18:59:53 2.20 +++ ray/src/common/object.h 2025/06/23 19:56:47 2.27 @@ -1,4 +1,4 @@ -/* RCSid $Id: object.h,v 2.20 2013/12/08 18:59:53 greg Exp $ */ +/* RCSid $Id: object.h,v 2.27 2025/06/23 19:56:47 greg Exp $ */ /* * object.h - header file for routines using objects and object sets. * @@ -24,10 +24,10 @@ extern "C" { typedef struct { char **sarg; /* string arguments */ RREAL *farg; /* real arguments */ - short nsargs; /* # of string arguments */ - short nfargs; /* # of real arguments */ + int nsargs; /* # of string arguments */ + int nfargs; /* # of real arguments */ #ifdef IARGS - short niargs; /* # of integer arguments */ + int niargs; /* # of integer arguments */ long *iarg; /* integer arguments */ #endif } FUNARGS; @@ -58,16 +58,16 @@ typedef struct { #ifndef MAXOBJBLK #ifdef SMLMEM -#define MAXOBJBLK 63 /* maximum number of object blocks */ +#define MAXOBJBLK 16383 /* maximum number of object blocks */ #else -#define MAXOBJBLK 65535 /* maximum number of object blocks */ +#define MAXOBJBLK 1048503 /* 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))) @@ -79,20 +79,21 @@ extern OBJECT nobjects; /* # of objects */ * the objects in ascending order. */ -#define MAXSET 511 /* maximum object set size */ +#define MAXSET 8191 /* maximum object set size */ #define setfree(os) free((void *)(os)) -extern void (*addobjnotify[])(); /* people to notify of new objects */ +extern void (*addobjnotify[])(OBJECT); /* people to notify of new objects */ /* 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); +extern void truncobjndx(void); /* defined in objset.c */ extern void insertelem(OBJECT *os, OBJECT obj); extern void deletelem(OBJECT *os, OBJECT obj);