397 |
|
|
398 |
for(Paper::Paper::iterator it = paper->begin(); it != paper->end(); ++it) { |
for(Paper::Paper::iterator it = paper->begin(); it != paper->end(); ++it) { |
399 |
|
|
400 |
if (dbg) cout << "Pass\n"; |
if (dbg) cout << "Pass\\n"; |
401 |
(*it).setUp(&lightParam); |
(*it).setUp(&lightParam); |
402 |
|
|
403 |
GLERR |
GLERR |
411 |
GLERR |
GLERR |
412 |
(*it).tearDown(); |
(*it).tearDown(); |
413 |
GLERR |
GLERR |
414 |
|
|
415 |
|
} |
416 |
|
|
417 |
|
GLERR |
418 |
|
""", |
419 |
|
} , |
420 |
|
|
421 |
|
{ |
422 |
|
"Type" : "2", |
423 |
|
"Name": "FisheyePaperQuad", |
424 |
|
"Data": "Pt corners[4]; Paper::Paper* paper; float scale;", |
425 |
|
"Params" : """ |
426 |
|
Paper paper, float x0, float y0, float x1, float y1, |
427 |
|
float scale |
428 |
|
""", |
429 |
|
"ParamCode" : """ |
430 |
|
this->paper = paper; |
431 |
|
corners[0].x = corners[1].x = x0; |
432 |
|
corners[0].y = corners[3].y = y0; |
433 |
|
corners[2].x = corners[3].x = x1; |
434 |
|
corners[1].y = corners[2].y = y1; |
435 |
|
this->scale = scale; |
436 |
|
""", |
437 |
|
"RenderCode" : """ |
438 |
|
DBG(dbg) << "Paper\\n"; |
439 |
|
GLERR |
440 |
|
|
441 |
|
ZPt paperorigin = coords2.transform(Pt(0, 0)); |
442 |
|
ZVec paperx = coords2.transform(Pt(1, 0)) - paperorigin; |
443 |
|
ZVec papery = coords2.transform(Pt(0, 1)) - paperorigin; |
444 |
|
|
445 |
|
Paper::LightParam lightParam; |
446 |
|
lightParam.orig = paperorigin-ZPt(0,0,0); |
447 |
|
lightParam.e0 = paperx * scale; |
448 |
|
lightParam.e1 = papery * scale; |
449 |
|
lightParam.e2 = ZVec(0,0,paperx.length()) * scale; |
450 |
|
|
451 |
|
lightParam.Light = ZVec(-1,-1,1); |
452 |
|
lightParam.Light_w = 0.0; |
453 |
|
|
454 |
|
if(dbg) { |
455 |
|
cout << "Paperquad: " << |
456 |
|
lightParam.orig << " " << |
457 |
|
lightParam.e0 << " " << |
458 |
|
lightParam.e1 << " " << |
459 |
|
lightParam.e2 << " " << |
460 |
|
"\\nCorners" << |
461 |
|
corners[0] << |
462 |
|
corners[1] << |
463 |
|
corners[2] << |
464 |
|
corners[3] << |
465 |
|
"\\nCorners trans:" << |
466 |
|
coords1.transform(corners[0]) << |
467 |
|
coords1.transform(corners[1]) << |
468 |
|
coords1.transform(corners[2]) << |
469 |
|
coords1.transform(corners[3]) << |
470 |
|
"\\n" |
471 |
|
; |
472 |
|
} |
473 |
|
GLERR |
474 |
|
|
475 |
|
for(Paper::Paper::iterator it = paper->begin(); it != paper->end(); ++it) { |
476 |
|
if (dbg) cout << "Pass\\n"; |
477 |
|
(*it).setUpVP(&lightParam); |
478 |
|
|
479 |
|
GLERR |
480 |
|
glBegin(GL_QUADS); |
481 |
|
|
482 |
|
glTexCoord2f(0,0); |
483 |
|
coords1.vertex(corners[0]); |
484 |
|
|
485 |
|
glTexCoord2f(0,1); |
486 |
|
coords1.vertex(corners[1]); |
487 |
|
|
488 |
|
glTexCoord2f(1,1); |
489 |
|
coords1.vertex(corners[2]); |
490 |
|
|
491 |
|
glTexCoord2f(1,0); |
492 |
|
coords1.vertex(corners[3]); |
493 |
|
glEnd(); |
494 |
|
|
495 |
|
GLERR |
496 |
|
(*it).tearDownVP(); |
497 |
|
GLERR |
498 |
} |
} |
499 |
|
|
500 |
GLERR |
GLERR |