rev |
line source |
nuclear@29
|
1 #ifndef TEAPOT_DATA_H_
|
nuclear@29
|
2 #define TEAPOT_DATA_H_
|
nuclear@29
|
3
|
nuclear@29
|
4 #include "bezmath.h"
|
nuclear@29
|
5
|
nuclear@29
|
6 #define NUM_TEAPOT_INDICES (sizeof teapot_index / sizeof *teapot_index)
|
nuclear@29
|
7 #define NUM_TEAPOT_VERTS (sizeof teapot_verts / sizeof *teapot_verts)
|
nuclear@29
|
8
|
nuclear@29
|
9 #define NUM_TEAPOT_PATCHES (NUM_TEAPOT_INDICES / 16)
|
nuclear@29
|
10
|
nuclear@29
|
11 static float teapot_part_flip[] = {
|
nuclear@29
|
12 1, 1, 1, 1, /* rim flip */
|
nuclear@29
|
13 1, 1, 1, 1, /* body1 flip */
|
nuclear@29
|
14 1, 1, 1, 1, /* body2 flip */
|
nuclear@29
|
15 1, 1, 1, 1, /* lid patch 1 flip */
|
nuclear@29
|
16 1, 1, 1, 1, /* lid patch 2 flip */
|
nuclear@29
|
17 1, -1, /* handle 1 flip */
|
nuclear@29
|
18 1, -1, /* handle 2 flip */
|
nuclear@29
|
19 1, -1, /* spout 1 flip */
|
nuclear@29
|
20 1, -1, /* spout 2 flip */
|
nuclear@29
|
21 1, 1, 1, 1 /* bottom flip */
|
nuclear@29
|
22 };
|
nuclear@29
|
23
|
nuclear@29
|
24 static float teapot_part_rot[] = {
|
nuclear@29
|
25 0, 90, 180, 270, /* rim rotations */
|
nuclear@29
|
26 0, 90, 180, 270, /* body patch 1 rotations */
|
nuclear@29
|
27 0, 90, 180, 270, /* body patch 2 rotations */
|
nuclear@29
|
28 0, 90, 180, 270, /* lid patch 1 rotations */
|
nuclear@29
|
29 0, 90, 180, 270, /* lid patch 2 rotations */
|
nuclear@29
|
30 0, 0, /* handle 1 rotations */
|
nuclear@29
|
31 0, 0, /* handle 2 rotations */
|
nuclear@29
|
32 0, 0, /* spout 1 rotations */
|
nuclear@29
|
33 0, 0, /* spout 2 rotations */
|
nuclear@29
|
34 0, 90, 180, 270 /* bottom rotations */
|
nuclear@29
|
35 };
|
nuclear@29
|
36
|
nuclear@29
|
37
|
nuclear@29
|
38 static int teapot_index[] = {
|
nuclear@29
|
39 /* rim */
|
nuclear@29
|
40 102, 103, 104, 105, 4, 5, 6, 7, 8,
|
nuclear@29
|
41 9, 10, 11, 12, 13, 14, 15,
|
nuclear@29
|
42
|
nuclear@29
|
43 102, 103, 104, 105, 4, 5, 6, 7, 8,
|
nuclear@29
|
44 9, 10, 11, 12, 13, 14, 15,
|
nuclear@29
|
45
|
nuclear@29
|
46 102, 103, 104, 105, 4, 5, 6, 7, 8,
|
nuclear@29
|
47 9, 10, 11, 12, 13, 14, 15,
|
nuclear@29
|
48
|
nuclear@29
|
49 102, 103, 104, 105, 4, 5, 6, 7, 8,
|
nuclear@29
|
50 9, 10, 11, 12, 13, 14, 15,
|
nuclear@29
|
51
|
nuclear@29
|
52 /* body1 */
|
nuclear@29
|
53 12, 13, 14, 15, 16, 17, 18, 19,
|
nuclear@29
|
54 20, 21, 22, 23, 24, 25, 26, 27,
|
nuclear@29
|
55
|
nuclear@29
|
56 12, 13, 14, 15, 16, 17, 18, 19,
|
nuclear@29
|
57 20, 21, 22, 23, 24, 25, 26, 27,
|
nuclear@29
|
58
|
nuclear@29
|
59 12, 13, 14, 15, 16, 17, 18, 19,
|
nuclear@29
|
60 20, 21, 22, 23, 24, 25, 26, 27,
|
nuclear@29
|
61
|
nuclear@29
|
62 12, 13, 14, 15, 16, 17, 18, 19,
|
nuclear@29
|
63 20, 21, 22, 23, 24, 25, 26, 27,
|
nuclear@29
|
64
|
nuclear@29
|
65 /* body 2 */
|
nuclear@29
|
66 24, 25, 26, 27, 29, 30, 31, 32,
|
nuclear@29
|
67 33, 34, 35, 36, 37, 38, 39, 40,
|
nuclear@29
|
68
|
nuclear@29
|
69 24, 25, 26, 27, 29, 30, 31, 32,
|
nuclear@29
|
70 33, 34, 35, 36, 37, 38, 39, 40,
|
nuclear@29
|
71
|
nuclear@29
|
72 24, 25, 26, 27, 29, 30, 31, 32,
|
nuclear@29
|
73 33, 34, 35, 36, 37, 38, 39, 40,
|
nuclear@29
|
74
|
nuclear@29
|
75 24, 25, 26, 27, 29, 30, 31, 32,
|
nuclear@29
|
76 33, 34, 35, 36, 37, 38, 39, 40,
|
nuclear@29
|
77
|
nuclear@29
|
78 /* lid 1 */
|
nuclear@29
|
79 96, 96, 96, 96, 97, 98, 99, 100,
|
nuclear@29
|
80 101, 101, 101, 101, 0, 1, 2, 3,
|
nuclear@29
|
81
|
nuclear@29
|
82 96, 96, 96, 96, 97, 98, 99, 100,
|
nuclear@29
|
83 101, 101, 101, 101, 0, 1, 2, 3,
|
nuclear@29
|
84
|
nuclear@29
|
85 96, 96, 96, 96, 97, 98, 99, 100,
|
nuclear@29
|
86 101, 101, 101, 101, 0, 1, 2, 3,
|
nuclear@29
|
87
|
nuclear@29
|
88 96, 96, 96, 96, 97, 98, 99, 100,
|
nuclear@29
|
89 101, 101, 101, 101, 0, 1, 2, 3,
|
nuclear@29
|
90
|
nuclear@29
|
91 /* lid 2 */
|
nuclear@29
|
92 0, 1, 2, 3, 106, 107, 108, 109,
|
nuclear@29
|
93 110, 111, 112, 113, 114, 115, 116, 117,
|
nuclear@29
|
94
|
nuclear@29
|
95 0, 1, 2, 3, 106, 107, 108, 109,
|
nuclear@29
|
96 110, 111, 112, 113, 114, 115, 116, 117,
|
nuclear@29
|
97
|
nuclear@29
|
98 0, 1, 2, 3, 106, 107, 108, 109,
|
nuclear@29
|
99 110, 111, 112, 113, 114, 115, 116, 117,
|
nuclear@29
|
100
|
nuclear@29
|
101 0, 1, 2, 3, 106, 107, 108, 109,
|
nuclear@29
|
102 110, 111, 112, 113, 114, 115, 116, 117,
|
nuclear@29
|
103
|
nuclear@29
|
104 /* handle 1 */
|
nuclear@29
|
105 41, 42, 43, 44, 45, 46, 47, 48,
|
nuclear@29
|
106 49, 50, 51, 52, 53, 54, 55, 56,
|
nuclear@29
|
107
|
nuclear@29
|
108 41, 42, 43, 44, 45, 46, 47, 48,
|
nuclear@29
|
109 49, 50, 51, 52, 53, 54, 55, 56,
|
nuclear@29
|
110
|
nuclear@29
|
111 /* handle 2 */
|
nuclear@29
|
112 53, 54, 55, 56, 57, 58, 59, 60,
|
nuclear@29
|
113 61, 62, 63, 64, 28, 65, 66, 67,
|
nuclear@29
|
114
|
nuclear@29
|
115 53, 54, 55, 56, 57, 58, 59, 60,
|
nuclear@29
|
116 61, 62, 63, 64, 28, 65, 66, 67,
|
nuclear@29
|
117
|
nuclear@29
|
118 /* spout 1 */
|
nuclear@29
|
119 68, 69, 70, 71, 72, 73, 74, 75,
|
nuclear@29
|
120 76, 77, 78, 79, 80, 81, 82, 83,
|
nuclear@29
|
121
|
nuclear@29
|
122 68, 69, 70, 71, 72, 73, 74, 75,
|
nuclear@29
|
123 76, 77, 78, 79, 80, 81, 82, 83,
|
nuclear@29
|
124
|
nuclear@29
|
125 /* spout 2 */
|
nuclear@29
|
126 80, 81, 82, 83, 84, 85, 86, 87,
|
nuclear@29
|
127 88, 89, 90, 91, 92, 93, 94, 95,
|
nuclear@29
|
128
|
nuclear@29
|
129 80, 81, 82, 83, 84, 85, 86, 87,
|
nuclear@29
|
130 88, 89, 90, 91, 92, 93, 94, 95,
|
nuclear@29
|
131
|
nuclear@29
|
132 /* bottom */
|
nuclear@29
|
133 118, 118, 118, 118, 124, 122, 119, 121,
|
nuclear@29
|
134 123, 126, 125, 120, 40, 39, 38, 37,
|
nuclear@29
|
135
|
nuclear@29
|
136 118, 118, 118, 118, 124, 122, 119, 121,
|
nuclear@29
|
137 123, 126, 125, 120, 40, 39, 38, 37,
|
nuclear@29
|
138
|
nuclear@29
|
139 118, 118, 118, 118, 124, 122, 119, 121,
|
nuclear@29
|
140 123, 126, 125, 120, 40, 39, 38, 37,
|
nuclear@29
|
141
|
nuclear@29
|
142 118, 118, 118, 118, 124, 122, 119, 121,
|
nuclear@29
|
143 123, 126, 125, 120, 40, 39, 38, 37
|
nuclear@29
|
144 };
|
nuclear@29
|
145
|
nuclear@29
|
146
|
nuclear@29
|
147 static struct vec3 teapot_verts[] = {
|
nuclear@29
|
148 { 0.2000, 0.0000, 2.70000 }, { 0.2000, -0.1120, 2.70000 },
|
nuclear@29
|
149 { 0.1120, -0.2000, 2.70000 }, { 0.0000, -0.2000, 2.70000 },
|
nuclear@29
|
150 { 1.3375, 0.0000, 2.53125 }, { 1.3375, -0.7490, 2.53125 },
|
nuclear@29
|
151 { 0.7490, -1.3375, 2.53125 }, { 0.0000, -1.3375, 2.53125 },
|
nuclear@29
|
152 { 1.4375, 0.0000, 2.53125 }, { 1.4375, -0.8050, 2.53125 },
|
nuclear@29
|
153 { 0.8050, -1.4375, 2.53125 }, { 0.0000, -1.4375, 2.53125 },
|
nuclear@29
|
154 { 1.5000, 0.0000, 2.40000 }, { 1.5000, -0.8400, 2.40000 },
|
nuclear@29
|
155 { 0.8400, -1.5000, 2.40000 }, { 0.0000, -1.5000, 2.40000 },
|
nuclear@29
|
156 { 1.7500, 0.0000, 1.87500 }, { 1.7500, -0.9800, 1.87500 },
|
nuclear@29
|
157 { 0.9800, -1.7500, 1.87500 }, { 0.0000, -1.7500, 1.87500 },
|
nuclear@29
|
158 { 2.0000, 0.0000, 1.35000 }, { 2.0000, -1.1200, 1.35000 },
|
nuclear@29
|
159 { 1.1200, -2.0000, 1.35000 }, { 0.0000, -2.0000, 1.35000 },
|
nuclear@29
|
160 { 2.0000, 0.0000, 0.90000 }, { 2.0000, -1.1200, 0.90000 },
|
nuclear@29
|
161 { 1.1200, -2.0000, 0.90000 }, { 0.0000, -2.0000, 0.90000 },
|
nuclear@29
|
162 { -2.0000, 0.0000, 0.90000 }, { 2.0000, 0.0000, 0.45000 },
|
nuclear@29
|
163 { 2.0000, -1.1200, 0.45000 }, { 1.1200, -2.0000, 0.45000 },
|
nuclear@29
|
164 { 0.0000, -2.0000, 0.45000 }, { 1.5000, 0.0000, 0.22500 },
|
nuclear@29
|
165 { 1.5000, -0.8400, 0.22500 }, { 0.8400, -1.5000, 0.22500 },
|
nuclear@29
|
166 { 0.0000, -1.5000, 0.22500 }, { 1.5000, 0.0000, 0.15000 },
|
nuclear@29
|
167 { 1.5000, -0.8400, 0.15000 }, { 0.8400, -1.5000, 0.15000 },
|
nuclear@29
|
168 { 0.0000, -1.5000, 0.15000 }, { -1.6000, 0.0000, 2.02500 },
|
nuclear@29
|
169 { -1.6000, -0.3000, 2.02500 }, { -1.5000, -0.3000, 2.25000 },
|
nuclear@29
|
170 { -1.5000, 0.0000, 2.25000 }, { -2.3000, 0.0000, 2.02500 },
|
nuclear@29
|
171 { -2.3000, -0.3000, 2.02500 }, { -2.5000, -0.3000, 2.25000 },
|
nuclear@29
|
172 { -2.5000, 0.0000, 2.25000 }, { -2.7000, 0.0000, 2.02500 },
|
nuclear@29
|
173 { -2.7000, -0.3000, 2.02500 }, { -3.0000, -0.3000, 2.25000 },
|
nuclear@29
|
174 { -3.0000, 0.0000, 2.25000 }, { -2.7000, 0.0000, 1.80000 },
|
nuclear@29
|
175 { -2.7000, -0.3000, 1.80000 }, { -3.0000, -0.3000, 1.80000 },
|
nuclear@29
|
176 { -3.0000, 0.0000, 1.80000 }, { -2.7000, 0.0000, 1.57500 },
|
nuclear@29
|
177 { -2.7000, -0.3000, 1.57500 }, { -3.0000, -0.3000, 1.35000 },
|
nuclear@29
|
178 { -3.0000, 0.0000, 1.35000 }, { -2.5000, 0.0000, 1.12500 },
|
nuclear@29
|
179 { -2.5000, -0.3000, 1.12500 }, { -2.6500, -0.3000, 0.93750 },
|
nuclear@29
|
180 { -2.6500, 0.0000, 0.93750 }, { -2.0000, -0.3000, 0.90000 },
|
nuclear@29
|
181 { -1.9000, -0.3000, 0.60000 }, { -1.9000, 0.0000, 0.60000 },
|
nuclear@29
|
182 { 1.7000, 0.0000, 1.42500 }, { 1.7000, -0.6600, 1.42500 },
|
nuclear@29
|
183 { 1.7000, -0.6600, 0.60000 }, { 1.7000, 0.0000, 0.60000 },
|
nuclear@29
|
184 { 2.6000, 0.0000, 1.42500 }, { 2.6000, -0.6600, 1.42500 },
|
nuclear@29
|
185 { 3.1000, -0.6600, 0.82500 }, { 3.1000, 0.0000, 0.82500 },
|
nuclear@29
|
186 { 2.3000, 0.0000, 2.10000 }, { 2.3000, -0.2500, 2.10000 },
|
nuclear@29
|
187 { 2.4000, -0.2500, 2.02500 }, { 2.4000, 0.0000, 2.02500 },
|
nuclear@29
|
188 { 2.7000, 0.0000, 2.40000 }, { 2.7000, -0.2500, 2.40000 },
|
nuclear@29
|
189 { 3.3000, -0.2500, 2.40000 }, { 3.3000, 0.0000, 2.40000 },
|
nuclear@29
|
190 { 2.8000, 0.0000, 2.47500 }, { 2.8000, -0.2500, 2.47500 },
|
nuclear@29
|
191 { 3.5250, -0.2500, 2.49375 }, { 3.5250, 0.0000, 2.49375 },
|
nuclear@29
|
192 { 2.9000, 0.0000, 2.47500 }, { 2.9000, -0.1500, 2.47500 },
|
nuclear@29
|
193 { 3.4500, -0.1500, 2.51250 }, { 3.4500, 0.0000, 2.51250 },
|
nuclear@29
|
194 { 2.8000, 0.0000, 2.40000 }, { 2.8000, -0.1500, 2.40000 },
|
nuclear@29
|
195 { 3.2000, -0.1500, 2.40000 }, { 3.2000, 0.0000, 2.40000 },
|
nuclear@29
|
196 { 0.0000, 0.0000, 3.15000 }, { 0.8000, 0.0000, 3.15000 },
|
nuclear@29
|
197 { 0.8000, -0.4500, 3.15000 }, { 0.4500, -0.8000, 3.15000 },
|
nuclear@29
|
198 { 0.0000, -0.8000, 3.15000 }, { 0.0000, 0.0000, 2.85000 },
|
nuclear@29
|
199 { 1.4000, 0.0000, 2.40000 }, { 1.4000, -0.7840, 2.40000 },
|
nuclear@29
|
200 { 0.7840, -1.4000, 2.40000 }, { 0.0000, -1.4000, 2.40000 },
|
nuclear@29
|
201 { 0.4000, 0.0000, 2.55000 }, { 0.4000, -0.2240, 2.55000 },
|
nuclear@29
|
202 { 0.2240, -0.4000, 2.55000 }, { 0.0000, -0.4000, 2.55000 },
|
nuclear@29
|
203 { 1.3000, 0.0000, 2.55000 }, { 1.3000, -0.7280, 2.55000 },
|
nuclear@29
|
204 { 0.7280, -1.3000, 2.55000 }, { 0.0000, -1.3000, 2.55000 },
|
nuclear@29
|
205 { 1.3000, 0.0000, 2.40000 }, { 1.3000, -0.7280, 2.40000 },
|
nuclear@29
|
206 { 0.7280, -1.3000, 2.40000 }, { 0.0000, -1.3000, 2.40000 },
|
nuclear@29
|
207 { 0.0000, 0.0000, 0.00000 }, { 1.4250, -0.7980, 0.00000 },
|
nuclear@29
|
208 { 1.5000, 0.0000, 0.07500 }, { 1.4250, 0.0000, 0.00000 },
|
nuclear@29
|
209 { 0.7980, -1.4250, 0.00000 }, { 0.0000, -1.5000, 0.07500 },
|
nuclear@29
|
210 { 0.0000, -1.4250, 0.00000 }, { 1.5000, -0.8400, 0.07500 },
|
nuclear@29
|
211 { 0.8400, -1.5000, 0.07500 }
|
nuclear@29
|
212 };
|
nuclear@29
|
213
|
nuclear@29
|
214 #endif /* TEAPOT_DATA_H_ */
|