Warning, /include/Geant4/tools/glprims is written in an unsupported language. File is not indexed.
0001 // Copyright (C) 2010, Guy Barrand. All rights reserved.
0002 // See the file tools.license for terms.
0003
0004 #ifndef tools_glprims
0005 #define tools_glprims
0006
0007 //same as OpenGL GL_[POINTS,etc...], but for the case we don't have OpenGL.
0008
0009 #include <cstddef> //size_t
0010
0011 namespace tools {
0012 namespace gl {
0013
0014 typedef unsigned char mode_t;
0015
0016 inline mode_t points() {return 0x0000;}
0017 inline mode_t lines() {return 0x0001;} //segments
0018 inline mode_t line_loop() {return 0x0002;}
0019 inline mode_t line_strip() {return 0x0003;} //polyline
0020 inline mode_t triangles() {return 0x0004;}
0021 inline mode_t triangle_strip() {return 0x0005;}
0022 inline mode_t triangle_fan() {return 0x0006;}
0023 //inline mode_t quads() {return 0x0007;}
0024 //inline mode_t quad_strip() {return 0x0008;}
0025 //inline mode_t polygon() {return 0x0009;}
0026
0027 inline bool is_mode(mode_t a_mode) {
0028 return a_mode<=0x006?true:false;
0029 }
0030
0031 inline bool is_line(mode_t a_mode) {
0032 if(a_mode==points()) return true; //0 sz line !
0033 if(a_mode==lines()) return true;
0034 if(a_mode==line_loop()) return true;
0035 if(a_mode==line_strip()) return true;
0036 return false;
0037 }
0038
0039 inline void cvt_2to3(size_t a_npt,const float* a_xys,float*& a_xyzs) {
0040 const float* vpos = a_xys;
0041 float x,y;
0042 for(size_t i=0;i<a_npt;i++) {
0043 x = *vpos;vpos++;
0044 y = *vpos;vpos++;
0045 *a_xyzs = x;a_xyzs++;
0046 *a_xyzs = y;a_xyzs++;
0047 *a_xyzs = 0;a_xyzs++;
0048 }
0049 }
0050
0051
0052 inline void triangle_fan_to_triangles(size_t a_npt,const float* a_xyzs,float*& a_pxyzs) {
0053 // a_pxyzs = (a_npt-2)*3*3
0054
0055 const float* vpos = a_xyzs;
0056
0057 float x1 = *vpos;vpos++;
0058 float y1 = *vpos;vpos++;
0059 float z1 = *vpos;vpos++;
0060
0061 float x2 = *vpos;vpos++;
0062 float y2 = *vpos;vpos++;
0063 float z2 = *vpos;vpos++;
0064
0065 float x3,y3,z3;
0066 for(size_t i=2;i<a_npt;i++) {
0067 x3 = *vpos;vpos++;
0068 y3 = *vpos;vpos++;
0069 z3 = *vpos;vpos++;
0070 *a_pxyzs = x1;a_pxyzs++;
0071 *a_pxyzs = y1;a_pxyzs++;
0072 *a_pxyzs = z1;a_pxyzs++;
0073
0074 *a_pxyzs = x2;a_pxyzs++;
0075 *a_pxyzs = y2;a_pxyzs++;
0076 *a_pxyzs = z2;a_pxyzs++;
0077
0078 *a_pxyzs = x3;a_pxyzs++;
0079 *a_pxyzs = y3;a_pxyzs++;
0080 *a_pxyzs = z3;a_pxyzs++;
0081
0082 x2 = x3;
0083 y2 = y3;
0084 z2 = z3;
0085 }
0086
0087 }
0088
0089 inline void triangle_fan_to_triangles_texture(size_t a_npt,const float* a_xyzs,const float* a_tcs,float*& a_pxyzs,float*& a_ptcs) {
0090 // a_pxyzs = (a_npt-2)*3*3
0091
0092 // a_ptcs = (a_npt-2)*3*2
0093
0094 const float* vpos = a_xyzs;
0095 const float* tpos = a_tcs;
0096
0097 float x1 = *vpos;vpos++;
0098 float y1 = *vpos;vpos++;
0099 float z1 = *vpos;vpos++;
0100
0101 float tx1 = *tpos;tpos++;
0102 float ty1 = *tpos;tpos++;
0103
0104 float x2 = *vpos;vpos++;
0105 float y2 = *vpos;vpos++;
0106 float z2 = *vpos;vpos++;
0107
0108 float tx2 = *tpos;tpos++;
0109 float ty2 = *tpos;tpos++;
0110
0111 float x3,y3,z3,tx3,ty3;
0112 for(size_t i=2;i<a_npt;i++) {
0113 x3 = *vpos;vpos++;
0114 y3 = *vpos;vpos++;
0115 z3 = *vpos;vpos++;
0116
0117 tx3 = *tpos;tpos++;
0118 ty3 = *tpos;tpos++;
0119
0120 *a_pxyzs = x1;a_pxyzs++;
0121 *a_pxyzs = y1;a_pxyzs++;
0122 *a_pxyzs = z1;a_pxyzs++;
0123
0124 *a_ptcs = tx1;a_ptcs++;
0125 *a_ptcs = ty1;a_ptcs++;
0126
0127 *a_pxyzs = x2;a_pxyzs++;
0128 *a_pxyzs = y2;a_pxyzs++;
0129 *a_pxyzs = z2;a_pxyzs++;
0130
0131 *a_ptcs = tx2;a_ptcs++;
0132 *a_ptcs = ty2;a_ptcs++;
0133
0134 *a_pxyzs = x3;a_pxyzs++;
0135 *a_pxyzs = y3;a_pxyzs++;
0136 *a_pxyzs = z3;a_pxyzs++;
0137
0138 *a_ptcs = tx3;a_ptcs++;
0139 *a_ptcs = ty3;a_ptcs++;
0140
0141 x2 = x3;
0142 y2 = y3;
0143 z2 = z3;
0144
0145 tx2 = tx3;
0146 ty2 = ty3;
0147 }
0148
0149 }
0150
0151 inline void triangle_strip_to_triangles(size_t a_npt,const float* a_xyzs,float*& a_pxyzs) {
0152 // a_pxyzs = (a_npt-2)*3*3
0153
0154 const float* vpos = a_xyzs;
0155
0156 float x1 = *vpos;vpos++;
0157 float y1 = *vpos;vpos++;
0158 float z1 = *vpos;vpos++;
0159
0160 float x2 = *vpos;vpos++;
0161 float y2 = *vpos;vpos++;
0162 float z2 = *vpos;vpos++;
0163
0164 float x3,y3,z3;
0165 bool flip = false;
0166 for(size_t i=2;i<a_npt;i++) {
0167 x3 = *vpos;vpos++;
0168 y3 = *vpos;vpos++;
0169 z3 = *vpos;vpos++;
0170
0171 if(flip) {
0172 *a_pxyzs = x1;a_pxyzs++;
0173 *a_pxyzs = y1;a_pxyzs++;
0174 *a_pxyzs = z1;a_pxyzs++;
0175
0176 *a_pxyzs = x3;a_pxyzs++;
0177 *a_pxyzs = y3;a_pxyzs++;
0178 *a_pxyzs = z3;a_pxyzs++;
0179
0180 *a_pxyzs = x2;a_pxyzs++;
0181 *a_pxyzs = y2;a_pxyzs++;
0182 *a_pxyzs = z2;a_pxyzs++;
0183 } else {
0184 *a_pxyzs = x1;a_pxyzs++;
0185 *a_pxyzs = y1;a_pxyzs++;
0186 *a_pxyzs = z1;a_pxyzs++;
0187
0188 *a_pxyzs = x2;a_pxyzs++;
0189 *a_pxyzs = y2;a_pxyzs++;
0190 *a_pxyzs = z2;a_pxyzs++;
0191
0192 *a_pxyzs = x3;a_pxyzs++;
0193 *a_pxyzs = y3;a_pxyzs++;
0194 *a_pxyzs = z3;a_pxyzs++;
0195 }
0196
0197 x1 = x2;
0198 y1 = y2;
0199 z1 = z2;
0200
0201 x2 = x3;
0202 y2 = y3;
0203 z2 = z3;
0204
0205 flip = flip?false:true;
0206 }
0207 }
0208
0209 inline void triangle_strip_to_triangles_texture(size_t a_npt,const float* a_xyzs,const float* a_tcs,float*& a_pxyzs,float*& a_ptcs) {
0210 // a_pxyzs = (a_npt-2)*3*3
0211 // a_ptcs = (a_npt-2)*3*2
0212
0213 const float* vpos = a_xyzs;
0214 const float* tpos = a_tcs;
0215
0216 float x1 = *vpos;vpos++;
0217 float y1 = *vpos;vpos++;
0218 float z1 = *vpos;vpos++;
0219
0220 float tx1 = *tpos;tpos++;
0221 float ty1 = *tpos;tpos++;
0222
0223 float x2 = *vpos;vpos++;
0224 float y2 = *vpos;vpos++;
0225 float z2 = *vpos;vpos++;
0226
0227 float tx2 = *tpos;tpos++;
0228 float ty2 = *tpos;tpos++;
0229
0230 float x3,y3,z3,tx3,ty3;
0231 bool flip = false;
0232 for(size_t i=2;i<a_npt;i++) {
0233 x3 = *vpos;vpos++;
0234 y3 = *vpos;vpos++;
0235 z3 = *vpos;vpos++;
0236
0237 tx3 = *tpos;tpos++;
0238 ty3 = *tpos;tpos++;
0239
0240 if(flip) {
0241 *a_pxyzs = x1;a_pxyzs++;
0242 *a_pxyzs = y1;a_pxyzs++;
0243 *a_pxyzs = z1;a_pxyzs++;
0244
0245 *a_ptcs = tx1;a_ptcs++;
0246 *a_ptcs = ty1;a_ptcs++;
0247
0248 *a_pxyzs = x3;a_pxyzs++;
0249 *a_pxyzs = y3;a_pxyzs++;
0250 *a_pxyzs = z3;a_pxyzs++;
0251
0252 *a_ptcs = tx3;a_ptcs++;
0253 *a_ptcs = ty3;a_ptcs++;
0254
0255 *a_pxyzs = x2;a_pxyzs++;
0256 *a_pxyzs = y2;a_pxyzs++;
0257 *a_pxyzs = z2;a_pxyzs++;
0258
0259 *a_ptcs = tx2;a_ptcs++;
0260 *a_ptcs = ty2;a_ptcs++;
0261 } else {
0262 *a_pxyzs = x1;a_pxyzs++;
0263 *a_pxyzs = y1;a_pxyzs++;
0264 *a_pxyzs = z1;a_pxyzs++;
0265
0266 *a_ptcs = tx1;a_ptcs++;
0267 *a_ptcs = ty1;a_ptcs++;
0268
0269 *a_pxyzs = x2;a_pxyzs++;
0270 *a_pxyzs = y2;a_pxyzs++;
0271 *a_pxyzs = z2;a_pxyzs++;
0272
0273 *a_ptcs = tx2;a_ptcs++;
0274 *a_ptcs = ty2;a_ptcs++;
0275
0276 *a_pxyzs = x3;a_pxyzs++;
0277 *a_pxyzs = y3;a_pxyzs++;
0278 *a_pxyzs = z3;a_pxyzs++;
0279
0280 *a_ptcs = tx3;a_ptcs++;
0281 *a_ptcs = ty3;a_ptcs++;
0282 }
0283
0284 x1 = x2;
0285 y1 = y2;
0286 z1 = z2;
0287
0288 tx1 = tx2;
0289 ty1 = ty2;
0290
0291 x2 = x3;
0292 y2 = y3;
0293 z2 = z3;
0294
0295 tx2 = tx3;
0296 ty2 = ty3;
0297
0298 flip = flip?false:true;
0299 }
0300 }
0301
0302 inline void triangle_fan_to_triangles_nms(size_t a_npt,const float* a_xyzs,const float* a_nms,float*& a_pxyzs,float*& a_pnms) {
0303 triangle_fan_to_triangles(a_npt,a_xyzs,a_pxyzs);
0304 triangle_fan_to_triangles(a_npt,a_nms,a_pnms);
0305 }
0306
0307 inline void triangle_strip_to_triangles_nms(size_t a_npt,const float* a_xyzs,const float* a_nms,float*& a_pxyzs,float*& a_pnms) {
0308 // a_pxyzs, a_pnms = (a_npt-2)*3*3
0309 triangle_strip_to_triangles(a_npt,a_xyzs,a_pxyzs);
0310 triangle_strip_to_triangles(a_npt,a_nms,a_pnms);
0311 }
0312
0313 inline void triangle_fan_to_triangles_2to3(size_t a_npt,const float* a_xyzs,float*& a_pxyzs) {
0314
0315 const float* vpos = a_xyzs;
0316
0317 float x1 = *vpos;vpos++;
0318 float y1 = *vpos;vpos++;
0319
0320 float x2 = *vpos;vpos++;
0321 float y2 = *vpos;vpos++;
0322
0323 float x3,y3;
0324 for(size_t i=2;i<a_npt;i++) {
0325 x3 = *vpos;vpos++;
0326 y3 = *vpos;vpos++;
0327
0328 *a_pxyzs = x1;a_pxyzs++;
0329 *a_pxyzs = y1;a_pxyzs++;
0330 *a_pxyzs = 0;a_pxyzs++;
0331
0332 *a_pxyzs = x2;a_pxyzs++;
0333 *a_pxyzs = y2;a_pxyzs++;
0334 *a_pxyzs = 0;a_pxyzs++;
0335
0336 *a_pxyzs = x3;a_pxyzs++;
0337 *a_pxyzs = y3;a_pxyzs++;
0338 *a_pxyzs = 0;a_pxyzs++;
0339
0340 x2 = x3;
0341 y2 = y3;
0342 }
0343
0344 }
0345
0346 inline void triangle_strip_to_triangles_2to3(size_t a_npt,const float* a_xyzs,float*& a_pxyzs) {
0347
0348 const float* vpos = a_xyzs;
0349
0350 float x1 = *vpos;vpos++;
0351 float y1 = *vpos;vpos++;
0352
0353 float x2 = *vpos;vpos++;
0354 float y2 = *vpos;vpos++;
0355
0356 float x3,y3;
0357 bool flip = false;
0358 for(size_t i=2;i<a_npt;i++) {
0359 x3 = *vpos;vpos++;
0360 y3 = *vpos;vpos++;
0361
0362 if(flip) {
0363 *a_pxyzs = x1;a_pxyzs++;
0364 *a_pxyzs = y1;a_pxyzs++;
0365 *a_pxyzs = 0;a_pxyzs++;
0366
0367 *a_pxyzs = x3;a_pxyzs++;
0368 *a_pxyzs = y3;a_pxyzs++;
0369 *a_pxyzs = 0;a_pxyzs++;
0370
0371 *a_pxyzs = x2;a_pxyzs++;
0372 *a_pxyzs = y2;a_pxyzs++;
0373 *a_pxyzs = 0;a_pxyzs++;
0374 } else {
0375 *a_pxyzs = x1;a_pxyzs++;
0376 *a_pxyzs = y1;a_pxyzs++;
0377 *a_pxyzs = 0;a_pxyzs++;
0378
0379 *a_pxyzs = x2;a_pxyzs++;
0380 *a_pxyzs = y2;a_pxyzs++;
0381 *a_pxyzs = 0;a_pxyzs++;
0382
0383 *a_pxyzs = x3;a_pxyzs++;
0384 *a_pxyzs = y3;a_pxyzs++;
0385 *a_pxyzs = 0;a_pxyzs++;
0386 }
0387
0388 x1 = x2;
0389 y1 = y2;
0390
0391 x2 = x3;
0392 y2 = y3;
0393
0394 flip = flip?false:true;
0395 }
0396
0397 }
0398
0399 inline void line_strip_to_lines_2to3(size_t a_npt,const float* a_xyzs,float*& a_pxyzs) {
0400
0401 const float* vpos = a_xyzs;
0402
0403 float x1 = *vpos;vpos++;
0404 float y1 = *vpos;vpos++;
0405
0406 float x2,y2;
0407 for(size_t i=1;i<a_npt;i++) {
0408 x2 = *vpos;vpos++;
0409 y2 = *vpos;vpos++;
0410
0411 *a_pxyzs = x1;a_pxyzs++;
0412 *a_pxyzs = y1;a_pxyzs++;
0413 *a_pxyzs = 0;a_pxyzs++;
0414
0415 *a_pxyzs = x2;a_pxyzs++;
0416 *a_pxyzs = y2;a_pxyzs++;
0417 *a_pxyzs = 0;a_pxyzs++;
0418
0419 x1 = x2;
0420 y1 = y2;
0421 }
0422
0423 }
0424
0425 inline void line_strip_to_lines(size_t a_npt,const float* a_xyzs,float*& a_pxyzs) {
0426 // a_pxyzs = (a_npt-1)*2*3
0427
0428 const float* vpos = a_xyzs;
0429
0430 float x1 = *vpos;vpos++;
0431 float y1 = *vpos;vpos++;
0432 float z1 = *vpos;vpos++;
0433
0434 float x2,y2,z2;
0435 for(size_t i=1;i<a_npt;i++) {
0436 x2 = *vpos;vpos++;
0437 y2 = *vpos;vpos++;
0438 z2 = *vpos;vpos++;
0439
0440 *a_pxyzs = x1;a_pxyzs++;
0441 *a_pxyzs = y1;a_pxyzs++;
0442 *a_pxyzs = z1;a_pxyzs++;
0443
0444 *a_pxyzs = x2;a_pxyzs++;
0445 *a_pxyzs = y2;a_pxyzs++;
0446 *a_pxyzs = z2;a_pxyzs++;
0447
0448 x1 = x2;
0449 y1 = y2;
0450 z1 = z2;
0451 }
0452
0453 }
0454
0455 inline void line_loop_to_lines(size_t a_npt,const float* a_xyzs,float*& a_pxyzs) {
0456 // a_pxyzs = a_npt*2*3
0457
0458 const float* vpos = a_xyzs;
0459
0460 float x1 = *vpos;vpos++;
0461 float y1 = *vpos;vpos++;
0462 float z1 = *vpos;vpos++;
0463
0464 float x0 = x1;
0465 float y0 = y1;
0466 float z0 = z1;
0467
0468 float x2,y2,z2;
0469 for(size_t i=1;i<a_npt;i++) {
0470 x2 = *vpos;vpos++;
0471 y2 = *vpos;vpos++;
0472 z2 = *vpos;vpos++;
0473
0474 *a_pxyzs = x1;a_pxyzs++;
0475 *a_pxyzs = y1;a_pxyzs++;
0476 *a_pxyzs = z1;a_pxyzs++;
0477
0478 *a_pxyzs = x2;a_pxyzs++;
0479 *a_pxyzs = y2;a_pxyzs++;
0480 *a_pxyzs = z2;a_pxyzs++;
0481
0482 x1 = x2;
0483 y1 = y2;
0484 z1 = z2;
0485 }
0486
0487 *a_pxyzs = x1;a_pxyzs++;
0488 *a_pxyzs = y1;a_pxyzs++;
0489 *a_pxyzs = z1;a_pxyzs++;
0490
0491 *a_pxyzs = x0;a_pxyzs++;
0492 *a_pxyzs = y0;a_pxyzs++;
0493 *a_pxyzs = z0;a_pxyzs++;
0494
0495 }
0496
0497 inline void line_loop_to_line_strip(size_t a_npt,const float* a_xyzs,float*& a_pxyzs) {
0498 // a_pxyzs = (a_npt+1)*3
0499
0500 const float* vpos = a_xyzs;
0501
0502 float x1 = *vpos;vpos++;
0503 float y1 = *vpos;vpos++;
0504 float z1 = *vpos;vpos++;
0505
0506 for(size_t i=0;i<a_npt;i++) {
0507 *a_pxyzs = *vpos;vpos++;a_pxyzs++;
0508 *a_pxyzs = *vpos;vpos++;a_pxyzs++;
0509 *a_pxyzs = *vpos;vpos++;a_pxyzs++;
0510 }
0511
0512 *a_pxyzs = x1;a_pxyzs++;
0513 *a_pxyzs = y1;a_pxyzs++;
0514 *a_pxyzs = z1;a_pxyzs++;
0515 }
0516
0517 /// for DirectX_action :
0518 inline void triangle_fan_to_triangles_2to3(size_t a_npt,const float* a_xyzs,
0519 float a_r,float a_g,float a_b,float a_a,
0520 float*& a_pxyz_rgbas) {
0521
0522 const float* vpos = a_xyzs;
0523
0524 float x1 = *vpos;vpos++;
0525 float y1 = *vpos;vpos++;
0526
0527 float x2 = *vpos;vpos++;
0528 float y2 = *vpos;vpos++;
0529
0530 float x3,y3;
0531 for(size_t i=2;i<a_npt;i++) {
0532 x3 = *vpos;vpos++;
0533 y3 = *vpos;vpos++;
0534
0535 *a_pxyz_rgbas = x1;a_pxyz_rgbas++;
0536 *a_pxyz_rgbas = y1;a_pxyz_rgbas++;
0537 *a_pxyz_rgbas = 0;a_pxyz_rgbas++;
0538
0539 *a_pxyz_rgbas = a_r;a_pxyz_rgbas++;
0540 *a_pxyz_rgbas = a_g;a_pxyz_rgbas++;
0541 *a_pxyz_rgbas = a_b;a_pxyz_rgbas++;
0542 *a_pxyz_rgbas = a_a;a_pxyz_rgbas++;
0543
0544 *a_pxyz_rgbas = x2;a_pxyz_rgbas++;
0545 *a_pxyz_rgbas = y2;a_pxyz_rgbas++;
0546 *a_pxyz_rgbas = 0;a_pxyz_rgbas++;
0547
0548 *a_pxyz_rgbas = a_r;a_pxyz_rgbas++;
0549 *a_pxyz_rgbas = a_g;a_pxyz_rgbas++;
0550 *a_pxyz_rgbas = a_b;a_pxyz_rgbas++;
0551 *a_pxyz_rgbas = a_a;a_pxyz_rgbas++;
0552
0553 *a_pxyz_rgbas = x3;a_pxyz_rgbas++;
0554 *a_pxyz_rgbas = y3;a_pxyz_rgbas++;
0555 *a_pxyz_rgbas = 0;a_pxyz_rgbas++;
0556
0557 *a_pxyz_rgbas = a_r;a_pxyz_rgbas++;
0558 *a_pxyz_rgbas = a_g;a_pxyz_rgbas++;
0559 *a_pxyz_rgbas = a_b;a_pxyz_rgbas++;
0560 *a_pxyz_rgbas = a_a;a_pxyz_rgbas++;
0561
0562 x2 = x3;
0563 y2 = y3;
0564 }
0565 }
0566
0567 inline void triangle_fan_to_triangles(size_t a_npt,const float* a_xyzs,
0568 float a_r,float a_g,float a_b,float a_a,
0569 float*& a_pxyz_rgbas) {
0570
0571 const float* vpos = a_xyzs;
0572
0573 float x1 = *vpos;vpos++;
0574 float y1 = *vpos;vpos++;
0575 float z1 = *vpos;vpos++;
0576
0577 float x2 = *vpos;vpos++;
0578 float y2 = *vpos;vpos++;
0579 float z2 = *vpos;vpos++;
0580
0581 float x3,y3,z3;
0582 for(size_t i=2;i<a_npt;i++) {
0583 x3 = *vpos;vpos++;
0584 y3 = *vpos;vpos++;
0585 z3 = *vpos;vpos++;
0586
0587 *a_pxyz_rgbas = x1;a_pxyz_rgbas++;
0588 *a_pxyz_rgbas = y1;a_pxyz_rgbas++;
0589 *a_pxyz_rgbas = z1;a_pxyz_rgbas++;
0590
0591 *a_pxyz_rgbas = a_r;a_pxyz_rgbas++;
0592 *a_pxyz_rgbas = a_g;a_pxyz_rgbas++;
0593 *a_pxyz_rgbas = a_b;a_pxyz_rgbas++;
0594 *a_pxyz_rgbas = a_a;a_pxyz_rgbas++;
0595
0596 *a_pxyz_rgbas = x2;a_pxyz_rgbas++;
0597 *a_pxyz_rgbas = y2;a_pxyz_rgbas++;
0598 *a_pxyz_rgbas = z2;a_pxyz_rgbas++;
0599
0600 *a_pxyz_rgbas = a_r;a_pxyz_rgbas++;
0601 *a_pxyz_rgbas = a_g;a_pxyz_rgbas++;
0602 *a_pxyz_rgbas = a_b;a_pxyz_rgbas++;
0603 *a_pxyz_rgbas = a_a;a_pxyz_rgbas++;
0604
0605 *a_pxyz_rgbas = x3;a_pxyz_rgbas++;
0606 *a_pxyz_rgbas = y3;a_pxyz_rgbas++;
0607 *a_pxyz_rgbas = z3;a_pxyz_rgbas++;
0608
0609 *a_pxyz_rgbas = a_r;a_pxyz_rgbas++;
0610 *a_pxyz_rgbas = a_g;a_pxyz_rgbas++;
0611 *a_pxyz_rgbas = a_b;a_pxyz_rgbas++;
0612 *a_pxyz_rgbas = a_a;a_pxyz_rgbas++;
0613
0614 x2 = x3;
0615 y2 = y3;
0616 z2 = z3;
0617 }
0618 }
0619
0620 }}
0621
0622 #endif