--- ray/src/common/instance.h 1989/10/24 13:57:00 1.2 +++ ray/src/common/instance.h 2003/06/27 06:53:21 2.6 @@ -1,30 +1,38 @@ -/* Copyright (c) 1988 Regents of the University of California */ - -/* SCCSid "$SunId$ LBL" */ - +/* RCSid $Id: instance.h,v 2.6 2003/06/27 06:53:21 greg 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" - 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_ */ +