--- ray/src/common/instance.h 1989/02/02 10:34:17 1.1 +++ ray/src/common/instance.h 2003/06/06 16:38:47 2.5 @@ -1,33 +1,40 @@ -/* Copyright (c) 1988 Regents of the University of California */ - -/* SCCSid "$SunId$ LBL" */ - +/* RCSid $Id: instance.h,v 2.5 2003/06/06 16:38:47 schorsch Exp $ */ /* * instance.h - header file for routines using octree objects. * - * 11/10/88 + * Include after object.h and octree.h */ +#ifndef _RAD_INSTANCE_H_ +#define _RAD_INSTANCE_H_ +#ifdef __cplusplus +extern "C" { +#endif -#include "octree.h" +#include "copyright.h" -#define GET_BOUNDS IO_BOUNDS /* just load boundaries */ -#define GET_ALL (IO_BOUNDS|IO_SCENE|IO_TREE) /* everything */ - typedef struct scene { char *name; /* octree name */ + int nref; /* number of references */ int ldflags; /* what was loaded */ CUBE scube; /* scene cube */ + OBJECT firstobj, nobjs; /* first object and count */ struct scene *next; /* next in list */ } SCENE; /* loaded octree */ typedef struct { - struct { - double sca; /* scaling */ - double xfm[4][4]; /* transform */ - } f, b; /* forward and backward */ + FULLXF x; /* forward and backward transforms */ SCENE *obj; /* loaded object */ } INSTANCE; /* instance of octree */ -extern SCENE *getscene(); -extern INSTANCE *getinstance(); +extern SCENE *getscene(char *sname, int flags); +extern INSTANCE *getinstance(OBJREC *o, int flags); +extern void freescene(SCENE *sc); +extern void freeinstance(OBJREC *o); + + +#ifdef __cplusplus +} +#endif +#endif /* _RAD_INSTANCE_H_ */ +