ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/object.h
(Generate patch)

Comparing ray/src/common/object.h (file contents):
Revision 2.7 by gwlarson, Tue Jan 19 16:01:54 1999 UTC vs.
Revision 2.8 by greg, Sat Feb 22 02:07:22 2003 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1999 Silicon Graphics, Inc. */
2 <
3 < /* SCCSid "$SunId$ SGI" */
4 <
1 > /* RCSid: $Id$ */
2   /*
3   *  object.h - header file for routines using objects and object sets.
4 + */
5 +
6 + /* ====================================================================
7 + * The Radiance Software License, Version 1.0
8   *
9 < *     7/28/85
9 > * Copyright (c) 1990 - 2002 The Regents of the University of California,
10 > * through Lawrence Berkeley National Laboratory.   All rights reserved.
11 > *
12 > * Redistribution and use in source and binary forms, with or without
13 > * modification, are permitted provided that the following conditions
14 > * are met:
15 > *
16 > * 1. Redistributions of source code must retain the above copyright
17 > *         notice, this list of conditions and the following disclaimer.
18 > *
19 > * 2. Redistributions in binary form must reproduce the above copyright
20 > *       notice, this list of conditions and the following disclaimer in
21 > *       the documentation and/or other materials provided with the
22 > *       distribution.
23 > *
24 > * 3. The end-user documentation included with the redistribution,
25 > *           if any, must include the following acknowledgment:
26 > *             "This product includes Radiance software
27 > *                 (http://radsite.lbl.gov/)
28 > *                 developed by the Lawrence Berkeley National Laboratory
29 > *               (http://www.lbl.gov/)."
30 > *       Alternately, this acknowledgment may appear in the software itself,
31 > *       if and wherever such third-party acknowledgments normally appear.
32 > *
33 > * 4. The names "Radiance," "Lawrence Berkeley National Laboratory"
34 > *       and "The Regents of the University of California" must
35 > *       not be used to endorse or promote products derived from this
36 > *       software without prior written permission. For written
37 > *       permission, please contact [email protected].
38 > *
39 > * 5. Products derived from this software may not be called "Radiance",
40 > *       nor may "Radiance" appear in their name, without prior written
41 > *       permission of Lawrence Berkeley National Laboratory.
42 > *
43 > * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
44 > * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
45 > * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
46 > * DISCLAIMED.   IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR
47 > * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
48 > * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
49 > * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
50 > * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
51 > * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
52 > * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
53 > * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
54 > * SUCH DAMAGE.
55 > * ====================================================================
56 > *
57 > * This software consists of voluntary contributions made by many
58 > * individuals on behalf of Lawrence Berkeley National Laboratory.   For more
59 > * information on Lawrence Berkeley National Laboratory, please see
60 > * <http://www.lbl.gov/>.
61   */
62  
63 + #ifndef  OCTREE
64 + #define  OCTREE         int
65 + #endif
66 +
67   /*
68   *      Object definitions require general specifications
69   *      which may include a number of different argument types.
# Line 75 | Line 131 | extern OBJECT  nobjects;               /* # of objects */
131  
132   #define  MAXSET         127             /* maximum object set size */
133  
134 < OBJECT  *setsave();
134 > #define setfree(os)     free((void *)(os))
135  
136 < #define setfree(os)     free((char *)(os))
136 > extern void  (*addobjnotify[])();        /* people to notify of new objects */
137 >
138 > #ifdef NOPROTO
139 >
140 > extern int      objndx();
141 > extern int      lastmod();
142 > extern int      modifier();
143 > extern int      object();
144 > extern void     insertobject();
145 > extern void     clearobjndx();
146 > extern void     insertelem();
147 > extern void     deletelem();
148 > extern int      inset();
149 > extern int      setequal();
150 > extern void     setcopy();
151 > extern OBJECT * setsave();
152 > extern void     setunion();
153 > extern void     setintersect();
154 > extern OCTREE   fullnode();
155 > extern void     objset();
156 > extern int      dosets();
157 > extern void     donesets();
158 > extern int      otype();
159 > extern void     objerror();
160 > extern int      readfargs();
161 > extern void     freefargs();
162 > extern void     readobj();
163 > extern void     getobject();
164 > extern int      newobject();
165 > extern void     freeobjects();
166 > extern int      free_os();
167 >
168 > #else
169 >                                        /* defined in modobject.c */
170 > extern int      objndx(OBJREC *op);
171 > extern int      lastmod(OBJECT obj, char *mname);
172 > extern int      modifier(char *name);
173 > extern int      object(char *oname);
174 > extern void     insertobject(OBJECT obj);
175 > extern void     clearobjndx(void);
176 >                                        /* defined in objset.c */
177 > extern void     insertelem(OBJECT *os, OBJECT obj);
178 > extern void     deletelem(OBJECT *os, OBJECT obj);
179 > extern int      inset(OBJECT *os, OBJECT obj);
180 > extern int      setequal(OBJECT *os1, OBJECT *os2);
181 > extern void     setcopy(OBJECT *os1, OBJECT *os2);
182 > extern OBJECT * setsave(OBJECT *os);
183 > extern void     setunion(OBJECT *osr, OBJECT *os1, OBJECT *os2);
184 > extern void     setintersect(OBJECT *osr, OBJECT *os1, OBJECT *os2);
185 > extern OCTREE   fullnode(OBJECT *oset);
186 > extern void     objset(OBJECT *oset, OCTREE ot);
187 > extern int      dosets(int (*f)());
188 > extern void     donesets(void);
189 >
190 >                                        /* defined in otypes.c */
191 > extern int      otype(char *ofname);
192 > extern void     objerror(OBJREC *o, int etyp, char *msg);
193 >                                        /* defined in readfargs.c */
194 > extern int      readfargs(FUNARGS *fa, FILE *fp);
195 > extern void     freefargs(FUNARGS *fa);
196 >                                        /* defined in readobj.c */
197 > extern void     readobj(char *inpspec);
198 > extern void     getobject(char *name, FILE *fp);
199 > extern int      newobject();
200 > extern void     freeobjects(int firstobj, int nobjs);
201 >                                        /* defined in free_os.c */
202 > extern int      free_os(OBJREC *op);
203 >
204 > #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines