Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. std::cout<<r.o<<r.d<<std::endl;
  2. std::cout<<min<<max<<std::endl;
  3. double tminX = 0;
  4. double tminY = 0;
  5. double tminZ = 0;
  6. double tmaxX = 0;
  7. double tmaxY = 0;
  8. double tmaxZ = 0;
  9. double tmin = 0;
  10. double tmax = 0;
  11. double distX = r.d.x;
  12. double distY = r.d.y;
  13. double distZ = r.d.z;
  14.  
  15. if (distX == 0.0) {distX = EPS_D;}
  16. if (distY == 0.0) {distY = EPS_D;}
  17. if (distZ == 0.0) {distZ = EPS_D;}
  18.  
  19. tminX = (min.x - r.o.x) / distX;
  20. tminY = (min.y - r.o.y) / distY;
  21. tminZ = (min.z - r.o.z) / distZ;
  22. tmaxX = (max.x - r.o.x) / distX;
  23. tmaxY = (max.y - r.o.y) / distY;
  24. tmaxZ = (max.z - r.o.z) / distZ;
  25.  
  26. //Check to make sure they are aligned correctly
  27. double holder;
  28. if (tminX > tmaxX) {
  29. holder = tminX;
  30. tminX = tmaxX;
  31. tmaxX = holder;
  32. }
  33. if (tminY > tmaxY) {
  34. holder = tminY;
  35. tminY = tmaxY;
  36. tmaxY = holder;
  37. }
  38. if (tminZ > tmaxZ) {
  39. holder = tminZ;
  40. tminZ = tmaxZ;
  41. tmaxZ = holder;
  42. }
  43. //Check edge cases to make sure there is an intersection
  44. if (tminX > tmaxY || tminY > tmaxX) {
  45. printf("\nfail 1\n");
  46. return false;
  47. }
  48.  
  49. tmin = std::max(tminX, tminY);
  50. tmax = std::min(tmaxX, tmaxY);
  51.  
  52. std::cout<<tmin<<" "<<tmaxZ<<" "<<tminZ<<" "<<tmax<<std::endl;
  53. if(tmin > tmaxZ || tminZ > tmax) {
  54. printf("\nfail 2\n");
  55. return false;
  56. }
  57.  
  58. tmin = std::max(tmin, tminZ);
  59. tmax = std::min(tmax, tmaxZ);
  60.  
  61. if (tmin < r.min_t || tmax < r.min_t || tmin > r.max_t || tmax > r.max_t) {
  62. printf("\nfail 3\n");
  63. return false;
  64. }
  65.  
  66. //Updating the range
  67. //if (t0 < tmin && tmin < t1) {
  68. t0 = tmin;
  69. //}
  70. //if (t0 < tmax && tmax < t1) {
  71. t1 = tmax;
  72. //}
  73.  
  74. return true;*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement