oculus1
diff src/teapot_data.h @ 29:9a973ef0e2a3
fixed the performance issue under MacOSX by replacing glutSolidTeapot (which
uses glEvalMesh) with my own teapot generator.
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sun, 27 Oct 2013 06:31:18 +0200 |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/teapot_data.h Sun Oct 27 06:31:18 2013 +0200 1.3 @@ -0,0 +1,214 @@ 1.4 +#ifndef TEAPOT_DATA_H_ 1.5 +#define TEAPOT_DATA_H_ 1.6 + 1.7 +#include "bezmath.h" 1.8 + 1.9 +#define NUM_TEAPOT_INDICES (sizeof teapot_index / sizeof *teapot_index) 1.10 +#define NUM_TEAPOT_VERTS (sizeof teapot_verts / sizeof *teapot_verts) 1.11 + 1.12 +#define NUM_TEAPOT_PATCHES (NUM_TEAPOT_INDICES / 16) 1.13 + 1.14 +static float teapot_part_flip[] = { 1.15 + 1, 1, 1, 1, /* rim flip */ 1.16 + 1, 1, 1, 1, /* body1 flip */ 1.17 + 1, 1, 1, 1, /* body2 flip */ 1.18 + 1, 1, 1, 1, /* lid patch 1 flip */ 1.19 + 1, 1, 1, 1, /* lid patch 2 flip */ 1.20 + 1, -1, /* handle 1 flip */ 1.21 + 1, -1, /* handle 2 flip */ 1.22 + 1, -1, /* spout 1 flip */ 1.23 + 1, -1, /* spout 2 flip */ 1.24 + 1, 1, 1, 1 /* bottom flip */ 1.25 +}; 1.26 + 1.27 +static float teapot_part_rot[] = { 1.28 + 0, 90, 180, 270, /* rim rotations */ 1.29 + 0, 90, 180, 270, /* body patch 1 rotations */ 1.30 + 0, 90, 180, 270, /* body patch 2 rotations */ 1.31 + 0, 90, 180, 270, /* lid patch 1 rotations */ 1.32 + 0, 90, 180, 270, /* lid patch 2 rotations */ 1.33 + 0, 0, /* handle 1 rotations */ 1.34 + 0, 0, /* handle 2 rotations */ 1.35 + 0, 0, /* spout 1 rotations */ 1.36 + 0, 0, /* spout 2 rotations */ 1.37 + 0, 90, 180, 270 /* bottom rotations */ 1.38 +}; 1.39 + 1.40 + 1.41 +static int teapot_index[] = { 1.42 + /* rim */ 1.43 + 102, 103, 104, 105, 4, 5, 6, 7, 8, 1.44 + 9, 10, 11, 12, 13, 14, 15, 1.45 + 1.46 + 102, 103, 104, 105, 4, 5, 6, 7, 8, 1.47 + 9, 10, 11, 12, 13, 14, 15, 1.48 + 1.49 + 102, 103, 104, 105, 4, 5, 6, 7, 8, 1.50 + 9, 10, 11, 12, 13, 14, 15, 1.51 + 1.52 + 102, 103, 104, 105, 4, 5, 6, 7, 8, 1.53 + 9, 10, 11, 12, 13, 14, 15, 1.54 + 1.55 + /* body1 */ 1.56 + 12, 13, 14, 15, 16, 17, 18, 19, 1.57 + 20, 21, 22, 23, 24, 25, 26, 27, 1.58 + 1.59 + 12, 13, 14, 15, 16, 17, 18, 19, 1.60 + 20, 21, 22, 23, 24, 25, 26, 27, 1.61 + 1.62 + 12, 13, 14, 15, 16, 17, 18, 19, 1.63 + 20, 21, 22, 23, 24, 25, 26, 27, 1.64 + 1.65 + 12, 13, 14, 15, 16, 17, 18, 19, 1.66 + 20, 21, 22, 23, 24, 25, 26, 27, 1.67 + 1.68 + /* body 2 */ 1.69 + 24, 25, 26, 27, 29, 30, 31, 32, 1.70 + 33, 34, 35, 36, 37, 38, 39, 40, 1.71 + 1.72 + 24, 25, 26, 27, 29, 30, 31, 32, 1.73 + 33, 34, 35, 36, 37, 38, 39, 40, 1.74 + 1.75 + 24, 25, 26, 27, 29, 30, 31, 32, 1.76 + 33, 34, 35, 36, 37, 38, 39, 40, 1.77 + 1.78 + 24, 25, 26, 27, 29, 30, 31, 32, 1.79 + 33, 34, 35, 36, 37, 38, 39, 40, 1.80 + 1.81 + /* lid 1 */ 1.82 + 96, 96, 96, 96, 97, 98, 99, 100, 1.83 + 101, 101, 101, 101, 0, 1, 2, 3, 1.84 + 1.85 + 96, 96, 96, 96, 97, 98, 99, 100, 1.86 + 101, 101, 101, 101, 0, 1, 2, 3, 1.87 + 1.88 + 96, 96, 96, 96, 97, 98, 99, 100, 1.89 + 101, 101, 101, 101, 0, 1, 2, 3, 1.90 + 1.91 + 96, 96, 96, 96, 97, 98, 99, 100, 1.92 + 101, 101, 101, 101, 0, 1, 2, 3, 1.93 + 1.94 + /* lid 2 */ 1.95 + 0, 1, 2, 3, 106, 107, 108, 109, 1.96 + 110, 111, 112, 113, 114, 115, 116, 117, 1.97 + 1.98 + 0, 1, 2, 3, 106, 107, 108, 109, 1.99 + 110, 111, 112, 113, 114, 115, 116, 117, 1.100 + 1.101 + 0, 1, 2, 3, 106, 107, 108, 109, 1.102 + 110, 111, 112, 113, 114, 115, 116, 117, 1.103 + 1.104 + 0, 1, 2, 3, 106, 107, 108, 109, 1.105 + 110, 111, 112, 113, 114, 115, 116, 117, 1.106 + 1.107 + /* handle 1 */ 1.108 + 41, 42, 43, 44, 45, 46, 47, 48, 1.109 + 49, 50, 51, 52, 53, 54, 55, 56, 1.110 + 1.111 + 41, 42, 43, 44, 45, 46, 47, 48, 1.112 + 49, 50, 51, 52, 53, 54, 55, 56, 1.113 + 1.114 + /* handle 2 */ 1.115 + 53, 54, 55, 56, 57, 58, 59, 60, 1.116 + 61, 62, 63, 64, 28, 65, 66, 67, 1.117 + 1.118 + 53, 54, 55, 56, 57, 58, 59, 60, 1.119 + 61, 62, 63, 64, 28, 65, 66, 67, 1.120 + 1.121 + /* spout 1 */ 1.122 + 68, 69, 70, 71, 72, 73, 74, 75, 1.123 + 76, 77, 78, 79, 80, 81, 82, 83, 1.124 + 1.125 + 68, 69, 70, 71, 72, 73, 74, 75, 1.126 + 76, 77, 78, 79, 80, 81, 82, 83, 1.127 + 1.128 + /* spout 2 */ 1.129 + 80, 81, 82, 83, 84, 85, 86, 87, 1.130 + 88, 89, 90, 91, 92, 93, 94, 95, 1.131 + 1.132 + 80, 81, 82, 83, 84, 85, 86, 87, 1.133 + 88, 89, 90, 91, 92, 93, 94, 95, 1.134 + 1.135 + /* bottom */ 1.136 + 118, 118, 118, 118, 124, 122, 119, 121, 1.137 + 123, 126, 125, 120, 40, 39, 38, 37, 1.138 + 1.139 + 118, 118, 118, 118, 124, 122, 119, 121, 1.140 + 123, 126, 125, 120, 40, 39, 38, 37, 1.141 + 1.142 + 118, 118, 118, 118, 124, 122, 119, 121, 1.143 + 123, 126, 125, 120, 40, 39, 38, 37, 1.144 + 1.145 + 118, 118, 118, 118, 124, 122, 119, 121, 1.146 + 123, 126, 125, 120, 40, 39, 38, 37 1.147 +}; 1.148 + 1.149 + 1.150 +static struct vec3 teapot_verts[] = { 1.151 + { 0.2000, 0.0000, 2.70000 }, { 0.2000, -0.1120, 2.70000 }, 1.152 + { 0.1120, -0.2000, 2.70000 }, { 0.0000, -0.2000, 2.70000 }, 1.153 + { 1.3375, 0.0000, 2.53125 }, { 1.3375, -0.7490, 2.53125 }, 1.154 + { 0.7490, -1.3375, 2.53125 }, { 0.0000, -1.3375, 2.53125 }, 1.155 + { 1.4375, 0.0000, 2.53125 }, { 1.4375, -0.8050, 2.53125 }, 1.156 + { 0.8050, -1.4375, 2.53125 }, { 0.0000, -1.4375, 2.53125 }, 1.157 + { 1.5000, 0.0000, 2.40000 }, { 1.5000, -0.8400, 2.40000 }, 1.158 + { 0.8400, -1.5000, 2.40000 }, { 0.0000, -1.5000, 2.40000 }, 1.159 + { 1.7500, 0.0000, 1.87500 }, { 1.7500, -0.9800, 1.87500 }, 1.160 + { 0.9800, -1.7500, 1.87500 }, { 0.0000, -1.7500, 1.87500 }, 1.161 + { 2.0000, 0.0000, 1.35000 }, { 2.0000, -1.1200, 1.35000 }, 1.162 + { 1.1200, -2.0000, 1.35000 }, { 0.0000, -2.0000, 1.35000 }, 1.163 + { 2.0000, 0.0000, 0.90000 }, { 2.0000, -1.1200, 0.90000 }, 1.164 + { 1.1200, -2.0000, 0.90000 }, { 0.0000, -2.0000, 0.90000 }, 1.165 + { -2.0000, 0.0000, 0.90000 }, { 2.0000, 0.0000, 0.45000 }, 1.166 + { 2.0000, -1.1200, 0.45000 }, { 1.1200, -2.0000, 0.45000 }, 1.167 + { 0.0000, -2.0000, 0.45000 }, { 1.5000, 0.0000, 0.22500 }, 1.168 + { 1.5000, -0.8400, 0.22500 }, { 0.8400, -1.5000, 0.22500 }, 1.169 + { 0.0000, -1.5000, 0.22500 }, { 1.5000, 0.0000, 0.15000 }, 1.170 + { 1.5000, -0.8400, 0.15000 }, { 0.8400, -1.5000, 0.15000 }, 1.171 + { 0.0000, -1.5000, 0.15000 }, { -1.6000, 0.0000, 2.02500 }, 1.172 + { -1.6000, -0.3000, 2.02500 }, { -1.5000, -0.3000, 2.25000 }, 1.173 + { -1.5000, 0.0000, 2.25000 }, { -2.3000, 0.0000, 2.02500 }, 1.174 + { -2.3000, -0.3000, 2.02500 }, { -2.5000, -0.3000, 2.25000 }, 1.175 + { -2.5000, 0.0000, 2.25000 }, { -2.7000, 0.0000, 2.02500 }, 1.176 + { -2.7000, -0.3000, 2.02500 }, { -3.0000, -0.3000, 2.25000 }, 1.177 + { -3.0000, 0.0000, 2.25000 }, { -2.7000, 0.0000, 1.80000 }, 1.178 + { -2.7000, -0.3000, 1.80000 }, { -3.0000, -0.3000, 1.80000 }, 1.179 + { -3.0000, 0.0000, 1.80000 }, { -2.7000, 0.0000, 1.57500 }, 1.180 + { -2.7000, -0.3000, 1.57500 }, { -3.0000, -0.3000, 1.35000 }, 1.181 + { -3.0000, 0.0000, 1.35000 }, { -2.5000, 0.0000, 1.12500 }, 1.182 + { -2.5000, -0.3000, 1.12500 }, { -2.6500, -0.3000, 0.93750 }, 1.183 + { -2.6500, 0.0000, 0.93750 }, { -2.0000, -0.3000, 0.90000 }, 1.184 + { -1.9000, -0.3000, 0.60000 }, { -1.9000, 0.0000, 0.60000 }, 1.185 + { 1.7000, 0.0000, 1.42500 }, { 1.7000, -0.6600, 1.42500 }, 1.186 + { 1.7000, -0.6600, 0.60000 }, { 1.7000, 0.0000, 0.60000 }, 1.187 + { 2.6000, 0.0000, 1.42500 }, { 2.6000, -0.6600, 1.42500 }, 1.188 + { 3.1000, -0.6600, 0.82500 }, { 3.1000, 0.0000, 0.82500 }, 1.189 + { 2.3000, 0.0000, 2.10000 }, { 2.3000, -0.2500, 2.10000 }, 1.190 + { 2.4000, -0.2500, 2.02500 }, { 2.4000, 0.0000, 2.02500 }, 1.191 + { 2.7000, 0.0000, 2.40000 }, { 2.7000, -0.2500, 2.40000 }, 1.192 + { 3.3000, -0.2500, 2.40000 }, { 3.3000, 0.0000, 2.40000 }, 1.193 + { 2.8000, 0.0000, 2.47500 }, { 2.8000, -0.2500, 2.47500 }, 1.194 + { 3.5250, -0.2500, 2.49375 }, { 3.5250, 0.0000, 2.49375 }, 1.195 + { 2.9000, 0.0000, 2.47500 }, { 2.9000, -0.1500, 2.47500 }, 1.196 + { 3.4500, -0.1500, 2.51250 }, { 3.4500, 0.0000, 2.51250 }, 1.197 + { 2.8000, 0.0000, 2.40000 }, { 2.8000, -0.1500, 2.40000 }, 1.198 + { 3.2000, -0.1500, 2.40000 }, { 3.2000, 0.0000, 2.40000 }, 1.199 + { 0.0000, 0.0000, 3.15000 }, { 0.8000, 0.0000, 3.15000 }, 1.200 + { 0.8000, -0.4500, 3.15000 }, { 0.4500, -0.8000, 3.15000 }, 1.201 + { 0.0000, -0.8000, 3.15000 }, { 0.0000, 0.0000, 2.85000 }, 1.202 + { 1.4000, 0.0000, 2.40000 }, { 1.4000, -0.7840, 2.40000 }, 1.203 + { 0.7840, -1.4000, 2.40000 }, { 0.0000, -1.4000, 2.40000 }, 1.204 + { 0.4000, 0.0000, 2.55000 }, { 0.4000, -0.2240, 2.55000 }, 1.205 + { 0.2240, -0.4000, 2.55000 }, { 0.0000, -0.4000, 2.55000 }, 1.206 + { 1.3000, 0.0000, 2.55000 }, { 1.3000, -0.7280, 2.55000 }, 1.207 + { 0.7280, -1.3000, 2.55000 }, { 0.0000, -1.3000, 2.55000 }, 1.208 + { 1.3000, 0.0000, 2.40000 }, { 1.3000, -0.7280, 2.40000 }, 1.209 + { 0.7280, -1.3000, 2.40000 }, { 0.0000, -1.3000, 2.40000 }, 1.210 + { 0.0000, 0.0000, 0.00000 }, { 1.4250, -0.7980, 0.00000 }, 1.211 + { 1.5000, 0.0000, 0.07500 }, { 1.4250, 0.0000, 0.00000 }, 1.212 + { 0.7980, -1.4250, 0.00000 }, { 0.0000, -1.5000, 0.07500 }, 1.213 + { 0.0000, -1.4250, 0.00000 }, { 1.5000, -0.8400, 0.07500 }, 1.214 + { 0.8400, -1.5000, 0.07500 } 1.215 +}; 1.216 + 1.217 +#endif /* TEAPOT_DATA_H_ */