ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/otypes.h
Revision: 1.3
Committed: Wed Jun 7 08:40:24 1989 UTC (34 years, 11 months ago) by greg
Content type: text/plain
Branch: MAIN
Changes since 1.2: +9 -11 lines
Log Message:
No more spot type after improved direct calculation

File Contents

# User Rev Content
1 greg 1.1 /* Copyright (c) 1986 Regents of the University of California */
2    
3     /* SCCSid "$SunId$ LBL" */
4    
5     /*
6     * otypes.h - defines for object types.
7     *
8     * 1/28/86
9     */
10    
11     typedef struct {
12     char *funame; /* function name */
13     int (*funp)(); /* pointer to function */
14     } FUN;
15     /* surface types */
16     #define OBJ_MIN 0
17     #define OBJ_SOURCE (OBJ_MIN+0) /* distant source */
18     #define OBJ_SPHERE (OBJ_MIN+1) /* sphere */
19     #define OBJ_BUBBLE (OBJ_MIN+2) /* inverted sphere */
20     #define OBJ_FACE (OBJ_MIN+3) /* polygon */
21     #define OBJ_CONE (OBJ_MIN+4) /* cone */
22     #define OBJ_CUP (OBJ_MIN+5) /* inverted cone */
23     #define OBJ_CYLINDER (OBJ_MIN+6) /* cylinder */
24     #define OBJ_TUBE (OBJ_MIN+7) /* inverted cylinder */
25     #define OBJ_RING (OBJ_MIN+8) /* disk */
26     #define OBJ_INSTANCE (OBJ_MIN+9) /* octree instance */
27     #define OBJ_CNT 10
28     /* material types */
29     #define MOD_MIN MAT_MIN
30     #define MAT_MIN (OBJ_MIN+OBJ_CNT)
31     #define MAT_LIGHT (MAT_MIN+0) /* primary light source */
32     #define MAT_ILLUM (MAT_MIN+1) /* secondary light source */
33 greg 1.3 #define MAT_GLOW (MAT_MIN+2) /* emmissive non-source */
34     #define MAT_PLASTIC (MAT_MIN+3) /* plastic surface */
35     #define MAT_METAL (MAT_MIN+4) /* metal surface */
36     #define MAT_TRANS (MAT_MIN+5) /* translucent material */
37     #define MAT_DIELECTRIC (MAT_MIN+6) /* dielectric material */
38     #define MAT_INTERFACE (MAT_MIN+7) /* dielectric interface */
39     #define MAT_GLASS (MAT_MIN+8) /* thin glass surface */
40     #define MAT_CLIP (MAT_MIN+9) /* clipping surface */
41     #define MAT_CNT 10
42 greg 1.1 /* textures and patterns */
43     #define TP_MIN (MAT_MIN+MAT_CNT)
44     #define TEX_FUNC (TP_MIN+0) /* surface texture function */
45 greg 1.2 #define TEX_DATA (TP_MIN+1) /* surface texture data */
46     #define PAT_CFUNC (TP_MIN+2) /* color function */
47     #define PAT_BFUNC (TP_MIN+3) /* brightness function */
48     #define PAT_CPICT (TP_MIN+4) /* color picture */
49     #define PAT_CDATA (TP_MIN+5) /* color data */
50     #define PAT_BDATA (TP_MIN+6) /* brightness data */
51     #define PAT_CTEXT (TP_MIN+7) /* colored text */
52     #define PAT_BTEXT (TP_MIN+8) /* monochromatic text */
53     #define MIX_FUNC (TP_MIN+9) /* mixing function */
54     #define MIX_DATA (TP_MIN+10) /* mixing data */
55     #define MIX_TEXT (TP_MIN+11) /* mixing text */
56     #define TP_CNT 12
57 greg 1.1 #define MOD_CNT (MAT_CNT+TP_CNT)
58     /* number of object types */
59     #define NUMOTYPE (OBJ_CNT+MAT_CNT+TP_CNT)
60    
61     #define issurface(t) ((t) >= OBJ_MIN && (t) < OBJ_MIN+OBJ_CNT)
62     #define ismodifier(t) ((t) >= MOD_MIN && (t) < MOD_MIN+MOD_CNT)
63     #define ismaterial(t) ((t) >= MAT_MIN && (t) < MAT_MIN+MAT_CNT)
64     #define istexture(t) ((t) >= TP_MIN && (t) < TP_MIN+TP_CNT)
65    
66     extern int o_source();
67     extern int o_sphere();
68     extern int o_face();
69     extern int o_cone();
70     extern int o_instance();
71     extern int m_light();
72     extern int m_normal();
73     extern int m_dielectric();
74     extern int m_glass();
75     extern int m_clip();
76 greg 1.2 extern int t_func(), t_data();
77 greg 1.1 extern int p_cfunc(), p_bfunc();
78     extern int p_pdata(), p_cdata(), p_bdata();
79     extern int mx_func(), mx_data();
80     extern int text();
81    
82     #define INIT_OTYPE { { "source", o_source }, \
83     { "sphere", o_sphere }, \
84     { "bubble", o_sphere }, \
85     { "polygon", o_face }, \
86     { "cone", o_cone }, \
87     { "cup", o_cone }, \
88     { "cylinder", o_cone }, \
89     { "tube", o_cone }, \
90     { "ring", o_cone }, \
91     { "instance", o_instance }, \
92     { "light", m_light }, \
93     { "illum", m_light }, \
94     { "glow", m_light }, \
95     { "plastic", m_normal }, \
96     { "metal", m_normal }, \
97     { "trans", m_normal }, \
98     { "dielectric", m_dielectric }, \
99     { "interface", m_dielectric }, \
100     { "glass", m_glass }, \
101     { "antimatter", m_clip }, \
102     { "texfunc", t_func }, \
103 greg 1.2 { "texdata", t_data }, \
104 greg 1.1 { "colorfunc", p_cfunc }, \
105     { "brightfunc", p_bfunc }, \
106     { "colorpict", p_pdata }, \
107     { "colordata", p_cdata }, \
108     { "brightdata", p_bdata }, \
109     { "colortext", text }, \
110     { "brighttext", text }, \
111     { "mixfunc", mx_func }, \
112     { "mixdata", mx_data }, \
113     { "mixtext", text } }
114    
115     #define ALIASID "alias" /* alias type identifier */
116    
117     extern FUN ofun[];