07-Jan-2022 16:00:21 bezier_surface_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 Test bezier_surface(). bezier_surface_test01(): BEZIER_SURFACE_NODE_SIZE determines the number of nodes in a Bezier surface node file. BEZIER_SURFACE_NODE_READ reads the nodes in a Bezier surface node file. BEZIER_SURFACE_RECTANGLES_SIZE determines the number of rectangles in a Bezier surface rectangle file. BEZIER_SURFACE_RECTANGLES_READ reads the rectangles in a Bezier surface rectangle file. Read surface node information from "teapot_nodes.txt" There are 306 surface nodes Bezier surface node coordinates: Col: 1 2 3 Row 1 : 1.4 0 2.4 2 : 1.4 -0.784 2.4 3 : 0.784 -1.4 2.4 4 : 0 -1.4 2.4 5 : 1.3375 0 2.53125 6 : 1.3375 -0.749 2.53125 7 : 0.749 -1.3375 2.53125 8 : 0 -1.3375 2.53125 9 : 1.4375 0 2.53125 10 : 1.4375 -0.805 2.53125 11 : 0.805 -1.4375 2.53125 12 : 0 -1.4375 2.53125 13 : 1.5 0 2.4 14 : 1.5 -0.84 2.4 15 : 0.84 -1.5 2.4 16 : 0 -1.5 2.4 17 : -0.784 -1.4 2.4 18 : -1.4 -0.784 2.4 19 : -1.4 0 2.4 20 : -0.749 -1.3375 2.53125 21 : -1.3375 -0.749 2.53125 22 : -1.3375 0 2.53125 23 : -0.805 -1.4375 2.53125 24 : -1.4375 -0.805 2.53125 25 : -1.4375 0 2.53125 26 : -0.84 -1.5 2.4 27 : -1.5 -0.84 2.4 28 : -1.5 0 2.4 29 : -1.4 0.784 2.4 30 : -0.784 1.4 2.4 31 : 0 1.4 2.4 32 : -1.3375 0.749 2.53125 33 : -0.749 1.3375 2.53125 34 : 0 1.3375 2.53125 35 : -1.4375 0.805 2.53125 36 : -0.805 1.4375 2.53125 37 : 0 1.4375 2.53125 38 : -1.5 0.84 2.4 39 : -0.84 1.5 2.4 40 : 0 1.5 2.4 41 : 0.784 1.4 2.4 42 : 1.4 0.784 2.4 43 : 0.749 1.3375 2.53125 44 : 1.3375 0.749 2.53125 45 : 0.805 1.4375 2.53125 46 : 1.4375 0.805 2.53125 47 : 0.84 1.5 2.4 48 : 1.5 0.84 2.4 49 : 1.75 0 1.875 50 : 1.75 -0.98 1.875 51 : 0.98 -1.75 1.875 52 : 0 -1.75 1.875 53 : 2 0 1.35 54 : 2 -1.12 1.35 55 : 1.12 -2 1.35 56 : 0 -2 1.35 57 : 2 0 0.9 58 : 2 -1.12 0.9 59 : 1.12 -2 0.9 60 : 0 -2 0.9 61 : -0.98 -1.75 1.875 62 : -1.75 -0.98 1.875 63 : -1.75 0 1.875 64 : -1.12 -2 1.35 65 : -2 -1.12 1.35 66 : -2 0 1.35 67 : -1.12 -2 0.9 68 : -2 -1.12 0.9 69 : -2 0 0.9 70 : -1.75 0.98 1.875 71 : -0.98 1.75 1.875 72 : 0 1.75 1.875 73 : -2 1.12 1.35 74 : -1.12 2 1.35 75 : 0 2 1.35 76 : -2 1.12 0.9 77 : -1.12 2 0.9 78 : 0 2 0.9 79 : 0.98 1.75 1.875 80 : 1.75 0.98 1.875 81 : 1.12 2 1.35 82 : 2 1.12 1.35 83 : 1.12 2 0.9 84 : 2 1.12 0.9 85 : 2 0 0.45 86 : 2 -1.12 0.45 87 : 1.12 -2 0.45 88 : 0 -2 0.45 89 : 1.5 0 0.225 90 : 1.5 -0.84 0.225 91 : 0.84 -1.5 0.225 92 : 0 -1.5 0.225 93 : 1.5 0 0.15 94 : 1.5 -0.84 0.15 95 : 0.84 -1.5 0.15 96 : 0 -1.5 0.15 97 : -1.12 -2 0.45 98 : -2 -1.12 0.45 99 : -2 0 0.45 100 : -0.84 -1.5 0.225 101 : -1.5 -0.84 0.225 102 : -1.5 0 0.225 103 : -0.84 -1.5 0.15 104 : -1.5 -0.84 0.15 105 : -1.5 0 0.15 106 : -2 1.12 0.45 107 : -1.12 2 0.45 108 : 0 2 0.45 109 : -1.5 0.84 0.225 110 : -0.84 1.5 0.225 111 : 0 1.5 0.225 112 : -1.5 0.84 0.15 113 : -0.84 1.5 0.15 114 : 0 1.5 0.15 115 : 1.12 2 0.45 116 : 2 1.12 0.45 117 : 0.84 1.5 0.225 118 : 1.5 0.84 0.225 119 : 0.84 1.5 0.15 120 : 1.5 0.84 0.15 121 : -1.6 0 2.025 122 : -1.6 -0.3 2.025 123 : -1.5 -0.3 2.25 124 : -1.5 0 2.25 125 : -2.3 0 2.025 126 : -2.3 -0.3 2.025 127 : -2.5 -0.3 2.25 128 : -2.5 0 2.25 129 : -2.7 0 2.025 130 : -2.7 -0.3 2.025 131 : -3 -0.3 2.25 132 : -3 0 2.25 133 : -2.7 0 1.8 134 : -2.7 -0.3 1.8 135 : -3 -0.3 1.8 136 : -3 0 1.8 137 : -1.5 0.3 2.25 138 : -1.6 0.3 2.025 139 : -2.5 0.3 2.25 140 : -2.3 0.3 2.025 141 : -3 0.3 2.25 142 : -2.7 0.3 2.025 143 : -3 0.3 1.8 144 : -2.7 0.3 1.8 145 : -2.7 0 1.575 146 : -2.7 -0.3 1.575 147 : -3 -0.3 1.35 148 : -3 0 1.35 149 : -2.5 0 1.125 150 : -2.5 -0.3 1.125 151 : -2.65 -0.3 0.9375 152 : -2.65 0 0.9375 153 : -2 -0.3 0.9 154 : -1.9 -0.3 0.6 155 : -1.9 0 0.6 156 : -3 0.3 1.35 157 : -2.7 0.3 1.575 158 : -2.65 0.3 0.9375 159 : -2.5 0.3 1.125 160 : -1.9 0.3 0.6 161 : -2 0.3 0.9 162 : 1.7 0 1.425 163 : 1.7 -0.66 1.425 164 : 1.7 -0.66 0.6 165 : 1.7 0 0.6 166 : 2.6 0 1.425 167 : 2.6 -0.66 1.425 168 : 3.1 -0.66 0.825 169 : 3.1 0 0.825 170 : 2.3 0 2.1 171 : 2.3 -0.25 2.1 172 : 2.4 -0.25 2.025 173 : 2.4 0 2.025 174 : 2.7 0 2.4 175 : 2.7 -0.25 2.4 176 : 3.3 -0.25 2.4 177 : 3.3 0 2.4 178 : 1.7 0.66 0.6 179 : 1.7 0.66 1.425 180 : 3.1 0.66 0.825 181 : 2.6 0.66 1.425 182 : 2.4 0.25 2.025 183 : 2.3 0.25 2.1 184 : 3.3 0.25 2.4 185 : 2.7 0.25 2.4 186 : 2.8 0 2.475 187 : 2.8 -0.25 2.475 188 : 3.525 -0.25 2.49375 189 : 3.525 0 2.49375 190 : 2.9 0 2.475 191 : 2.9 -0.15 2.475 192 : 3.45 -0.15 2.5125 193 : 3.45 0 2.5125 194 : 2.8 0 2.4 195 : 2.8 -0.15 2.4 196 : 3.2 -0.15 2.4 197 : 3.2 0 2.4 198 : 3.525 0.25 2.49375 199 : 2.8 0.25 2.475 200 : 3.45 0.15 2.5125 201 : 2.9 0.15 2.475 202 : 3.2 0.15 2.4 203 : 2.8 0.15 2.4 204 : 0 0 3.15 205 : 0 -0.002 3.15 206 : 0.002 0 3.15 207 : 0.8 0 3.15 208 : 0.8 -0.45 3.15 209 : 0.45 -0.8 3.15 210 : 0 -0.8 3.15 211 : 0 0 2.85 212 : 0.2 0 2.7 213 : 0.2 -0.112 2.7 214 : 0.112 -0.2 2.7 215 : 0 -0.2 2.7 216 : -0.002 0 3.15 217 : -0.45 -0.8 3.15 218 : -0.8 -0.45 3.15 219 : -0.8 0 3.15 220 : -0.112 -0.2 2.7 221 : -0.2 -0.112 2.7 222 : -0.2 0 2.7 223 : 0 0.002 3.15 224 : -0.8 0.45 3.15 225 : -0.45 0.8 3.15 226 : 0 0.8 3.15 227 : -0.2 0.112 2.7 228 : -0.112 0.2 2.7 229 : 0 0.2 2.7 230 : 0.45 0.8 3.15 231 : 0.8 0.45 3.15 232 : 0.112 0.2 2.7 233 : 0.2 0.112 2.7 234 : 0.4 0 2.55 235 : 0.4 -0.224 2.55 236 : 0.224 -0.4 2.55 237 : 0 -0.4 2.55 238 : 1.3 0 2.55 239 : 1.3 -0.728 2.55 240 : 0.728 -1.3 2.55 241 : 0 -1.3 2.55 242 : 1.3 0 2.4 243 : 1.3 -0.728 2.4 244 : 0.728 -1.3 2.4 245 : 0 -1.3 2.4 246 : -0.224 -0.4 2.55 247 : -0.4 -0.224 2.55 248 : -0.4 0 2.55 249 : -0.728 -1.3 2.55 250 : -1.3 -0.728 2.55 251 : -1.3 0 2.55 252 : -0.728 -1.3 2.4 253 : -1.3 -0.728 2.4 254 : -1.3 0 2.4 255 : -0.4 0.224 2.55 256 : -0.224 0.4 2.55 257 : 0 0.4 2.55 258 : -1.3 0.728 2.55 259 : -0.728 1.3 2.55 260 : 0 1.3 2.55 261 : -1.3 0.728 2.4 262 : -0.728 1.3 2.4 263 : 0 1.3 2.4 264 : 0.224 0.4 2.55 265 : 0.4 0.224 2.55 266 : 0.728 1.3 2.55 267 : 1.3 0.728 2.55 268 : 0.728 1.3 2.4 269 : 1.3 0.728 2.4 270 : 0 0 0 271 : 1.5 0 0.15 272 : 1.5 0.84 0.15 273 : 0.84 1.5 0.15 274 : 0 1.5 0.15 275 : 1.5 0 0.075 276 : 1.5 0.84 0.075 277 : 0.84 1.5 0.075 278 : 0 1.5 0.075 279 : 1.425 0 0 280 : 1.425 0.798 0 281 : 0.798 1.425 0 282 : 0 1.425 0 283 : -0.84 1.5 0.15 284 : -1.5 0.84 0.15 285 : -1.5 0 0.15 286 : -0.84 1.5 0.075 287 : -1.5 0.84 0.075 288 : -1.5 0 0.075 289 : -0.798 1.425 0 290 : -1.425 0.798 0 291 : -1.425 0 0 292 : -1.5 -0.84 0.15 293 : -0.84 -1.5 0.15 294 : 0 -1.5 0.15 295 : -1.5 -0.84 0.075 296 : -0.84 -1.5 0.075 297 : 0 -1.5 0.075 298 : -1.425 -0.798 0 299 : -0.798 -1.425 0 300 : 0 -1.425 0 301 : 0.84 -1.5 0.15 302 : 1.5 -0.84 0.15 303 : 0.84 -1.5 0.075 304 : 1.5 -0.84 0.075 305 : 0.798 -1.425 0 306 : 1.425 -0.798 0 Read surface rectangle information from "teapot_rectangles.txt" There are 32 surface rectangles Bezier surface rectangles: Col: 1 2 3 4 5 6 7 8 9 10 Row 1: 1 2 3 4 5 6 7 8 9 10 2: 4 17 18 19 8 20 21 22 12 23 3: 19 29 30 31 22 32 33 34 25 35 4: 31 41 42 1 34 43 44 5 37 45 5: 13 14 15 16 49 50 51 52 53 54 6: 16 26 27 28 52 61 62 63 56 64 7: 28 38 39 40 63 70 71 72 66 73 8: 40 47 48 13 72 79 80 49 75 81 9: 57 58 59 60 85 86 87 88 89 90 10: 60 67 68 69 88 97 98 99 92 100 11: 69 76 77 78 99 106 107 108 102 109 12: 78 83 84 57 108 115 116 85 111 117 13: 121 122 123 124 125 126 127 128 129 130 14: 124 137 138 121 128 139 140 125 132 141 15: 133 134 135 136 145 146 147 148 149 150 16: 136 143 144 133 148 156 157 145 152 158 17: 162 163 164 165 166 167 168 169 170 171 18: 165 178 179 162 169 180 181 166 173 182 19: 174 175 176 177 186 187 188 189 190 191 20: 177 184 185 174 189 198 199 186 193 200 21: 204 204 204 204 207 208 209 210 211 211 22: 204 204 204 204 210 217 218 219 211 211 23: 204 204 204 204 219 224 225 226 211 211 24: 204 204 204 204 226 230 231 207 211 211 25: 212 213 214 215 234 235 236 237 238 239 26: 215 220 221 222 237 246 247 248 241 249 27: 222 227 228 229 248 255 256 257 251 258 28: 229 232 233 212 257 264 265 234 260 266 29: 270 270 270 270 279 280 281 282 275 276 30: 270 270 270 270 282 289 290 291 278 286 31: 270 270 270 270 291 298 299 300 288 295 32: 270 270 270 270 300 305 306 279 297 303 Col: 11 12 13 14 15 16 Row 1: 11 12 13 14 15 16 2: 24 25 16 26 27 28 3: 36 37 28 38 39 40 4: 46 9 40 47 48 13 5: 55 56 57 58 59 60 6: 65 66 60 67 68 69 7: 74 75 69 76 77 78 8: 82 53 78 83 84 57 9: 91 92 93 94 95 96 10: 101 102 96 103 104 105 11: 110 111 105 112 113 114 12: 118 89 114 119 120 93 13: 131 132 133 134 135 136 14: 142 129 136 143 144 133 15: 151 152 69 153 154 155 16: 159 149 155 160 161 69 17: 172 173 174 175 176 177 18: 183 170 177 184 185 174 19: 192 193 194 195 196 197 20: 201 190 197 202 203 194 21: 211 211 212 213 214 215 22: 211 211 215 220 221 222 23: 211 211 222 227 228 229 24: 211 211 229 232 233 212 25: 240 241 242 243 244 245 26: 250 251 245 252 253 254 27: 259 260 254 261 262 263 28: 267 238 263 268 269 242 29: 277 278 271 272 273 274 30: 287 288 274 283 284 285 31: 296 297 285 292 293 294 32: 304 275 294 301 302 271 bezier_surface_test02(): bezier_surface_neighbors() determines patch neighbors. Note that, for this example, the teapot, there are cases where more than two patches meet at a (degenerate) side. This routine will not handle such cases completely. Read surface rectangle information from "teapot_rectangles.txt" There are 32 surface rectangles Bezier patch neighbors: Row: 1 2 3 4 Col 1: -1 2 5 4 2: -1 3 6 1 3: -1 4 7 2 4: -1 1 8 3 5: 1 6 9 8 6: 2 7 10 5 7: 3 8 11 6 8: 4 5 12 7 9: 5 10 -1 12 10: 6 11 -1 9 11: 7 12 -1 10 12: 8 9 -1 11 13: 14 14 14 14 14: 13 13 13 13 15: 16 16 16 16 16: 15 15 15 15 17: 18 18 18 18 18: 17 17 17 17 19: 20 20 20 20 20: 19 19 19 19 21: 22 22 25 24 22: 21 23 26 21 23: 24 24 27 22 24: 23 21 28 23 25: 21 26 -1 28 26: 22 27 -1 25 27: 23 28 -1 26 28: 24 25 -1 27 29: 30 30 -1 32 30: 29 31 -1 29 31: 32 32 -1 30 32: 31 29 -1 31 bezier_surface_test03() bezier_patch_evaluate() evaluates points in one patch of a Bezier surface. Nodal coordinates: 1 0.000000 0.000000 0.000000 2 0.333333 0.000000 0.000000 3 0.666667 0.000000 0.000000 4 1.000000 0.000000 0.000000 5 0.000000 0.333333 0.000000 6 0.333333 0.333333 0.024691 7 0.666667 0.333333 0.024691 8 1.000000 0.333333 0.000000 9 0.000000 0.666667 0.000000 10 0.333333 0.666667 0.098765 11 0.666667 0.666667 0.098765 12 1.000000 0.666667 0.000000 13 0.000000 1.000000 0.000000 14 0.333333 1.000000 0.222222 15 0.666667 1.000000 0.222222 16 1.000000 1.000000 0.000000 (U,V) --> (X,Y,Z) coordinates: 1 0.000000 0.000000 0.000000 0.000000 0.000000 2 0.333333 0.000000 0.333333 0.000000 0.000000 3 0.666667 0.000000 0.666667 0.000000 0.000000 4 1.000000 0.000000 1.000000 0.000000 0.000000 5 0.000000 0.333333 0.000000 0.333333 0.000000 6 0.333333 0.333333 0.333333 0.333333 0.027435 7 0.666667 0.333333 0.666667 0.333333 0.027435 8 1.000000 0.333333 1.000000 0.333333 0.000000 9 0.000000 0.666667 0.000000 0.666667 0.000000 10 0.333333 0.666667 0.333333 0.666667 0.076818 11 0.666667 0.666667 0.666667 0.666667 0.076818 12 1.000000 0.666667 1.000000 0.666667 0.000000 13 0.000000 1.000000 0.000000 1.000000 0.000000 14 0.333333 1.000000 0.333333 1.000000 0.148148 15 0.666667 1.000000 0.666667 1.000000 0.148148 16 1.000000 1.000000 1.000000 1.000000 0.000000 bezier_surface_test(): Normal end of execution. 07-Jan-2022 16:00:21